SC-15(2): Blocking Inbound and Outbound Communications Traffic

SC-15(2): blocking inbound and outbound communications traffic requirement means you must actively prevent unauthorized network communications into and out of your system boundary, using managed technical controls (for example, firewalls, proxies, and egress filtering) with documented rules, approvals, monitoring, and evidence. Operationalize it by defining permitted traffic, enforcing default-deny where feasible, and continuously validating that blocking works.

Key takeaways:

  • Define and enforce explicit allow rules for both inbound and outbound traffic, tied to business need and system boundary.
  • Treat egress control as a first-class requirement: block unknown destinations, ports, protocols, and risky paths.
  • Build assessor-ready evidence: rule baselines, change approvals, logs, and recurring reviews mapped to an owner and procedure.

The sc-15(2): blocking inbound and outbound communications traffic requirement is an execution control, not a paper control. Auditors will not accept “we have a firewall” as proof. They will ask what traffic is allowed, what is blocked, who approves exceptions, how you detect drift, and how you show the control works for cloud, SaaS admin planes, endpoints, and on-prem networks.

This requirement shows up most painfully after an incident: malware calls out to command-and-control, a workload exposes an unintended port, or an admin interface becomes reachable from the internet. In those moments, “ingress filtering” and “egress filtering” become the difference between a contained event and a reportable breach with sustained operational impact.

For a CCO, GRC lead, or compliance operator, the fastest path is to (1) set the policy intent in plain terms, (2) translate it into enforceable network guardrails at each boundary, and (3) retain evidence that the guardrails are continuously applied. This page gives requirement-level steps, specific artifacts to retain, and the audit questions you should be able to answer on demand.

Regulatory text

Regulatory excerpt: “NIST SP 800-53 control SC-15.2.” 1

What the operator must do: Implement technical controls that block both inbound and outbound communications traffic that is not explicitly permitted by your organization’s authorized communications policy for the system boundary. In practice, you need enforced filtering at ingress and egress points, rule governance, and monitoring that demonstrates traffic is blocked as intended. 2

Plain-English interpretation (what SC-15(2) expects)

SC-15(2) expects you to run your environment on “allowed traffic only” principles:

  • Inbound: Only explicitly approved sources can reach approved destinations on approved ports/protocols (for example, public HTTPS to a load balancer, partner SFTP to a gateway).
  • Outbound (egress): Systems can only initiate connections to approved destinations and services (for example, OS/package repositories, required APIs, centralized logging), and everything else is blocked or tightly constrained.

If you cannot do strict default-deny everywhere, you still need a controlled, documented approach: defined baselines, compensating controls, and a plan to tighten scope over time. Assessors focus on whether blocking is enforced, maintained, and provable.

Who it applies to

Entity types (typical):

  • Federal information systems
  • Contractor systems handling federal data 1

Operational context (where it bites):

  • Internet-facing services (web apps, VPN, remote admin)
  • Cloud environments (security groups/NACLs, managed firewalls, private endpoints)
  • Hybrid networks (on-prem + cloud)
  • High-trust network segments (domain controllers, CI/CD runners, build systems)
  • End-user endpoints (host firewall, EDR network controls)
  • Third-party connectivity (site-to-site VPNs, direct connects, API integrations)

What you actually need to do (step-by-step)

1) Define the “system boundary” and enforcement points

Create a simple boundary statement: what networks, accounts/subscriptions, VPC/VNets, enclaves, and endpoints are in scope. Then list enforcement points:

  • Perimeter firewalls / cloud network firewalls
  • Security groups / NACLs
  • Web application firewalls (if used for inbound HTTP/S)
  • Proxies / secure web gateways (for outbound web)
  • DNS controls (resolver policies, sinkhole, domain allow/deny)
  • Email gateways (if part of system communications path)
  • Host-based firewalls for servers and endpoints

Deliverable: a boundary diagram and “control points list” owned by Network/SecOps, referenced in the SSP/control narrative.

2) Establish allowed communications (the allowlist)

Build an “Authorized Communications Matrix” that answers, for each major system component:

  • Source (zone/workload/user group)
  • Destination (service, CIDR, FQDN, SaaS endpoint)
  • Direction (inbound/outbound)
  • Protocol/port
  • Business justification and data type
  • Owner, approver, and expiration or review cadence

This matrix is the backbone of your firewall rules and your audit defense.

3) Implement inbound blocking (ingress)

