SlideShare a Scribd company logo
8-­‐12	
  May,	
  2017
Monitoring	
  Attack	
  Surface	
  and	
  Integrating	
  
Security	
  into	
  DevOps	
  Pipelines
Dan	
  Cornell,	
  CTO	
  Denim	
  Group
Agenda
• Background
• Importance	
  of	
  Attack	
  Surface
• What	
  Does	
  Attack	
  Surface	
  Have	
  to	
  Do	
  with	
  DevOps?
• Hybrid	
  Analysis	
  Mapping	
  (HAM)	
  Background
• Installation	
  Instructions
• Use	
  Cases
• Questions
My	
  Background
• Dan	
  Cornell,	
  founder	
  and	
  CTO	
  of	
  
Denim	
  Group
• Software	
  developer	
  by	
  background	
  
(Java,	
  .NET,	
  etc)
• OWASP	
  San	
  Antonio
3
Denim	
  Group	
  Background
• Secure	
  software	
  services	
  and	
  products	
  company
– Builds	
  secure	
  software
– Helps	
  organizations	
  assess	
  and	
  mitigate	
  risk	
  of	
  in-­‐house	
  developed	
  and	
  third	
  party	
  
software
– Provides	
  classroom	
  training	
  and	
  e-­‐Learning	
  so	
  clients	
  can	
  build	
  software	
  securely
• Software-­‐centric	
  view	
  of	
  application	
  security
– Application	
  security	
  experts	
  are	
  practicing	
  developers
– Development	
  pedigree	
  translates	
  to	
  rapport	
  with	
  development	
  managers	
  	
  	
  
– Business	
  impact:	
  shorter	
  time-­‐to-­‐fix	
  application	
  vulnerabilities	
  
• Culture	
  of	
  application	
  security	
  innovation	
  and	
  contribution
– Develops	
  open	
  source	
  tools	
  to	
  help	
  clients	
  mature	
  their	
  software	
  security	
  programs
• Remediation	
  Resource	
  Center,	
  ThreadFix
– OWASP	
  national	
  leaders	
  &	
  regular	
  speakers	
  at	
  RSA,	
  SANS,	
  OWASP,	
  ISSA,	
  CSI
– World	
  class	
  alliance	
  partners	
  accelerate	
  innovation	
  to	
  solve	
  client	
  problems
4
OWASP	
  ZAP
• Open	
  source	
  web	
  proxy	
  and	
  dynamic	
  
application	
  security	
  testing	
  tool
• https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
Example	
  Codebases
• BodgeIt Store
– Example	
  vulnerable	
  web	
  application
– https://github.com/psiinon/bodgeit
• Java	
  Spring	
  Petstore
– Example	
  Spring	
  application
– https://github.com/spring-­‐projects/spring-­‐petclinic
• Railsgoat
– Example	
  vulnerable	
  web	
  application
– https://github.com/OWASP/railsgoat
ThreadFix Community	
  Edition
• Application	
  vulnerability	
  management
– And	
  some	
  other	
  stuff
• https://github.com/denimgroup/threadfix
Downloads
• https://dl.dropboxusercontent.com/u/737351/endpoints-­‐json.jar
• https://dl.dropboxusercontent.com/u/737351/threadfix-­‐release-­‐2.zap
• https://github.com/denimgroup/threadfix-­‐examples/tree/master/web_app_attack_surface
Importance	
  of	
  Attack	
  Surface
Importance	
  of	
  Attack	
  Surface
• This	
  is	
  where	
  an	
  attacker	
  can	
  “reach	
  out	
  and	
  touch”	
  
your	
  application
– Web:	
  Mostly	
  in	
  the	
  HTTP	
  request:	
  URL,	
  parameters,	
  
headers	
  (cookies)
– Mobile,	
  IoT:	
  More	
  complicated
– We	
  will	
  focus	
  on	
  web	
  today
• Target	
  for	
  dynamic	
  testing
– Automated	
  DAST
– Manual	
  assessment/penetration	
  testing
What	
  Does	
  Attack	
  Surface	
  Have	
  to	
  Do	
  
With	
  DevOps?
• If	
  you	
  want	
  your	
  talk	
  to	
  be	
  
accepted,	
  it	
  has	
  to	
  have	
  DevOps	
  
in	
  the	
  title
• Let’s	
  look	
  at	
  what	
  we	
  want	
  from	
  
security	
  in	
  the	
  DevOps	
  pipeline
Security	
  in	
  the	
  DevOps	
  Pipeline
Organizations	
  like	
  Etsy	
  and	
  Netflix	
  
are	
  doing	
  amazing things	
  to	
  secure	
  
apps	
  via	
  their	
  DevOps	
  pipelines
Security	
  in	
  the	
  DevOps	
  Pipeline
• Testing
– Synchronous
– Asynchronous
• Decision
• Reporting
Blog	
  Post:	
  Effective	
  Application	
  Security	
  Testing	
  in	
  
DevOps	
  Pipelines
http://www.denimgroup.com/blog/2016/12/effective-­‐application-­‐security-­‐testing-­‐in-­‐devops-­‐pipelines/
https://www.denimgroup.com/resources/effective-­‐application-­‐security-­‐for-­‐devops/
Focus	
  on	
  Testing	
  in	
  DevOps	
  Pipeline
• Many	
  security	
  tools	
  run	
  too	
  long	
  to	
  include	
  in	
  
many	
  pipeline	
  builds
– Full	
  SAST,	
  DAST
• Security	
  testing	
  also	
  includes	
  manual	
  testing
– Which	
  is	
  way too	
  slow	
  for	
  most	
  pipeline	
  builds
• Tracking	
  attack	
  surface	
  changes	
  over	
  time	
  can	
  
help	
  us:
– Focus	
  testing	
  activities
– Trigger	
  testing	
  activities
Hybrid	
  Analysis	
  Mapping
