SlideShare une entreprise Scribd logo
1  sur  59
Télécharger pour lire hors ligne
Security DevOps
staying secure in agile projects
Christian Schneider
@cschneider4711
`whoami`
» Software Developer, Whitehat Hacker & Trainer
» Freelancer since 1997
» Focus on JavaEE & Web Security
» Speaker at Conferences
» @cschneider4711
www.

mail@
Christian-Schneider.net
Why Security DevOps?
» Keep up with rollout pace in agile projects
» Automate certain checks as best as possible
within the build-chain
» Early feedback to Devs
» Does not remove the pentest requirement!
» Aims to free pentesters’ time to hunt more
high-hanging bugs
Different levels of "Security
DevOps" integration…
» Security DevOps Maturity Model (SDOMM)
» Can be seen as some automation tips
within OpenSAMM’s security practices
» Verification: Security Testing
» Verification: Code Reviews
» Allows to define a RoadMap for projects
implementing Security DevOps
four axes each with four
belts as incremental steps
implicit master
… what levels will we cover?
Four different axes
4 3 2 1 1 2 3 4
4
3
2
1
1
2
3
4
Dynamic Depth
Intensity
Static DepthConsolidation
Four different axes
4 3 2 1 1 2 3 4
4
3
2
1
1
2
3
4
Dynamic Depth
Intensity
Static DepthConsolidation
This talk covers two of them
4 3 2 1 1 2 3 4
4
3
2
1
1
2
3
4
Dynamic Depth
Intensity
Static DepthConsolidation
Let’s explore these axes …
» … by showing how to implement this with
OpenSource solutions used in the 

Security & Development domains.
Axis of "Dynamic Depth"
How deep are dynamic scans executed
within a Security DevOps CI chain?

i.e. "where" are dynamic 

security tests applied?
Axis "Dynamic Depth": Level 1
Scanning of public attack surface (pre-auth):
• Spidering of UI layer
• No requirement to authenticate scanner with target
• Easy integration of scanner(s) in nightly build as post-step
• "Throw tool at it (in CI-chain) and see what it generates…"
ZAP in SecDevOps?
"OWASP ZAP" features relevant for Security DevOps integration:
• Passive & active scanning
• Headless operation mode / daemon
• REST-API (with several language bindings as pre-built clients)
• Scriptable
• CLI
ZAP + Jenkins = SecDevOps?
"OWASP ZAP" (spider & scanner) + Jenkins plugin "ZAProxy"
• Allows us to "Spider & Scan" as step in build job via Jenkins plugin
• Point plugin config to URL of integration system to test
• Plugin saves HTML-report in project’s job for inspection
• Best as separate Jenkins job to run during nightly build (duration)
• Use different ZAP proxy ports for different builds to allow

parallel execution of different project build jobs
Jenkins Plugin "ZAProxy": ZAP Startup
Jenkins Plugin "ZAProxy": ZAP Scan
Arachni in SecDevOps?
"Arachni Scanner" features relevant for Security DevOps integration:
• Passive & active scanning (Proxy / Spider)
• Uses internally a headless browser-cluster (for apps with lots of JS)
• Automation?
• CLI + RPC API
• Web-UI (helpful when permanently running as server)
Arachni + Jenkins = SecDevOps?
"Arachni Scanner" + Jenkins CLI step in build
• Start in build job as CLI step and point to URL of system under test
• Generate HTML report and place into workspace for inspection
• Better execute within nightly build job (due to duration)
BDD-Security in SecDevOps?
BDD-based framework for functional and technical security tests:
• Technical security tests (i.e. check against XSS, SQL-Injection, XXE, etc.)
• uses ZAP as scanning engine (among others)
• Functional security tests (i.e. check UserA can’t access data from UserB)
• Tightly integrates with Selenium based app navigation workflows
• Uses JBehave for G/W/T stories & reporting
• Can run within CI (Jenkins, etc.) due to JBehave or as JUnit tests
BDD-Security Story: Scan for XSS
Gauntlt in SecDevOps?
BDD-based framework for executing many security tools/scanners:
• Integrates scanners like Arachni, ZAP, sqlmap, etc.
• Easy to integrate "your custom scanner tool" with Gauntlt as well
• Allows to call different scan polices via BDD-stories (G/W/T)
• Integration with Jenkins (or other build servers) by either
• Linking Gauntlt’s HTML report to build, or by
• modifying how Gauntlt calls Cucumber to produce JUnit output
Axis "Dynamic Depth": Level 2
Scanning of authenticated parts (= "post-auth") via UI layer
• Properly maintaining sessions
• Logout-detection & automatic re-login
• Different users / roles
• Spider & scan post-auth

Handling of hardening measures of application under test
• CSRF-Tokens, etc.
Guide ZAP into Post-Auth in CI
Use ZAP manually (1x) to configure "Context":Auth, RegExps for Logged-In/
Out Indicators, Users etc. + save as "ZAP Session-File" (could be in code repo)
• use that "Session-File" from code repo as starting point of scan 

(loaded as ZAP session during build job). 

Note: Current version of ZAP has a bugfix pending for loading creds from session file
One can set these auth values and/or additional data via ZAP’s REST-API 

during each build before scan starts (from Jenkins/Maven/…)
• use that to define current active session etc. during scan
Also Scripts in JavaScript or Zest can be registered in ZAP context 

to programmatically give authentication to ZAP
Login config example within ZAP
ZAProxy Jenkins Plugin: ZAP session use
Guide Arachni into Post-Auth
Give authentication infos to Arachni (Auth, Logged-In Indicators, Users)
• Use Arachni "autologin" plugin to specify via command line
• Login URL, formfield names, credentials, logged-in indicator, excludes
• Alternatively write custom ruby script for "login_script" plugin
• Individual custom login logic possible
• Logged-In indicators (RegExp) to know when to re-login


Login config example within Arachni (used in CI)
./arachni 

--plugin=autologin:

url=https://example.com/login.action,

parameters='j_username=foo&j_password=bar',

check='Logout' 

--scope-exclude-pattern=logout.action 