Minimum operator expectations:

  • Deny inbound by default at the perimeter, then allow only required services.
  • Separate public-facing tiers from internal tiers; block lateral movement paths by default between segments.
  • Lock down administrative interfaces (SSH/RDP/Kubernetes API/DB admin) to approved management networks and strong authentication paths.
  • For cloud: restrict security group inbound rules; avoid 0.0.0.0/0 except for necessary public services, and document each exception with compensating controls.

4) Implement outbound blocking (egress) with real governance

Egress is where many programs fail. Put specific ownership on it.

Practical approaches (pick what fits your architecture):

  • Central egress via proxy/NAT + policy: Force web traffic through a proxy; restrict outbound ports and destinations.
  • DNS-based controls: Enforce internal resolvers; block known-bad and unauthorized domains; prevent direct-to-internet DNS.
  • Workload egress policies: For Kubernetes/service mesh, enforce namespace-level egress policies.
  • Cloud egress controls: Use private endpoints where possible; restrict internet gateways; apply network firewall egress rule groups.

Governance requirements:

  • Every broad outbound allowance must have a named owner and justification in the communications matrix.
  • Exceptions must be time-bound or have a required review trigger (for example, after a major release or architecture change).

5) Make rule changes controlled, reviewable, and testable

Treat network filtering rules as controlled configuration:

  • Change tickets required for adds/changes/removals
  • Peer review by network/security engineering
  • Approval by an accountable owner (system owner or delegated authority)
  • Post-change validation (connectivity tests and log verification)
  • Rollback procedure documented

If you use Infrastructure as Code, require pull requests, code owners, and CI checks to prevent unsafe rules from merging.

6) Monitor and continuously validate blocking works

You need operational proof that blocking is active:

  • Centralize firewall/proxy/DNS logs to your SIEM
  • Alert on denied outbound attempts that indicate malware, misconfig, or shadow IT
  • Alert on configuration drift (rule changes outside change control)
  • Periodically test from representative segments (synthetic tests) to confirm denied paths remain denied

7) Map ownership and recurring evidence (assessment readiness)

Assign:

  • Control owner: accountable for SC-15(2) outcomes
  • Operators: Network/SecOps and CloudOps
  • Evidence producers: SIEM/logging team, change management

Daydream can help by mapping SC-15(2) to an owner, a repeatable implementation procedure, and recurring evidence artifacts so the control stays “evergreen” during audits and vendor due diligence.

Required evidence and artifacts to retain

Keep evidence that proves design, implementation, and operation:

Design / intent

  • Network and system boundary diagrams
  • Authorized Communications Matrix (allowlist) with approvals
  • Standards for firewall rules, egress, proxy use, DNS enforcement

Implementation

  • Firewall/security group/NACL/proxy configuration exports or screenshots
  • IaC repositories and merge history for network controls (if applicable)
  • Egress architecture documentation (proxy/NAT/DNS/private endpoints)

Operation

  • Change tickets with approvals and peer review notes
  • SIEM dashboards or saved searches showing denies and alerts
  • Periodic access reviews of rule administrators
  • Recurring rule review meeting notes and attestations
  • Evidence of exception reviews and closures

Common exam/audit questions and hangups

Expect these questions and prepare crisp answers:

  1. “Show me how you block outbound traffic.” Many teams can’t. Bring proxy/NAT policy, firewall egress rules, and deny logs.
  2. “What traffic is explicitly allowed?” Produce the communications matrix and map it to specific rules.
  3. “How do you prevent ad hoc rule changes?” Show change management plus privileged access controls for network admins.
  4. “How do you cover cloud and SaaS?” Show security group baselines, private connectivity patterns, and admin plane restrictions.
  5. “How do you know rules still match the architecture?” Show periodic reviews and drift monitoring.

Frequent implementation mistakes (and how to avoid them)

Mistake: Treating inbound controls as sufficient.
Fix: Make egress a stated requirement in your policy and evidence set; build one control narrative that explicitly covers both directions.

Mistake: Overbroad “temporary” rules that become permanent.
Fix: Require expiration or a documented review trigger for exceptions; track them like vulnerabilities.

Mistake: Allowlist exists in a spreadsheet but not enforced in rules.
Fix: Tie each rule to a matrix entry ID in the ticket/IaC comment, so you can trace business justification.

Mistake: Cloud security groups managed manually across teams.
Fix: Standard baselines and guardrails (policy-as-code) to prevent unsafe inbound/egress rules from being created.

Mistake: No proof of blocking in operation.
Fix: Retain deny logs, SIEM alerts, and test results that demonstrate blocked traffic attempts.

Risk implications (why assessors care)