• Goal:	
  Merge	
  the	
  results	
  of	
  SAST	
  and	
  DAST	
  testing
• Funded	
  via	
  DHS	
  S&T	
  SBIR	
  contracts
• Facilitated	
  the	
  creation	
  of	
  our	
  attack	
  surface	
  
modeling	
  engine
Department	
  of	
  Homeland	
  Security	
  Support
• Currently	
  in	
  Phase	
  2	
  of	
  a	
  DHS	
  S&T	
  CSD	
  SBIR
• Acronyms!
– DHS	
  =	
  Department	
  of	
  Homeland	
  Security
– S&T	
  =	
  Directorate	
  of	
  Science	
  and	
  Technology
– CSD	
  =	
  CyberSecurity Division
– SBIR	
  =	
  Small	
  Business	
  Innovation	
  Research
• Geared	
  toward	
  developing	
  new	
  technologies	
  for	
  Federal	
  customers
• Hybrid	
  Analysis	
  Mapping	
  (HAM)
• Technology	
  has	
  been	
  included	
  with	
  ThreadFix
• Has	
  also	
  resulted	
  in	
  some	
  other	
  released	
  components	
  we	
  will	
  talk	
  about	
  today
• Please	
  do	
  not	
  assume	
  this	
  talk	
  is	
  endorsed	
  by	
  DHS
– This	
  is	
  just	
  me	
  talking	
  about	
  what	
  we	
  have	
  done
Hybrid	
  Analysis	
  Mapping	
  (HAM)
• Initial	
  goal:	
  Correlate	
  and	
  merge	
  
results	
  from	
  SAST	
  and	
  DAST
• After	
  we	
  made	
  that	
  work,	
  we	
  
found	
  other	
  stuff	
  we	
  could	
  do	
  
with	
  the	
  technology
Hybrid	
  Analysis	
  Mapping	
  (HAM)
• Determine	
  the	
  feasibility	
  of	
  developing	
  a	
  system	
  that	
  can	
  reliably	
  and	
  
efficiently	
  correlate	
  and	
  merge	
  the	
  results	
  of	
  automated	
  static	
  and	
  
dynamic	
  security	
  scans	
  of	
  web	
  applications.
HP	
  Fortify	
  SCA IBM	
  AppScan
Standard
Dynamic	
  Application	
  Security	
  Testing	
  (DAST)
• Spider	
  to	
  enumerate	
  attack	
  surface
– Crawl	
  the	
  site	
  like	
  Google	
  would
– But	
  with	
  authentication	
  /	
  session	
  detection
• Fuzz	
  to	
  identify	
  vulnerabilities	
  based	
  on	
  analysis	
  of	
  
request/response	
  patterns
– If	
  you	
  send	
  a	
  SQL	
  control	
  character	
  and	
  get	
  a	
  JDBC	
  error	
  message	
  back,	
  
that	
  could	
  indicate	
  a	
  SQL	
  injection	
  vulnerability
• A	
  finding	
  looks	
  like	
  (CWE,	
  relative	
  URL,	
  [entry	
  point])
Static	
  Application	
  Security	
  Testing	
  (SAST)
• Use	
  source	
  or	
  binary	
  to	
  create	
  a	
  model	
  of	
  the	
  application
– Kind	
  of	
  like	
  a	
  compiler	
  or	
  VM
• Perform	
  analysis	
  to	
  identify	
  vulnerabilities	
  and	
  weaknesses
– Data	
  flow,	
  control	
  flow,	
  semantic,	
  etc
• A	
  finding	
  looks	
  like	
  (CWE,	
  code/data	
  flow)
Hybrid	
  Analysis	
  Mapping	
  Sub-­‐Goals
• Standardize	
  vulnerability	
  types
– Settled	
  on	
  MITRE	
  Common	
  Weakness	
  Enumeration	
  (CWE)
• Match	
  dynamic	
  and	
  static	
  locations
– Use	
  knowledge	
  of	
  language/web	
  framework	
  to	
  build	
  attack	
  
surface	
  database
• Improve	
  static	
  parameter	
  parsing
– Parse	
  out	
  of	
  source	
  code	
  to	
  match	
  with	
  DAST	
  result
Information	
  Used
• Source	
  Code
– Git,	
  Subversion,	
  Local	
  Copy
• Framework	
  Type	
  
– Java:	
  JSP,	
  Spring,	
  Struts
– C#:	
  .NET	
  WebForms,	
  .NET	
  MVC
– Ruby:	
  Rails
– PHP:	
  in	
  progress
• Extra	
  information	
  from	
  SAST	
  results	
  (if	
  available)
Unified	
  Endpoint	
  Database
• EndpointQuery
– dynamicPath
– staticPath
– Parameter
– httpMethod
– codePoints [List<CodePoint>]
– informationSourceType
• EndpointDatabase
– findBestMatch(EndpointQuery query):	
  Endpoint
– findAllMatches(EndpointQuery query):	
  Set<Endpoint>
– getFrameworkType():	
  FrameworkType
Merging	
  SAST	
  and	
  DAST	
  Results
• I	
  have	
  a	
  DAST	
  result:
– (“Reflected	
  XSS”,	
  /login.jsp,	
  “username”	
  parameter)
• Query	
  the	
  Endpoint	
  Database:
– Entry	
  point	
  is	
  
com.something.something.LoginController.java,	
  line	
  62
• Search	
  the	
  other	
  findings	
  for	
  SAST	
  results	
  like:
– (“Reflected	
  XSS”,	
  source	
  at	
  
com.something.something.LoginController.java,	
  line	
  62)
• If	
  you	
  find	
  a	
  match	
  – correlate	
  those	
  two	
  findings
• Magic!
That’s	
  Great	
  But	
  I	
  Want	
  More
• So	
  our	
  research	
  produced	
  a	
  successful/valuable	
  outcome