https://example.com/
Or individual ruby script if more custom login logic required…
Eventually also --session-check-url & --session-check-pattern
Guide BDD-Security into Post-Auth
Use Selenium to navigate through the login process
• Based on excellent integration of BDD-Security with Selenium
• Separate app navigation code (Selenium) from Security testing code
• Use Selenium class (that handles login) within BDD stories
• Perform further spidering & active scanning (through ZAP) post-auth
public class ShopApplicationScanHelper
extends WebApplication implements ILogin {
// ... integrates with BDD-Security via parent class & interface ...
}
public class ShopApplicationScanHelper
extends WebApplication implements ILogin {
@Override
public void openLoginPage() {
}
@Override
public void login(Credentials credentials) {
}
@Override
public boolean isLoggedIn(String role) {
}
public class ShopApplicationScanHelper
extends WebApplication implements ILogin {
@Override
public void openLoginPage() {
driver.get(Config.getInstance().getBaseUrl() + "customer/login");
verifyTextPresent("Login");
}
@Override
public void login(Credentials credentials) {
UserPassCredentials creds = new UserPassCredentials(credentials);
driver.findElement(By.id("username")).clear();
driver.findElement(By.id("username")).sendKeys(creds.getUsername());
driver.findElement(By.id("password")).clear();
driver.findElement(By.id("password")).sendKeys(creds.getPassword());
driver.findElement(By.name("_action_login")).click();
}
@Override
public boolean isLoggedIn(String role) {
if (driver.getPageSource().contains("My Account")) {
return true;
} else {
return false;
}
Axis "Dynamic Depth": Level 3
Separate scanning of different application layers / backends
• Scan internal WebServices (e.g. SOAP / REST) = directly scan backends
• Detect and scan parameter positions within XML, JSON, …
• Scan from "within" the different application’s layers
• IAST with distributed agents & instrumentation aims into that direction
• At least one simple step in that direction:
• Use the proxy also between your backend service calls
Backend scans with ZAP
How to achieve this with ZAP?
• ZAP operates as proxy server: place it between backend calls
• ZAP can inject payloads in observed XML tags/attributes & JSON fields
• Capture service call traffic in integration test during CI while either
A. executing service tests that directly access the service endpoint, or
B. frontend UI tests execute service backend calls indirectly
• Automatically scan as new requests are seen: "ATTACK Mode"
Also keep an eye on an alpha-level SOAP-Scanner ZAP addon
Backend scans with Arachni
How to achieve this with Arachni?
• Arachni can also operate as proxy: place it between backend calls
• Use passive proxy plugin to "train" Arachni of the XML / JSON
requests
• New addition in v1.1 to extract XML / JSON input vectors from it
• Use that collected input vector data to feed the active scan for 

the observed requests
Axis "Dynamic Depth": Level 4
Targeted scanning of individual forms / wizards (UI) and service layers
• More individualised workflow coverage (not just simple spidering)
• Business-logic compliant usage patterns & inputs
• "fill shopping cart followed by checkout process"
• "access backendWebServices in special order to test workflow", etc.
• Custom coded security tests tailored to the application
ZAP with special workflows (1/3)
Many ways exist…
The simplest one could be: 

Re-use existing UI tests (Selenium, …)
• Proxy this traffic through ZAP in "ATTACK-Mode"

(in security test phase of build)
• Optionally use ZAP Attack-Policies to 

specify/limit certain attack types
ZAP with special workflows (2/3)
A more customised handling of individual workflows can be achieved:
Re-use & enhance existing "UI test code" at the desired

workflow steps with calls to ZAP’s (REST)-API ordering attacks
• Basically it’s like Unit-Test code that uses Selenium along with 

with ZAP-Calls at the proper positions in application workflow
• Type of "ordered attacks" can again be defined via policies
• Start ZAP as Daemon from Jenkins via plugin
public class ShopApplicationTest { // = regular JUnit unit test
@Before

public void setup() {
}
@Test

public void testShippingAddressStep() {


}
@Test

public void testBillingAddressStep() {
}
}
public class ShopApplicationTest { // = regular JUnit unit test
@Before

public void setup() {
// 1. start new proxy session in running ZAP (via REST-API call)
// 2. create Selenium driver (proxying through running ZAP)
}
@Test

public void testShippingAddressStep() {


}
@Test

public void testBillingAddressStep() {
}
}
public class ShopApplicationTest { // = regular JUnit unit test
@Before

public void setup() {
// 1. start new proxy session in running ZAP (via REST-API call)
// 2. create Selenium driver (proxying through running ZAP)
}
@Test

public void testShippingAddressStep() {
// 1. use Selenium to fill shopping cart
// 2. use Selenium to proceed to checkout
// 3. use Selenium to provide reasonable shipping address data


}
@Test

public void testBillingAddressStep() {
}
}
public class ShopApplicationTest { // = regular JUnit unit test
@Before

public void setup() {
// 1. start new proxy session in running ZAP (via REST-API call)
// 2. create Selenium driver (proxying through running ZAP)
}
@Test

public void testShippingAddressStep() {
// 1. use Selenium to fill shopping cart
// 2. use Selenium to proceed to checkout
// 3. use Selenium to provide reasonable shipping address data
// 4. set attack policy (types & strength) in running ZAP (API)
/* 5. call ZAP (API) to actively scan the last seen URL
(optionally define parameter excludes via API 

or ZAP "input vector scripts" if custom input format) */
}
@Test

public void testBillingAddressStep() {
}
}
See https://github.com/continuumsecurity/zap-webdriver 

for a great working example of Selenium ZAP integration
public class ShopApplicationTest { // = regular JUnit unit test
@Before

public void setup() {
// 1. start new proxy session in running ZAP (via REST-API call)
// 2. create Selenium driver (proxying through running ZAP)
}
@Test

public void testShippingAddressStep() {
// 1. use Selenium to fill shopping cart
// 2. use Selenium to proceed to checkout
// 3. use Selenium to provide reasonable shipping address data
// 4. set attack policy (types & strength) in running ZAP (API)
/* 5. call ZAP (API) to actively scan the last seen URL
(optionally define parameter excludes via API 

or ZAP "input vector scripts" if custom input format) */
}
@Test

public void testBillingAddressStep() {
// same idea as above ... just continue with the pattern
}
}
ZAP with special workflows (3/3)
Alternatively "train" ZAP about the workflow by recording Zest scripts
• Keep an eye on "Sequence Scanning" alpha-level ZAP addon
• Still alpha-level (as of May 2015), but interesting approach
Use Selenium to further drive BDD-Security initiated checks:
• Selenium-based test code navigates application workflows
• This code is integrated with BDD (via Java interfaces), so that:
• BDD-Security stories can use that code to navigate 

and generate traffic
• This generated traffic will be scanned by ZAP via BDD
BDD with special workflows
If no Selenium test code exists?
Simply give developer teams access to ZAP to (at least) pre-seed the scanner:
• Developer teams use browser to navigate app workflows while proxying
• Thereby seed the ZAP session(s) with navigation nodes/workflows
• Save the ZAP session(s) and check-in into SCM (Git, SVN, …)
• Point the Jenkins ZAP plugin to the saved ZAP session(s) as starting point
• Devs can add to this list of URLs for ZAP with each new UI
BTW: ZAP is also available as Docker image…
Axis of "Static Depth"
How deep is static code analysis performed 

within a Security DevOps CI chain?

i.e. "where" are static 

security tests applied?
Axis of "Intensity"
How intense are the majority of the executed attacks
within a Security DevOps CI chain?

i.e. "what" is being 

checked for?
Axis of "Consolidation"
How complete is the process of handling findings
within a Security DevOps CI chain?

i.e. "how" are the 

results used?
Axis "Consolidation": Level 1
Generate human-readable (HTML) reports from tools and link them in Jenkins
• All relevant mentioned static and dynamic scanners generate HTML reports
• Collect and publish them in Jenkins build: via Jenkins "HTML Publisher Plugin"
Use simple criteria to "break the build" on heavy findings (ok, at least "unstable")
• Dependency-Check, BDD-Security (with the JBehave-stories), FindSecurityBugs
(via Sonar when rated as blocker), Arachni (via Gauntlt execution with BDD-
like stories), etc. all have capabilities to automatically flag the build
• For others: at least do a simple log parse from Jenkins 

"Log Parser Plugin" to flag the build as unstable and/or broken
Jenkins "HTML Publisher Plugin":
Configuration of HTML reports to link
Jenkins "HTML
Publisher Plugin":
Result in build
Axis "Consolidation": Level 2
Custom logic to make build unstable and/or broken depending on
• Type of vulnerability (CWE or WASC or …)
• Confidence level (firm vs. tentative)
• Severity ranking (high risk)
Provide useful remediation info to developers
Respect suppression mechanisms to rule out false positives
Flagging builds from reports
How (from within a CI job)?
• Most scanners also emit XML reports that can be parsed
• Often a simple XPath count is just fine
• Alternatively fetch the results by accessing the scanner’s API
• Be sure to only break build with (new?) findings of 

high severity and high confidence !!!
• Less is more (when it comes to automation)… 

Axis "Consolidation": Level 3
Consolidation goals:
• Consolidate & de-duplicate findings from different 

scanner reports (with better false positive handling)
• Push consolidated findings into established bug-tracker 

(known to devs)
• Delta analysis & trends over consolidated data sets
ThreadFix as result consolidator
Use a local ThreadFix server, which imports native scanner outputs
• does the heavy lifting of consolidation & de-duplication
• pushes findings toward bug-tracker and IDE (via plugins)
• process can be customised using it’s own REST-API
• ThreadFix imports findings of ZAP, Arachni, FindBugs, Brakeman, etc.
Axis "Consolidation": Level 4
Measure the concrete code coverage of your security testing
activities
• Find untested "white spots"
• Derive where static checks and code reviews should 

focus more to compensate
Code coverage analysis
Use "OWASP Code Pulse", which instruments your Java app via agent
• collects coverage data during dynamic security testing scans
• generates reports ("code treemaps") of coverage
Code Treemap of dynamic scan coverage
Bildquelle: OWASP Code Pulse
Thank you very much!
Links
OWASP ZAP https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
ZAP Selenium Demo https://github.com/continuumsecurity/zap-webdriver
ZAP Jenkins Plugin https://wiki.jenkins-ci.org/display/JENKINS/ZAProxy+Plugin
BDD-Security http://www.continuumsecurity.net/bdd-intro.html
Arachni http://www.arachni-scanner.com
OWASP Dependency Check https://www.owasp.org/index.php/OWASP_Dependency_Check
OWASP Dependency Track https://www.owasp.org/index.php/OWASP_Dependency_Track_Project
FindSecurityBugs http://h3xstream.github.io/find-sec-bugs/
FindSecurityBugs-Cloud https://code.google.com/p/findbugs/wiki/FindBugsCloudTutorial
retire.js http://bekk.github.io/retire.js/
ScanJS https://github.com/mozilla/scanjs
Jenkins Log Parser Plugin https://wiki.jenkins-ci.org/display/JENKINS/Log+Parser+Plugin
ThreadFix http://www.threadfix.org
OWASP Code Pulse https://www.owasp.org/index.php/OWASP_Code_Pulse_Project
Seccubus https://www.seccubus.com
vulndb https://github.com/vulndb/data
fuzzdb https://code.google.com/p/fuzzdb/

radamsa https://code.google.com/p/ouspg/wiki/Radamsa

Interested in more web security stuff?
Visit my Blog: www.Christian-Schneider.net
@cschneider4711
Bildquelle: dreamstime.com

Contenu connexe

Tendances

ABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyDerek E. Weeks
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD PipelineJames Wickett
 
SecDevOps - The Operationalisation of Security
SecDevOps -  The Operationalisation of SecuritySecDevOps -  The Operationalisation of Security
SecDevOps - The Operationalisation of SecurityDinis Cruz
 
Implementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in JenkinsImplementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in JenkinsSuman Sourav
 
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatchAmazon Web Services
 
AWS CodeCommit, CodeDeploy & CodePipeline
AWS CodeCommit, CodeDeploy & CodePipelineAWS CodeCommit, CodeDeploy & CodePipeline
AWS CodeCommit, CodeDeploy & CodePipelineJulien SIMON
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesAmazon Web Services
 
DevSecOps Implementation Journey
DevSecOps Implementation JourneyDevSecOps Implementation Journey
DevSecOps Implementation JourneyDevOps Indonesia
 
Getting Started with Amazon Inspector
Getting Started with Amazon InspectorGetting Started with Amazon Inspector
Getting Started with Amazon InspectorAmazon Web Services
 
Introduction to Threat Detection and Remediation on AWS
Introduction to Threat Detection and Remediation on AWSIntroduction to Threat Detection and Remediation on AWS
Introduction to Threat Detection and Remediation on AWSAmazon Web Services
 
DevSecOps : an Introduction
DevSecOps : an IntroductionDevSecOps : an Introduction
DevSecOps : an IntroductionPrashanth B. P.
 
DevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to SecurityDevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to SecurityAlert Logic
 
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...Amazon Web Services
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaMohammed A. Imran
 
Deep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeDeep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeAmazon Web Services
 

Tendances (20)

ABN AMRO DevSecOps Journey
ABN AMRO DevSecOps JourneyABN AMRO DevSecOps Journey
ABN AMRO DevSecOps Journey
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
 
DevSecOps and the CI/CD Pipeline
 DevSecOps and the CI/CD Pipeline DevSecOps and the CI/CD Pipeline
DevSecOps and the CI/CD Pipeline
 
SecDevOps - The Operationalisation of Security
SecDevOps -  The Operationalisation of SecuritySecDevOps -  The Operationalisation of Security
SecDevOps - The Operationalisation of Security
 
Implementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in JenkinsImplementing an Application Security Pipeline in Jenkins
Implementing an Application Security Pipeline in Jenkins
 
Benefits of DevSecOps
Benefits of DevSecOpsBenefits of DevSecOps
Benefits of DevSecOps
 
Introduction to DevSecOps
Introduction to DevSecOpsIntroduction to DevSecOps
Introduction to DevSecOps
 
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
(DVO315) Log, Monitor and Analyze your IT with Amazon CloudWatch
 
AWS CodeCommit, CodeDeploy & CodePipeline
AWS CodeCommit, CodeDeploy & CodePipelineAWS CodeCommit, CodeDeploy & CodePipeline
AWS CodeCommit, CodeDeploy & CodePipeline
 
CI/CD on AWS
CI/CD on AWSCI/CD on AWS
CI/CD on AWS
 
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar SeriesGetting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
Getting Started With Continuous Delivery on AWS - AWS April 2016 Webinar Series
 
DevSecOps Implementation Journey
DevSecOps Implementation JourneyDevSecOps Implementation Journey
DevSecOps Implementation Journey
 
Getting Started with Amazon Inspector
Getting Started with Amazon InspectorGetting Started with Amazon Inspector
Getting Started with Amazon Inspector
 
Introduction to Threat Detection and Remediation on AWS
Introduction to Threat Detection and Remediation on AWSIntroduction to Threat Detection and Remediation on AWS
Introduction to Threat Detection and Remediation on AWS
 
DevSecOps What Why and How
DevSecOps What Why and HowDevSecOps What Why and How
DevSecOps What Why and How
 
DevSecOps : an Introduction
DevSecOps : an IntroductionDevSecOps : an Introduction
DevSecOps : an Introduction
 
DevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to SecurityDevSecOps: Taking a DevOps Approach to Security
DevSecOps: Taking a DevOps Approach to Security
 
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
CI/CD Best Practices for Building Modern Applications - MAD302 - Anaheim AWS ...
 
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP IndonesiaStrengthen and Scale Security Using DevSecOps - OWASP Indonesia
Strengthen and Scale Security Using DevSecOps - OWASP Indonesia
 
Deep Dive - Infrastructure as Code
Deep Dive - Infrastructure as CodeDeep Dive - Infrastructure as Code
Deep Dive - Infrastructure as Code
 

En vedette

Security DevOps - Wie Sie in agilen Projekten trotzdem sicher bleiben // DevO...
Security DevOps - Wie Sie in agilen Projekten trotzdem sicher bleiben // DevO...Security DevOps - Wie Sie in agilen Projekten trotzdem sicher bleiben // DevO...
Security DevOps - Wie Sie in agilen Projekten trotzdem sicher bleiben // DevO...Christian Schneider
 
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...Christian Schneider
 
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Christian Schneider
 
Managing Security in External Software Dependencies
Managing Security in External Software DependenciesManaging Security in External Software Dependencies
Managing Security in External Software Dependenciesthariyarox
 
Owasp A9 USING KNOWN VULNERABLE COMPONENTS IT 6873 presentation
Owasp A9 USING KNOWN VULNERABLE COMPONENTS   IT 6873 presentationOwasp A9 USING KNOWN VULNERABLE COMPONENTS   IT 6873 presentation
Owasp A9 USING KNOWN VULNERABLE COMPONENTS IT 6873 presentationDerrick Hunter
 
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
2014 11-06-sonarqube-asfws-141110031042-conversion-gate012014 11-06-sonarqube-asfws-141110031042-conversion-gate01
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01Cyber Security Alliance
 
Continuous Security - TCCC
Continuous Security - TCCCContinuous Security - TCCC
Continuous Security - TCCCWendy Istvanick
 
Labotatorio Mágico Labchecap
Labotatorio Mágico LabchecapLabotatorio Mágico Labchecap
Labotatorio Mágico Labchecapestalopromo12
 
El Riesgo de Maremotos en la Península Ibérica, a la luz de la catástrofe del...
El Riesgo de Maremotos en la Península Ibérica, a la luz de la catástrofe del...El Riesgo de Maremotos en la Península Ibérica, a la luz de la catástrofe del...
El Riesgo de Maremotos en la Península Ibérica, a la luz de la catástrofe del...Abel López Díez
 
Fd s graz2012_gesamt_druck_o
Fd s graz2012_gesamt_druck_oFd s graz2012_gesamt_druck_o
Fd s graz2012_gesamt_druck_oEva Laspas
 
Creando una nueva generacion de líderes con calidad humana
Creando una nueva generacion de líderes con calidad humanaCreando una nueva generacion de líderes con calidad humana
Creando una nueva generacion de líderes con calidad humanaSebastián Valdivieso González
 
Hypno - NLP Training Course for Self - Transformer
Hypno - NLP Training Course for Self - TransformerHypno - NLP Training Course for Self - Transformer
Hypno - NLP Training Course for Self - TransformerDr.Wasit Prombutr
 
Duane Yates Curriculum Vitae
Duane Yates Curriculum VitaeDuane Yates Curriculum Vitae
Duane Yates Curriculum VitaeDuane Yates
 

En vedette (20)

Security DevOps - Wie Sie in agilen Projekten trotzdem sicher bleiben // DevO...
Security DevOps - Wie Sie in agilen Projekten trotzdem sicher bleiben // DevO...Security DevOps - Wie Sie in agilen Projekten trotzdem sicher bleiben // DevO...
Security DevOps - Wie Sie in agilen Projekten trotzdem sicher bleiben // DevO...
 
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...
Security DevOps - Free pentesters' time to focus on high-hanging fruits // Ha...
 
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
Surviving the Java Deserialization Apocalypse // OWASP AppSecEU 2016
 
Managing Security in External Software Dependencies
Managing Security in External Software DependenciesManaging Security in External Software Dependencies
Managing Security in External Software Dependencies
 
27 jan 2012[1]
27 jan 2012[1]27 jan 2012[1]
27 jan 2012[1]
 
Owasp A9 USING KNOWN VULNERABLE COMPONENTS IT 6873 presentation
Owasp A9 USING KNOWN VULNERABLE COMPONENTS   IT 6873 presentationOwasp A9 USING KNOWN VULNERABLE COMPONENTS   IT 6873 presentation
Owasp A9 USING KNOWN VULNERABLE COMPONENTS IT 6873 presentation
 
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
2014 11-06-sonarqube-asfws-141110031042-conversion-gate012014 11-06-sonarqube-asfws-141110031042-conversion-gate01
2014 11-06-sonarqube-asfws-141110031042-conversion-gate01
 
Continuous Security - TCCC
Continuous Security - TCCCContinuous Security - TCCC
Continuous Security - TCCC
 
Brunhofer, Matthew 11.03.15
Brunhofer, Matthew 11.03.15Brunhofer, Matthew 11.03.15
Brunhofer, Matthew 11.03.15
 
Labotatorio Mágico Labchecap
Labotatorio Mágico LabchecapLabotatorio Mágico Labchecap
Labotatorio Mágico Labchecap
 
El Riesgo de Maremotos en la Península Ibérica, a la luz de la catástrofe del...
El Riesgo de Maremotos en la Península Ibérica, a la luz de la catástrofe del...El Riesgo de Maremotos en la Península Ibérica, a la luz de la catástrofe del...
El Riesgo de Maremotos en la Península Ibérica, a la luz de la catástrofe del...
 
Portfolio Alejandro Jiménez Hernández
Portfolio Alejandro Jiménez HernándezPortfolio Alejandro Jiménez Hernández
Portfolio Alejandro Jiménez Hernández
 
Fd s graz2012_gesamt_druck_o
Fd s graz2012_gesamt_druck_oFd s graz2012_gesamt_druck_o
Fd s graz2012_gesamt_druck_o
 
Convergencia de la Seguridad
Convergencia de la SeguridadConvergencia de la Seguridad
Convergencia de la Seguridad
 
Tablas
TablasTablas
Tablas
 
Advertiz C'est Simple
Advertiz C'est SimpleAdvertiz C'est Simple
Advertiz C'est Simple
 
Creando una nueva generacion de líderes con calidad humana
Creando una nueva generacion de líderes con calidad humanaCreando una nueva generacion de líderes con calidad humana
Creando una nueva generacion de líderes con calidad humana
 
Hypno - NLP Training Course for Self - Transformer
Hypno - NLP Training Course for Self - TransformerHypno - NLP Training Course for Self - Transformer
Hypno - NLP Training Course for Self - Transformer
 
Duane Yates Curriculum Vitae
Duane Yates Curriculum VitaeDuane Yates Curriculum Vitae
Duane Yates Curriculum Vitae
 
Introducción a la Norma EN 15085 (06/16)
Introducción a la Norma EN 15085 (06/16)Introducción a la Norma EN 15085 (06/16)
Introducción a la Norma EN 15085 (06/16)
 

Similaire à Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - Amsterdam

Security DevOps: Wie Sie in agilen Projekten trotzdem sicher bleiben // JAX 2015
Security DevOps: Wie Sie in agilen Projekten trotzdem sicher bleiben // JAX 2015Security DevOps: Wie Sie in agilen Projekten trotzdem sicher bleiben // JAX 2015
Security DevOps: Wie Sie in agilen Projekten trotzdem sicher bleiben // JAX 2015Christian Schneider
 
we45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Pythonwe45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with PythonAbhay Bhargav
 
DAST in CI/CD pipelines using Selenium & OWASP ZAP
DAST in CI/CD pipelines using Selenium & OWASP ZAPDAST in CI/CD pipelines using Selenium & OWASP ZAP
DAST in CI/CD pipelines using Selenium & OWASP ZAPsrini0x00
 
Automating security test using Selenium and OWASP ZAP - Practical DevSecOps
Automating security test using Selenium and OWASP ZAP - Practical DevSecOpsAutomating security test using Selenium and OWASP ZAP - Practical DevSecOps
Automating security test using Selenium and OWASP ZAP - Practical DevSecOpsMohammed A. Imran
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersJavan Rasokat
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfNCCOMMS
 
OWASP 2014 AppSec EU ZAP Advanced Features
OWASP 2014 AppSec EU ZAP Advanced FeaturesOWASP 2014 AppSec EU ZAP Advanced Features
OWASP 2014 AppSec EU ZAP Advanced FeaturesSimon Bennetts
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Yan Cui
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)CIVEL Benoit
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1CIVEL Benoit
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAmazon Web Services
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAmazon Web Services
 
Cloud infrastructure as code
Cloud infrastructure as codeCloud infrastructure as code
Cloud infrastructure as codeTomasz Cholewa
 
Jenkins CI for MacDevOps
Jenkins CI for MacDevOpsJenkins CI for MacDevOps
Jenkins CI for MacDevOpsTimothy Sutton
 
Alfresco Development Framework Basic
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework BasicMario Romano
 
How do JavaScript frameworks impact the security of applications?
How do JavaScript frameworks impact the security of applications?How do JavaScript frameworks impact the security of applications?
How do JavaScript frameworks impact the security of applications?Ksenia Peguero
 
DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014scolestock
 
Continuous Security Testing with Devops - OWASP EU 2014
Continuous Security Testing  with Devops - OWASP EU 2014Continuous Security Testing  with Devops - OWASP EU 2014
Continuous Security Testing with Devops - OWASP EU 2014Stephen de Vries
 
Integrating Splunk into your Spring Applications
Integrating Splunk into your Spring ApplicationsIntegrating Splunk into your Spring Applications
Integrating Splunk into your Spring ApplicationsDamien Dallimore
 

Similaire à Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - Amsterdam (20)

Security DevOps: Wie Sie in agilen Projekten trotzdem sicher bleiben // JAX 2015
Security DevOps: Wie Sie in agilen Projekten trotzdem sicher bleiben // JAX 2015Security DevOps: Wie Sie in agilen Projekten trotzdem sicher bleiben // JAX 2015
Security DevOps: Wie Sie in agilen Projekten trotzdem sicher bleiben // JAX 2015
 
we45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Pythonwe45 DEFCON Workshop - Building AppSec Automation with Python
we45 DEFCON Workshop - Building AppSec Automation with Python
 
DAST in CI/CD pipelines using Selenium & OWASP ZAP
DAST in CI/CD pipelines using Selenium & OWASP ZAPDAST in CI/CD pipelines using Selenium & OWASP ZAP
DAST in CI/CD pipelines using Selenium & OWASP ZAP
 
Automating security test using Selenium and OWASP ZAP - Practical DevSecOps
Automating security test using Selenium and OWASP ZAP - Practical DevSecOpsAutomating security test using Selenium and OWASP ZAP - Practical DevSecOps
Automating security test using Selenium and OWASP ZAP - Practical DevSecOps
 
OWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA TestersOWASP ZAP Workshop for QA Testers
OWASP ZAP Workshop for QA Testers
 
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio StruyfO365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
O365Con18 - Automate your Tasks through Azure Functions - Elio Struyf
 
[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions[Struyf] Automate Your Tasks With Azure Functions
[Struyf] Automate Your Tasks With Azure Functions
 
OWASP 2014 AppSec EU ZAP Advanced Features
OWASP 2014 AppSec EU ZAP Advanced FeaturesOWASP 2014 AppSec EU ZAP Advanced Features
OWASP 2014 AppSec EU ZAP Advanced Features
 
Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)Serverless in production (O'Reilly Software Architecture)
Serverless in production (O'Reilly Software Architecture)
 
Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)Cerberus : Framework for Manual and Automated Testing (Web Application)
Cerberus : Framework for Manual and Automated Testing (Web Application)
 
Cerberus_Presentation1
Cerberus_Presentation1Cerberus_Presentation1
Cerberus_Presentation1
 
AWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for DevelopersAWS Summit Auckland - Application Delivery Patterns for Developers
AWS Summit Auckland - Application Delivery Patterns for Developers
 
Announcing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck TalksAnnouncing AWS CodeBuild - January 2017 Online Teck Talks
Announcing AWS CodeBuild - January 2017 Online Teck Talks
 
Cloud infrastructure as code
Cloud infrastructure as codeCloud infrastructure as code
Cloud infrastructure as code
 
Jenkins CI for MacDevOps
Jenkins CI for MacDevOpsJenkins CI for MacDevOps
Jenkins CI for MacDevOps
 
Alfresco Development Framework Basic
Alfresco Development Framework BasicAlfresco Development Framework Basic
Alfresco Development Framework Basic
 
How do JavaScript frameworks impact the security of applications?
How do JavaScript frameworks impact the security of applications?How do JavaScript frameworks impact the security of applications?
How do JavaScript frameworks impact the security of applications?
 
DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014DevOps with Elastic Beanstalk - TCCC-2014
DevOps with Elastic Beanstalk - TCCC-2014
 
Continuous Security Testing with Devops - OWASP EU 2014
Continuous Security Testing  with Devops - OWASP EU 2014Continuous Security Testing  with Devops - OWASP EU 2014
Continuous Security Testing with Devops - OWASP EU 2014
 
Integrating Splunk into your Spring Applications
Integrating Splunk into your Spring ApplicationsIntegrating Splunk into your Spring Applications
Integrating Splunk into your Spring Applications
 

Dernier

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxbodapatigopi8531
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionSolGuruz
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️anilsa9823
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataBradBedford3
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationkaushalgiri8080
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVshikhaohhpro
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 

Dernier (20)

HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Hand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptxHand gesture recognition PROJECT PPT.pptx
Hand gesture recognition PROJECT PPT.pptx
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Diamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with PrecisionDiamond Application Development Crafting Solutions with Precision
Diamond Application Development Crafting Solutions with Precision
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online  ☂️
CALL ON ➥8923113531 🔝Call Girls Kakori Lucknow best sexual service Online ☂️
 
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer DataAdobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
Adobe Marketo Engage Deep Dives: Using Webhooks to Transfer Data
 
Project Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanationProject Based Learning (A.I).pptx detail explanation
Project Based Learning (A.I).pptx detail explanation
 
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...Call Girls In Mukherjee Nagar 📱  9999965857  🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
Call Girls In Mukherjee Nagar 📱 9999965857 🤩 Delhi 🫦 HOT AND SEXY VVIP 🍎 SE...
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 

Security DevOps - Staying secure in agile projects // OWASP AppSecEU 2015 - Amsterdam

  • 1. Security DevOps staying secure in agile projects Christian Schneider @cschneider4711
  • 2. `whoami` » Software Developer, Whitehat Hacker & Trainer » Freelancer since 1997 » Focus on JavaEE & Web Security » Speaker at Conferences » @cschneider4711 www.
 mail@ Christian-Schneider.net
  • 3. Why Security DevOps? » Keep up with rollout pace in agile projects » Automate certain checks as best as possible within the build-chain » Early feedback to Devs » Does not remove the pentest requirement! » Aims to free pentesters’ time to hunt more high-hanging bugs
  • 4. Different levels of "Security DevOps" integration… » Security DevOps Maturity Model (SDOMM) » Can be seen as some automation tips within OpenSAMM’s security practices » Verification: Security Testing » Verification: Code Reviews » Allows to define a RoadMap for projects implementing Security DevOps
  • 5. four axes each with four belts as incremental steps implicit master … what levels will we cover?
  • 6. Four different axes 4 3 2 1 1 2 3 4 4 3 2 1 1 2 3 4 Dynamic Depth Intensity Static DepthConsolidation
  • 7. Four different axes 4 3 2 1 1 2 3 4 4 3 2 1 1 2 3 4 Dynamic Depth Intensity Static DepthConsolidation
  • 8. This talk covers two of them 4 3 2 1 1 2 3 4 4 3 2 1 1 2 3 4 Dynamic Depth Intensity Static DepthConsolidation
  • 9. Let’s explore these axes … » … by showing how to implement this with OpenSource solutions used in the 
 Security & Development domains.
  • 10. Axis of "Dynamic Depth" How deep are dynamic scans executed within a Security DevOps CI chain?
 i.e. "where" are dynamic 
 security tests applied?
  • 11. Axis "Dynamic Depth": Level 1 Scanning of public attack surface (pre-auth): • Spidering of UI layer • No requirement to authenticate scanner with target • Easy integration of scanner(s) in nightly build as post-step • "Throw tool at it (in CI-chain) and see what it generates…"
  • 12. ZAP in SecDevOps? "OWASP ZAP" features relevant for Security DevOps integration: • Passive & active scanning • Headless operation mode / daemon • REST-API (with several language bindings as pre-built clients) • Scriptable • CLI
  • 13. ZAP + Jenkins = SecDevOps? "OWASP ZAP" (spider & scanner) + Jenkins plugin "ZAProxy" • Allows us to "Spider & Scan" as step in build job via Jenkins plugin • Point plugin config to URL of integration system to test • Plugin saves HTML-report in project’s job for inspection • Best as separate Jenkins job to run during nightly build (duration) • Use different ZAP proxy ports for different builds to allow
 parallel execution of different project build jobs
  • 16. Arachni in SecDevOps? "Arachni Scanner" features relevant for Security DevOps integration: • Passive & active scanning (Proxy / Spider) • Uses internally a headless browser-cluster (for apps with lots of JS) • Automation? • CLI + RPC API • Web-UI (helpful when permanently running as server)
  • 17. Arachni + Jenkins = SecDevOps? "Arachni Scanner" + Jenkins CLI step in build • Start in build job as CLI step and point to URL of system under test • Generate HTML report and place into workspace for inspection • Better execute within nightly build job (due to duration)
  • 18. BDD-Security in SecDevOps? BDD-based framework for functional and technical security tests: • Technical security tests (i.e. check against XSS, SQL-Injection, XXE, etc.) • uses ZAP as scanning engine (among others) • Functional security tests (i.e. check UserA can’t access data from UserB) • Tightly integrates with Selenium based app navigation workflows • Uses JBehave for G/W/T stories & reporting • Can run within CI (Jenkins, etc.) due to JBehave or as JUnit tests
  • 20. Gauntlt in SecDevOps? BDD-based framework for executing many security tools/scanners: • Integrates scanners like Arachni, ZAP, sqlmap, etc. • Easy to integrate "your custom scanner tool" with Gauntlt as well • Allows to call different scan polices via BDD-stories (G/W/T) • Integration with Jenkins (or other build servers) by either • Linking Gauntlt’s HTML report to build, or by • modifying how Gauntlt calls Cucumber to produce JUnit output
  • 21. Axis "Dynamic Depth": Level 2 Scanning of authenticated parts (= "post-auth") via UI layer • Properly maintaining sessions • Logout-detection & automatic re-login • Different users / roles • Spider & scan post-auth
 Handling of hardening measures of application under test • CSRF-Tokens, etc.
  • 22. Guide ZAP into Post-Auth in CI Use ZAP manually (1x) to configure "Context":Auth, RegExps for Logged-In/ Out Indicators, Users etc. + save as "ZAP Session-File" (could be in code repo) • use that "Session-File" from code repo as starting point of scan 
 (loaded as ZAP session during build job). 
 Note: Current version of ZAP has a bugfix pending for loading creds from session file One can set these auth values and/or additional data via ZAP’s REST-API 
 during each build before scan starts (from Jenkins/Maven/…) • use that to define current active session etc. during scan Also Scripts in JavaScript or Zest can be registered in ZAP context 
 to programmatically give authentication to ZAP
  • 23. Login config example within ZAP
  • 24. ZAProxy Jenkins Plugin: ZAP session use
  • 25. Guide Arachni into Post-Auth Give authentication infos to Arachni (Auth, Logged-In Indicators, Users) • Use Arachni "autologin" plugin to specify via command line • Login URL, formfield names, credentials, logged-in indicator, excludes • Alternatively write custom ruby script for "login_script" plugin • Individual custom login logic possible • Logged-In indicators (RegExp) to know when to re-login 

  • 26. Login config example within Arachni (used in CI) ./arachni 
 --plugin=autologin:
 url=https://example.com/login.action,
 parameters='j_username=foo&j_password=bar',
 check='Logout' 
 --scope-exclude-pattern=logout.action 
 https://example.com/ Or individual ruby script if more custom login logic required… Eventually also --session-check-url & --session-check-pattern
  • 27. Guide BDD-Security into Post-Auth Use Selenium to navigate through the login process • Based on excellent integration of BDD-Security with Selenium • Separate app navigation code (Selenium) from Security testing code • Use Selenium class (that handles login) within BDD stories • Perform further spidering & active scanning (through ZAP) post-auth
  • 28. public class ShopApplicationScanHelper extends WebApplication implements ILogin { // ... integrates with BDD-Security via parent class & interface ... }
  • 29. public class ShopApplicationScanHelper extends WebApplication implements ILogin { @Override public void openLoginPage() { } @Override public void login(Credentials credentials) { } @Override public boolean isLoggedIn(String role) { }
  • 30. public class ShopApplicationScanHelper extends WebApplication implements ILogin { @Override public void openLoginPage() { driver.get(Config.getInstance().getBaseUrl() + "customer/login"); verifyTextPresent("Login"); } @Override public void login(Credentials credentials) { UserPassCredentials creds = new UserPassCredentials(credentials); driver.findElement(By.id("username")).clear(); driver.findElement(By.id("username")).sendKeys(creds.getUsername()); driver.findElement(By.id("password")).clear(); driver.findElement(By.id("password")).sendKeys(creds.getPassword()); driver.findElement(By.name("_action_login")).click(); } @Override public boolean isLoggedIn(String role) { if (driver.getPageSource().contains("My Account")) { return true; } else { return false; }
  • 31. Axis "Dynamic Depth": Level 3 Separate scanning of different application layers / backends • Scan internal WebServices (e.g. SOAP / REST) = directly scan backends • Detect and scan parameter positions within XML, JSON, … • Scan from "within" the different application’s layers • IAST with distributed agents & instrumentation aims into that direction • At least one simple step in that direction: • Use the proxy also between your backend service calls
  • 32. Backend scans with ZAP How to achieve this with ZAP? • ZAP operates as proxy server: place it between backend calls • ZAP can inject payloads in observed XML tags/attributes & JSON fields • Capture service call traffic in integration test during CI while either A. executing service tests that directly access the service endpoint, or B. frontend UI tests execute service backend calls indirectly • Automatically scan as new requests are seen: "ATTACK Mode" Also keep an eye on an alpha-level SOAP-Scanner ZAP addon
  • 33. Backend scans with Arachni How to achieve this with Arachni? • Arachni can also operate as proxy: place it between backend calls • Use passive proxy plugin to "train" Arachni of the XML / JSON requests • New addition in v1.1 to extract XML / JSON input vectors from it • Use that collected input vector data to feed the active scan for 
 the observed requests
  • 34. Axis "Dynamic Depth": Level 4 Targeted scanning of individual forms / wizards (UI) and service layers • More individualised workflow coverage (not just simple spidering) • Business-logic compliant usage patterns & inputs • "fill shopping cart followed by checkout process" • "access backendWebServices in special order to test workflow", etc. • Custom coded security tests tailored to the application
  • 35. ZAP with special workflows (1/3) Many ways exist… The simplest one could be: 
 Re-use existing UI tests (Selenium, …) • Proxy this traffic through ZAP in "ATTACK-Mode"
 (in security test phase of build) • Optionally use ZAP Attack-Policies to 
 specify/limit certain attack types
  • 36. ZAP with special workflows (2/3) A more customised handling of individual workflows can be achieved: Re-use & enhance existing "UI test code" at the desired
 workflow steps with calls to ZAP’s (REST)-API ordering attacks • Basically it’s like Unit-Test code that uses Selenium along with 
 with ZAP-Calls at the proper positions in application workflow • Type of "ordered attacks" can again be defined via policies • Start ZAP as Daemon from Jenkins via plugin
  • 37. public class ShopApplicationTest { // = regular JUnit unit test @Before
 public void setup() { } @Test
 public void testShippingAddressStep() { 
 } @Test
 public void testBillingAddressStep() { } }
  • 38. public class ShopApplicationTest { // = regular JUnit unit test @Before
 public void setup() { // 1. start new proxy session in running ZAP (via REST-API call) // 2. create Selenium driver (proxying through running ZAP) } @Test
 public void testShippingAddressStep() { 
 } @Test
 public void testBillingAddressStep() { } }
  • 39. public class ShopApplicationTest { // = regular JUnit unit test @Before
 public void setup() { // 1. start new proxy session in running ZAP (via REST-API call) // 2. create Selenium driver (proxying through running ZAP) } @Test
 public void testShippingAddressStep() { // 1. use Selenium to fill shopping cart // 2. use Selenium to proceed to checkout // 3. use Selenium to provide reasonable shipping address data 
 } @Test
 public void testBillingAddressStep() { } }
  • 40. public class ShopApplicationTest { // = regular JUnit unit test @Before
 public void setup() { // 1. start new proxy session in running ZAP (via REST-API call) // 2. create Selenium driver (proxying through running ZAP) } @Test
 public void testShippingAddressStep() { // 1. use Selenium to fill shopping cart // 2. use Selenium to proceed to checkout // 3. use Selenium to provide reasonable shipping address data // 4. set attack policy (types & strength) in running ZAP (API) /* 5. call ZAP (API) to actively scan the last seen URL (optionally define parameter excludes via API 
 or ZAP "input vector scripts" if custom input format) */ } @Test
 public void testBillingAddressStep() { } }
  • 41. See https://github.com/continuumsecurity/zap-webdriver 
 for a great working example of Selenium ZAP integration public class ShopApplicationTest { // = regular JUnit unit test @Before
 public void setup() { // 1. start new proxy session in running ZAP (via REST-API call) // 2. create Selenium driver (proxying through running ZAP) } @Test
 public void testShippingAddressStep() { // 1. use Selenium to fill shopping cart // 2. use Selenium to proceed to checkout // 3. use Selenium to provide reasonable shipping address data // 4. set attack policy (types & strength) in running ZAP (API) /* 5. call ZAP (API) to actively scan the last seen URL (optionally define parameter excludes via API 
 or ZAP "input vector scripts" if custom input format) */ } @Test
 public void testBillingAddressStep() { // same idea as above ... just continue with the pattern } }
  • 42. ZAP with special workflows (3/3) Alternatively "train" ZAP about the workflow by recording Zest scripts • Keep an eye on "Sequence Scanning" alpha-level ZAP addon • Still alpha-level (as of May 2015), but interesting approach
  • 43. Use Selenium to further drive BDD-Security initiated checks: • Selenium-based test code navigates application workflows • This code is integrated with BDD (via Java interfaces), so that: • BDD-Security stories can use that code to navigate 
 and generate traffic • This generated traffic will be scanned by ZAP via BDD BDD with special workflows
  • 44. If no Selenium test code exists? Simply give developer teams access to ZAP to (at least) pre-seed the scanner: • Developer teams use browser to navigate app workflows while proxying • Thereby seed the ZAP session(s) with navigation nodes/workflows • Save the ZAP session(s) and check-in into SCM (Git, SVN, …) • Point the Jenkins ZAP plugin to the saved ZAP session(s) as starting point • Devs can add to this list of URLs for ZAP with each new UI BTW: ZAP is also available as Docker image…
  • 45. Axis of "Static Depth" How deep is static code analysis performed 
 within a Security DevOps CI chain?
 i.e. "where" are static 
 security tests applied?
  • 46. Axis of "Intensity" How intense are the majority of the executed attacks within a Security DevOps CI chain?
 i.e. "what" is being 
 checked for?
  • 47. Axis of "Consolidation" How complete is the process of handling findings within a Security DevOps CI chain?
 i.e. "how" are the 
 results used?
  • 48. Axis "Consolidation": Level 1 Generate human-readable (HTML) reports from tools and link them in Jenkins • All relevant mentioned static and dynamic scanners generate HTML reports • Collect and publish them in Jenkins build: via Jenkins "HTML Publisher Plugin" Use simple criteria to "break the build" on heavy findings (ok, at least "unstable") • Dependency-Check, BDD-Security (with the JBehave-stories), FindSecurityBugs (via Sonar when rated as blocker), Arachni (via Gauntlt execution with BDD- like stories), etc. all have capabilities to automatically flag the build • For others: at least do a simple log parse from Jenkins 
 "Log Parser Plugin" to flag the build as unstable and/or broken
  • 49. Jenkins "HTML Publisher Plugin": Configuration of HTML reports to link
  • 51. Axis "Consolidation": Level 2 Custom logic to make build unstable and/or broken depending on • Type of vulnerability (CWE or WASC or …) • Confidence level (firm vs. tentative) • Severity ranking (high risk) Provide useful remediation info to developers Respect suppression mechanisms to rule out false positives
  • 52. Flagging builds from reports How (from within a CI job)? • Most scanners also emit XML reports that can be parsed • Often a simple XPath count is just fine • Alternatively fetch the results by accessing the scanner’s API • Be sure to only break build with (new?) findings of 
 high severity and high confidence !!! • Less is more (when it comes to automation)… 

  • 53. Axis "Consolidation": Level 3 Consolidation goals: • Consolidate & de-duplicate findings from different 
 scanner reports (with better false positive handling) • Push consolidated findings into established bug-tracker 
 (known to devs) • Delta analysis & trends over consolidated data sets
  • 54. ThreadFix as result consolidator Use a local ThreadFix server, which imports native scanner outputs • does the heavy lifting of consolidation & de-duplication • pushes findings toward bug-tracker and IDE (via plugins) • process can be customised using it’s own REST-API • ThreadFix imports findings of ZAP, Arachni, FindBugs, Brakeman, etc.
  • 55. Axis "Consolidation": Level 4 Measure the concrete code coverage of your security testing activities • Find untested "white spots" • Derive where static checks and code reviews should 
 focus more to compensate
  • 56. Code coverage analysis Use "OWASP Code Pulse", which instruments your Java app via agent • collects coverage data during dynamic security testing scans • generates reports ("code treemaps") of coverage
  • 57. Code Treemap of dynamic scan coverage Bildquelle: OWASP Code Pulse
  • 58. Thank you very much!
  • 59. Links OWASP ZAP https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project ZAP Selenium Demo https://github.com/continuumsecurity/zap-webdriver ZAP Jenkins Plugin https://wiki.jenkins-ci.org/display/JENKINS/ZAProxy+Plugin BDD-Security http://www.continuumsecurity.net/bdd-intro.html Arachni http://www.arachni-scanner.com OWASP Dependency Check https://www.owasp.org/index.php/OWASP_Dependency_Check OWASP Dependency Track https://www.owasp.org/index.php/OWASP_Dependency_Track_Project FindSecurityBugs http://h3xstream.github.io/find-sec-bugs/ FindSecurityBugs-Cloud https://code.google.com/p/findbugs/wiki/FindBugsCloudTutorial retire.js http://bekk.github.io/retire.js/ ScanJS https://github.com/mozilla/scanjs Jenkins Log Parser Plugin https://wiki.jenkins-ci.org/display/JENKINS/Log+Parser+Plugin ThreadFix http://www.threadfix.org OWASP Code Pulse https://www.owasp.org/index.php/OWASP_Code_Pulse_Project Seccubus https://www.seccubus.com vulndb https://github.com/vulndb/data fuzzdb https://code.google.com/p/fuzzdb/
 radamsa https://code.google.com/p/ouspg/wiki/Radamsa
 Interested in more web security stuff? Visit my Blog: www.Christian-Schneider.net @cschneider4711 Bildquelle: dreamstime.com