SlideShare a Scribd company logo
1 of 27
Copyright © 2015, CigitalCopyright © 2016, Cigital
Static Analysis Tools and Frameworks:
Overcoming a Dangerous Blind Spot
Mike Lyman
Senior Consultant
mlyman@cigital.com
https://www.cigital.com/blog/static-analysis-tool-framework-blind-spot/
Copyright © 2016, Cigital
Copyright © 2015, CigitalCopyright © 2016, Cigital
Who am I?
Mike Lyman
• Senior Consultant at Cigital
• mlyman@cigital.com
• 9+ years of software security focus
• 19 years in the security business
• CISSP/CSSLP
• @mlyman87
Copyright © 2015, CigitalCopyright © 2016, Cigital
Who are you?
• Developers?
• Managers?
• Testers?
• Part of a security team?
Are you using static analysis tools?
What are your concerns with these tools?
Copyright © 2015, CigitalCopyright © 2016, Cigital
Agenda
• Intro to static analysis tools
• Static analysis concepts
• Frameworks
• The blind spot
• How to overcome it
• .Net Web API walkthrough
Copyright © 2015, CigitalCopyright © 2016, Cigital
Testing with static analysis tools
is often referred to as Static
Application Security Testing
(SAST).
Copyright © 2015, CigitalCopyright © 2016, Cigital
SAST tools
• Tools that look at source code for certain types of bugs
• As simple as “glorified grep”
• simple pattern recognition
• As complicated as compilers
• control and data flow analysis
• Often a combination of both
• Free and commercially available
Copyright © 2015, CigitalCopyright © 2016, Cigital
SAST concepts
• Taint: data from untrusted sources is considered tainted
• Source: source of data
• Sink: function that consumes data
• Taint flows through the data flows until it is either:
• removed through validation or sanitization
• consumed by a sink
• If taint reaches sink, bad things can happen
• Examples:
• Buffer overflows
• Command injection
• SQL injection
Copyright © 2015, CigitalCopyright © 2016, Cigital
Frameworks
• Speed up development
• Provide a lot of basic functionality
• Allows a focus on core functionality
• Might be completely separate from your language
• Java and Spring
• Might be tightly coupled
• C# and .Net (but with some advanced features that are available
as separate downloads)
Copyright © 2015, CigitalCopyright © 2016, Cigital
The blind spot
Copyright © 2015, CigitalCopyright © 2016, Cigital
The blind spot
• What is going on under the hood?
• Obvious question: Are there security bugs in the framework itself?
• Not so obvious: Do frameworks introduce problems for your code?
• New sources of tainted data?
• New dangerous sinks?
• Pass through functions that pass on or add taint?
• How do the data flows work with the framework?
• Does your SAST tool understand this?
• Using non-framework 3rd party libraries can cause the same issues.
Copyright © 2015, CigitalCopyright © 2016, Cigital
Does your tool know about these issues?
• New frameworks and new versions appearing faster than
we can keep up – can the tool vendor?
• Are there enough users to get the vendor’s attention?
• Even if you have the source code, can the tool trace the
data flows?
• If your static analysis tool cannot see or understand the
framework it cannot report issues – false negatives!
Copyright © 2015, CigitalCopyright © 2016, Cigital
False positives are annoying.
False negatives are dangerous!
False positives are annoying.
False negatives are dangerous!
Copyright © 2015, CigitalCopyright © 2016, Cigital
How do you know you have a problem?
• Penetration testers find code implementation problems
• SAST doesn’t
• Functionality analysis
• What functionality does the framework (or 3rd party library) provide?
• What types of problems can be introduced there or occur there?
• Create vulnerable test cases
• Scan the test cases
• Binary analysis
• Decompile and analyze
• Watch for questions on the tool’s support forums
• Ask the vendor
Copyright © 2015, CigitalCopyright © 2016, Cigital
How do you fix it?
• Teach the tool to handle the issues through custom rules
• May need pre-scan processing
• Supplement with a different tool
• Pressure the vendor
• If you find actual bugs in the framework, report them
Copyright © 2015, CigitalCopyright © 2016, Cigital
.Net Web API
A Walkthrough
Copyright © 2015, CigitalCopyright © 2016, Cigital
The setup
• Customer is creating micro-services based on the .Net
Web API (System.Web.Http.ApiController).
• Penetration testers find code implementation issues.
• SAST doesn’t understand the Web API or asynchronous
calls, despite both being available for years.
• Need to enable SAST tools to find these issues.
Copyright © 2015, CigitalCopyright © 2016, Cigital
Non-live walkthrough
• Code taken from the stub program is created when you
create a new Web API C# application.
• These code snippets don’t necessarily contain security
bugs. They are used to illustrate the discovery method
used to figure out how to get the SAST tool to
understand code derived from the APIController.
• Images of MSIL code taken from ILSpy.
Copyright © 2015, CigitalCopyright © 2016, Cigital
The .Net ApiControl (WebAPI) provides
automatic routing and databinding for HTTP
methods.
Databinding can be simple types (shown
here) or complex custom classes.
Data coming into these controllers via the
automatic routing and databinding is part of
http requests and should be considered
tainted input.
The SAST tool in use does an okay job of
identifying tainted data sources both for
things that followed the Get, Post, etc.
naming conventions and for custom named
methods mapped to HTTP methods (via
attributes).
The job isn’t perfect and needs to be
supplemented with custom rules, especially
after implementing some of the solutions
discussed in the following slides.
Copyright © 2015, CigitalCopyright © 2016, Cigital
Real SAST problems arise with async
methods and awaits. The SAST tool is blind
to problems here. Data coming into these
methods is not identified as tainted data.
The initial instinct is to craft custom rules
looking at C# in these methods. This
approach doesn’t work here.
Since custom rules based on C# don’t work,
more research is necessary to include
examining the assemblies themselves with
ILSpy.
Copyright © 2015, CigitalCopyright © 2016, Cigital
ILSpy can take the assemblies and show you the MSIL and then take the MSIL back to either C# or VB.Net.
The C# version of ChangePassword that comes from the decompiled assembly looks vastly different than
the C# on the previous slide. Since the SAST tool in use looks at the compiled assemblies with its data flow
rules, rather than the original C# source code, it’s now apparent why custom rules based on the original C#
aren’t working.
The compiler replaces the original code in the async method and generates a nested class to implement a
state machine to handle the asynchronous task.
The problems are now occurring in the generated class.
Copyright © 2015, CigitalCopyright © 2016, Cigital
The generated nested class creates a state machine that manages the async call. Most of the work is done
in the MoveNext method (collapsed in the image above) as it steps through the various states until the task
is complete. Analysis shows that this is where a large part of the custom rules effort is needed.
Copyright © 2015, CigitalCopyright © 2016, Cigital
We now know where to look. However…
• It is clear that custom rules need to be built based on the
generated, nested classes. However, they didn’t exist
before compile time.
• A pre-scan step examines the compiled assemblies
using FXCop and Mono.Cecil, and generates custom
rules on the fly.
• The custom rules are used to scan the assemblies with
the SAST tool.
• It still fails to work properly.
Copyright © 2015, CigitalCopyright © 2016, Cigital
Now what?
• The generated classes are nested: private classes with
private methods. The SAST tool appears to ignore them.
• Another pre-scan step is created to use Mono.Cecil to
modify the assemblies by making the generated
methods and classes public.
• The dynamically generated rules start working.
Copyright © 2015, CigitalCopyright © 2016, Cigital
Confirmation
• Test cases are created in C# with known dangerous sinks to
test if the SAST tool works with the custom data source rules.
• Test cases confirm proper data flows are identified from
tainted sources, to the known dangerous sinks, and issues
raised by the tool.
• Due to compiler generated code, this didn’t provide complete
test coverage.
• Test cases are injected directly into the compiled assemblies
using Mono.Cecil and we can confirm that the rules work.
Copyright © 2015, CigitalCopyright © 2016, Cigital
Problem discovery recap
• Gained a deeper understanding of .Net Web APIs and
asynchronous methods.
• Discovered the main tool’s custom rules had to look for
MSIL syntax – not C#.
• Observed that taint sources existed within compiler-
generated classes and methods that SAST couldn’t see.
• Noticed that visibility issues hid problems from SAST tools.
• Private vs. public access modifiers
• Nested compiler created classes
Copyright © 2015, CigitalCopyright © 2016, Cigital
Solutions recap
• Created custom rules based on MSIL syntax.
• Created a pre-scan step to dynamically incorporate custom
source rules based on generated MSIL for classes inherited
from ApiController.
• Created a pre-scan step to modify class and method visibility
in generated assemblies.
• Created test cases in C# to test dynamic rules.
• Created a process to inject MSIL test cases into compiled
assemblies for more complete test coverage.
Copyright © 2015, CigitalCopyright © 2016, Cigital
Questions?

