Centralizing Egress Access Controls Across a Hybrid Environment
This talk demonstrates a centralized architecture for managing and enforcing network egress access controls across hybrid cloud and on-premises environments. It addresses the complexity of managing disparate egress points by implementing a unified management system that maps applications to specific external domains using SPIFFE IDs. The solution leverages automated policy deployment and validation to ensure that only authorized traffic is permitted, thereby reducing data exfiltration risks and improving regulatory compliance.
Stop Chasing Egress Logs: Centralizing Network Access Controls in Hybrid Environments
TLDR: Managing egress traffic across hybrid cloud and on-premises environments is a nightmare that often leads to blind spots and data exfiltration. By mapping applications to specific external domains using SPIFFE identities, security teams can move away from static firewall rules to a dynamic, identity-aware egress control model. This approach forces developers to declare their intent, allowing for automated validation and real-time enforcement of network policies.
Network egress control is the most neglected pillar of a mature security program. Most organizations treat egress as an afterthought, relying on broad, permissive firewall rules that essentially act as a "permit any" policy for outbound traffic. When a compromise occurs, the first thing an attacker does is establish a command-and-control (C2) channel or exfiltrate data. If your environment allows an arbitrary workload to reach out to any destination on the internet, you have already lost the battle.
The complexity of modern infrastructure—spanning AWS, GCP, and legacy on-premises data centers—makes manual egress management impossible. You end up with fragmented visibility, where logs are scattered across VPC flow logs, proxy servers, and Kubernetes telemetry. When a security review asks, "Which applications are talking to this specific API endpoint?", the answer usually involves hours of log parsing and correlation.
The Identity-Based Egress Model
Instead of managing egress by IP address or CIDR block, which is brittle and prone to drift, the solution is to shift to an identity-based model. By leveraging SPIFFE (Secure Production Identity Framework for Everyone), you can assign a unique, verifiable identity to every workload. This identity carries rich context: the application name, the business unit, the environment, and the region.
When an application needs to talk to an external service, it should not just be a matter of opening a port. It should be a formal request. The architecture demonstrated at BSides 2025 replaces the manual ticket-based workflow with a centralized management system. This system acts as the single source of truth for all egress permissions.
How the Workflow Functions
The process begins with a request initiation. A developer or application owner uses a centralized UI to request access to a specific external domain. Crucially, this request is not just a destination; it includes the application's identity, the required protocol, and the intended port.
Once the request is submitted, the system performs an automated validation. It checks the request against the "Software List," a catalog of approved partners and vendors. If the domain is not in the catalog, or if the requested data type exceeds the security classification of the application, the request is flagged for manual review by the network security team.
If the request is approved, the system performs a translation. It converts the high-level intent into specific, low-level rules for the enforcement points. These enforcement points could be Istio egress gateways in a Kubernetes cluster, DNS filtering policies, or traditional firewall rules. The key is that the translation is automated. The developer never touches a firewall configuration file.
Technical Implementation and Enforcement
The magic happens in the translation layer. You build lightweight modules that understand the target enforcement technology. For a Kubernetes environment, the module might generate an ServiceEntry or VirtualService resource for Istio. For a legacy firewall, it might push an API call to update an object group.
# Example of a high-level intent mapped to an Istio ServiceEntry
apiVersion: networking.istio.io/v1alpha3
kind: ServiceEntry
metadata:
name: chatgpt-egress
spec:
hosts:
- chatgpt.com
ports:
- number: 443
name: https
protocol: HTTPS
resolution: DNS
location: MESH_EXTERNAL
This approach effectively mitigates T1048 (Exfiltration Over Alternative Protocol) and T1071 (Application Layer Protocol) by ensuring that only authorized traffic can leave the network. If an attacker gains code execution on a workload, they are restricted by the egress policy enforced at the mesh or network level. They cannot simply curl an arbitrary C2 server because the identity of the compromised workload is not authorized to reach that destination.
Why This Matters for Pentesters
During a red team engagement or a penetration test, you are constantly looking for ways to exfiltrate data or reach out to your infrastructure. In a traditional environment, you look for misconfigured firewalls or open egress paths. In an environment using this identity-aware model, your options are severely limited. You are forced to live off the land, using only the pre-approved egress paths.
If you find yourself in an environment with this level of control, your focus should shift to identifying applications that have overly permissive egress policies. Look for applications that have access to broad domains (e.g., *.amazonaws.com) rather than specific, pinned endpoints. This is a common A01:2021-Broken Access Control issue where the policy is too broad for the application's actual needs.
Defensive Takeaway
For the blue team, the goal is to eliminate the "permit any" culture. Start by auditing your egress traffic to identify the top 10 most accessed external domains. Once you have that baseline, begin pinning those domains to specific application identities. You do not need to boil the ocean; start with your most sensitive workloads, such as those handling PII or payment data.
Moving to a centralized, identity-aware egress model is not just about security; it is about operational sanity. It removes the ambiguity of "who is allowed to talk to what" and provides a clear, auditable trail for every outbound connection. Stop relying on static rules that were written three years ago and start treating egress as a dynamic, policy-driven component of your infrastructure.
Vulnerability Classes
Target Technologies
OWASP Categories
Up Next From This Conference
Similar Talks

Kill List: Hacking an Assassination Site on the Dark Web

Unmasking the Snitch Puck: The Creepy IoT Surveillance Tech in the School Bathroom