Failure to block unauthorized inbound traffic increases exposure to scanning, exploitation, and unauthorized access. Failure to block unauthorized outbound traffic increases impact once a foothold exists: data exfiltration, command-and-control, unauthorized third-party communications, and hidden dependencies that break incident containment. For regulated environments, weak egress control also undermines your ability to make accurate scoping statements about where federal data can travel.

Practical execution plan (phased)

Immediate phase

  • Name the SC-15(2) control owner and operators.
  • Inventory enforcement points and produce a boundary diagram.
  • Pull current inbound and outbound rule sets (firewalls, security groups, proxies, DNS policies).
  • Identify the riskiest allowances (public admin access, unrestricted outbound from sensitive segments) and open remediation tickets.

Near-term phase

  • Build the Authorized Communications Matrix and require it for all new connections.
  • Implement controlled change workflow for network rules (tickets, approvals, peer review).
  • Stand up centralized logging for firewall/proxy/DNS denies and key allows.
  • Define exception handling with review triggers and closure criteria.

Ongoing phase

  • Perform recurring rule reviews against the communications matrix.
  • Run periodic synthetic tests from representative segments to confirm blocking.
  • Monitor for drift and unauthorized rule changes.
  • Update the matrix and rules when third-party integrations, cloud services, or architectures change.

Frequently Asked Questions

Do we need “default deny” everywhere to satisfy SC-15(2)?

You need enforced blocking of unauthorized traffic, and default-deny is the cleanest way to prove it. If you can’t do it universally, document where you can’t, define compensating controls, and show a plan to reduce broad allowances.

What counts as “outbound communications traffic” in practice?

Any system-initiated connection leaving the boundary: web traffic, API calls, DNS, NTP, SMTP, database replication, and partner tunnels. Auditors will expect you to control destinations, ports/protocols, and the path (proxy/private link vs direct internet).

How do we handle cloud services with dynamic IPs (SaaS endpoints)?

Prefer controls that work with identities and names (proxy categories, FQDN-based rules where supported, private endpoints) plus documented vendor endpoint references in your communications matrix. Avoid uncontrolled “allow any outbound” as the default stance.

Are security groups enough, or do we need a dedicated firewall?

Security groups can satisfy parts of the requirement if they enforce inbound and outbound restrictions and you can evidence governance, monitoring, and reviews. Many teams still add centralized egress controls for consistency and better logging.

What evidence is most persuasive to an assessor?

A traceable chain: communications matrix entry → approved change ticket/IaC PR → implemented rule → logs showing allowed and denied behavior → periodic review records. That chain shows the control works and stays in place.

How should third-party connections be governed under SC-15(2)?

Treat each third-party integration as an explicit allow entry with an owner, purpose, direction, and technical constraints. Require periodic revalidation that the third party endpoints and data flows still match the approved design.

Footnotes

  1. NIST SP 800-53 Rev. 5 OSCAL JSON

  2. NIST SP 800-53 Rev. 5

Frequently Asked Questions

Do we need “default deny” everywhere to satisfy SC-15(2)?

You need enforced blocking of unauthorized traffic, and default-deny is the cleanest way to prove it. If you can’t do it universally, document where you can’t, define compensating controls, and show a plan to reduce broad allowances.

What counts as “outbound communications traffic” in practice?

Any system-initiated connection leaving the boundary: web traffic, API calls, DNS, NTP, SMTP, database replication, and partner tunnels. Auditors will expect you to control destinations, ports/protocols, and the path (proxy/private link vs direct internet).

How do we handle cloud services with dynamic IPs (SaaS endpoints)?

Prefer controls that work with identities and names (proxy categories, FQDN-based rules where supported, private endpoints) plus documented vendor endpoint references in your communications matrix. Avoid uncontrolled “allow any outbound” as the default stance.

Are security groups enough, or do we need a dedicated firewall?

Security groups can satisfy parts of the requirement if they enforce inbound and outbound restrictions and you can evidence governance, monitoring, and reviews. Many teams still add centralized egress controls for consistency and better logging.

What evidence is most persuasive to an assessor?

A traceable chain: communications matrix entry → approved change ticket/IaC PR → implemented rule → logs showing allowed and denied behavior → periodic review records. That chain shows the control works and stays in place.

How should third-party connections be governed under SC-15(2)?

Treat each third-party integration as an explicit allow entry with an owner, purpose, direction, and technical constraints. Require periodic revalidation that the third party endpoints and data flows still match the approved design.

Operationalize this requirement

Map requirement text to controls, owners, evidence, and review workflows inside Daydream.

See Daydream