– Hooray
• But	
  – given	
  these	
  data	
  structures,	
  what	
  else	
  can	
  we	
  do?
• From	
  an	
  EndpointDatabase we	
  can:
– Get	
  all of	
  the	
  application’s	
  attack	
  surface
– Map	
  DAST	
  results	
  to	
  a	
  specific	
  line	
  of	
  code
• Given	
  those	
  capabilities	
  we	
  can:
– Pre-­‐seed	
  scanners	
  with	
  attack	
  surface
– Map	
  DAST	
  results	
  to	
  lines	
  of	
  code	
  in	
  a	
  developer	
  IDE
– Map	
  DAST	
  results	
  to	
  lines	
  of	
  code	
  in	
  SonarQube
Final	
  Thoughts	
  on	
  SBIR	
  Work	
  with	
  DHS	
  S&T
• Great	
  use	
  of	
  the	
  SBIR	
  program
– In	
  my	
  humble	
  and	
  totally unbiased	
  opinion
• Proved	
  to	
  be	
  the	
  tipping	
  point	
  to	
  developing	
  HAM
– HAM	
  was	
  interesting,	
  but	
  required	
  material	
  investment
• Research	
  produced	
  a	
  successful	
  outcome	
  (we	
  think)
• We	
  found	
  other	
  things	
  we	
  could	
  do	
  with	
  the	
  technology
• Released	
  much	
  of	
  it	
  open	
  source	
  to	
  increase	
  adoption
Scanner	
  Seeding
• What	
  if	
  we	
  could	
  give	
  the	
  DAST	
  spidering process	
  a	
  head	
  start?
• Pre-­‐seed	
  with	
  all of	
  the	
  attack	
  surface
– Landing	
  pages	
  that	
  link	
  in	
  to	
  the	
  application
– Hidden	
  directories
– Backdoor	
  or	
  “unused”	
  parameters
• Currently	
  have	
  plugins	
  for	
  OWASP	
  ZAP	
  and	
  BurpSuite
– Plugin	
  for	
  IBM	
  Rational	
  AppScan Standard	
  is	
  in	
  progress
https://github.com/denimgroup/threadfix/wiki/Scanner-­‐Plugins
Getting	
  the	
  Plugins
• Main	
  ThreadFix site
– https://github.com/denimgroup/threadfix/
• ThreadFix build	
  instructions
– https://github.com/denimgroup/threadfix/wiki/Development-­‐Environment-­‐Setup
– “Running	
  ThreadFix Without	
  an	
  IDE”
• Download	
  plugins	
  from	
  ThreadFix
Plugin	
  Installation
• OWASP	
  ZAP	
  plugin	
  installation	
  instructions
– https://github.com/denimgroup/threadfix/wiki/Zap-­‐Plugin
• Plugins	
  also	
  available	
  for:
– Portswigger BurpSuite Professional
– IBM	
  Rational	
  AppScan (soon)
Attack	
  Surface	
  Enumeration
• Find	
  all of	
  the	
  attack	
  surface
– URLs
– Parameters	
  that	
  will	
  change	
  application	
  behavior
– Future:	
  Cookies,	
  other	
  HTTP	
  headers
• Why	
  is	
  this	
  a	
  problem?
– Hidden	
  landing	
  pages
– Multi-­‐step	
  processes	
  that	
  automated	
  crawls	
  don’t	
  traverse
– Unknown	
  parameters
– Debug/backdoor	
  parameters	
  (will	
  discuss	
  this	
  further)
• Great	
  for	
  REST	
  APIs	
  support	
  single-­‐page	
  web	
  applications	
  and	
  mobile	
  applications
Attack	
  Surface	
  Enumeration	
  Benefits
• Reduce	
  false	
  negatives	
  from	
  scanners
– Better	
  coverage	
  for	
  standard	
  fuzzing
• Pen	
  test	
  all	
  of	
  the	
  application
Endpoints	
  CLI	
  Notes
• Syntax:	
  java	
  –jar	
  [jar-­‐name].jar	
  /path/to/source
• JAR	
  name	
  will	
  change	
  based	
  on	
  build	
  ID
• After	
  Maven	
  build,	
  can	
  also	
  be	
  found	
  in:	
  $GIT/threadfix/threadfix-­‐cli-­‐
endpoints/target/
• You	
  want	
  the	
  ”-­‐jar-­‐with-­‐dependencies”	
  JAR
• Will	
  output	
  list	
  of	
  HTTP	
  methods,	
  URLs	
  and	
  parameters	
  based	
  on	
  analysis	
  
of	
  the	
  source	
  code
• Attack	
  surface!
• Add	
  “-­‐json”	
  to	
  the	
  end	
  of	
  the	
  command	
  to	
  get	
  output	
  in	
  JSON	
  format
– Easier	
  to	
  manipulate
Command	
  Line	
  Demo
Scanner	
  Attack	
  Surface	
  Seeding	
  Demo
attack_surface_lib.py
• Warning!
• What’s	
  the	
  opposite	
  of	
  ”Pythonic?”
• Race	
  conditions,	
  sloppy	
  file	
  handling,	
  etc
• Possibly	
  even	
  some	
  command	
  injection
– That	
  you	
  can	
  currently	
  exploit	
  from	
  …	
  the	
  command	
  line
– Some	
  mitigations	
  in	
  place,	
  but…
• Please	
  be	
  careful	
  what	
  you	
  attach	
  this	
  to
attack_surface_lib.py
• What	
  does	
  it	
  do?
– Takes	
  JSON	
  output	
  of	
  cli-­‐endpoints
• Creates	
  attack	
  surface	
  tree	
  data	
  structure
• Calculates	
  differences	
  between	
  trees
– Some	
  git utility	
  tasks
• Used	
  as	
  the	
  basis	
  for	
  upcoming	
  examples
• https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/attack_surface_lib.py
Attack	
  Surface	
  Visualization	
  Demo