More Related Content

What's hot

FLIGHT WEST 2018 Presentation - Open Source License Management in Black Duck Hub
FLIGHT WEST 2018 Presentation - Open Source License Management in Black Duck HubFLIGHT WEST 2018 Presentation - Open Source License Management in Black Duck Hub
FLIGHT WEST 2018 Presentation - Open Source License Management in Black Duck HubBlack Duck by Synopsys
 
Automating Your Tools: How to Free Up Your Security Professionals for Actual ...
Automating Your Tools: How to Free Up Your Security Professionals for Actual ...Automating Your Tools: How to Free Up Your Security Professionals for Actual ...
Automating Your Tools: How to Free Up Your Security Professionals for Actual ...Kevin Fealey
 
FLIGHT WEST 2018 Presentation - Continuous Monitoring of Open Source Componen...
FLIGHT WEST 2018 Presentation - Continuous Monitoring of Open Source Componen...FLIGHT WEST 2018 Presentation - Continuous Monitoring of Open Source Componen...
FLIGHT WEST 2018 Presentation - Continuous Monitoring of Open Source Componen...Black Duck by Synopsys
 
Static Analysis Security Testing for Dummies... and You
Static Analysis Security Testing for Dummies... and YouStatic Analysis Security Testing for Dummies... and You
Static Analysis Security Testing for Dummies... and YouKevin Fealey
 
Threat Modeling for System Builders and System Breakers - Dan Cornell of Deni...
Threat Modeling for System Builders and System Breakers - Dan Cornell of Deni...Threat Modeling for System Builders and System Breakers - Dan Cornell of Deni...
Threat Modeling for System Builders and System Breakers - Dan Cornell of Deni...Denim Group
 
FLIGHT WEST 2018 - Presentation - SCA 101: How to Manage Open Source Security...
FLIGHT WEST 2018 - Presentation - SCA 101: How to Manage Open Source Security...FLIGHT WEST 2018 - Presentation - SCA 101: How to Manage Open Source Security...
FLIGHT WEST 2018 - Presentation - SCA 101: How to Manage Open Source Security...Black Duck by Synopsys
 
Making the Strategic Shift to Open Source at Fujitsu Network Communication
Making the Strategic Shift to Open Source at Fujitsu Network CommunicationMaking the Strategic Shift to Open Source at Fujitsu Network Communication
Making the Strategic Shift to Open Source at Fujitsu Network CommunicationBlack Duck by Synopsys
 
