Software Security Without The Source Code By Matt Hargett.

Slides:



Advertisements
Similar presentations
Advanced Web Metrics with Google Analytics By: Carley Brown.
Advertisements

Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Building an Effective SDLC Program: Case Study Guy Bejerano, CSO, LivePerson Ofer Maor, CTO, Seeker Security.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
By Philipp Vogt, Florian Nentwich, Nenad Jovanovic, Engin Kirda, Christopher Kruegel, and Giovanni Vigna Network and Distributed System Security(NDSS ‘07)
WebGoat & WebScarab “What is computer security for $1000 Alex?”
OWASP Xenotix XSS Exploit Framework
Blackbox Reversing of XSS Filters Alexander Sotirov ekoparty 2008.
1. Prelude Diebold’s electronic voting system source code was discovered and subsequently leaked due to it being on a Diebold web server. Although it.
The Museum Project The Museum Project Yoav Gvili & Asaf Stein Supervisor : Alexander Arlievsky.
Servlets and a little bit of Web Services Russell Beale.
1 ©2007, University of Pisa, Dip. Ingegneria dell’Informazione – Andrea Bacioccola Survey on Database Architectures A. Bacioccola.
Introduction to Web Application Security
Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November.
Computer Security and Penetration Testing
The OWASP Foundation Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under.
14 Chapter 14 Databases and The Internet Database Systems: Design, Implementation, and Management 4th Edition Peter Rob & Carlos Coronel.
Leveraging User Interactions for In-Depth Testing of Web Application Sean McAllister Secure System Lab, Technical University Vienna, Austria Engin Kirda.
Handling Security Threats in Kentico CMS Karol Jarkovsky Sr. Solution Architect Kentico Software
WebQuilt and Mobile Devices: A Web Usability Testing and Analysis Tool for the Mobile Internet Tara Matthews Seattle University April 5, 2001 Faculty Mentor:
Security Scanning OWASP Education Nishi Kumar Computer based training
Christopher M. Pascucci Basic Structural Concepts of.NET Browser – Server Interaction.
OWASP Mobile Top 10 Why They Matter and What We Can Do
W3af LUCA ALEXANDRA ADELA – MISS 1. w3af  Web Application Attack and Audit Framework  Secures web applications by finding and exploiting web application.
Introduction to Application Penetration Testing
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
CSCI 6962: Server-side Design and Programming Course Introduction and Overview.
1 Modular Software/ Component Software 2 Modular Software Code developed in modules. Modules can then be linked together to produce finished product/program.
Testing Tools. Categories of testing tools Black box testing, or functional testing Testing performed via GUI. The tool helps in emulating end-user actions.
Databases and the Internet. Lecture Objectives Databases and the Internet Characteristics and Benefits of Internet Server-Side vs. Client-Side Special.
Revolutionizing the Field of Grey-box Attack Surface Testing with Evolutionary Fuzzing Department of Computer Science & Engineering College of Engineering.
Part 2  Access Control 1 CAPTCHA Part 2  Access Control 2 Turing Test Proposed by Alan Turing in 1950 Human asks questions to another human and a computer,
Penetration Testing James Walden Northern Kentucky University.
November 13, 2008 Ohio Information Security Forum Attack Surface of Web Applications James Walden Northern Kentucky University
Introduction to J2EE Architecture Portions by Kunal Mehta.
ZigZag: Automatically Hardening Web Applications Against Client-side Validation Vulnerabilities Presented by Xianchen Meng CSCI 680 Advanced System and.
10/13/2015 ©2006 Scott Miller, University of Victoria 1 Content Serving Static vs. Dynamic Content Web Servers Server Flow Control Rev. 2.0.
CMPS 211 JavaScript Topic 1 JavaScript Syntax. 2Outline Goals and Objectives Goals and Objectives Chapter Headlines Chapter Headlines Introduction Introduction.
SIGITE 2008: Oct Integrating Web Application Security into the IT Curriculum James Walden Northern Kentucky University.
OWASP Top Ten #1 Unvalidated Input. Agenda What is the OWASP Top 10? Where can I find it? What is Unvalidated Input? What environments are effected? How.
SEC835 Runtime authentication Secure session management Secure use of cryptomaterials.
TaintScope Presented by: Hector M Lugo-Cordero, MS CAP 6135 April 12, 2011.
October 3, 2008IMI Security Symposium Application Security through a Hacker’s Eyes James Walden Northern Kentucky University
WEP Presentation for non-IT Steps and roles in software development 2. Skills developed in 1 st year 3. What can do a student in 1 st internship.
Crash Course in Web Hacking
Lecture 16 Page 1 CS 236 Online Web Security CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
DETECTING TARGETED ATTACKS USING SHADOW HONEYPOTS AUTHORS: K. G. Anagnostakisy, S. Sidiroglouz, P. Akritidis, K. Xinidis, E. Markatos, A. D. Keromytisz.
Deconstructing API Security
14 1 Chapter 14 Web Database Development Database Systems: Design, Implementation, and Management, Sixth Edition, Rob and Coronel.
Chapter 12: How Private are Web Interactions?. Why we care? How much of your personal info was released to the Internet each time you view a Web page?
8 Chapter Eight Server-side Scripts. 8 Chapter Objectives Create dynamic Web pages that retrieve and display database data using Active Server Pages Process.
CFUNITED – The premier ColdFusion conference Load and Functional Testing Flex 2 and ColdFusion Matthew Stevanus Universal Mind.
DOWeR Detecting Outliers in Web Service Requests Master’s Presentation of Christian Blass.
Vineel Vutukuri. What is SPA? Why SPA? Pros & Cons When to use SPA?
Database and Cloud Security
Content Coverity Static Analysis Use cases of Coverity Examples
BUILD SECURE PRODUCTS AND SERVICES
Web Application Security
Chapter 7: Identifying Advanced Attacks
World Wide Web policy.
Software testing
Abstract Intrusion detection in networks is of practical interest in many applications such as detecting an intruder in a battlefield. The intrusion detection.
Latest Updates on BlackHawk Mines Music : Privacy Policy
Marking Scheme for Semantic-aware Web Application Security
HTML Level II (CyberAdvantage)
Chapter 12: Automated data collection methods
Cross Platform Network Calls Automation
CSC 495/583 Topics of Software Security Intro to Web Security
ODBC and JDBC.
Top 10 ArcGIS API for JavaScript Skills
Presentation transcript:

