Engineering Secure Software

Slides:



Advertisements
Similar presentations
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Advertisements

Engineering Secure Software. The Power of Source Code  White box testing Testers have intimate knowledge of the specifications, design, Often done by.
System Security Scanning and Discovery Chapter 14.
Establishing an effective performance testing environment. Gordon McKeown TMF 2010.
9-Performing Vulnerability Assessments Dr. John P. Abraham Professor UTPA.
CSCI 530L Vulnerability Assessment. Process of identifying vulnerabilities that exist in a computer system Has many similarities to risk assessment Four.
Security+ Guide to Network Security Fundamentals, Third Edition Chapter 9 Performing Vulnerability Assessments.
Computer Security and Penetration Testing
09/18/06 1 Software Security Vulnerability Testing in Hostile Environment Herbert H. Thompson James A. Whittaker Florence E. Mottay.
Web Application Security Assessment and Vulnerability Assessment.
Security+ Guide to Network Security Fundamentals, Fourth Edition
Sam Cook April 18, Overview What is penetration testing? Performing a penetration test Styles of penetration testing Tools of the trade.
W3af LUCA ALEXANDRA ADELA – MISS 1. w3af  Web Application Attack and Audit Framework  Secures web applications by finding and exploiting web application.
Securing Legacy Software SoBeNet User group meeting 25/06/2004.
What we are going to talk about? New Version of Canape Released at Ruxcon What is the VMware ESXi management protocol? In Canape: – MitM – Traffic Parsing.
CSCE 548 Code Review. CSCE Farkas2 Reading This lecture: – McGraw: Chapter 4 – Recommended: Best Practices for Peer Code Review,
SATAN Presented By Rick Rossano 4/10/00. OUTLINE What is SATAN? Why build it? How it works Capabilities Why use it? Dangers of SATAN Legalities Future.
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
© 2001 by Carnegie Mellon University SS5 -1 OCTAVE SM Process 5 Background on Vulnerability Evaluations Software Engineering Institute Carnegie Mellon.
SIGITE 2008: Oct Integrating Web Application Security into the IT Curriculum James Walden Northern Kentucky University.
 Chapter 14 – Security Engineering 1 Chapter 12 Dependability and Security Specification 1.
