SlideShare a Scribd company logo
Be Mean to Your Code!
@wickett
Sr. DevOps Engineer
Mentor Graphics,
Embedded Software
Division
CISSP, GWAPT, CCSK,
GSEC, GCFW
james@ruggeddevops.org

ruggeddevops.org
I recognize that my
code will be used in
ways I cannot
anticipate, in ways it
was not designed,
and for longer than it
was ever intended.
Ruggedization Theory
Building solutions to handle
adversity will cause
unintended, positive benefits
that will provide value that
would have been unrealized
otherwise.
"Secondly, our network
 got a lot stronger as a
  result of the LulzSec
        attacks."
-Surviving Lulz: Behind the Scenes of LulzSec @SXSW 2012
                     by CloudFlare team
Security vs. Rugged
• Absence of   • Verification of
  Events         quality
• Cost         • Benefit
• Negative     • Positive
• FUD          • Known values
• Toxic        • Affirming
“[RISK ASSESSMENT] INTRODUCES A
DANGEROUS FALLACY: THAT
STRUCTURED INADEQUACY IS
ALMOST AS GOOD AS ADEQUACY
AND THAT UNDERFUNDED
SECURITY EFFORTS PLUS RISK
MANAGEMENT ARE ABOUT AS
GOOD AS PROPERLY FUNDED
SECURITY WORK” - MICHAL ZALEWSKI
RUGGED




         source: Jessica Allen, http://drbl.in/bgwy
REPEATABLE – NO MANUAL STEPS
RELIABLE - NO DOS HERE
REVIEWABLE – AKA AUDIT
RAPID – FAST TO BUILD, DEPLOY, RESTORE
RESILIENT – AUTOMATED RECONFIGURATION
REDUCED - LIMITED ATTACK SURFACE
Put your code through the Gauntlet
     custom attacks   dirbuster
     metasploit         sqlmap

    fuzzers                nessus

  w3af                            nmap
Put your code through the Gauntlet
     custom attacks   dirbuster
     metasploit         sqlmap

    fuzzers                   nessus

  w3af                            nmap



    Your web app        You
GAUNTLT ALLOWS DEV AND
OPS AND SECURITY TO
COMMUNICATE
feature for nmap:
                     nmap.feature
@run

Feature: Run nmap against a target and pass the value of the hostname from the profile.xml.

Background:
 Given nmap is installed

Scenario:Verify server is available on standard web ports
 Given the hostname in the profile.xml
 When I run nmap against the hostname in the profile on ports 80,443
 Then the output should contain:
  """
  80/tcp open http
  443/tcp open https
  """
feature for nmap:
                    nmap.feature
@run @webserver

Feature: Run nmap against a target and pass the value of the hostname from the
profile.xml.

Background: #optional
 Given nmap is installed

Scenario: Verify server is available on standard web ports
 Given the hostname in the profile.xml
 When I run nmap against the hostname in the profile on ports 80,443
 Then the output should contain:
  """
  80/tcp open http
  443/tcp open https
  """
step definition for nmap:
                 nmap.rb
Given /^nmap is installed$/ do
 steps %{
   When I run `which nmap`
   Then the output should contain:
   """
   nmap
   """
 }
end

When /^I run nmap against the hostname in the profile on ports (d+),(d+)$/ do |arg2, arg3|
 steps %{
   When I run `nmap "#{@hostname}" -p80,443`
 }
end

...
running gauntlt with failing tests
wickett$ gauntlt

@gauntlet @run
Feature: Run nmap against a target and pass the value of the hostname from the profile.xml.

 Background:           # features/nmap/nmap.feature:5
  Given nmap is installed # features/step_definitions/nmap.rb:2

   Scenario:Verify server is available on standard web ports       # features/nmap/nmap.feature:8
    Given the hostname in the profile.xml                       # features/step_definitions/profile.rb:1
    When I run nmap against the hostname in the profile on ports 8080,443 # features/step_definitions/nmap.rb:12
    Then the output should contain:                          # aruba-0.4.11/lib/aruba/cucumber.rb:98
     """
     8080/tcp open http
     443/tcp open https
     """
...

Failing Scenarios:
cucumber features/nmap/nmap.feature:8 # Scenario:Verify server is available on standard web ports