Software Security Assurance for DevOps
Software Security Assurance for DevOpsSoftware Security Assurance for DevOps
Software Security Assurance for DevOpsBlack Duck by Synopsys
 
Agile & Secure SDLC
Agile & Secure SDLCAgile & Secure SDLC
Agile & Secure SDLCPaul Yang
 
Cyber security - It starts with the embedded system
Cyber security - It starts with the embedded systemCyber security - It starts with the embedded system
Cyber security - It starts with the embedded systemRogue Wave Software
 
Secure Software Development Life Cycle
Secure Software Development Life CycleSecure Software Development Life Cycle
Secure Software Development Life CycleMaurice Dawson
 
Testing Tools and Tips
Testing Tools and TipsTesting Tools and Tips
Testing Tools and TipsSoftServe
 
Software Security Initiative Capabilities: Where Do I Begin?
Software Security Initiative Capabilities: Where Do I Begin? Software Security Initiative Capabilities: Where Do I Begin?
Software Security Initiative Capabilities: Where Do I Begin? Cigital
 
Pactera - App Security Assessment - Mobile, Web App, IoT - v2
Pactera - App Security Assessment - Mobile, Web App, IoT - v2Pactera - App Security Assessment - Mobile, Web App, IoT - v2
Pactera - App Security Assessment - Mobile, Web App, IoT - v2Kyle Lai
 
24may 1200 valday eric anklesaria 'secure sdlc – core banking'
24may 1200 valday eric anklesaria 'secure sdlc – core banking'24may 1200 valday eric anklesaria 'secure sdlc – core banking'
24may 1200 valday eric anklesaria 'secure sdlc – core banking'Positive Hack Days
 
Perforce on Tour 2015 - Grab Testing By the Horns and Move
Perforce on Tour 2015 - Grab Testing By the Horns and MovePerforce on Tour 2015 - Grab Testing By the Horns and Move
Perforce on Tour 2015 - Grab Testing By the Horns and MovePerforce
 
Create code confidence for better application security
Create code confidence for better application security Create code confidence for better application security
Create code confidence for better application security Rogue Wave Software
 
Shifting the conversation from active interception to proactive neutralization
Shifting the conversation from active interception to proactive neutralization Shifting the conversation from active interception to proactive neutralization
Shifting the conversation from active interception to proactive neutralization Rogue Wave Software
 

What's hot (20)

FLIGHT WEST 2018 Presentation - Open Source License Management in Black Duck Hub
FLIGHT WEST 2018 Presentation - Open Source License Management in Black Duck HubFLIGHT WEST 2018 Presentation - Open Source License Management in Black Duck Hub
FLIGHT WEST 2018 Presentation - Open Source License Management in Black Duck Hub
 
Automating Your Tools: How to Free Up Your Security Professionals for Actual ...
Automating Your Tools: How to Free Up Your Security Professionals for Actual ...Automating Your Tools: How to Free Up Your Security Professionals for Actual ...
Automating Your Tools: How to Free Up Your Security Professionals for Actual ...
 
FLIGHT WEST 2018 Presentation - Continuous Monitoring of Open Source Componen...
FLIGHT WEST 2018 Presentation - Continuous Monitoring of Open Source Componen...FLIGHT WEST 2018 Presentation - Continuous Monitoring of Open Source Componen...
FLIGHT WEST 2018 Presentation - Continuous Monitoring of Open Source Componen...
 
Static Analysis Security Testing for Dummies... and You
Static Analysis Security Testing for Dummies... and YouStatic Analysis Security Testing for Dummies... and You
Static Analysis Security Testing for Dummies... and You
 
Threat Modeling for System Builders and System Breakers - Dan Cornell of Deni...
Threat Modeling for System Builders and System Breakers - Dan Cornell of Deni...Threat Modeling for System Builders and System Breakers - Dan Cornell of Deni...
Threat Modeling for System Builders and System Breakers - Dan Cornell of Deni...
 
FLIGHT WEST 2018 - Presentation - SCA 101: How to Manage Open Source Security...
FLIGHT WEST 2018 - Presentation - SCA 101: How to Manage Open Source Security...FLIGHT WEST 2018 - Presentation - SCA 101: How to Manage Open Source Security...
FLIGHT WEST 2018 - Presentation - SCA 101: How to Manage Open Source Security...
 
Making the Strategic Shift to Open Source at Fujitsu Network Communication
Making the Strategic Shift to Open Source at Fujitsu Network CommunicationMaking the Strategic Shift to Open Source at Fujitsu Network Communication
Making the Strategic Shift to Open Source at Fujitsu Network Communication
 
Software Security Assurance for DevOps
Software Security Assurance for DevOpsSoftware Security Assurance for DevOps
Software Security Assurance for DevOps
 
Agile & Secure SDLC
Agile & Secure SDLCAgile & Secure SDLC
Agile & Secure SDLC
 
Cyber security - It starts with the embedded system
Cyber security - It starts with the embedded systemCyber security - It starts with the embedded system
Cyber security - It starts with the embedded system
 
Secure Software Development Life Cycle
Secure Software Development Life CycleSecure Software Development Life Cycle
Secure Software Development Life Cycle
 
Testing Tools and Tips
Testing Tools and TipsTesting Tools and Tips
Testing Tools and Tips
 
Software Security Initiative Capabilities: Where Do I Begin?
Software Security Initiative Capabilities: Where Do I Begin? Software Security Initiative Capabilities: Where Do I Begin?
Software Security Initiative Capabilities: Where Do I Begin?
 
Pactera - App Security Assessment - Mobile, Web App, IoT - v2
Pactera - App Security Assessment - Mobile, Web App, IoT - v2Pactera - App Security Assessment - Mobile, Web App, IoT - v2
Pactera - App Security Assessment - Mobile, Web App, IoT - v2
 