Software Security Without The Source Code By Matt Hargett

Introduction ➲ Matt Hargett ● Security QA Engineer for 7 years ● NAI/McAfee, TurboLinux, Cenzic ● Discovered many critical vulnerabilities ● Created binary code analysis product ● BugScan

Overview ➲ Why we need to measure software security ➲ Kinds of security policy testing ➲ Whitebox approaches ➲ Blackbox approaches ➲ Effectiveness against real-world exploits ➲ What you can do with this information

Why we need to measure ➲ Brand and reputation damage ➲ Proprietary information leakage ➲ Unplanned disruption ➲ Violation of privacy policy ➲ Espionage ➲ Terrorism

How do we measure ➲ Whitebox ● Manual code inspection ● Source code static analysis ● Binary static analysis ● Runtime analysis ➲ Blackbox ● Web Applications ● Network protocols ● APIs

Blackbox Network Testing ➲ Sniff, fuzz, replay ● Sniff network traffic ● Systematically fuzz the relevant data ● Remove delimeters, bitwalk,... ● {admin.command\0::\43\89\42} ● Replay fuzzed packets to server ➲ Fuzzing via Proxy ● Route traffic through a proxy ● Proxy fuzzes data systematically ● Fuzzed data gets passed on ● Repeat client operation ➲ Protocol-specific fuzzing ● Make special client for specific protocol(s)

Blackbox Network Testing: In the Real World ➲ Sniff, fuzz, replay ● Not stateful ● Doesn't work with encryption ● Only fuzzes client-side ➲ Fuzzing via Proxy ● Lets real client/server handle state ● Doesn't work with encryption ● Fuzzes client and server data ➲ Protocol-specific fuzzing ● Handles real state of client/server ● Does encryption itself ● Can get great code coverage ● Fuzzes client server and data