1 scenario (1 failed)
4 steps (1 failed, 3 passed)
0m0.341s
running gauntlt with passing tests
wickett$ gauntlt

@gauntlet @run
Feature: Run nmap against a target and pass the value of the hostname from the profile.xml.

 Background:           # features/nmap/nmap.feature:5
  Given nmap is installed # features/step_definitions/nmap.rb:2

 Scenario:Verify server is available on standard web ports       # features/nmap/nmap.feature:8
  Given the hostname in the profile.xml                       # features/step_definitions/profile.rb:1
  When I run nmap against the hostname in the profile on ports 80,443 # features/step_definitions/nmap.rb:12
  Then the output should contain:                          # aruba-0.4.11/lib/aruba/cucumber.rb:98
   """
   80/tcp open http
   443/tcp open https
   """

1 scenario (1 passed)
4 steps (4 passed)
0m1.117s
HTTPS://GITHUB.COM/THEGAUNTLET/GAUNTLT
gauntlt team:
 James Wickett
  Mani Tadayon
 Roy Rapoport
   Jason Chan
  Matt Tesauro
  Tarek Moussa
 Jeremiah Shirk
  Luis De Leon
   Dan Cornell
    Scott Muc
Join Us

• github > http://bit.ly/gauntlt_repo
• google group > http://bit.ly/gauntlt_group
• twitter: @gauntlt

More Related Content

PDF
Brining Harmony between Dev and Ops and Security Teams using Gauntlt at ISC2 ...
PDF
Be Mean to Your Code - OWASP San Antonio
PDF
Rugged by example with Gauntlt (Hacker Headshot)
PDF
Be Mean to your Code with Gauntlt #txlf 2013
PPTX
Advanced Weapons Training for the Empire
PDF
Gauntlt Rugged By Example
PPTX
Dhcp security #netseckh
PDF
Cracking Wep And Wpa Wireless Networks
Brining Harmony between Dev and Ops and Security Teams using Gauntlt at ISC2 ...
Be Mean to Your Code - OWASP San Antonio
Rugged by example with Gauntlt (Hacker Headshot)
Be Mean to your Code with Gauntlt #txlf 2013
Advanced Weapons Training for the Empire
Gauntlt Rugged By Example
Dhcp security #netseckh
Cracking Wep And Wpa Wireless Networks

What's hot (18)

PDF
Gauntlt: Go Ahead, Be Mean to your Code
PDF
Penetration Testing Resource Guide
PPTX
lightning talk proposal
PDF
DDoS: Practical Survival Guide
 
ODP
FOSDEM 2012: Practical implementation of promise theory in CFEngine
PDF
PPTX
Dev Talk: Event Manipulation and Testing
PDF
Mobile Api and Caching
PDF
Defcon 29 Adversary Village: PurpleSharp - Automated Adversary Simulation
PPTX
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
PPT
Full Web Stack Security
PDF
Defcon 27 - Writing custom backdoor payloads with C#
KEY
Deploying Plack Web Applications: OSCON 2011
PDF
bivou.ac
PDF
Monitoring a Vault and Consul cluster - 24th May 2018
PDF
BlackHat Arsenal 2021 : PurpleSharp - Active Directory Attack Simulations
PDF
Us 17-krug-hacking-severless-runtimes
PDF
Multiple django applications on a single server with nginx
Gauntlt: Go Ahead, Be Mean to your Code
Penetration Testing Resource Guide
lightning talk proposal
DDoS: Practical Survival Guide
 
FOSDEM 2012: Practical implementation of promise theory in CFEngine
Dev Talk: Event Manipulation and Testing
Mobile Api and Caching
Defcon 29 Adversary Village: PurpleSharp - Automated Adversary Simulation
Nagios Conference 2014 - Rob Hassing - How To Maintain Over 20 Monitoring App...
Full Web Stack Security
Defcon 27 - Writing custom backdoor payloads with C#
Deploying Plack Web Applications: OSCON 2011
bivou.ac
Monitoring a Vault and Consul cluster - 24th May 2018
BlackHat Arsenal 2021 : PurpleSharp - Active Directory Attack Simulations
Us 17-krug-hacking-severless-runtimes
Multiple django applications on a single server with nginx
Ad

Viewers also liked (7)

