• Interested in Security, DevOps and Cloud • Speaker & Trainer : Defcon, All Day DevOps, DevSecCon, c0c0n, null, etc. • Discovered security vulnerabilities in Google, Microsoft, Yahoo, Adobe, etc. • Never ending learner • Follow me (or) Tweet to me @madhuakula
between Developers, Operations and Security • Applying security into each phase of DevOps lifecycle • Practice of developing and deploying safer software sooner • Building secure defaults and following best practices • Proactive monitoring & defence • Performing redteam activities, before real attacks happen • Learning & sharing with community
for this term. I personally follow CAMS by Damon Edwards and John Willis ‘Implementing a culture of sharing between Development and Operations’ • Culture • Automation • Measurement • Sharing
DevSecOps is to build on the mindset that “everyone is responsible for security” with the goal of safely distributing security decisions at speed and scale to those who hold the highest level of context without sacrificing the safety required.” Source: http://www.devsecops.org/blog/2015/2/15/what-is-devsecops
that consider security from the start assess their options and make reasonable choices based on the nature of their business and the sensitivity of the information involved. Threats to data may transform over time, but the fundamentals of sound security remain constant.” - Federal Trade Commision Source: https://www.ftc.gov/system/files/documents/plain-language/pdf0205-startwithsecurity.pdf
development is planning • Involve all parties (Dev, Sec, Ops) from the beginning, it will enable everyone to understand and speed up things without compromising quality & security • Build things with the mindset of secure defaults with built-in security
◦ Developers need to think about secure coding best practices, using secure libraries and keeping up to date with latest vulnerabilities. ◦ Operations teams need to be aware of technology specific security configurations, best practices and hardening guidelines. ◦ Security teams have to understand the workflow, create suitable standards and apply them throughout the lifecycle
moving traditional operations to modern DevOps shops • Managing things will be super-easy and efficient • This way everything can be audited, tracked and can be rolled back if required Version control
be version controlled include ◦ Documentation, knowledge bases, etc ◦ Developers’ code ◦ Op’s configurations and playbooks ◦ Custom scripts and snippets ◦ Many more... Version control
operations more efficient and remove human errors • By doing this, we can achieve ◦ Version controlled and codified versions of secure infrastructure ◦ We can perform continuous integration with the deployment process ◦ We can improve the inventory by building Configuration Management DataBases (CMDB) Infrastructure as code
Identifying the all manual repetitive tasks and structuring them for automation ◦ With tools like Ansible, Chef, Terraform, etc. • We can validate our infrastructure as code against security & compliance • We can create security playbooks for hardening & patching Infrastructure as code
which requires quick verification to process next steps using automated build processes • In this phase you include your test cases and security checks, performing them before going to production • It allows us to integrate existing tool sets using web hooks and plugins into the build process Continuous everything
code and configurations remains the same by using automated test cases and validation checks • This requires defining the steps each team needs to perform to speed up the delivery process without compromising security Continuous everything
are made live; aka production • Using a standard baseline-OS and containers, which reduces the level of security risk • Hardening configuration and environments with best practice and against known vulnerabilities (Using your security playbooks) Secure deployments
key part while deploying to production, use secure communication channels and storage like Vault • Verify deployments by running security scans against them for misconfigurations • Also using modern tool-set like Moby project, LinuxKit, etc. for docker containers Secure deployments
to troubleshoot things, monitoring is the place to start • Monitoring needs to apply to every phase of the DevOps lifecycle • Health checks of applications & infrastructure to know how things are going • Security monitoring of applications, servers, network devices Proactive monitoring & alerting
anomalies • Fine-tuning and improving the alerting system gives more control • Automating actions against known repetitive alerts can be efficient, but take care Proactive monitoring & alerting
it ◦ And run tests continuously • Drive testing from the DevOps pipeline • Never deploy sub-standard code • Requires tests to be passed in order to deploy into production • Empower DevOps teams to fix issues • Apply feedback loops Test driven security Source: https://docs.google.com/presentation/d/1H0Ym0bJ4TgVz7BRkoeun7ndGuTIteVyFGDDxguXmff0
monitoring in place, which includes building centralised logging and monitoring systems • Build your defences from an offensive mindset and start by focusing on your critical infrastructure • Enable DevOps teams to better understand and identify what security attacks look like by red teaming (we can also use this log data to train defence systems) Attack driven defence Source: https://www.slideshare.net/zanelackey/attackdriven-defense
and take action against them using automated defence • Apply data science and machine learning techniques for data sets • Build defence systems with real attack data and defend like an attacker Attack driven defence Source: https://www.slideshare.net/zanelackey/attackdriven-defense
more productive • Collaboration between teams makes things faster. It should start from outset! • Break requirements into actionable items and assign them to respective teams • Eliminate the barriers between Devs, Ops and Security teams and work towards a DevSecOps approach (everyone is responsible for security) Communication & collaboration
for collaboration, this will help showcase dependencies between teams • Spread awareness of different roles and skills by conducting social events; learning by lunch, etc. Communication & collaboration
how attackers work, by using vulnerable labs and applications, will give them a better understanding OWASP Vulnerable Web Applications Directory Project
the best way to do this is sharing with others ◦ For example, security teams can write a playbook to harden infrastructure to meet the policies and standards rather pointing out that it’s an ops issue • Rather than working as a big teams, we can mix the different teams into smaller groups and work together to achieve great results Culture & innovation
a win-win • When things go wrong transparency and open contributions is vital • Attending conferences and meetups and being part of the community helps us to know how the world is doing things differently to us Culture & innovation
is less cost and damage for the business • Maintain secure backups and validate the restore process • Test for resiliency and recoverability using tools like chaos monkey and security monkey • Conduct internal hackathons and bug bounty programs • Perform redteam activities, simulate how real attacks happen Think about failures, before they occur
(Dev + Sec + Ops) • Clear communication, active collaboration is key to success • Build with secure defaults mindset • Test driven development & Attack driven defence • Hack your applications, infra, etc. like real attackers • Keep learning and sharing