Software Security Testing

Slides:



Advertisements
Similar presentations
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
Advertisements

ATTACKING AUTHENTICATION The Web Application Hacker’s Handbook, Ch. 6 Presenter: Jie Huang 10/31/2012.
1 No Silver Bullet : Inherent Limitations of Computer Security Technologies Jeffrey W. Humphries Texas A&M University.
11 ASSESSING THE NEED FOR SECURITY Chapter 1. Chapter 1: Assessing the Need for Security2 ASSESSING THE NEED FOR SECURITY  Security design concepts 
INDEX  Ethical Hacking Terminology.  What is Ethical hacking?  Who are Ethical hacker?  How many types of hackers?  White Hats (Ethical hackers)
The Ecommerce Security Environment For most law-abiding citizens, the internet holds the promise of a global marketplace, providing access to people and.
August 1, 2006 Software Security. August 1, 2006 Essential Facts Software Security != Security Features –Cryptography will not make you secure. –Application.
CMSC 414 Computer and Network Security Lecture 24 Jonathan Katz.
8.1 © 2007 by Prentice Hall 8 Chapter Securing Information Systems.
Copyright © 2002 Pearson Education, Inc. Slide 5-1 PERTEMUAN 8.
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
SOFTWARE SECURITY TESTING IS IMPORTANT, DIFFERENT AND DIFFICULT Review by Rayna Burgess 4/21/2011.
Managing Information Systems Information Systems Security and Control Part 2 Dr. Stephania Loizidou Himona ACSC 345.
Auditing Auditing & Automated Systems Chapter 22 Auditing & Automated Systems Chapter 22.
SEC835 Database and Web application security Information Security Architecture.
Secure Software Development SW Penetration Testing Chapter 6 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
Security Exploiting Overflows. Introduction r See the following link for more info: operating-systems-and-applications-in-
CSCE 548 Secure Software Development Risk-Based Security Testing.
Web Server Administration Chapter 10 Securing the Web Environment.
A Framework for Automated Web Application Security Evaluation
CSCE 548 Secure Software Development Test 1 Review.
CSCE 548 Code Review. CSCE Farkas2 Reading This lecture: – McGraw: Chapter 4 – Recommended: Best Practices for Peer Code Review,
May 2, 2007St. Cloud State University Software Security.
Version 02U-1 Computer Security: Art and Science1 Penetration Testing by Brad Arkin Scott Stender and Gary McGraw.
INFORMATION SECURITY & RISK MANAGEMENT SZABIST – Spring 2012.
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
Varun Sharma Application Consulting and Engineering (ACE) Team, Microsoft India.
R Enabling Trusted Software Integrity Darko Kirovski Microsoft Research Milenko Drinić Miodrag Potkonjak Computer Science Department University of California,
An Ad Hoc Writable Rule Language for White-Box Security Scanners Author:Sebastian Schinzel Referent:Prof. Dr. Alexander del Pino Korreferent:Prof. Dr.
Data Security Assessment and Prevention AD660 – Databases, Security, and Web Technologies Marcus Goncalves Spring 2013.
CSCE 522 Secure Software Development Best Practices.
APPLICATION PENETRATION TESTING Author: Herbert H. Thompson Presentation by: Nancy Cohen.
1 ITGD 2202 Supervision:- Assistant Professor Dr. Sana’a Wafa Al-Sayegh Dr. Sana’a Wafa Al-SayeghStudent: Anwaar Ahmed Abu-AlQumboz.
Security Attacks CS 795. Buffer Overflow Problem Buffer overflows can be triggered by inputs that are designed to execute code, or alter the way the program.
CSCE 522 Secure Software Development Best Practices.
CPSC 6126 Computer Security Information Assurance.
Lesson 19-E-Commerce Security Needs. Overview Understand e-commerce services. Understand the importance of availability. Implement client-side security.
CSCE 201 Secure Software Development Best Practices.
By Ramesh Mannava.  Overview  Introduction  10 secure software engineering topics  Agile development with security development activities  Conclusion.
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
Vulnerability / Cybersecurity Research Discussion Dwayne Melancon, CISA Chief Technology Officer and VP of Research & Development.
Software Security Q: What does it mean to say that a program is secure? A: There is a sufficient amount of trust that the program maintains _____________,
Security Architecture and Design Chapter 4 Part 4 Pages 377 to 416.
Securing Information Systems
Vulnerability Analysis
Buffer Overflows Incomplete Access Control
Presented by Rob Carver
CompTIA Security+ Study Guide (SY0-401)
CMSC 345 Defensive Programming Practices from Software Engineering 6th Edition by Ian Sommerville.
CSCE 548 Secure Software Development Risk-Based Security Testing
Manuel Brugnoli, Elisa Heymann UAB
Design for Security Pepper.
K. K. Mookhey Network Intelligence India Pvt. Ltd.
Approaches to ---Testing Software
Secure Software Confidentiality Integrity Data Security Authentication
Software Security ITGD 2202 Supervision:- Assistant Professor
A Security Review Process for Existing Software Applications
INFORMATION SECURITY The protection of information from accidental or intentional misuse of a persons inside or outside an organization Comp 212 – Computer.
CSCE 548 Secure Software Development Test 1 Review
James Walden Northern Kentucky University
Security in Networking
Engineering Secure Software
Text Book: Security in Computing
Lesson 16-Windows NT Security Issues
development lifecycle & Principles
INFORMATION SYSTEMS SECURITY and CONTROL
Chapter 27 Security Engineering
Security.
Ethical Hacking.
Engineering Secure Software
Presentation transcript:

Software Security Testing Bruce Potter, Booz Allen Hamilton Gary McGraw, Cigital

Testing for security Standard software testing is generally indifferent to the intent of the failure – whether it is malicious or not Testing for security is different than functional testing since there can be an intelligent adversary actively trying to subvert the system for fun or profit Security testers should ideally be able to think like an attacker Needs to be more involved than functional testing and black-box testing of front-end of the system

Risk Management Examines the likelihood of a successful attack and its impact These metrics can be used to prioritize and rank the available resources to address them A vulnerability is a flaw or bug that can be used to cause damage to the system Taxonomies of vulnerabilities have been created by researchers Attackers have become more sophisticated Has altered the likelihood of successful attacks against systems Race conditions and two-stage stack-based buffer overflows becoming more prevalent at the time of the paper

Implementation and Design Vulnerabilities Implementation-level vulnerabilities are easier to detect and change The strcpy(char *, char *) function does not perform bounds checking and can enable a stack-based buffer overflow Use strncpy(char *, char *, int) function instead which limits the number of bytes copied from the source string to the destination string Design-level vulnerabilities require domain knowledge to address and are difficult to automate Error-handling in an object-oriented system Object sharing and trust issues Unprotected data channels Insufficient access control mechanisms Lack of auditing and logging Timing errors

Security-Annotated Software Development Lifecycle

Perception of Security “Software security is not security software” Can provide false sense of security Some developers mistakenly believe that adding cryptography is panacea for security Software can use security mechanisms but still be insecure Uses crypto but still has insufficient access control Hard-coded credentials that can be extracted from the binary to decrypt the ciphertext Fail to validate SSL certificates

Approaches for Security Testing Functionality testing the security mechanisms Can be performed by standard testing organizations Risk-based security testing and emulating an attacker approach to subvert the system Can be performed by hackers and penetration testers Hacking books and workshops can inform testers and developers of potential security threats so that they code more defensively and test more aggressively Security testing should be fundamental and built into the software development lifecycle Security testing is inadequate in some organizations due to time and resource constraints

Outside->In to Inside->Out Focus on security testing and risk management for software inside the LAN in addition to mechanisms to prevent access to attackers Also addresses insider thread

White Box and Black Box Testing White-box testing is aware of the the internals of the software and has access to the source code which provides a fuller understanding of the software More amenable to static analysis and instrumentation Static analysis examines artifacts of the software without executing it Black box testing is unaware of the software internals and provides various inputs and examines the responses Provide malicious and malformed input and examine for a fault which may manifest as a security vulnerability Software binary not required if testing is performed over the network

Java Card Security Testing Enhanced payment cards with additional storage and computational abilities Goal is to decrease fraud and abuse and authenticate transactions and identification Providing security in an evolving technology is difficult Credit card companies perform thorough security testing Early involvement of the security community for Java Card They perform risk-based security testing Focus on secure design so the cards can function properly in the face of attacks

Automated Security Testing Authors worked on security testing of the Global Platform/Java Card security initiative Cigital created a test suite to mostly automate the testing Low-level testing of the class codes, commands, and crypto High-level testing used hostile Java Card Applets Most cards passed the low-level functional security tests Each tested card displayed a fault for the high-level tests Some faults manifested as security vulnerabilities

Java Card: Lessons Learned Java cards require that transactions are atomic so they can be rolled back if they fail High-level attack scenarios Not aborting or committing transactions Filling the transactions buffers Performing nested transactions Discovered vulnerabilities were patched prior to public use Security should be integrated into the software development lifecycle Less costly to fix and less harm to the end user when security is not an afterthought