PDF
Adversity: Good for software
PDF
Coding Secure Infrastructure in the Cloud using the PIE framework
PDF
Dev Tooling for your Technohipster Startup using aws, docker, tmux, vim & ope...
PDF
DevOps for the Discouraged
PDF
New Farming Methods in the Epistemological Wasteland of Application Security
PDF
Serverless Security: Are you ready for the Future?
PDF
Tyranny of the SLA
Adversity: Good for software
Coding Secure Infrastructure in the Cloud using the PIE framework
Dev Tooling for your Technohipster Startup using aws, docker, tmux, vim & ope...
DevOps for the Discouraged
New Farming Methods in the Epistemological Wasteland of Application Security
Serverless Security: Are you ready for the Future?
Tyranny of the SLA
Ad

Similar to Be Mean to Your Code (20)

PDF
Putting Rugged Into your DevOps Toolchain
PDF
Gauntlt Rugged By Example
PDF
Be Mean to Your Code - DevOps Days Austin 2013
PDF
Security testing with gauntlt
PDF
Rugged Driven Development with Gauntlt
PPTX
BSides_Charm2015_Info sec hunters_gathers
PPTX
DC612 Day - Hands on Penetration Testing 101
PDF
Run your code through the Gauntlt
PDF
Network Vulnerabilities And Cyber Kill Chain Essay
PDF
Rugged DevOps: Bridging Security and DevOps
PDF
CSEC 610 Individual Assignment Essay
PPTX
N map presentation
PDF
Network Penetration Testing Toolkit - Nmap, Netcat, and Metasploit Basics
PPTX
Network Penetration Testing
PPT
Security & ethical hacking p2
PDF
Rugged Software Using Rugged Driven Development
PPTX
Web hacking 1.0
DOCX
This Assignment consists of Amazon Web services
PPT
Security & ethical hacking
PPTX
G3t R00t at IUT
Putting Rugged Into your DevOps Toolchain
Gauntlt Rugged By Example
Be Mean to Your Code - DevOps Days Austin 2013
Security testing with gauntlt
Rugged Driven Development with Gauntlt
BSides_Charm2015_Info sec hunters_gathers
DC612 Day - Hands on Penetration Testing 101
Run your code through the Gauntlt
Network Vulnerabilities And Cyber Kill Chain Essay
Rugged DevOps: Bridging Security and DevOps
CSEC 610 Individual Assignment Essay
N map presentation
Network Penetration Testing Toolkit - Nmap, Netcat, and Metasploit Basics
Network Penetration Testing
Security & ethical hacking p2
Rugged Software Using Rugged Driven Development
Web hacking 1.0
This Assignment consists of Amazon Web services
Security & ethical hacking
G3t R00t at IUT

More from James Wickett (20)

PDF
A Pragmatic Union: Security and SRE
PDF
A Way to Think about DevSecOps: MEASURE
PDF
The Security, DevOps, and Chaos Playbook to Change the World
PDF
Pragmatic Pipeline Security
PDF
A Tale of Woe, Chaos, and Business
PDF
A DevSecOps Tale of Business, Engineering, and People
PDF
The New Ways of DevSecOps - The Secure Dev 2019
PDF
NewOps Days 2019: The New Ways of Chaos, Security, and DevOps
PDF
The New Ways of Chaos, Security, and DevOps
PDF
DevOpsDays Austin: Security in the FaaS Lane
PDF
The Seven Habits of the Highly Effective DevSecOp
PDF
Serverless Security: A How-to Guide @ SnowFROC 2019
PDF
Release Your Inner DevSecOp
PDF
Security in the FaaS Lane
PDF
The New Security Playbook: DevSecOps
PDF
The Emergent Cloud Security Toolchain for CI/CD
PDF
Adversary Driven Defense in the Real World
PDF
The DevSecOps Builder’s Guide to the CI/CD Pipeline
PDF
DevSecOps and the CI/CD Pipeline
PDF
The State of DevSecOps in 2018
A Pragmatic Union: Security and SRE
A Way to Think about DevSecOps: MEASURE
The Security, DevOps, and Chaos Playbook to Change the World
Pragmatic Pipeline Security
A Tale of Woe, Chaos, and Business
A DevSecOps Tale of Business, Engineering, and People
The New Ways of DevSecOps - The Secure Dev 2019
NewOps Days 2019: The New Ways of Chaos, Security, and DevOps
The New Ways of Chaos, Security, and DevOps
DevOpsDays Austin: Security in the FaaS Lane
The Seven Habits of the Highly Effective DevSecOp
Serverless Security: A How-to Guide @ SnowFROC 2019
Release Your Inner DevSecOp
Security in the FaaS Lane
The New Security Playbook: DevSecOps
The Emergent Cloud Security Toolchain for CI/CD
Adversary Driven Defense in the Real World
The DevSecOps Builder’s Guide to the CI/CD Pipeline
DevSecOps and the CI/CD Pipeline
The State of DevSecOps in 2018