Code:	
  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/make_d3_tree_json.py
HTML	
  framework:	
  https://github.com/denimgroup/threadfix-­‐examples/tree/master/web_app_attack_surface/html
Attack	
  Surface	
  Comparison	
  Visualization	
  
Demo
Code:	
  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/make_d3_tree_json.py
HTML	
  framework:	
  https://github.com/denimgroup/threadfix-­‐examples/tree/master/web_app_attack_surface/html
Diffing	
  Attack	
  Surface	
  Demo
Code:	
  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/diff_attack_surface_git_commits.py
What	
  About	
  Behavior	
  Changes?
• Identify	
  files	
  that	
  have	
  changed	
  that	
  are	
  
associated	
  with	
  attack	
  surface
• Mark	
  that	
  attack	
  surface	
  as	
  possibly	
  
having	
  changed	
  behavior
• Is	
  this	
  perfect?	
  No.
• Does	
  it	
  provide	
  additional	
  information	
  
with	
  potential	
  value?	
  Yes.
Potential	
  Behavior	
  Modified	
  Demo
Applications	
  for	
  DevOps	
  Pipelines
• Target	
  DAST	
  testing	
  to	
  focus	
  on	
  new	
  attack	
  surface	
  in	
  latest	
  build
– “Run	
  an	
  authenticated	
  ZAP	
  scan	
  against	
  the	
  three	
  new	
  URLs	
  added	
  in	
  the	
  last	
  
commit”
• Set	
  thresholds	
  for	
  when	
  manual	
  assessment/penetration	
  testing	
  is	
  
triggered
– “Schedule	
  a	
  manual	
  penetration	
  test	
  when	
  the	
  attack	
  surface	
  has	
  increased	
  
by	
  10	
  URLs”
– “Schedule	
  a	
  manual	
  penetration	
  test	
  when	
  the	
  attack	
  surface	
  has	
  increased	
  
by	
  5%”
– Focus	
  those	
  efforts	
  on	
  new	
  attack	
  surface
• ChatOps:	
  Attack	
  surface	
  delta	
  notifications	
  on	
  commit
– “Commit	
  beb78c835706efe5d619148b9a8dc9e35ee9572b	
  added attack	
  
surface:	
  /advanced.jsp,	
  /preferenes.jsp”
attacksurface_notifier.py
• Watch	
  a	
  git repository	
  for	
  new	
  commits
• When	
  there	
  are	
  commits,	
  check	
  for	
  attack	
  surface	
  
changes
• On	
  attack	
  surface	
  changes	
  – do	
  stuff
• In	
  production:	
  would	
  be	
  done	
  via	
  CI/CD	
  server
• BUT	
  for	
  demo	
  purposes…
• https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/attacksurface_notifier.py
Attack	
  Surface	
  ChatOps Demo
Code:	
  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/attacksurface_notifier.py
Manual	
  Test	
  JIRA	
  Ticket	
  Demo
Code:	
  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/attacksurface_notifier.py
Differential	
  ZAP	
  Scan	
  Demo
Code:	
  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/attacksurface_notifier.py
Demo	
  Architecture
Scripting	
  Attack	
  Surface	
  Interactions
• [Anywhere]
– Script	
  using	
  endpoints-­‐cli.jar JSON	
  outputs
• That’s	
  most	
  of	
  what	
  we’ve	
  seen	
  here
– Script	
  using	
  JSON	
  output	
  from	
  ThreadFix API
• Can	
  be	
  useful	
  in	
  environments	
  with	
  limited	
  access	
  to	
  source	
  code
• Java:	
  Use	
  endpoints-­‐cli.jar as	
  a	
  library
– We	
  need	
  to	
  do	
  a	
  better	
  job	
  of	
  documenting	
  the	
  APIs
• Jython:	
  Use	
  endpoints-­‐cli.jar as	
  a	
  library
Jython Use	
  of	
  HAM	
  Library	
  Demo
Code:	
  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/jython_endpoints_cli.py
Next	
  Steps
• Expand	
  the	
  model	
  of	
  application	
  attack	
  surface
– Currently:	
  Parameters,	
  HTTP	
  verbs
– Working	
  on:	
  HTTP	
  headers	
  (cookies)
– Future:	
  Other	
  application	
  types:	
  	
  Mobile,	
  IoT
• Better	
  visualization
– More	
  details
– Better	
  granularity
– Track	
  changes	
  over	
  time
• Native	
  integrations:	
  Jenkins,	
  Slack,	
  HipChat,	
  JIRA,	
  etc
– This	
  is	
  very	
  “scripty”	
  right	
  now
Questions	
  /	
  Contact	
  Information
Dan	
  Cornell
Principal	
  and	
  CTO
dan@denimgroup.com
Twitter	
  @danielcornell
(844)	
  572-­‐4400
www.threadfix.it
51

More Related Content

PDF
Create a Unified View of Your Application Security Program – Black Duck Hub a...
PDF
ThreadFix 2.5 Webinar
PDF
Clear AppSec Visibility with AppSpider and ThreadFix
PDF
ThreadFix and SD Elements Unifying Security Requirements and Vulnerability Ma...
PDF
A New View of Your Application Security Program with Snyk and ThreadFix
PDF
Monitoring Application Attack Surface to Integrate Security into DevOps Pipel...
PPTX
Building an AppSec Pipeline: Keeping your program, and your life, sane
PDF
Devops: Security's big opportunity by Peter Chestna
Create a Unified View of Your Application Security Program – Black Duck Hub a...
ThreadFix 2.5 Webinar
Clear AppSec Visibility with AppSpider and ThreadFix
ThreadFix and SD Elements Unifying Security Requirements and Vulnerability Ma...
A New View of Your Application Security Program with Snyk and ThreadFix
Monitoring Application Attack Surface to Integrate Security into DevOps Pipel...
Building an AppSec Pipeline: Keeping your program, and your life, sane
Devops: Security's big opportunity by Peter Chestna

