Fast, Ever-Evolving Defenders: The Resilience Revolution
This talk presents a framework for improving organizational security resilience by adopting principles from software engineering, such as infrastructure-as-code and automated testing. It demonstrates how to shift from reactive, manual security processes to proactive, automated systems that reduce the impact of inevitable failures. The speaker highlights the use of configuration-as-code, automated CI/CD pipelines, and sandboxing to minimize misconfigurations and improve incident response times. A practical demonstration shows how to automate firewall blocklist updates using GitHub Actions and Terraform to reduce manual toil.
Automating Security Resilience: Moving Beyond Manual Checklists
TLDR: Security teams often rely on manual, error-prone checklists that fail to keep pace with modern deployment speeds. By treating security configurations as code and integrating them into CI/CD pipelines, you can automate enforcement and reduce the window of opportunity for attackers. This approach, demonstrated through automated firewall blocklist management, shifts security from a reactive bottleneck to a proactive, resilient system.
Security teams are losing the race against attackers because we are still operating in a world of manual gates and static checklists. While developers have moved to rapid, automated deployment cycles, security often remains a manual, human-dependent process. This disconnect creates a massive gap where misconfigurations, outdated dependencies, and human error thrive. If your security posture relies on a human remembering to update a firewall rule or check a dependency version, you have already lost.
The Myth of the "One-Time" Win
We often hear the phrase that attackers only need to get it right once to win. That is a dangerous oversimplification. In reality, an attacker needs to get it right once for initial access, but they must maintain that access and navigate your environment without triggering alerts. Every move they make—lateral movement, credential dumping, or data staging—is an opportunity for them to get it wrong and get caught.
The goal of a resilient defense is to increase the cost and complexity of every single step an attacker takes after they breach the perimeter. If you can automate the detection and remediation of their actions, you turn the asymmetry of the battlefield in your favor.
Infrastructure as Code as a Security Control
The most effective way to bridge the gap between security and development is to stop treating security as a separate, manual layer. Instead, integrate it directly into the infrastructure lifecycle. When you define your security policies as code, you gain the ability to version, audit, and automatically deploy them alongside your application code.
Consider the manual process of updating a firewall blocklist. It is tedious, prone to typos, and rarely done as frequently as it should be. By using Terraform to manage your infrastructure and GitHub Actions to automate the updates, you remove the human element entirely.
In a practical implementation, you can create a workflow that pulls the latest threat intelligence, updates your blocklist file, and triggers a pull request. This pull request acts as a natural gate for peer review, ensuring that security changes are visible and vetted before they hit production.
# Example GitHub Action workflow snippet for automated blocklist updates
name: Update IP Banlist
on:
schedule:
- cron: '30 8 * * *'
jobs:
update:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Download New Banlist
run: curl -o banlist.txt https://www.binarydefense.com/banlist.txt
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
with:
commit-message: "Update IP Banlist"
title: "Update IP Banlist"
This approach transforms security from a "no" department into a platform that enables developers to move fast without sacrificing safety.
Sandboxing and Isolation
Beyond configuration, we need to address the inherent risks in the software we run. C-based libraries are notorious for memory corruption vulnerabilities, which fall under OWASP A06:2021 – Vulnerable and Outdated Components. Instead of hoping your code is bug-free, use isolation to contain the blast radius.
RLBox is a prime example of this. It allows developers to sandbox individual libraries within a WebAssembly environment. If a library like libjpeg or libvpx is compromised, the attacker is trapped within the sandbox, unable to access the rest of the application's memory. This is a design-based defense that assumes failure is inevitable and builds the system to survive it.
Challenging Your Assumptions
Attackers spend their time looking for your "this will always be true" assumptions. They look for the hidden dependencies, the misconfigured ports, or the services that you assume are only accessible internally. To counter this, you need to adopt a systems-thinking mindset.
Use Deciduous or similar decision-tree tools to map out your attack surfaces. By collaboratively building these trees, you force your team to articulate exactly what they assume is secure. Often, you will find that your assumptions are based on outdated architecture or incomplete visibility.
Once you have your map, perform resilience stress testing—often called chaos engineering. If you assume your firewall will block a specific port, prove it. Deploy a test pod that attempts to communicate over that port and verify that your security controls actually trigger an alert. If they don't, you have found a gap in your defenses before an attacker does.
The Path Forward
The industry is currently obsessed with AI-driven security, but we are ignoring the foundational work of building resilient systems. You do not need a magic algorithm to stop most attacks; you need consistent, automated, and observable infrastructure.
Start by identifying the most manual, high-toil security tasks in your environment. Can you turn them into code? Can you automate the testing of those controls? If you can move from manual checklists to automated, versioned, and tested security policies, you will be miles ahead of the average organization. Stop trying to build a perfect wall and start building a system that can heal itself when the wall is breached. The goal is not to be impenetrable; it is to be un-exploitable at scale.
Vulnerability Classes
Target Technologies
Attack Techniques
All Tags
Up Next From This Conference

Chained to Hit: Discovering New Vectors to Gain Remote and Root Access in SAP Enterprise Software

Zero-Touch-Pwn: Abusing Zoom's Zero Touch Provisioning for Remote Attacks on Desk Phones

ODDFuzz: Hunting Java Deserialization Gadget Chains via Structure-Aware Directed Greybox Fuzzing
Similar Talks

Firewalls Under Fire: China's Ongoing Campaign to Compromise Network Protection Devices

Social Engineering A.I. and Subverting H.I.