Recently uploaded (20)

DOC
UND毕业证学历认证,阿德勒大学毕业证存档可查的
PDF
Collective Mining | Corporate Presentation - August 2025
PDF
Collective Mining | Corporate Presentation - August 2025
PDF
GROUP 1 OM_CHAPTER 3_FORECASTING (1).pdf
PDF
Step-by-Step Guide to Buy Aged Facebook Accounts in the USA
PDF
Top Investment Opportunities in Nepal (1).pdf
PPTX
opinion fact prediction, biasness, vested interest
PDF
Collective Mining | Corporate Presentation - August 2025
PDF
Collective Mining | Corporate Presentation - August 2025
PDF
The-Importance-of-Mutual-Funds-in-Your-Financial-Life (1).pdf
PPTX
opinion fact prediction, value judgement
DOCX
748028485-Matatag-Curriculum-Map-English-7-First-Quarter.docx
PPTX
ICT_Strategy_SMB_vfvvfvfvfvfvfuLean.pptx
PPTX
network revitalization at xime alumini networking
PPTX
International relations individual report
PPTX
Individual report of global perspective.
PPT
275505080-Excitation-System FRWEFAAG.ppt
PDF
Pointers-in-Writing-a-Draft-of-a-Short-Literary-Piece-1.pdf
PDF
Corporate Finance, 12th Edition, Stephen Ross, Randolph Westerfield, Jeffrey ...
PDF
Buy Verified Chime Accounts - Lori Donato's blo.pdf
UND毕业证学历认证,阿德勒大学毕业证存档可查的
Collective Mining | Corporate Presentation - August 2025
Collective Mining | Corporate Presentation - August 2025
GROUP 1 OM_CHAPTER 3_FORECASTING (1).pdf
Step-by-Step Guide to Buy Aged Facebook Accounts in the USA
Top Investment Opportunities in Nepal (1).pdf
opinion fact prediction, biasness, vested interest
Collective Mining | Corporate Presentation - August 2025
Collective Mining | Corporate Presentation - August 2025
The-Importance-of-Mutual-Funds-in-Your-Financial-Life (1).pdf
opinion fact prediction, value judgement
748028485-Matatag-Curriculum-Map-English-7-First-Quarter.docx
ICT_Strategy_SMB_vfvvfvfvfvfvfuLean.pptx
network revitalization at xime alumini networking
International relations individual report
Individual report of global perspective.
275505080-Excitation-System FRWEFAAG.ppt
Pointers-in-Writing-a-Draft-of-a-Short-Literary-Piece-1.pdf
Corporate Finance, 12th Edition, Stephen Ross, Randolph Westerfield, Jeffrey ...
Buy Verified Chime Accounts - Lori Donato's blo.pdf

