Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Application Security Workflow Automation using Docker and Kubernetes

Abhisek Datta
September 02, 2019

Application Security Workflow Automation using Docker and Kubernetes

Application security workflow automation using Docker and Kubernetes

Abhisek Datta

September 02, 2019

More Decks by Abhisek Datta

Other Decks in Technology


  1. About Me – Abhisek Datta • Head of Technology (appsecco.com)

    • A boutique security consulting company • TechWing @ null0x00 (null.co.in) • An Open Security Community • Security Researcher • Discovered vulnerabilities in MS Office, Internet Explorer, HP SiteScope etc. • Open Source Contributor • Wireplay, RbWinDBG etc. github.com/abhisek
  2. 1. How does an Application Security Workflow look like (Our

    opinion) 2. How to get started in automating Application Security Workflow using KubeSecO 3. Our approach of security automation using Kubernetes native technologies Key Take Away
  3. Setup Kubernetes Deploy apps and services Run Workflow Getting Started

    with KubeSecO https://github.com/appsecco/kubeseco
  4. $ git clone https://github.com/appsecco/kubeseco $ cd kubeseco $ ./cluster_create_gcp.sh #

    Optional $ ./setup.sh # Need kubectl & helm KubeSecO: Setup and Get Started
  5. An Example AppSec Workflow Domain Hosts Subdomain Enumeration CIDR ASN

    Search DNS SPF, MX etc. Port and Service Scanning URLs Technologies Cloud Infrastructure Emails Public Breach DB Query Password Spraying Application Security Scan
  6. Data Collection Analysis Inference Further Actions How does it look

    like from Automation Perspective? Security Tools Human + Learning Systems Human + Learning Systems Feedback Loop
  7. Driving the System – Events FTW! API Service HTTP POST

    NATS Write to NATS Message Queue Scanners (Client) Minio Object Storage Persist Output Output Analysis and Feedback Alerting and Notification Tool Output Event
  8. • 3rd Party Tools are not in our control •

    We need to be able to • Receive input from NATS • Run tool with tool specific command line • Receive output or check for error • Persist output to Minio The Tool Adapter (Pattern)
  9. 1. Package 3rd party tools as Docker containers 2. Add

    Tool Adapter binary and set as entrypoint 3. Write Kubernetes deployment spec (YAML) 4. Deploy to Kubernetes 5. Write YAML rules for Feedback Processing Adding a Security Tool (3rd Party)
  10. • State management is difficult due to asynchronous nature of

    the system • NATS connection issue with preemptible nodes on GKE • Capacity planning and analysis • Cost analysis Challenges, Constraints and Things to do
  11. How to Contribute 1. Clone the repository from Github 2.

    Try out and report bugs 3. Add new security tools 4. Add feedback processor rules 5. Submit PR