Blackbox Network Testing: General Jeers ➲ Detecting when you've evoked a problem ➲ Measuring code coverage ➲ Slow process ➲ Expensive to scale

Blackbox Web Testing ➲ Sniff, fuzz, replay ● Auto-crawl or manual clicks ● Sniff browser requests ● Systematically fuzz the relevant data ● Insert SQL Injection, Command Injection, XSS,... ● POST /foo.cgi?name=bob&pass=... ➲ Fuzzing via Proxy ● Optionally crawl to generate requests ● Send requests through a proxy ● Proxy fuzzes requests systematically ● Repeat browser operation ➲ GUI Automation tools ● Automate real browser interaction ● Put bad data into form and cookie fields

Blackbox Web Testing: In the Real World ➲ Sniff, fuzz, replay ● Server-side state mishaps ● Little to no javascript support ● No flash, java, web service support ● Finds WAY low-hanging fruit ➲ Fuzzing via Proxy ● Server-side state mishaps ● Must have browser automation anyways ● Operations must be self-contained ➲ GUI Automation tools ● Maintenance of stored tests ● Tests must be self-contained ● Can be part of standard QA

Blackbox Web Testing: General Jeers ➲ Detecting when you've evoked a problem ➲ Measuring code coverage ➲ Slow process ➲ Expensive to scale ➲ Getting past captchas

Whitebox Testing Without Source ➲ Manual review ➲ Call-based static analysis ➲ Pointer and control/data flow static analysis

Whitebox Testing Without Source: In the Real World ➲ Manual review ● Going through instruction by instruction ● Tedious, time consuming, error prone, rare skill ● Pair rev-enging, unit testing ● Rare skill, unit test exploits may not be real-world ➲ call-based analysis ● 42,897 strcpy calls detected!!!!#%* ● HttpResponse.GetValue() before Statement.Execute() ● Dispose called inside Dispose ➲ Pointer and control/data flow analysis ● Must be inter-function to be useful ● Must track global/static data ● Inter-module tracking also important

Whitebox Testing Without Source: General Jeers ➲ People ● Hire manual reviewers with a proven track record of real- world exploitable bugs patched by a vendor ➲ Tools ● Difficult to use ● Poor quality ● False positives

Whitebox Testing With Source: General Jeers ➲ Worthless when source not available ➲ People ● Hire manual reviewers with a proven track record of real- world exploitable bugs patched by a vendor ➲ Tools ● There is no free unit test lunch ● Demand vendors demonstrate finding novel real-world exploitable bugs their tool finds OOTB ● Demand vendors demonstrate finding previously known real-world exploitable bugs their tool finds OOTB ● Demand third party vendor-neutral benchmarks ● No good visualization/exploration tools for manual reviewers

Whitebox Testing: General Jeers, Source or Not ➲ Code is code, period ➲ Most tools are a retarded joke ➲ False positive rates above 10% on large (100KLOC) means a useless tool ➲ High priority report items should be real-world exploitable 95% of the time ➲ Custom signatures shouldn't require extra cost, permission, or license ➲ Tools ● Demand vendors demonstrate finding novel real-world exploitable bugs their tool finds OOTB ● Demand vendors demonstrate finding previously known real- world exploitable bugs their tool finds OOTB ● Demand third party vendor-neutral benchmarks ● No good visualization tools for manual reviewers ● Zealousy on a given approach

Recommendations ➲ Engage a holistic approach ● Blackbox and Whitebox ➲ Use multiple vendor tools to cross-check ● Source and binary ● Runtime and static ➲ Use protocol-specific fuzzers ● Ask vendor for code coverage on open source implementation(s) of said protocol(s) ➲ Use UI automation tools for web apps ➲ Any good tool will require tuning

Taking Action ➲ If open source, fix the problem yourself ➲ Contact vendor ➲ If vendor cannot supply a fix in 30 days ● Escalate the issue ● Find a new vendor ● If open source, fix the problem yourself ➲ Vendors will string you along

Thank You use. net Questions?