24may 1200 valday eric anklesaria 'secure sdlc – core banking'
24may 1200 valday eric anklesaria 'secure sdlc – core banking'24may 1200 valday eric anklesaria 'secure sdlc – core banking'
24may 1200 valday eric anklesaria 'secure sdlc – core banking'
 
Basic of SSDLC
Basic of SSDLCBasic of SSDLC
Basic of SSDLC
 
Agile and Secure Development
Agile and Secure DevelopmentAgile and Secure Development
Agile and Secure Development
 
Perforce on Tour 2015 - Grab Testing By the Horns and Move
Perforce on Tour 2015 - Grab Testing By the Horns and MovePerforce on Tour 2015 - Grab Testing By the Horns and Move
Perforce on Tour 2015 - Grab Testing By the Horns and Move
 
Create code confidence for better application security
Create code confidence for better application security Create code confidence for better application security
Create code confidence for better application security
 
Shifting the conversation from active interception to proactive neutralization
Shifting the conversation from active interception to proactive neutralization Shifting the conversation from active interception to proactive neutralization
Shifting the conversation from active interception to proactive neutralization
 

Viewers also liked

Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...RootedCON
 
Static analysis tools
Static analysis toolsStatic analysis tools
Static analysis toolsAman Ahmed
 
How to Select a Static Analysis Tool
How to Select a Static Analysis ToolHow to Select a Static Analysis Tool
How to Select a Static Analysis ToolParasoft_Mitchell
 
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech FestStatic Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech FestDenim Group
 
Static Application Security Testing Strategies for Automation and Continuous ...
Static Application Security Testing Strategies for Automation and Continuous ...Static Application Security Testing Strategies for Automation and Continuous ...
Static Application Security Testing Strategies for Automation and Continuous ...Kevin Fealey
 
Voice enabling system for blind people using gps and gsm
Voice enabling system for blind people using gps and gsmVoice enabling system for blind people using gps and gsm
Voice enabling system for blind people using gps and gsmAbhijit Ghosh
 
Top 10 static code analysis tool
Top 10 static code analysis toolTop 10 static code analysis tool
Top 10 static code analysis toolscmGalaxy Inc
 
Preventive measures and support regarding Child Sexual Exploitation in Bulgaria
Preventive measures and support regarding Child Sexual Exploitation in BulgariaPreventive measures and support regarding Child Sexual Exploitation in Bulgaria
Preventive measures and support regarding Child Sexual Exploitation in BulgariaBASPCAN
 
Biological_clustering_for_asthma_and_copd_MichaelGhebre
Biological_clustering_for_asthma_and_copd_MichaelGhebreBiological_clustering_for_asthma_and_copd_MichaelGhebre
Biological_clustering_for_asthma_and_copd_MichaelGhebreMichael A Ghebre, PhD
 
Sent Down To Suffer
Sent Down To SufferSent Down To Suffer
Sent Down To SufferBASPCAN
 
The unexpected
The unexpectedThe unexpected
The unexpectedkozzia
 
nơi nào dịch vụ giúp việc văn phòng giá tốt ở hồ chí minh
nơi nào dịch vụ giúp việc văn phòng giá tốt ở hồ chí minhnơi nào dịch vụ giúp việc văn phòng giá tốt ở hồ chí minh
nơi nào dịch vụ giúp việc văn phòng giá tốt ở hồ chí minhpricilla894
 
Mapping Sexually Exploited Young People in Dundee
Mapping Sexually Exploited Young People in DundeeMapping Sexually Exploited Young People in Dundee
Mapping Sexually Exploited Young People in DundeeBASPCAN
 
Farmacología cardiovascular y del aparato respiratorio cuestionario
Farmacología cardiovascular y del aparato respiratorio cuestionarioFarmacología cardiovascular y del aparato respiratorio cuestionario
Farmacología cardiovascular y del aparato respiratorio cuestionarioÁlvaro Miguel Carranza Montalvo
 
Ternasco de Aragon
Ternasco de AragonTernasco de Aragon
Ternasco de Aragonsupercoci
 
Universal and Clergy Mandated Reporting Laws and Child Maltreatment Report Rates
Universal and Clergy Mandated Reporting Laws and Child Maltreatment Report RatesUniversal and Clergy Mandated Reporting Laws and Child Maltreatment Report Rates
Universal and Clergy Mandated Reporting Laws and Child Maltreatment Report RatesBASPCAN
 

Viewers also liked (18)

Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
Joxean Koret - Interactive Static Analysis Tools for Vulnerability Discovery ...
 
Static analysis tools
Static analysis toolsStatic analysis tools
Static analysis tools
 
How to Select a Static Analysis Tool
How to Select a Static Analysis ToolHow to Select a Static Analysis Tool
How to Select a Static Analysis Tool
 
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech FestStatic Analysis Techniques For Testing Application Security - Houston Tech Fest
Static Analysis Techniques For Testing Application Security - Houston Tech Fest
 
Static Application Security Testing Strategies for Automation and Continuous ...
Static Application Security Testing Strategies for Automation and Continuous ...Static Application Security Testing Strategies for Automation and Continuous ...
Static Application Security Testing Strategies for Automation and Continuous ...
 
Voice enabling system for blind people using gps and gsm
Voice enabling system for blind people using gps and gsmVoice enabling system for blind people using gps and gsm
Voice enabling system for blind people using gps and gsm
 
Top 10 static code analysis tool
Top 10 static code analysis toolTop 10 static code analysis tool
Top 10 static code analysis tool
 
Tyre Industry Analysis
Tyre Industry AnalysisTyre Industry Analysis
Tyre Industry Analysis
 
Idioma
IdiomaIdioma
Idioma
 