Be Mean to Your Code

  • 1. Be Mean to Your Code!
  • 2. @wickett Sr. DevOps Engineer Mentor Graphics, Embedded Software Division CISSP, GWAPT, CCSK, GSEC, GCFW james@ruggeddevops.org ruggeddevops.org
  • 3. I recognize that my code will be used in ways I cannot anticipate, in ways it was not designed, and for longer than it was ever intended.
  • 4. Ruggedization Theory Building solutions to handle adversity will cause unintended, positive benefits that will provide value that would have been unrealized otherwise.
  • 5. "Secondly, our network got a lot stronger as a result of the LulzSec attacks." -Surviving Lulz: Behind the Scenes of LulzSec @SXSW 2012 by CloudFlare team
  • 6. Security vs. Rugged • Absence of • Verification of Events quality • Cost • Benefit • Negative • Positive • FUD • Known values • Toxic • Affirming
  • 7. “[RISK ASSESSMENT] INTRODUCES A DANGEROUS FALLACY: THAT STRUCTURED INADEQUACY IS ALMOST AS GOOD AS ADEQUACY AND THAT UNDERFUNDED SECURITY EFFORTS PLUS RISK MANAGEMENT ARE ABOUT AS GOOD AS PROPERLY FUNDED SECURITY WORK” - MICHAL ZALEWSKI
  • 8. RUGGED source: Jessica Allen, http://drbl.in/bgwy
  • 9. REPEATABLE – NO MANUAL STEPS RELIABLE - NO DOS HERE REVIEWABLE – AKA AUDIT RAPID – FAST TO BUILD, DEPLOY, RESTORE RESILIENT – AUTOMATED RECONFIGURATION REDUCED - LIMITED ATTACK SURFACE
  • 10. Put your code through the Gauntlet custom attacks dirbuster metasploit sqlmap fuzzers nessus w3af nmap
  • 11. Put your code through the Gauntlet custom attacks dirbuster metasploit sqlmap fuzzers nessus w3af nmap Your web app You
  • 12. GAUNTLT ALLOWS DEV AND OPS AND SECURITY TO COMMUNICATE
  • 13. feature for nmap: nmap.feature @run Feature: Run nmap against a target and pass the value of the hostname from the profile.xml. Background: Given nmap is installed Scenario:Verify server is available on standard web ports Given the hostname in the profile.xml When I run nmap against the hostname in the profile on ports 80,443 Then the output should contain: """ 80/tcp open http 443/tcp open https """
  • 14. feature for nmap: nmap.feature @run @webserver Feature: Run nmap against a target and pass the value of the hostname from the profile.xml. Background: #optional Given nmap is installed Scenario: Verify server is available on standard web ports Given the hostname in the profile.xml When I run nmap against the hostname in the profile on ports 80,443 Then the output should contain: """ 80/tcp open http 443/tcp open https """
  • 15. step definition for nmap: nmap.rb Given /^nmap is installed$/ do steps %{ When I run `which nmap` Then the output should contain: """ nmap """ } end When /^I run nmap against the hostname in the profile on ports (d+),(d+)$/ do |arg2, arg3| steps %{ When I run `nmap "#{@hostname}" -p80,443` } end ...
  • 16. running gauntlt with failing tests wickett$ gauntlt @gauntlet @run Feature: Run nmap against a target and pass the value of the hostname from the profile.xml. Background: # features/nmap/nmap.feature:5 Given nmap is installed # features/step_definitions/nmap.rb:2 Scenario:Verify server is available on standard web ports # features/nmap/nmap.feature:8 Given the hostname in the profile.xml # features/step_definitions/profile.rb:1 When I run nmap against the hostname in the profile on ports 8080,443 # features/step_definitions/nmap.rb:12 Then the output should contain: # aruba-0.4.11/lib/aruba/cucumber.rb:98 """ 8080/tcp open http 443/tcp open https """ ... Failing Scenarios: cucumber features/nmap/nmap.feature:8 # Scenario:Verify server is available on standard web ports 1 scenario (1 failed) 4 steps (1 failed, 3 passed) 0m0.341s
  • 17. running gauntlt with passing tests wickett$ gauntlt @gauntlet @run Feature: Run nmap against a target and pass the value of the hostname from the profile.xml. Background: # features/nmap/nmap.feature:5 Given nmap is installed # features/step_definitions/nmap.rb:2 Scenario:Verify server is available on standard web ports # features/nmap/nmap.feature:8 Given the hostname in the profile.xml # features/step_definitions/profile.rb:1 When I run nmap against the hostname in the profile on ports 80,443 # features/step_definitions/nmap.rb:12 Then the output should contain: # aruba-0.4.11/lib/aruba/cucumber.rb:98 """ 80/tcp open http 443/tcp open https """ 1 scenario (1 passed) 4 steps (4 passed) 0m1.117s
  • 19. gauntlt team: James Wickett Mani Tadayon Roy Rapoport Jason Chan Matt Tesauro Tarek Moussa Jeremiah Shirk Luis De Leon Dan Cornell Scott Muc
  • 20. Join Us • github > http://bit.ly/gauntlt_repo • google group > http://bit.ly/gauntlt_group • twitter: @gauntlt