Skip to main content

Network Egress Audit

Purpose​

Every external domain that CI workflows reach out to represents an attack surface. This document formalizes the allowed egress domains and requires explicit approval for new ones.

Allowed Egress Domains​

DomainUsed ByPurpose
github.comAll workflowsGit operations, API calls
api.github.comgithub-script, auto-milestoneGitHub REST/GraphQL API
registry.npmjs.orgnpm ciPackage installation
npmjs.comnpm ciPackage metadata
pypi.orgpip installPython package installation
files.pythonhosted.orgpip installPython package downloads
crates.ioMegaLinter (trivy)Vulnerability database
ghcr.ioMegaLinterContainer image pull
chrisnewcomb.namelink-checkLink validation against live site
giscus.appDeployed siteComment system
static.cloudflareinsights.comDeployed siteWeb Analytics beacon

Approval Process​

To add a new egress domain:

  1. Open an issue explaining the need
  2. Document what workflow uses it and why
  3. Add it to this document in a PR
  4. Get approval before merging

Monitoring​

New domains introduced in workflow files should be flagged during PR review. The scan_malware_patterns.py script catches suspicious URLs (curl/wget piped to shell) but does not audit all egress.

Review Schedule​

This document should be reviewed quarterly and whenever a new workflow or CI tool is added.