Preventive measures and support regarding Child Sexual Exploitation in Bulgaria
Preventive measures and support regarding Child Sexual Exploitation in BulgariaPreventive measures and support regarding Child Sexual Exploitation in Bulgaria
Preventive measures and support regarding Child Sexual Exploitation in Bulgaria
 
Biological_clustering_for_asthma_and_copd_MichaelGhebre
Biological_clustering_for_asthma_and_copd_MichaelGhebreBiological_clustering_for_asthma_and_copd_MichaelGhebre
Biological_clustering_for_asthma_and_copd_MichaelGhebre
 
Sent Down To Suffer
Sent Down To SufferSent Down To Suffer
Sent Down To Suffer
 
The unexpected
The unexpectedThe unexpected
The unexpected
 
nơi nào dịch vụ giúp việc văn phòng giá tốt ở hồ chí minh
nơi nào dịch vụ giúp việc văn phòng giá tốt ở hồ chí minhnơi nào dịch vụ giúp việc văn phòng giá tốt ở hồ chí minh
nơi nào dịch vụ giúp việc văn phòng giá tốt ở hồ chí minh
 
Mapping Sexually Exploited Young People in Dundee
Mapping Sexually Exploited Young People in DundeeMapping Sexually Exploited Young People in Dundee
Mapping Sexually Exploited Young People in Dundee
 
Farmacología cardiovascular y del aparato respiratorio cuestionario
Farmacología cardiovascular y del aparato respiratorio cuestionarioFarmacología cardiovascular y del aparato respiratorio cuestionario
Farmacología cardiovascular y del aparato respiratorio cuestionario
 
Ternasco de Aragon
Ternasco de AragonTernasco de Aragon
Ternasco de Aragon
 
Universal and Clergy Mandated Reporting Laws and Child Maltreatment Report Rates
Universal and Clergy Mandated Reporting Laws and Child Maltreatment Report RatesUniversal and Clergy Mandated Reporting Laws and Child Maltreatment Report Rates
Universal and Clergy Mandated Reporting Laws and Child Maltreatment Report Rates
 

Similar to Static Analysis Tools and Frameworks: Overcoming a Dangerous Blind Spot

Talentica - JS Meetup - Angular Schematics
Talentica - JS Meetup - Angular SchematicsTalentica - JS Meetup - Angular Schematics
Talentica - JS Meetup - Angular SchematicsKrishnan Mudaliar
 
API310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 stepsAPI310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 stepsYan Cui
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...Amazon Web Services
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Applitools
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon Web Services
 
Making operations visible - Nick Gallbreath
Making operations visible - Nick GallbreathMaking operations visible - Nick Gallbreath
Making operations visible - Nick GallbreathDevopsdays
 
Making operations visible - devopsdays tokyo 2013
Making operations visible  - devopsdays tokyo 2013Making operations visible  - devopsdays tokyo 2013
Making operations visible - devopsdays tokyo 2013Nick Galbreath
 
Single Source of Truth for Network Automation
Single Source of Truth for Network AutomationSingle Source of Truth for Network Automation
Single Source of Truth for Network AutomationAndy Davidson
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon Web Services
 
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...Amazon Web Services
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous IntegrationXPDays
 
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham.NET Conf UY
 
Three Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersThree Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersAndrey Karpov
 
Optimize Your Enterprise Git Webinar
Optimize Your Enterprise Git WebinarOptimize Your Enterprise Git Webinar
Optimize Your Enterprise Git WebinarCollabNet
 
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...Amazon Web Services
 
Slide_Egg-100376-Quantum Computing.pptx
Slide_Egg-100376-Quantum Computing.pptxSlide_Egg-100376-Quantum Computing.pptx
Slide_Egg-100376-Quantum Computing.pptxanuragkr11
 

Similar to Static Analysis Tools and Frameworks: Overcoming a Dangerous Blind Spot (20)

Talentica - JS Meetup - Angular Schematics
Talentica - JS Meetup - Angular SchematicsTalentica - JS Meetup - Angular Schematics
Talentica - JS Meetup - Angular Schematics
 
Webinar-DevOps.pdf
Webinar-DevOps.pdfWebinar-DevOps.pdf
Webinar-DevOps.pdf
 
DevOps Culture at Amazon
DevOps Culture at AmazonDevOps Culture at Amazon
DevOps Culture at Amazon
 
API310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 stepsAPI310 - How to refactor a monolith to serverless in 8 steps
API310 - How to refactor a monolith to serverless in 8 steps
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Atlanta AWS ...
 
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
Unlocking the Power of ChatGPT and AI in Testing - NextSteps, presented by Ap...
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Anaheim AWS ...
 
Advanced angular
Advanced angularAdvanced angular
Advanced angular
 
Making operations visible - Nick Gallbreath
Making operations visible - Nick GallbreathMaking operations visible - Nick Gallbreath
Making operations visible - Nick Gallbreath
 
Making operations visible - devopsdays tokyo 2013
Making operations visible  - devopsdays tokyo 2013Making operations visible  - devopsdays tokyo 2013
Making operations visible - devopsdays tokyo 2013
 
Single Source of Truth for Network Automation
Single Source of Truth for Network AutomationSingle Source of Truth for Network Automation
Single Source of Truth for Network Automation
 
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
Amazon CI/CD Practices for Software Development Teams - SRV320 - Chicago AWS ...
 
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
CI/CD Pipeline Security: Advanced Continuous Delivery Best Practices: Securit...
 
Continuous Integration
Continuous IntegrationContinuous Integration
Continuous Integration
 
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald BelchamGetting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
Getting Ahead of Delivery Issues with Deep SDLC Analysis by Donald Belcham
 