What's hot (20)

PDF
Ast in CI/CD by Ofer Maor
PDF
Security Champions: Pushing Security Expertise to the Edges of Your Organization
PDF
From rogue one to rebel alliance by Peter Chestna
PDF
DevSecCon London 2017: Threat modeling in a CI environment by Steven Wierckx
PDF
A Secure DevOps Journey
PDF
DevSecCon London 2017: How far left do you want to go with security? by Javie...
PDF
DevSecOps - Building Rugged Software
PDF
Application Asset Management with ThreadFix
PPTX
SecDevOps: The New Black of IT
PDF
Security as Code
PDF
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
PDF
OWASP San Antonio Meeting 10/2/20
PPTX
DevSecOps
PPTX
we45 SecDevOps Presentation - ISACA Chennai
PPTX
DevSecOps - It can change your life (cycle)
PDF
we45 - SecDevOps Concept Presentation
PPTX
Simplify Dev with Complicated Security Tools
PDF
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
PDF
Barriers to Container Security and How to Overcome Them
PDF
Legacy-SecDevOps (AppSec Management Debrief)
Ast in CI/CD by Ofer Maor
Security Champions: Pushing Security Expertise to the Edges of Your Organization
From rogue one to rebel alliance by Peter Chestna
DevSecCon London 2017: Threat modeling in a CI environment by Steven Wierckx
A Secure DevOps Journey
DevSecCon London 2017: How far left do you want to go with security? by Javie...
DevSecOps - Building Rugged Software
Application Asset Management with ThreadFix
SecDevOps: The New Black of IT
Security as Code
Optimizing Security Velocity in Your DevSecOps Pipeline at Scale
OWASP San Antonio Meeting 10/2/20
DevSecOps
we45 SecDevOps Presentation - ISACA Chennai
DevSecOps - It can change your life (cycle)
we45 - SecDevOps Concept Presentation
Simplify Dev with Complicated Security Tools
Managing Penetration Testing Programs and Vulnerability Time to Live with Thr...
Barriers to Container Security and How to Overcome Them
Legacy-SecDevOps (AppSec Management Debrief)
Ad

Similar to Monitoring Application Attack Surface and Integrating Security into DevOps Pipelines (20)

PDF
Monitoring Attack Surface to Secure DevOps Pipelines
PDF
The ABCs of Source-Assisted Web Application Penetration Testing With OWASP ZA...
PDF
Hybrid Analysis Mapping: Making Security and Development Tools Play Nice Toge...
PDF
Achieving Software Assurance with Hybrid Analysis Mapping
PDF
Building Your Application Security Data Hub - OWASP AppSecUSA
PDF
DevSecOps: Essential Tooling to Enable Continuous Security(25m ADDO)
PDF
DevSecOps: essential tooling to enable continuous security 2019-09-16
PPTX
Information Security 201
PDF
Security in CI/CD Pipelines: Tips for DevOps Engineers
PDF
The Future of DevSecOps
PDF
ProActive Security
PDF
ProActive Security
PPTX
Skillful scalefull fullstack security in a state of constant flux
PDF
How to adapt the SDLC to the era of DevSecOps
PDF
The ThreadFix Ecosystem: Vendors, Volunteers, and Versions
PPTX
How to Get Started with DevSecOps
ODP
Effective DevSecOps
PPTX
Jason Kent - AppSec Without Additional Tools
PPTX
Vulnerability management and threat detection by the numbers
Monitoring Attack Surface to Secure DevOps Pipelines
The ABCs of Source-Assisted Web Application Penetration Testing With OWASP ZA...
Hybrid Analysis Mapping: Making Security and Development Tools Play Nice Toge...
Achieving Software Assurance with Hybrid Analysis Mapping
Building Your Application Security Data Hub - OWASP AppSecUSA
DevSecOps: Essential Tooling to Enable Continuous Security(25m ADDO)
DevSecOps: essential tooling to enable continuous security 2019-09-16
Information Security 201
Security in CI/CD Pipelines: Tips for DevOps Engineers
The Future of DevSecOps
ProActive Security
ProActive Security
Skillful scalefull fullstack security in a state of constant flux
How to adapt the SDLC to the era of DevSecOps
The ThreadFix Ecosystem: Vendors, Volunteers, and Versions
How to Get Started with DevSecOps
Effective DevSecOps
Jason Kent - AppSec Without Additional Tools
Vulnerability management and threat detection by the numbers
Ad

More from Denim Group (20)

PDF
Long-term Impact of Log4J
PDF
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
PDF
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
PDF
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
PDF
Using Collaboration to Make Application Vulnerability Management a Team Sport
PDF
The As, Bs, and Four Cs of Testing Cloud-Native Applications
PDF
An Updated Take: Threat Modeling for IoT Systems
PPTX
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
PDF
Enabling Developers in Your Application Security Program With Coverity and Th...
PDF
AppSec in a World of Digital Transformation
PDF
The As, Bs, and Four Cs of Testing Cloud-Native Applications
PDF
Enabling Developers in Your Application Security Program With Coverity and Th...
PDF
AppSec in a World of Digital Transformation
PDF
Enumerating Enterprise Attack Surface
PDF
Enumerating Enterprise Attack Surface
PDF
Assessing Business Operations Risk With Unified Vulnerability Management in T...
PDF
An OWASP SAMM Perspective on Serverless Computing
PDF
Optimize Your Security Program with ThreadFix 2.7
PDF
Application Security Testing for a DevOps Mindset
PDF
Reducing Attack Surface in Budget Constrained Environments
Long-term Impact of Log4J
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
Threat Modeling the CI/CD Pipeline to Improve Software Supply Chain Security ...
AppSec Fast and Slow: Your DevSecOps CI/CD Pipeline Isn’t an SSA Program
Using Collaboration to Make Application Vulnerability Management a Team Sport
The As, Bs, and Four Cs of Testing Cloud-Native Applications
An Updated Take: Threat Modeling for IoT Systems
Continuous Authority to Operate (ATO) with ThreadFix – Bringing Commercial In...
Enabling Developers in Your Application Security Program With Coverity and Th...
AppSec in a World of Digital Transformation
The As, Bs, and Four Cs of Testing Cloud-Native Applications
Enabling Developers in Your Application Security Program With Coverity and Th...
AppSec in a World of Digital Transformation
Enumerating Enterprise Attack Surface
Enumerating Enterprise Attack Surface
Assessing Business Operations Risk With Unified Vulnerability Management in T...
An OWASP SAMM Perspective on Serverless Computing
Optimize Your Security Program with ThreadFix 2.7
Application Security Testing for a DevOps Mindset
Reducing Attack Surface in Budget Constrained Environments