CSCE 522 Secure Software Development Best Practices.
Security+ Guide to Network Security Fundamentals, Third Edition Chapter 9 Performing Vulnerability Assessments.
Software Testing and Maintenance 1 Code Review  Introduction  How to Conduct Code Review  Practical Tips  Tool Support  Summary.
Second Line Intrusion Detection Using Personalization DISA Sponsored GWU-CS.
1 Figure 4-1: Targeted System Penetration (Break-In Attacks) Host Scanning  Ping often is blocked by firewalls  Send TCP SYN/ACK to generate RST segments.
1 Security Penetration Testing Angela Davis Mrinmoy Ghosh ECE4112 – Internetwork Security Georgia Institute of Technology.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
CSCE 548 Secure Software Development Security Operations.
Kali Linux BY BLAZE STERLING. Roadmap  What is Kali Linux  Installing Kali Linux  Included Tools  In depth included tools  Conclusion.
Exploitation Development and Implementation PRESENTER: BRADLEY GREEN.
Penetration Testing By Blaze Sterling. Roadmap What is Penetration Testing How is it done? Penetration Testing Tools Kali Linux In depth included tools.
CSCE 548 Secure Software Development Penetration Testing.
Lecture 16 Page 1 CS 236 Online Evaluating Program Security What if your task isn’t writing secure code? It’s determining if someone else’s code is secure?
Common System Exploits Tom Chothia Computer Security, Lecture 17.
Software Testing Training Online. Software testing is ruling the software business in current scenario. It provides an objective, independent view of.
Defining your requirements for a successful security (and compliance
CHAPTER 4 Methodology.
CSCE 548 Secure Software Development Risk-Based Security Testing
Manuel Brugnoli, Elisa Heymann UAB
Critical Security Controls
A Comprehensive Security Assessment of the Westminster College Unix Lab Jacob Shodd.
Security Testing Methods
Execution with Unnecessary Privileges
CITA 352 Chapter 5 Port Scanning.
Engineering Secure Software
Chris D Hicks Director of IT MCSE, MCP + Internet Security
Evaluating Existing Systems
Network Exploitation Tool
Evaluating Existing Systems
CIT 480: Securing Computer Systems
Evaluating Program Security
NEED OF JAILBREAKING IN IOS PENETRATION TESTING
HTML Level II (CyberAdvantage)
PT0-001 Dumps PDF CompTIA PenTest+ Exam Exam Code Exam Name.
Chapter 3. Basic Dynamic Analysis
Advanced Penetration testing
Validating Your Information Security Program (ISP 3 of 3)
Distrustful Decomposition
AppExchange Security Certification
CS240: Advanced Programming Concepts
Software System Testing
Engineering Secure Software
Security Risk Assessment
CULLEN ACHESON Samuel Garcia Zachary Blum
Security Risk Assessment
Engineering Secure Software
White Box testing & Inspections
Engineering Secure Software
Cyber Security For Civil Engineering
Presentation transcript:

Engineering Secure Software Black Box Testing

The Power of Objectivity Black box testing No knowledge of the source code Cursory knowledge of the architecture and protocols Often performed by a third-party Why limit our own knowledge? Objectivity Different blind spots than the developers Assumptions are closer to attackers Assessment Persuasive to upper management and customers If a naïve tester can get this far, who else can get this far? © 2011-2012 Andrew Meneely

Exploratory & Penetration Testing Exploratory testing Scope: entire attack surface Goals Enumerate areas of attack Find that low-hanging fruit Mostly outer defenses Drawback: results not always actionable Penetration testing Scope: small area of the attack surface Goals: Focus intently on a few features Determine exploitability (construct actual exploits) Evaluate defense in depth Drawback: proof by existence lack of vulnerabilities found != lack of vulnerabilities

Areas of Expertise Know the environment Know where to look Networking (webapps, low-level protocols) Operating systems (mobile, desktop, & server) Database management Know where to look “Where there’s smoke, there’s fire” Bug in security feature is often a vulnerability Common assumptions Recognize a potential vulnerability Vague, system error messages Strange behavior Constructing exploits

In Practice… Exploratory and penetration testing are done simultaneously Start with exploratory testing Drill down with penetration testing When teams have security problems, they often just hire pen-testers Despite this being the least efficient approach (and too late) Many people confuse security expertise with penetration testing expertise Requires many hours of practice Start with known vulnerabilities How could I have recognized it? Try to construct an exploit for it Build your own tools

Exploratory: Fuzz Testing Goal: Reveal the attack surface Look for candidates of pen-testing Examine how the system reacts, without going too deep Simulate the user Reverse-engineer common behavior Record a normal sequence of operations Identify & modify the inputs Explore beyond common behavior Automate the process Output: Vulnerability candidates Automatically constructing exploits is usually too much work

Tools of Exploratory Testing Web applications HTML viewers & parsers: Firebug, developer tools Automate common operations: Greasemonkey Web client tampering tools Networking Discover local ports: netstat Discover remote ports: nmap Sniff the network: Wireshark, ngrep, tcpdump Operating system Find open file handles: lsof Process tree: ps

Tools of Penetration Testing Reverse engineering Disassembly & Decompilation: IDA-pro, javap, Debuggers: gdb Networking Proxies: for intercepting & tampering traffic Custom fault injectors Password cracking Online guessing Offline cracks Buckets of tools Metasploit: database of specific exploits BackTrack: Linux distribution with tons of tools http://sectools.org/

Before You Start Define what is sensitive Control the environment Test data: e.g. config files, sensitive records Environment information: e.g. server versions Database schema Control the environment e.g. use your own server Be ready to try different configurations Use virtualization to contain your exploits Ask for the keys To study defense in depth e.g. multiple authorizations to a test system Be ready to dive in… this will take a while

Don’t Forget the Feedback! Transfer your knowledge back to developers Highlight the assumptions that they made Discuss what could have been done to avoid it Don’t just poke holes, help with the mitigation Egos are often bruised, at that point it’s time to help Fix the vulnerability, not block the exploit Focus on process improvement Checklists for future inspections Newly-identified assets Produce tests for similar features