Three Interviews About Static Code Analyzers
Three Interviews About Static Code AnalyzersThree Interviews About Static Code Analyzers
Three Interviews About Static Code Analyzers
 
Optimize Your Enterprise Git Webinar
Optimize Your Enterprise Git WebinarOptimize Your Enterprise Git Webinar
Optimize Your Enterprise Git Webinar
 
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...
CI/CD for Serverless and Containerized Applications (DEV309-R1) - AWS re:Inve...
 
Slide_Egg-100376-Quantum Computing.pptx
Slide_Egg-100376-Quantum Computing.pptxSlide_Egg-100376-Quantum Computing.pptx
Slide_Egg-100376-Quantum Computing.pptx
 

More from Cigital

7 Lessons Learned From BSIMM
7 Lessons Learned From BSIMM7 Lessons Learned From BSIMM
7 Lessons Learned From BSIMMCigital
 
Secure Design: Threat Modeling
Secure Design: Threat ModelingSecure Design: Threat Modeling
Secure Design: Threat ModelingCigital
 
Getting Executive Support for a Software Security Program
Getting Executive Support for a Software Security ProgramGetting Executive Support for a Software Security Program
Getting Executive Support for a Software Security ProgramCigital
 
Handle With Care: You Have My VA Report!
Handle With Care: You Have My VA Report!Handle With Care: You Have My VA Report!
Handle With Care: You Have My VA Report!Cigital
 
How to Choose the Right Security Training for You
How to Choose the Right Security Training for YouHow to Choose the Right Security Training for You
How to Choose the Right Security Training for YouCigital
 
6 Most Common Threat Modeling Misconceptions
6 Most Common Threat Modeling Misconceptions6 Most Common Threat Modeling Misconceptions
6 Most Common Threat Modeling MisconceptionsCigital
 
Video Game Security
Video Game SecurityVideo Game Security
Video Game SecurityCigital
 
Get Your Board to Say "Yes" to a BSIMM Assessment
Get Your Board to Say "Yes" to a BSIMM AssessmentGet Your Board to Say "Yes" to a BSIMM Assessment
Get Your Board to Say "Yes" to a BSIMM AssessmentCigital
 
Software Security Metrics
Software Security MetricsSoftware Security Metrics
Software Security MetricsCigital
 
Cyber War, Cyber Peace, Stones, and Glass Houses
Cyber War, Cyber Peace, Stones, and Glass HousesCyber War, Cyber Peace, Stones, and Glass Houses
Cyber War, Cyber Peace, Stones, and Glass HousesCigital
 
The Complete Web Application Security Testing Checklist
The Complete Web Application Security Testing ChecklistThe Complete Web Application Security Testing Checklist
The Complete Web Application Security Testing ChecklistCigital
 
BSIMM By The Numbers
BSIMM By The NumbersBSIMM By The Numbers
BSIMM By The NumbersCigital
 
BSIMM: Bringing Science to Software Security
BSIMM: Bringing Science to Software SecurityBSIMM: Bringing Science to Software Security
BSIMM: Bringing Science to Software SecurityCigital
 
BSIMM-V: The Building Security In Maturity Model
BSIMM-V: The Building Security In Maturity ModelBSIMM-V: The Building Security In Maturity Model
BSIMM-V: The Building Security In Maturity ModelCigital
 
5 Models for Enterprise Software Security Management Teams
5 Models for Enterprise Software Security Management Teams 5 Models for Enterprise Software Security Management Teams
5 Models for Enterprise Software Security Management Teams Cigital
 
How to Avoid the Top Ten Software Security Flaws
How to Avoid the Top Ten Software Security FlawsHow to Avoid the Top Ten Software Security Flaws
How to Avoid the Top Ten Software Security FlawsCigital
 

More from Cigital (16)

7 Lessons Learned From BSIMM
7 Lessons Learned From BSIMM7 Lessons Learned From BSIMM
7 Lessons Learned From BSIMM
 
Secure Design: Threat Modeling
Secure Design: Threat ModelingSecure Design: Threat Modeling
Secure Design: Threat Modeling
 
Getting Executive Support for a Software Security Program
Getting Executive Support for a Software Security ProgramGetting Executive Support for a Software Security Program
Getting Executive Support for a Software Security Program
 
Handle With Care: You Have My VA Report!
Handle With Care: You Have My VA Report!Handle With Care: You Have My VA Report!
Handle With Care: You Have My VA Report!
 
How to Choose the Right Security Training for You
How to Choose the Right Security Training for YouHow to Choose the Right Security Training for You
How to Choose the Right Security Training for You
 
6 Most Common Threat Modeling Misconceptions
6 Most Common Threat Modeling Misconceptions6 Most Common Threat Modeling Misconceptions
6 Most Common Threat Modeling Misconceptions
 
Video Game Security
Video Game SecurityVideo Game Security
Video Game Security
 
Get Your Board to Say "Yes" to a BSIMM Assessment
Get Your Board to Say "Yes" to a BSIMM AssessmentGet Your Board to Say "Yes" to a BSIMM Assessment
Get Your Board to Say "Yes" to a BSIMM Assessment
 
Software Security Metrics
Software Security MetricsSoftware Security Metrics
Software Security Metrics
 
Cyber War, Cyber Peace, Stones, and Glass Houses
Cyber War, Cyber Peace, Stones, and Glass HousesCyber War, Cyber Peace, Stones, and Glass Houses
Cyber War, Cyber Peace, Stones, and Glass Houses
 
The Complete Web Application Security Testing Checklist
The Complete Web Application Security Testing ChecklistThe Complete Web Application Security Testing Checklist
The Complete Web Application Security Testing Checklist
 
BSIMM By The Numbers
BSIMM By The NumbersBSIMM By The Numbers
BSIMM By The Numbers
 