Recently uploaded (20)

PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PPTX
Cloud computing and distributed systems.
PDF
NewMind AI Monthly Chronicles - July 2025
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
cuic standard and advanced reporting.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
CIFDAQ's Market Insight: SEC Turns Pro Crypto
Review of recent advances in non-invasive hemoglobin estimation
Understanding_Digital_Forensics_Presentation.pptx
Encapsulation_ Review paper, used for researhc scholars
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Cloud computing and distributed systems.
NewMind AI Monthly Chronicles - July 2025
“AI and Expert System Decision Support & Business Intelligence Systems”
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Unlocking AI with Model Context Protocol (MCP)
Reach Out and Touch Someone: Haptics and Empathic Computing
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
NewMind AI Weekly Chronicles - August'25 Week I
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
20250228 LYD VKU AI Blended-Learning.pptx
The Rise and Fall of 3GPP – Time for a Sabbatical?
Per capita expenditure prediction using model stacking based on satellite ima...
cuic standard and advanced reporting.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Monitoring Application Attack Surface and Integrating Security into DevOps Pipelines

  • 1. 8-­‐12  May,  2017 Monitoring  Attack  Surface  and  Integrating   Security  into  DevOps  Pipelines Dan  Cornell,  CTO  Denim  Group
  • 2. Agenda • Background • Importance  of  Attack  Surface • What  Does  Attack  Surface  Have  to  Do  with  DevOps? • Hybrid  Analysis  Mapping  (HAM)  Background • Installation  Instructions • Use  Cases • Questions
  • 3. My  Background • Dan  Cornell,  founder  and  CTO  of   Denim  Group • Software  developer  by  background   (Java,  .NET,  etc) • OWASP  San  Antonio 3
  • 4. Denim  Group  Background • Secure  software  services  and  products  company – Builds  secure  software – Helps  organizations  assess  and  mitigate  risk  of  in-­‐house  developed  and  third  party   software – Provides  classroom  training  and  e-­‐Learning  so  clients  can  build  software  securely • Software-­‐centric  view  of  application  security – Application  security  experts  are  practicing  developers – Development  pedigree  translates  to  rapport  with  development  managers       – Business  impact:  shorter  time-­‐to-­‐fix  application  vulnerabilities   • Culture  of  application  security  innovation  and  contribution – Develops  open  source  tools  to  help  clients  mature  their  software  security  programs • Remediation  Resource  Center,  ThreadFix – OWASP  national  leaders  &  regular  speakers  at  RSA,  SANS,  OWASP,  ISSA,  CSI – World  class  alliance  partners  accelerate  innovation  to  solve  client  problems 4
  • 5. OWASP  ZAP • Open  source  web  proxy  and  dynamic   application  security  testing  tool • https://www.owasp.org/index.php/OWASP_Zed_Attack_Proxy_Project
  • 6. Example  Codebases • BodgeIt Store – Example  vulnerable  web  application – https://github.com/psiinon/bodgeit • Java  Spring  Petstore – Example  Spring  application – https://github.com/spring-­‐projects/spring-­‐petclinic • Railsgoat – Example  vulnerable  web  application – https://github.com/OWASP/railsgoat
  • 7. ThreadFix Community  Edition • Application  vulnerability  management – And  some  other  stuff • https://github.com/denimgroup/threadfix
  • 10. Importance  of  Attack  Surface • This  is  where  an  attacker  can  “reach  out  and  touch”   your  application – Web:  Mostly  in  the  HTTP  request:  URL,  parameters,   headers  (cookies) – Mobile,  IoT:  More  complicated – We  will  focus  on  web  today • Target  for  dynamic  testing – Automated  DAST – Manual  assessment/penetration  testing
  • 11. What  Does  Attack  Surface  Have  to  Do   With  DevOps? • If  you  want  your  talk  to  be   accepted,  it  has  to  have  DevOps   in  the  title • Let’s  look  at  what  we  want  from   security  in  the  DevOps  pipeline
  • 12. Security  in  the  DevOps  Pipeline Organizations  like  Etsy  and  Netflix   are  doing  amazing things  to  secure   apps  via  their  DevOps  pipelines
  • 13. Security  in  the  DevOps  Pipeline • Testing – Synchronous – Asynchronous • Decision • Reporting Blog  Post:  Effective  Application  Security  Testing  in   DevOps  Pipelines http://www.denimgroup.com/blog/2016/12/effective-­‐application-­‐security-­‐testing-­‐in-­‐devops-­‐pipelines/ https://www.denimgroup.com/resources/effective-­‐application-­‐security-­‐for-­‐devops/
  • 14. Focus  on  Testing  in  DevOps  Pipeline • Many  security  tools  run  too  long  to  include  in   many  pipeline  builds – Full  SAST,  DAST • Security  testing  also  includes  manual  testing – Which  is  way too  slow  for  most  pipeline  builds • Tracking  attack  surface  changes  over  time  can   help  us: – Focus  testing  activities – Trigger  testing  activities
  • 15. Hybrid  Analysis  Mapping • Goal:  Merge  the  results  of  SAST  and  DAST  testing • Funded  via  DHS  S&T  SBIR  contracts • Facilitated  the  creation  of  our  attack  surface   modeling  engine
  • 16. Department  of  Homeland  Security  Support • Currently  in  Phase  2  of  a  DHS  S&T  CSD  SBIR • Acronyms! – DHS  =  Department  of  Homeland  Security – S&T  =  Directorate  of  Science  and  Technology – CSD  =  CyberSecurity Division – SBIR  =  Small  Business  Innovation  Research • Geared  toward  developing  new  technologies  for  Federal  customers • Hybrid  Analysis  Mapping  (HAM) • Technology  has  been  included  with  ThreadFix • Has  also  resulted  in  some  other  released  components  we  will  talk  about  today • Please  do  not  assume  this  talk  is  endorsed  by  DHS – This  is  just  me  talking  about  what  we  have  done
  • 17. Hybrid  Analysis  Mapping  (HAM) • Initial  goal:  Correlate  and  merge   results  from  SAST  and  DAST • After  we  made  that  work,  we   found  other  stuff  we  could  do   with  the  technology
  • 18. Hybrid  Analysis  Mapping  (HAM) • Determine  the  feasibility  of  developing  a  system  that  can  reliably  and   efficiently  correlate  and  merge  the  results  of  automated  static  and   dynamic  security  scans  of  web  applications. HP  Fortify  SCA IBM  AppScan Standard
  • 19. Dynamic  Application  Security  Testing  (DAST) • Spider  to  enumerate  attack  surface – Crawl  the  site  like  Google  would – But  with  authentication  /  session  detection • Fuzz  to  identify  vulnerabilities  based  on  analysis  of   request/response  patterns – If  you  send  a  SQL  control  character  and  get  a  JDBC  error  message  back,   that  could  indicate  a  SQL  injection  vulnerability • A  finding  looks  like  (CWE,  relative  URL,  [entry  point])
  • 20. Static  Application  Security  Testing  (SAST) • Use  source  or  binary  to  create  a  model  of  the  application – Kind  of  like  a  compiler  or  VM • Perform  analysis  to  identify  vulnerabilities  and  weaknesses – Data  flow,  control  flow,  semantic,  etc • A  finding  looks  like  (CWE,  code/data  flow)
  • 21. Hybrid  Analysis  Mapping  Sub-­‐Goals • Standardize  vulnerability  types – Settled  on  MITRE  Common  Weakness  Enumeration  (CWE) • Match  dynamic  and  static  locations – Use  knowledge  of  language/web  framework  to  build  attack   surface  database • Improve  static  parameter  parsing – Parse  out  of  source  code  to  match  with  DAST  result
  • 22. Information  Used • Source  Code – Git,  Subversion,  Local  Copy • Framework  Type   – Java:  JSP,  Spring,  Struts – C#:  .NET  WebForms,  .NET  MVC – Ruby:  Rails – PHP:  in  progress • Extra  information  from  SAST  results  (if  available)
  • 23. Unified  Endpoint  Database • EndpointQuery – dynamicPath – staticPath – Parameter – httpMethod – codePoints [List<CodePoint>] – informationSourceType • EndpointDatabase – findBestMatch(EndpointQuery query):  Endpoint – findAllMatches(EndpointQuery query):  Set<Endpoint> – getFrameworkType():  FrameworkType
  • 24. Merging  SAST  and  DAST  Results • I  have  a  DAST  result: – (“Reflected  XSS”,  /login.jsp,  “username”  parameter) • Query  the  Endpoint  Database: – Entry  point  is   com.something.something.LoginController.java,  line  62 • Search  the  other  findings  for  SAST  results  like: – (“Reflected  XSS”,  source  at   com.something.something.LoginController.java,  line  62) • If  you  find  a  match  – correlate  those  two  findings • Magic!
  • 25. That’s  Great  But  I  Want  More • So  our  research  produced  a  successful/valuable  outcome – Hooray • But  – given  these  data  structures,  what  else  can  we  do? • From  an  EndpointDatabase we  can: – Get  all of  the  application’s  attack  surface – Map  DAST  results  to  a  specific  line  of  code • Given  those  capabilities  we  can: – Pre-­‐seed  scanners  with  attack  surface – Map  DAST  results  to  lines  of  code  in  a  developer  IDE – Map  DAST  results  to  lines  of  code  in  SonarQube
  • 26. Final  Thoughts  on  SBIR  Work  with  DHS  S&T • Great  use  of  the  SBIR  program – In  my  humble  and  totally unbiased  opinion • Proved  to  be  the  tipping  point  to  developing  HAM – HAM  was  interesting,  but  required  material  investment • Research  produced  a  successful  outcome  (we  think) • We  found  other  things  we  could  do  with  the  technology • Released  much  of  it  open  source  to  increase  adoption
  • 27. Scanner  Seeding • What  if  we  could  give  the  DAST  spidering process  a  head  start? • Pre-­‐seed  with  all of  the  attack  surface – Landing  pages  that  link  in  to  the  application – Hidden  directories – Backdoor  or  “unused”  parameters • Currently  have  plugins  for  OWASP  ZAP  and  BurpSuite – Plugin  for  IBM  Rational  AppScan Standard  is  in  progress https://github.com/denimgroup/threadfix/wiki/Scanner-­‐Plugins
  • 28. Getting  the  Plugins • Main  ThreadFix site – https://github.com/denimgroup/threadfix/ • ThreadFix build  instructions – https://github.com/denimgroup/threadfix/wiki/Development-­‐Environment-­‐Setup – “Running  ThreadFix Without  an  IDE” • Download  plugins  from  ThreadFix
  • 29. Plugin  Installation • OWASP  ZAP  plugin  installation  instructions – https://github.com/denimgroup/threadfix/wiki/Zap-­‐Plugin • Plugins  also  available  for: – Portswigger BurpSuite Professional – IBM  Rational  AppScan (soon)
  • 30. Attack  Surface  Enumeration • Find  all of  the  attack  surface – URLs – Parameters  that  will  change  application  behavior – Future:  Cookies,  other  HTTP  headers • Why  is  this  a  problem? – Hidden  landing  pages – Multi-­‐step  processes  that  automated  crawls  don’t  traverse – Unknown  parameters – Debug/backdoor  parameters  (will  discuss  this  further) • Great  for  REST  APIs  support  single-­‐page  web  applications  and  mobile  applications
  • 31. Attack  Surface  Enumeration  Benefits • Reduce  false  negatives  from  scanners – Better  coverage  for  standard  fuzzing • Pen  test  all  of  the  application
  • 32. Endpoints  CLI  Notes • Syntax:  java  –jar  [jar-­‐name].jar  /path/to/source • JAR  name  will  change  based  on  build  ID • After  Maven  build,  can  also  be  found  in:  $GIT/threadfix/threadfix-­‐cli-­‐ endpoints/target/ • You  want  the  ”-­‐jar-­‐with-­‐dependencies”  JAR • Will  output  list  of  HTTP  methods,  URLs  and  parameters  based  on  analysis   of  the  source  code • Attack  surface! • Add  “-­‐json”  to  the  end  of  the  command  to  get  output  in  JSON  format – Easier  to  manipulate
  • 34. Scanner  Attack  Surface  Seeding  Demo
  • 35. attack_surface_lib.py • Warning! • What’s  the  opposite  of  ”Pythonic?” • Race  conditions,  sloppy  file  handling,  etc • Possibly  even  some  command  injection – That  you  can  currently  exploit  from  …  the  command  line – Some  mitigations  in  place,  but… • Please  be  careful  what  you  attach  this  to
  • 36. attack_surface_lib.py • What  does  it  do? – Takes  JSON  output  of  cli-­‐endpoints • Creates  attack  surface  tree  data  structure • Calculates  differences  between  trees – Some  git utility  tasks • Used  as  the  basis  for  upcoming  examples • https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/attack_surface_lib.py
  • 37. Attack  Surface  Visualization  Demo Code:  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/make_d3_tree_json.py HTML  framework:  https://github.com/denimgroup/threadfix-­‐examples/tree/master/web_app_attack_surface/html
  • 38. Attack  Surface  Comparison  Visualization   Demo Code:  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/make_d3_tree_json.py HTML  framework:  https://github.com/denimgroup/threadfix-­‐examples/tree/master/web_app_attack_surface/html
  • 39. Diffing  Attack  Surface  Demo Code:  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/diff_attack_surface_git_commits.py
  • 40. What  About  Behavior  Changes? • Identify  files  that  have  changed  that  are   associated  with  attack  surface • Mark  that  attack  surface  as  possibly   having  changed  behavior • Is  this  perfect?  No. • Does  it  provide  additional  information   with  potential  value?  Yes.
  • 42. Applications  for  DevOps  Pipelines • Target  DAST  testing  to  focus  on  new  attack  surface  in  latest  build – “Run  an  authenticated  ZAP  scan  against  the  three  new  URLs  added  in  the  last   commit” • Set  thresholds  for  when  manual  assessment/penetration  testing  is   triggered – “Schedule  a  manual  penetration  test  when  the  attack  surface  has  increased   by  10  URLs” – “Schedule  a  manual  penetration  test  when  the  attack  surface  has  increased   by  5%” – Focus  those  efforts  on  new  attack  surface • ChatOps:  Attack  surface  delta  notifications  on  commit – “Commit  beb78c835706efe5d619148b9a8dc9e35ee9572b  added attack   surface:  /advanced.jsp,  /preferenes.jsp”
  • 43. attacksurface_notifier.py • Watch  a  git repository  for  new  commits • When  there  are  commits,  check  for  attack  surface   changes • On  attack  surface  changes  – do  stuff • In  production:  would  be  done  via  CI/CD  server • BUT  for  demo  purposes… • https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/attacksurface_notifier.py
  • 44. Attack  Surface  ChatOps Demo Code:  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/attacksurface_notifier.py
  • 45. Manual  Test  JIRA  Ticket  Demo Code:  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/attacksurface_notifier.py
  • 46. Differential  ZAP  Scan  Demo Code:  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/attacksurface_notifier.py
  • 48. Scripting  Attack  Surface  Interactions • [Anywhere] – Script  using  endpoints-­‐cli.jar JSON  outputs • That’s  most  of  what  we’ve  seen  here – Script  using  JSON  output  from  ThreadFix API • Can  be  useful  in  environments  with  limited  access  to  source  code • Java:  Use  endpoints-­‐cli.jar as  a  library – We  need  to  do  a  better  job  of  documenting  the  APIs • Jython:  Use  endpoints-­‐cli.jar as  a  library
  • 49. Jython Use  of  HAM  Library  Demo Code:  https://github.com/denimgroup/threadfix-­‐examples/blob/master/web_app_attack_surface/jython_endpoints_cli.py
  • 50. Next  Steps • Expand  the  model  of  application  attack  surface – Currently:  Parameters,  HTTP  verbs – Working  on:  HTTP  headers  (cookies) – Future:  Other  application  types:    Mobile,  IoT • Better  visualization – More  details – Better  granularity – Track  changes  over  time • Native  integrations:  Jenkins,  Slack,  HipChat,  JIRA,  etc – This  is  very  “scripty”  right  now
  • 51. Questions  /  Contact  Information Dan  Cornell Principal  and  CTO dan@denimgroup.com Twitter  @danielcornell (844)  572-­‐4400 www.threadfix.it 51