SlideShare a Scribd company logo
Web Applications
Automated Security Testing
in a Continuous Delivery Pipeline
At #DrupalDevDaysSeville by @FedirFr
About this workshop
● Duration 2 hours
● 100% open source powered
● Intermediate technical level required
● Oriented Developers / QA / Operations / CTO / ...
● Interactive, study-oriented ...
Workshop content
● Theoretical part
● Introduction to Web security
○ Major security risks
○ Pentesting types
● Insecure code
● Drupalxploitable project
● Practical part
● Vulnerable site create / study
● Manual security testing with
scanners
● Manual security testing using Zed
Attack Proxy GUI
● Automated security testing
Introduction in Web Security
Major Risks
Pentesting methods - Black-box
● We don't know what is inside
● Testing as an external user
Pentesting methods - Grey-box
● We have advanced access to the project
Pentesting methods - White-box
● We know all about the project
● We have the access to the project code
Manual Penetration Testing
Scanner Target
Manual Penetration Testing with Proxy
Web browser Attack Proxy Target
Automating Penetration Testing
Web browser Attack Proxy Target
Security Framework
CI Bugtraceker
Classical continuous delivery model - https://en.wikipedia.org/wiki/Continuous_delivery
How to write
(in)secure code
for Drupal 8
Current situation for Drupal 8
● https://www.drupal.org/docs/8/security/writing-secure-code-for-drupal-8
a. Sanitizing on output to avoid Cross Site Scripting (XSS) attacks : t(), Html::escape
Xss::filter() or Xss::filterAdmin()
b. Checking URLs UrlHelper::stripDangerousProtocols(), UrlHelper::filterBadProtocol(),
SafeMarkup::format().
c. Use the database abstraction layer to avoid SQL injection attacks
Bad code example - SQL Injection
db_query('SELECT foo FROM {table} t WHERE t.name = '. $_GET['user']);
Exploit example : https://www.exploit-db.com/exploits/34993/
Bad code example - XSS exploits
- --- modules/system/system.admin.inc 2013-04-03 17:29:52.000000000 -0400
+++ modules/system/system.admin.inc 2013-08-07 10:47:29.277279676 -0400
@@ -979,10 +979,10 @@ function _system_modules_build_row($info
);
// Set the basic properties.
$form['name'] = array(
- - '#markup' => $info['name'],
+ '#markup' => check_plain($info['name']),
);
$form['description'] = array(
- - '#markup' => t($info['description']),
+ '#markup' => t("@desc", array('@desc' => $info['description'])),
);
$form['version'] = array(
'#markup' => $info['version'],
http://seclists.org/fulldisclosure/2013/Aug/158
There are much more risks ...
SQL, HTML, iFrame, SSI, OS Command, PHP, XML, XPath, LDAP, Host Header and SMTP injections
Cross-Site Scripting (XSS), Cross-Site Tracing (XST) and Cross-Site Request Forgery (CSRF)
AJAX and Web Services issues (jQuery/JSON/XML/SOAP/WSDL)
Authentication, authorization and session issues, file upload flaws and backdoor files
Arbitrary file access, directory traversals, local and remote file inclusions (LFI/RFI)
Configuration issues: Man-in-the-Middle, cross-domain policy files, information disclosures,...
HTTP parameter pollution, HTTP response splitting and HTTP verb tampering
Insecure DistCC, FTP, NTP, Samba, SNMP, VNC and WebDAV configurations
HTML5 ClickJacking, Cross-Origin Resource Sharing (CORS) and web storage issues
XML External Entity attacks (XXE) and Server Side Request Forgery (SSRF)
Heartbleed and Shellshock vulnerability (OpenSSL), Denial-of-Service (DoS) attacks
Parameter tampering, cookie and password reset poisoning ...
Drupalxploitable
About Drupalxploitable
● Purposefully vulnerables Drupal installation
● Basically : “a very crappy Drupal site”
● Open source (github)
Existing projects in PHP world
Damn Vulnerable Web Application (DVWA)
http://www.dvwa.co.uk/
Mutillidae
http://www.irongeek.com/i.php?page=mutillidae/mutillidae-deliberately-vulnerable-php-owasp-top-10
WebGoatPHP
https://github.com/shivamdixit/WebGoatPHP
buggy web application
http://www.itsecgames.com/
And even standalone distribution
Metasploitable
https://sourceforge.net/projects/metasploitable/
Practical part
Used infrastructure
● Virtualbox
○ Ubuntu 16.04 LTS server 64 bit
○ Jenkins CI
○ OWASP ZAP, sqlmap
○ Drupalxploitable vulnerable site
SSH
Access from host by 2222 port (mapped to 22)
ssh drupal@127.0.0.1 -p 2222
root / password
Jenkins
Access from the host: http://127.0.0.1:8180/
Internal VM access: http://127.0.0.1:8080/
Admin credentials : admin / password
Drupal / Apache
Access from the host: http://127.0.0.1:8280/
Internal VM access: http://127.0.0.1/
Admin credentials : drupal / drupal
Virtualbox - Services description
sqlmap
python sqlmap.py -v 2 --url=http://127.0.0.1/user/ --user-agent=SQLMAP
--delay=1 --retries=2 --keep-alive --threads=5 --batch --dbms=MySQL --os=Linux
--level=5 --risk=2 --banner --is-dba --dbs --tables --technique=BEUST -s
/tmp/scan_report.txt --flush-session -t /tmp/scan_trace.txt --fresh-queries
CMSmap
python cmsmap.py -t http://127.0.0.1 -f D
https://github.com/Dionach/CMSmap
droopescan
droopescan scan drupal -u http://127.0.0.1/ -t 8
https://github.com/droope/droopescan
gauntlt
https://github.com/gauntlt/gauntlt
https://github.com/gauntlt/gauntlt-demo/tree/master/examples
Uses natural language in a Given, When, Then Gherkin syntax to describe
security requirements as features.
bdd-security
https://github.com/continuumsecurity/bdd-security
https://www.continuumsecurity.net/bdd-security/
Selenium + OWASP ZAP + Nessus + SSLyze + Internal security tools
OWASP ZAP
OWASP ZAP - Simple scan
zap-cli quick-scan --self-contained --start-options '-config api.disablekey=true'
http://127.0.0.1/
zap-cli --api-key coeoobt6fof9k4g3iajshtnp7v quick-scan --self-contained
--spider -r http://127.0.0.1/
* API key could be found in ~/.ZAP/config.xml of current user.
OWASP ZAP - Simple scan with ZAPR
zapr --debug --summary http://127.0.0.1
OWASP ZAP - Running as a daemon
/opt/zaproxy/zap.sh -daemon -host 0.0.0.0 -port 8480
Also, Docker usage possible : https://github.com/zaproxy/zaproxy/wiki/Docker
OWASP ZAP - Plugins management
Install all plugins, take some time :
su jenkins /opt/zaproxy/zap.sh -daemon -host 0.0.0.0 -port 8480 -addoninstallall
Install selected plugin :
su jenkins /opt/zaproxy/zap.sh -daemon -host 0.0.0.0 -port 8480 -addoninstall exportreport
* Plugins will be installed in the ~/.ZAP folder of user, who launches ZAP.
** Plugins keys could be found here :
https://github.com/zaproxy/zap-extensions/releases
OWASP ZAP
https://github.com/zaproxy/zaproxy/wiki/Docker
zap.sh -daemon -host 0.0.0.0 -port 8480
zap-x.sh -daemon -host 0.0.0.0 -port 8080
zap-cli quick-scan --self-contained 
--start-options '-config api.disablekey=true' http://target
Configure Jenkins CI security
project
Ubuntu server VM
Jenkins CI
Server
Drupalxploitable
Owasp ZED
Attack Proxy
Report results
Run security scan
Drupal automated security testing model
Jenkins - Plugins used
● Official OWASP ZAP Jenkins Plugin
● Environment Injector Plugin
Jenkins - OWASP ZAP Plugin - Configuration
https://wiki.jenkins-ci.org/display/JENKINS/ZAProxy+Plugin
Ressources
● https://martijnvanlambalgen.wordpress.com/2015/10/18/automating-your-vulnerability-scan-with-owasp-zap/
● https://www.securify.nl/blog/SFY20150303/automating_security_tests_using_owasp_zap_and_jenkins.html
● https://tools.pentestbox.org/
● https://www.owasp.org/index.php/OWASP_Vulnerable_Web_Applications_Directory_Project
● http://connect.ed-diamond.com/MISC/MISC-087/Pourquoi-inclure-la-securite-dans-votre-pipeline-DevOps
● https://www.owasp.org/index.php/Automated_Audit_using_SQLMap
● https://myexploit.wordpress.com/information-gathering-sqlmap/
● https://insights.sei.cmu.edu/devops/2016/01/adding-security-to-your-devops-pipeline.html
● https://www.slideshare.net/wickett/pragmatic-security-and-rugged-devops-sxsw-2015
● https://es.slideshare.net/StephendeVries2/automating-security-tests-for-continuous-integration
● https://www.drupal.org/docs/8/security/writing-secure-code-for-drupal-8
● https://www.drupal.org/node/101496
● https://www.drupal.org/taxonomy/term/127
● https://www.owasp.org/index.php/How_to_write_insecure_code
● https://es.slideshare.net/StephendeVries2/continuous-and-visible-security-testing-with-bddsecurity
● https://theagileadmin.com/2015/12/03/security-tooling-delivered-by-docker/
Special thanks
● To my company @AgenceStratis, which shares our view of the importance
of opensource culture
● To Mikke Schirén (@mikkdroid) from wunderkraut, which really helped us
with Jenkins 2 configuration during the workshop day
● To Drupal Developer Days Sevilla team for great organization of the event.

More Related Content

PDF
Applications secure by default
PDF
Big problems with big data – Hadoop interfaces security
PPTX
Ten Commandments of Secure Coding
PDF
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
PDF
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
PPTX
Security in PHP - 那些在滲透測試的小技巧
PDF
[ITAS.VN]CheckMarx-CxSuite-Sample result for webgoat5.3rc1
PDF
Art of Web Backdoor - Pichaya Morimoto
Applications secure by default
Big problems with big data – Hadoop interfaces security
Ten Commandments of Secure Coding
Hack Into Drupal Sites (or, How to Secure Your Drupal Site)
An Abusive Relationship with AngularJS by Mario Heiderich - CODE BLUE 2015
Security in PHP - 那些在滲透測試的小技巧
[ITAS.VN]CheckMarx-CxSuite-Sample result for webgoat5.3rc1
Art of Web Backdoor - Pichaya Morimoto

What's hot (20)

PDF
Java Security Manager Reloaded - Devoxx 2014
PDF
Java Security Manager Reloaded - jOpenSpace Lightning Talk
PDF
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
PPTX
Owasp web application security trends
ODP
Secure coding in C#
PPTX
Vulnerabilities in data processing levels
PDF
Ekoparty 2017 - The Bug Hunter's Methodology
KEY
DVWA BruCON Workshop
PPT
Logical Attacks(Vulnerability Research)
PPTX
DVWA(Damn Vulnerabilities Web Application)
PDF
Bug Bounty Hunter Methodology - Nullcon 2016
PPTX
Decompiling Android
PPS
Hacking Client Side Insecurities
PDF
Entity provider selection confusion attacks in JAX-RS applications
PDF
Password Security
PPTX
關於SQL Injection的那些奇技淫巧
PDF
SecLists @ BlackHat Arsenal 2015
PPT
На страже ваших денег и данных
PDF
Внедрение SDLC в боевых условиях / Егор Карбутов (Digital Security)
PDF
Meetup mini conférences AFUP Paris Deezer Janvier 2017
Java Security Manager Reloaded - Devoxx 2014
Java Security Manager Reloaded - jOpenSpace Lightning Talk
How to Shot Web - Jason Haddix at DEFCON 23 - See it Live: Details in Descrip...
Owasp web application security trends
Secure coding in C#
Vulnerabilities in data processing levels
Ekoparty 2017 - The Bug Hunter's Methodology
DVWA BruCON Workshop
Logical Attacks(Vulnerability Research)
DVWA(Damn Vulnerabilities Web Application)
Bug Bounty Hunter Methodology - Nullcon 2016
Decompiling Android
Hacking Client Side Insecurities
Entity provider selection confusion attacks in JAX-RS applications
Password Security
關於SQL Injection的那些奇技淫巧
SecLists @ BlackHat Arsenal 2015
На страже ваших денег и данных
Внедрение SDLC в боевых условиях / Егор Карбутов (Digital Security)
Meetup mini conférences AFUP Paris Deezer Janvier 2017
Ad

Similar to DDD17 - Web Applications Automated Security Testing in a Continuous Delivery Pipeline (20)

PPTX
Anatomy of a Drupal Hack - TechKnowFile 2014
PDF
Applications secure by default
PDF
OWASP SF - Reviewing Modern JavaScript Applications
PDF
Slides
 
PDF
Romulus OWASP
PPTX
SSRF For Bug Bounties
PDF
Thick Application Penetration Testing: Crash Course
PPTX
OWASP ZAP Workshop for QA Testers
PPTX
Top Ten Java Defense for Web Applications v2
PDF
Web Security - Introduction v.1.3
PDF
Web Security - Introduction
PDF
OSCP Preparation Guide @ Infosectrain
PDF
Pragmatic Pipeline Security
PPTX
Detection of webshells in compromised perimeter assets using ML algorithms
PDF
Whatever it takes - Fixing SQLIA and XSS in the process
PDF
Real World Application Threat Modelling By Example
ODP
Drupal Security Hardening
ODP
Drupal Security Hardening
PDF
Android application security testing
PPTX
RSA Conference 2010 San Francisco
Anatomy of a Drupal Hack - TechKnowFile 2014
Applications secure by default
OWASP SF - Reviewing Modern JavaScript Applications
Slides
 
Romulus OWASP
SSRF For Bug Bounties
Thick Application Penetration Testing: Crash Course
OWASP ZAP Workshop for QA Testers
Top Ten Java Defense for Web Applications v2
Web Security - Introduction v.1.3
Web Security - Introduction
OSCP Preparation Guide @ Infosectrain
Pragmatic Pipeline Security
Detection of webshells in compromised perimeter assets using ML algorithms
Whatever it takes - Fixing SQLIA and XSS in the process
Real World Application Threat Modelling By Example
Drupal Security Hardening
Drupal Security Hardening
Android application security testing
RSA Conference 2010 San Francisco
Ad

More from Fedir RYKHTIK (10)

PDF
TYPO3 as Mobile Application Management System
PDF
Intro docker
PDF
Monolithic installs VS single responsibilities networks
PDF
Building websites with TYPO3 Neos
PDF
StealMyData App
PDF
DevOps for TYPO3 Teams and Projects
PDF
Raspberry PI pour les agents secrets
PDF
Vagrant
PDF
TYPO3 as Things Management System
PDF
Comparision of CMS : Improving TYPO3 functionality
TYPO3 as Mobile Application Management System
Intro docker
Monolithic installs VS single responsibilities networks
Building websites with TYPO3 Neos
StealMyData App
DevOps for TYPO3 Teams and Projects
Raspberry PI pour les agents secrets
Vagrant
TYPO3 as Things Management System
Comparision of CMS : Improving TYPO3 functionality

Recently uploaded (20)

PPTX
Cloud computing and distributed systems.
PDF
cuic standard and advanced reporting.pdf
PPTX
A Presentation on Artificial Intelligence
PDF
Approach and Philosophy of On baking technology
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PPTX
Spectroscopy.pptx food analysis technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
gpt5_lecture_notes_comprehensive_20250812015547.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Empathic Computing: Creating Shared Understanding
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
Machine learning based COVID-19 study performance prediction
PPTX
MYSQL Presentation for SQL database connectivity
PDF
Unlocking AI with Model Context Protocol (MCP)
PPTX
Machine Learning_overview_presentation.pptx
Cloud computing and distributed systems.
cuic standard and advanced reporting.pdf
A Presentation on Artificial Intelligence
Approach and Philosophy of On baking technology
Mobile App Security Testing_ A Comprehensive Guide.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
The AUB Centre for AI in Media Proposal.docx
Spectroscopy.pptx food analysis technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
gpt5_lecture_notes_comprehensive_20250812015547.pdf
Advanced methodologies resolving dimensionality complications for autism neur...
Chapter 3 Spatial Domain Image Processing.pdf
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Empathic Computing: Creating Shared Understanding
Spectral efficient network and resource selection model in 5G networks
Assigned Numbers - 2025 - Bluetooth® Document
Machine learning based COVID-19 study performance prediction
MYSQL Presentation for SQL database connectivity
Unlocking AI with Model Context Protocol (MCP)
Machine Learning_overview_presentation.pptx

DDD17 - Web Applications Automated Security Testing in a Continuous Delivery Pipeline

  • 1. Web Applications Automated Security Testing in a Continuous Delivery Pipeline At #DrupalDevDaysSeville by @FedirFr
  • 2. About this workshop ● Duration 2 hours ● 100% open source powered ● Intermediate technical level required ● Oriented Developers / QA / Operations / CTO / ... ● Interactive, study-oriented ...
  • 3. Workshop content ● Theoretical part ● Introduction to Web security ○ Major security risks ○ Pentesting types ● Insecure code ● Drupalxploitable project ● Practical part ● Vulnerable site create / study ● Manual security testing with scanners ● Manual security testing using Zed Attack Proxy GUI ● Automated security testing
  • 6. Pentesting methods - Black-box ● We don't know what is inside ● Testing as an external user
  • 7. Pentesting methods - Grey-box ● We have advanced access to the project
  • 8. Pentesting methods - White-box ● We know all about the project ● We have the access to the project code
  • 10. Manual Penetration Testing with Proxy Web browser Attack Proxy Target
  • 11. Automating Penetration Testing Web browser Attack Proxy Target Security Framework CI Bugtraceker
  • 12. Classical continuous delivery model - https://en.wikipedia.org/wiki/Continuous_delivery
  • 13. How to write (in)secure code for Drupal 8
  • 14. Current situation for Drupal 8 ● https://www.drupal.org/docs/8/security/writing-secure-code-for-drupal-8 a. Sanitizing on output to avoid Cross Site Scripting (XSS) attacks : t(), Html::escape Xss::filter() or Xss::filterAdmin() b. Checking URLs UrlHelper::stripDangerousProtocols(), UrlHelper::filterBadProtocol(), SafeMarkup::format(). c. Use the database abstraction layer to avoid SQL injection attacks
  • 15. Bad code example - SQL Injection db_query('SELECT foo FROM {table} t WHERE t.name = '. $_GET['user']); Exploit example : https://www.exploit-db.com/exploits/34993/
  • 16. Bad code example - XSS exploits - --- modules/system/system.admin.inc 2013-04-03 17:29:52.000000000 -0400 +++ modules/system/system.admin.inc 2013-08-07 10:47:29.277279676 -0400 @@ -979,10 +979,10 @@ function _system_modules_build_row($info ); // Set the basic properties. $form['name'] = array( - - '#markup' => $info['name'], + '#markup' => check_plain($info['name']), ); $form['description'] = array( - - '#markup' => t($info['description']), + '#markup' => t("@desc", array('@desc' => $info['description'])), ); $form['version'] = array( '#markup' => $info['version'], http://seclists.org/fulldisclosure/2013/Aug/158
  • 17. There are much more risks ... SQL, HTML, iFrame, SSI, OS Command, PHP, XML, XPath, LDAP, Host Header and SMTP injections Cross-Site Scripting (XSS), Cross-Site Tracing (XST) and Cross-Site Request Forgery (CSRF) AJAX and Web Services issues (jQuery/JSON/XML/SOAP/WSDL) Authentication, authorization and session issues, file upload flaws and backdoor files Arbitrary file access, directory traversals, local and remote file inclusions (LFI/RFI) Configuration issues: Man-in-the-Middle, cross-domain policy files, information disclosures,... HTTP parameter pollution, HTTP response splitting and HTTP verb tampering Insecure DistCC, FTP, NTP, Samba, SNMP, VNC and WebDAV configurations HTML5 ClickJacking, Cross-Origin Resource Sharing (CORS) and web storage issues XML External Entity attacks (XXE) and Server Side Request Forgery (SSRF) Heartbleed and Shellshock vulnerability (OpenSSL), Denial-of-Service (DoS) attacks Parameter tampering, cookie and password reset poisoning ...
  • 19. About Drupalxploitable ● Purposefully vulnerables Drupal installation ● Basically : “a very crappy Drupal site” ● Open source (github)
  • 20. Existing projects in PHP world Damn Vulnerable Web Application (DVWA) http://www.dvwa.co.uk/ Mutillidae http://www.irongeek.com/i.php?page=mutillidae/mutillidae-deliberately-vulnerable-php-owasp-top-10 WebGoatPHP https://github.com/shivamdixit/WebGoatPHP buggy web application http://www.itsecgames.com/
  • 21. And even standalone distribution Metasploitable https://sourceforge.net/projects/metasploitable/
  • 23. Used infrastructure ● Virtualbox ○ Ubuntu 16.04 LTS server 64 bit ○ Jenkins CI ○ OWASP ZAP, sqlmap ○ Drupalxploitable vulnerable site
  • 24. SSH Access from host by 2222 port (mapped to 22) ssh drupal@127.0.0.1 -p 2222 root / password Jenkins Access from the host: http://127.0.0.1:8180/ Internal VM access: http://127.0.0.1:8080/ Admin credentials : admin / password Drupal / Apache Access from the host: http://127.0.0.1:8280/ Internal VM access: http://127.0.0.1/ Admin credentials : drupal / drupal Virtualbox - Services description
  • 25. sqlmap python sqlmap.py -v 2 --url=http://127.0.0.1/user/ --user-agent=SQLMAP --delay=1 --retries=2 --keep-alive --threads=5 --batch --dbms=MySQL --os=Linux --level=5 --risk=2 --banner --is-dba --dbs --tables --technique=BEUST -s /tmp/scan_report.txt --flush-session -t /tmp/scan_trace.txt --fresh-queries
  • 26. CMSmap python cmsmap.py -t http://127.0.0.1 -f D https://github.com/Dionach/CMSmap
  • 27. droopescan droopescan scan drupal -u http://127.0.0.1/ -t 8 https://github.com/droope/droopescan
  • 31. OWASP ZAP - Simple scan zap-cli quick-scan --self-contained --start-options '-config api.disablekey=true' http://127.0.0.1/ zap-cli --api-key coeoobt6fof9k4g3iajshtnp7v quick-scan --self-contained --spider -r http://127.0.0.1/ * API key could be found in ~/.ZAP/config.xml of current user.
  • 32. OWASP ZAP - Simple scan with ZAPR zapr --debug --summary http://127.0.0.1
  • 33. OWASP ZAP - Running as a daemon /opt/zaproxy/zap.sh -daemon -host 0.0.0.0 -port 8480 Also, Docker usage possible : https://github.com/zaproxy/zaproxy/wiki/Docker
  • 34. OWASP ZAP - Plugins management Install all plugins, take some time : su jenkins /opt/zaproxy/zap.sh -daemon -host 0.0.0.0 -port 8480 -addoninstallall Install selected plugin : su jenkins /opt/zaproxy/zap.sh -daemon -host 0.0.0.0 -port 8480 -addoninstall exportreport * Plugins will be installed in the ~/.ZAP folder of user, who launches ZAP. ** Plugins keys could be found here : https://github.com/zaproxy/zap-extensions/releases
  • 35. OWASP ZAP https://github.com/zaproxy/zaproxy/wiki/Docker zap.sh -daemon -host 0.0.0.0 -port 8480 zap-x.sh -daemon -host 0.0.0.0 -port 8080 zap-cli quick-scan --self-contained --start-options '-config api.disablekey=true' http://target
  • 36. Configure Jenkins CI security project
  • 37. Ubuntu server VM Jenkins CI Server Drupalxploitable Owasp ZED Attack Proxy Report results Run security scan Drupal automated security testing model
  • 38. Jenkins - Plugins used ● Official OWASP ZAP Jenkins Plugin ● Environment Injector Plugin
  • 39. Jenkins - OWASP ZAP Plugin - Configuration https://wiki.jenkins-ci.org/display/JENKINS/ZAProxy+Plugin
  • 40. Ressources ● https://martijnvanlambalgen.wordpress.com/2015/10/18/automating-your-vulnerability-scan-with-owasp-zap/ ● https://www.securify.nl/blog/SFY20150303/automating_security_tests_using_owasp_zap_and_jenkins.html ● https://tools.pentestbox.org/ ● https://www.owasp.org/index.php/OWASP_Vulnerable_Web_Applications_Directory_Project ● http://connect.ed-diamond.com/MISC/MISC-087/Pourquoi-inclure-la-securite-dans-votre-pipeline-DevOps ● https://www.owasp.org/index.php/Automated_Audit_using_SQLMap ● https://myexploit.wordpress.com/information-gathering-sqlmap/ ● https://insights.sei.cmu.edu/devops/2016/01/adding-security-to-your-devops-pipeline.html ● https://www.slideshare.net/wickett/pragmatic-security-and-rugged-devops-sxsw-2015 ● https://es.slideshare.net/StephendeVries2/automating-security-tests-for-continuous-integration ● https://www.drupal.org/docs/8/security/writing-secure-code-for-drupal-8 ● https://www.drupal.org/node/101496 ● https://www.drupal.org/taxonomy/term/127 ● https://www.owasp.org/index.php/How_to_write_insecure_code ● https://es.slideshare.net/StephendeVries2/continuous-and-visible-security-testing-with-bddsecurity ● https://theagileadmin.com/2015/12/03/security-tooling-delivered-by-docker/
  • 41. Special thanks ● To my company @AgenceStratis, which shares our view of the importance of opensource culture ● To Mikke Schirén (@mikkdroid) from wunderkraut, which really helped us with Jenkins 2 configuration during the workshop day ● To Drupal Developer Days Sevilla team for great organization of the event.