BSIMM: Bringing Science to Software Security
BSIMM: Bringing Science to Software SecurityBSIMM: Bringing Science to Software Security
BSIMM: Bringing Science to Software Security
 
BSIMM-V: The Building Security In Maturity Model
BSIMM-V: The Building Security In Maturity ModelBSIMM-V: The Building Security In Maturity Model
BSIMM-V: The Building Security In Maturity Model
 
5 Models for Enterprise Software Security Management Teams
5 Models for Enterprise Software Security Management Teams 5 Models for Enterprise Software Security Management Teams
5 Models for Enterprise Software Security Management Teams
 
How to Avoid the Top Ten Software Security Flaws
How to Avoid the Top Ten Software Security FlawsHow to Avoid the Top Ten Software Security Flaws
How to Avoid the Top Ten Software Security Flaws
 

Recently uploaded

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceBrainSell Technologies
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Cizo Technology Services
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfIdiosysTechnologies1
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odishasmiwainfosol
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentationvaddepallysandeep122
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024StefanoLambiase
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfStefano Stabellini
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Andreas Granig
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....kzayra69
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)jennyeacort
 

Recently uploaded (20)

React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
CRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. SalesforceCRM Contender Series: HubSpot vs. Salesforce
CRM Contender Series: HubSpot vs. Salesforce
 
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
Global Identity Enrolment and Verification Pro Solution - Cizo Technology Ser...
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 
Best Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdfBest Web Development Agency- Idiosys USA.pdf
Best Web Development Agency- Idiosys USA.pdf
 
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company OdishaBalasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
Balasore Best It Company|| Top 10 IT Company || Balasore Software company Odisha
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
PREDICTING RIVER WATER QUALITY ppt presentation
PREDICTING  RIVER  WATER QUALITY  ppt presentationPREDICTING  RIVER  WATER QUALITY  ppt presentation
PREDICTING RIVER WATER QUALITY ppt presentation
 
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
Dealing with Cultural Dispersion — Stefano Lambiase — ICSE-SEIS 2024
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
Xen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdfXen Safety Embedded OSS Summit April 2024 v4.pdf
Xen Safety Embedded OSS Summit April 2024 v4.pdf
 
Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024Automate your Kamailio Test Calls - Kamailio World 2024
Automate your Kamailio Test Calls - Kamailio World 2024
 
What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....What are the key points to focus on before starting to learn ETL Development....
What are the key points to focus on before starting to learn ETL Development....
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Advantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your BusinessAdvantages of Odoo ERP 17 for Your Business
Advantages of Odoo ERP 17 for Your Business
 
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
Call Us🔝>༒+91-9711147426⇛Call In girls karol bagh (Delhi)
 

Static Analysis Tools and Frameworks: Overcoming a Dangerous Blind Spot

  • 1. Copyright © 2015, CigitalCopyright © 2016, Cigital Static Analysis Tools and Frameworks: Overcoming a Dangerous Blind Spot Mike Lyman Senior Consultant mlyman@cigital.com https://www.cigital.com/blog/static-analysis-tool-framework-blind-spot/ Copyright © 2016, Cigital
  • 2. Copyright © 2015, CigitalCopyright © 2016, Cigital Who am I? Mike Lyman • Senior Consultant at Cigital • mlyman@cigital.com • 9+ years of software security focus • 19 years in the security business • CISSP/CSSLP • @mlyman87
  • 3. Copyright © 2015, CigitalCopyright © 2016, Cigital Who are you? • Developers? • Managers? • Testers? • Part of a security team? Are you using static analysis tools? What are your concerns with these tools?
  • 4. Copyright © 2015, CigitalCopyright © 2016, Cigital Agenda • Intro to static analysis tools • Static analysis concepts • Frameworks • The blind spot • How to overcome it • .Net Web API walkthrough
  • 5. Copyright © 2015, CigitalCopyright © 2016, Cigital Testing with static analysis tools is often referred to as Static Application Security Testing (SAST).
  • 6. Copyright © 2015, CigitalCopyright © 2016, Cigital SAST tools • Tools that look at source code for certain types of bugs • As simple as “glorified grep” • simple pattern recognition • As complicated as compilers • control and data flow analysis • Often a combination of both • Free and commercially available
  • 7. Copyright © 2015, CigitalCopyright © 2016, Cigital SAST concepts • Taint: data from untrusted sources is considered tainted • Source: source of data • Sink: function that consumes data • Taint flows through the data flows until it is either: • removed through validation or sanitization • consumed by a sink • If taint reaches sink, bad things can happen • Examples: • Buffer overflows • Command injection • SQL injection
  • 8. Copyright © 2015, CigitalCopyright © 2016, Cigital Frameworks • Speed up development • Provide a lot of basic functionality • Allows a focus on core functionality • Might be completely separate from your language • Java and Spring • Might be tightly coupled • C# and .Net (but with some advanced features that are available as separate downloads)
  • 9. Copyright © 2015, CigitalCopyright © 2016, Cigital The blind spot
  • 10. Copyright © 2015, CigitalCopyright © 2016, Cigital The blind spot • What is going on under the hood? • Obvious question: Are there security bugs in the framework itself? • Not so obvious: Do frameworks introduce problems for your code? • New sources of tainted data? • New dangerous sinks? • Pass through functions that pass on or add taint? • How do the data flows work with the framework? • Does your SAST tool understand this? • Using non-framework 3rd party libraries can cause the same issues.
  • 11. Copyright © 2015, CigitalCopyright © 2016, Cigital Does your tool know about these issues? • New frameworks and new versions appearing faster than we can keep up – can the tool vendor? • Are there enough users to get the vendor’s attention? • Even if you have the source code, can the tool trace the data flows? • If your static analysis tool cannot see or understand the framework it cannot report issues – false negatives!
  • 12. Copyright © 2015, CigitalCopyright © 2016, Cigital False positives are annoying. False negatives are dangerous! False positives are annoying. False negatives are dangerous!
  • 13. Copyright © 2015, CigitalCopyright © 2016, Cigital How do you know you have a problem? • Penetration testers find code implementation problems • SAST doesn’t • Functionality analysis • What functionality does the framework (or 3rd party library) provide? • What types of problems can be introduced there or occur there? • Create vulnerable test cases • Scan the test cases • Binary analysis • Decompile and analyze • Watch for questions on the tool’s support forums • Ask the vendor
  • 14. Copyright © 2015, CigitalCopyright © 2016, Cigital How do you fix it? • Teach the tool to handle the issues through custom rules • May need pre-scan processing • Supplement with a different tool • Pressure the vendor • If you find actual bugs in the framework, report them
  • 15. Copyright © 2015, CigitalCopyright © 2016, Cigital .Net Web API A Walkthrough
  • 16. Copyright © 2015, CigitalCopyright © 2016, Cigital The setup • Customer is creating micro-services based on the .Net Web API (System.Web.Http.ApiController). • Penetration testers find code implementation issues. • SAST doesn’t understand the Web API or asynchronous calls, despite both being available for years. • Need to enable SAST tools to find these issues.
  • 17. Copyright © 2015, CigitalCopyright © 2016, Cigital Non-live walkthrough • Code taken from the stub program is created when you create a new Web API C# application. • These code snippets don’t necessarily contain security bugs. They are used to illustrate the discovery method used to figure out how to get the SAST tool to understand code derived from the APIController. • Images of MSIL code taken from ILSpy.
  • 18. Copyright © 2015, CigitalCopyright © 2016, Cigital The .Net ApiControl (WebAPI) provides automatic routing and databinding for HTTP methods. Databinding can be simple types (shown here) or complex custom classes. Data coming into these controllers via the automatic routing and databinding is part of http requests and should be considered tainted input. The SAST tool in use does an okay job of identifying tainted data sources both for things that followed the Get, Post, etc. naming conventions and for custom named methods mapped to HTTP methods (via attributes). The job isn’t perfect and needs to be supplemented with custom rules, especially after implementing some of the solutions discussed in the following slides.
  • 19. Copyright © 2015, CigitalCopyright © 2016, Cigital Real SAST problems arise with async methods and awaits. The SAST tool is blind to problems here. Data coming into these methods is not identified as tainted data. The initial instinct is to craft custom rules looking at C# in these methods. This approach doesn’t work here. Since custom rules based on C# don’t work, more research is necessary to include examining the assemblies themselves with ILSpy.
  • 20. Copyright © 2015, CigitalCopyright © 2016, Cigital ILSpy can take the assemblies and show you the MSIL and then take the MSIL back to either C# or VB.Net. The C# version of ChangePassword that comes from the decompiled assembly looks vastly different than the C# on the previous slide. Since the SAST tool in use looks at the compiled assemblies with its data flow rules, rather than the original C# source code, it’s now apparent why custom rules based on the original C# aren’t working. The compiler replaces the original code in the async method and generates a nested class to implement a state machine to handle the asynchronous task. The problems are now occurring in the generated class.
  • 21. Copyright © 2015, CigitalCopyright © 2016, Cigital The generated nested class creates a state machine that manages the async call. Most of the work is done in the MoveNext method (collapsed in the image above) as it steps through the various states until the task is complete. Analysis shows that this is where a large part of the custom rules effort is needed.
  • 22. Copyright © 2015, CigitalCopyright © 2016, Cigital We now know where to look. However… • It is clear that custom rules need to be built based on the generated, nested classes. However, they didn’t exist before compile time. • A pre-scan step examines the compiled assemblies using FXCop and Mono.Cecil, and generates custom rules on the fly. • The custom rules are used to scan the assemblies with the SAST tool. • It still fails to work properly.
  • 23. Copyright © 2015, CigitalCopyright © 2016, Cigital Now what? • The generated classes are nested: private classes with private methods. The SAST tool appears to ignore them. • Another pre-scan step is created to use Mono.Cecil to modify the assemblies by making the generated methods and classes public. • The dynamically generated rules start working.
  • 24. Copyright © 2015, CigitalCopyright © 2016, Cigital Confirmation • Test cases are created in C# with known dangerous sinks to test if the SAST tool works with the custom data source rules. • Test cases confirm proper data flows are identified from tainted sources, to the known dangerous sinks, and issues raised by the tool. • Due to compiler generated code, this didn’t provide complete test coverage. • Test cases are injected directly into the compiled assemblies using Mono.Cecil and we can confirm that the rules work.
  • 25. Copyright © 2015, CigitalCopyright © 2016, Cigital Problem discovery recap • Gained a deeper understanding of .Net Web APIs and asynchronous methods. • Discovered the main tool’s custom rules had to look for MSIL syntax – not C#. • Observed that taint sources existed within compiler- generated classes and methods that SAST couldn’t see. • Noticed that visibility issues hid problems from SAST tools. • Private vs. public access modifiers • Nested compiler created classes
  • 26. Copyright © 2015, CigitalCopyright © 2016, Cigital Solutions recap • Created custom rules based on MSIL syntax. • Created a pre-scan step to dynamically incorporate custom source rules based on generated MSIL for classes inherited from ApiController. • Created a pre-scan step to modify class and method visibility in generated assemblies. • Created test cases in C# to test dynamic rules. • Created a process to inject MSIL test cases into compiled assemblies for more complete test coverage.
  • 27. Copyright © 2015, CigitalCopyright © 2016, Cigital Questions?