Secure Software Development Risk-Based Security Testing Chapter 7 Rasool Jalili & A. Boorghani Dept. of Computer Engineering Spring 2012.

Slides:



Advertisements
Similar presentations
Object Oriented Analysis And Design-IT0207 iiI Semester
Advertisements

Testing Relational Database
Chapter 1  Introduction 1 Introduction Chapter 1  Introduction 2 The Cast of Characters  Alice and Bob are the good guys  Trudy is the bad guy 
Chapter 1  Introduction 1 Chapter 1: Introduction.
Chapter 1  Introduction 1 Chapter 1: Introduction “Begin at the beginning,” the King said, very gravely, “and go on till you come to the end: then stop.”
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
CSCE 522 Building Secure Software. CSCE Farkas2 Reading This lecture – McGraw: Ch. 3 – G. McGraw, Software Security,
Secure Software Development Software Security Touchpoints Chapter 3 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
Some general principles in computer security Tomasz Bilski Chair of Control, Robotics and Computer Science Poznań University.
INDEX  Ethical Hacking Terminology.  What is Ethical hacking?  Who are Ethical hacker?  How many types of hackers?  White Hats (Ethical hackers)
Secure Software Development Security Operations Chapter 9 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
SOFTWARE SECURITY TESTING IS IMPORTANT, DIFFERENT AND DIFFICULT Review by Rayna Burgess 4/21/2011.
Chapter 1  Introduction 1 Chapter 1: Introduction “Begin at the beginning,” the King said, very gravely, “and go on till you come to the end: then stop.”
Software Security Testing by Gary McGraw, Bruce Potter presented by Edward Bonver 11/07/2005.
VULNERABILITY MANAGEMENT Moving Away from the Compliance Checkbox Towards Continuous Discovery.
Web Security Demystified Justin C. Klein Keane Sr. InfoSec Specialist University of Pennsylvania School of Arts and Sciences Information Security and Unix.
Secure Software Development SW Penetration Testing Chapter 6 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
CSCE 548 Secure Software Development Risk-Based Security Testing.
Software Quality Assurance Lecture #8 By: Faraz Ahmed.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
CPIS 357 Software Quality & Testing
CSCE 548 Secure Software Development Test 1 Review.
Software Testing Testing principles. Testing Testing involves operation of a system or application under controlled conditions & evaluating the results.
Security Development Lifecycle: Changing the Software Development Process to build in Security from the start Eric Bidstrup Ellen Cram Kowalczyk Security.
Version 02U-1 Computer Security: Art and Science1 Penetration Testing by Brad Arkin Scott Stender and Gary McGraw.
Introduction to Software Testing Chapter 9.1 Challenges in Testing Software – Testing for Emergent Properties: Safety and Security Paul Ammann & Jeff Offutt.
OSI and TCP/IP Models And Some Vulnerabilities AfNOG th May 2011 – 10 th June 2011 Tanzania By Marcus K. G. Adomey.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Security Awareness Challenges of Securing Information No single simple solution to protecting computers and securing information Different types of attacks.
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
Lecture 16 Page 1 Advanced Network Security Perimeter Defense in Networks: Virtual Private Networks Advanced Network Security Peter Reiher August, 2014.
1 Vulnerability Assessment of Grid Software James A. Kupsch Computer Sciences Department University of Wisconsin Condor Week 2007 May 2, 2007.
CSCE 522 Secure Software Development Best Practices.
1 ITGD 2202 Supervision:- Assistant Professor Dr. Sana’a Wafa Al-Sayegh Dr. Sana’a Wafa Al-SayeghStudent: Anwaar Ahmed Abu-AlQumboz.
Security+ Guide to Network Security Fundamentals, Third Edition Chapter 9 Performing Vulnerability Assessments.
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.
.  Define risk and risk management  Describe the components of risk management  List and describe vulnerability scanning tools  Define penetration.
Securing the Network Infrastructure. Firewalls Typically used to filter packets Designed to prevent malicious packets from entering the network or its.
Legitimate Vulnerability Markets By: Jeff Wheeler.
CSCE 548 Building Secure Software. CSCE Farkas2 Reading This lecture: – McGraw: Chapter 1 – Recommended: CyberInsecurity: The Cost of Monopoly,
CSCE 522 Secure Software Development Best Practices.
Introduction: Information security services. We adhere to the strictest and most respected standards in the industry, including: -The National Institute.
PwC New Technologies New Risks. PricewaterhouseCoopers Technology and Security Evolution Mainframe Technology –Single host –Limited Trusted users Security.
Security Vulnerabilities in A Virtual Environment
CSCE 201 Secure Software Development Best Practices.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Ethical Hacking License to hack. OVERVIEW Ethical Hacking ? Why do ethical hackers hack? Ethical Hacking - Process Reporting Keeping It Legal.
Secure Software Development Abuse Cases Chapter 8 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
Why Cryptosystems Fail R. Anderson, Proceedings of the 1st ACM Conference on Computer and Communications Security, 1993 Reviewed by Yunkyu Sung
Web Security Introduction to Ethical Hacking, Ethics, and Legality.
Role Of Network IDS in Network Perimeter Defense.
Secure Software Development Security Operations Chapter 9 Rasool Jalili & M.S. Dousti Dept. of Computer Engineering Fall 2010.
By Ramesh Mannava.  Overview  Introduction  10 secure software engineering topics  Agile development with security development activities  Conclusion.
EN Spring 2016 Lecture Notes FUNDAMENTALS OF SECURE DESIGN (NETWORK TOPOLOGY)
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
Firewalls. Overview of Firewalls As the name implies, a firewall acts to provide secured access between two networks A firewall may be implemented as.
CSCE 548 Secure Software Development Penetration Testing.
Lecture 9 Page 1 CS 236 Online Firewalls What is a firewall? A machine to protect a network from malicious external attacks Typically a machine that sits.
Secure Programming Dr. X
SOFTWARE TESTING Date: 29-Dec-2016 By: Ram Karthick.
CSCE 548 Secure Software Development Risk-Based Security Testing
Security Testing Methods
Software Security Testing
Secure Programming Dr. X
CSCE 548 Secure Software Development Use Cases Misuse Cases
Pertemuan 16 Security Policies
CS240: Advanced Programming Concepts
Topic 5: Communication and the Internet
Think about your view of QA
Presentation transcript:

Secure Software Development Risk-Based Security Testing Chapter 7 Rasool Jalili & A. Boorghani Dept. of Computer Engineering Spring 2012

Software Security 2 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Risk-Based Security Testing

Software Security 3 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Security testing has recently moved beyond the realm of network port scanning to include probing software behavior as a critical aspect of system behavior. Security testing done properly goes much deeper than simple black box probing on the presentation layer and even beyond the functional testing of security mechanism. Testers must carry out a risk-based approach, grounded in both the system's architectural reality and the attacker's mindset. By identifying risks in the system and creating tests driven by those risks, a software security tester can properly focus on areas of code where an attack is likely to succeed. Security testing has recently moved beyond the realm of network port scanning to include probing software behavior as a critical aspect of system behavior. Security testing done properly goes much deeper than simple black box probing on the presentation layer and even beyond the functional testing of security mechanism. Testers must carry out a risk-based approach, grounded in both the system's architectural reality and the attacker's mindset. By identifying risks in the system and creating tests driven by those risks, a software security tester can properly focus on areas of code where an attack is likely to succeed. Security testing

Software Security 4 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 The main difference of security testing and pentest: –the level of approach and –the timing of the testing itself. –Pen-testing happens once software is complete and installed in its operational environment. Also, penetration testing is focused outside  in and is somewhat brief. –Security testing can be applied before the software is complete, at the unit level, in a testing environment with stubs and pre-integration. –Should start at the feature or component/unit level, prior to system integration. The main difference of security testing and pentest: –the level of approach and –the timing of the testing itself. –Pen-testing happens once software is complete and installed in its operational environment. Also, penetration testing is focused outside  in and is somewhat brief. –Security testing can be applied before the software is complete, at the unit level, in a testing environment with stubs and pre-integration. –Should start at the feature or component/unit level, prior to system integration.

Software Security 5 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Security unit testing carries the benefit of breaking system security down into a number of discrete parts. Theoretically, if each component is implemented safely and fulfills inter-component design criteria, the greater system should be in reasonable shape. Security testing should continue at the system level and should be directed at properties of the integrated software system. This is precisely where penetration testing meets security testing. Finally, abuse cases developed earlier in the lifecycle should be used to enhance a test plan with adversarial tests based on possible abuse scenarios. Security testing involves as much black hat thinking as white hat thinking. Security unit testing carries the benefit of breaking system security down into a number of discrete parts. Theoretically, if each component is implemented safely and fulfills inter-component design criteria, the greater system should be in reasonable shape. Security testing should continue at the system level and should be directed at properties of the integrated software system. This is precisely where penetration testing meets security testing. Finally, abuse cases developed earlier in the lifecycle should be used to enhance a test plan with adversarial tests based on possible abuse scenarios. Security testing involves as much black hat thinking as white hat thinking.

Software Security 6 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Traditional approaches to computer and network security testing focus on network infrastructure, firewalls, and port scanning. This is especially true of network and software penetration testing (application penetration testing). Better penetration testing approaches take architectural risks, code scanning results, and security requirements into account, but still focus on an outside  in perspective. A classic outside  in paradigm focusing on firewall placement. Traditional approaches to computer and network security testing focus on network infrastructure, firewalls, and port scanning. This is especially true of network and software penetration testing (application penetration testing). Better penetration testing approaches take architectural risks, code scanning results, and security requirements into account, but still focus on an outside  in perspective. A classic outside  in paradigm focusing on firewall placement. From Outside  In to Inside  Out

Software Security 7 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Problem: the perimeter is only apparent at the network/packet level. At the level of software applications, the perimeter has all but disappeared. That's because firewalls have been configured (or mis-configured, depending on your perspective) to allow advanced applications to tunnel right through them. A good example of this phenomenon is the SOAP protocol, which is designed (on purpose) to carry traffic through port 80 for various different applications. In some sense, SOAP is an anti-security device invented by software people. In the brave new world of Service Oriented Architecture (SOA) for applications, we should not be surprised that the firewall is quickly becoming irrelevant. By contrast, in an inside  out approach to security, whereby software is itself subjected to rigorous risk management and security testing. Problem: the perimeter is only apparent at the network/packet level. At the level of software applications, the perimeter has all but disappeared. That's because firewalls have been configured (or mis-configured, depending on your perspective) to allow advanced applications to tunnel right through them. A good example of this phenomenon is the SOAP protocol, which is designed (on purpose) to carry traffic through port 80 for various different applications. In some sense, SOAP is an anti-security device invented by software people. In the brave new world of Service Oriented Architecture (SOA) for applications, we should not be surprised that the firewall is quickly becoming irrelevant. By contrast, in an inside  out approach to security, whereby software is itself subjected to rigorous risk management and security testing.

Software Security 8 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Software security is about making software behave in the presence of a malicious attack. Standard software testing literature is only concerned with what happens when software fails, regardless of intent. Software security - Software safety =an intelligent adversary. Most safety-critical systems (and high-assurance systems) posit a white hat world. Fact is, we live in a world with plenty of black hats as well, and we need to address that (head on). Attackers generally don't care whether a vulnerability is due to a flaw or a bug, although bugs tend to be easier to exploit. Design-level vulnerabilities are the hardest defect category to handle. Software security is about making software behave in the presence of a malicious attack. Standard software testing literature is only concerned with what happens when software fails, regardless of intent. Software security - Software safety =an intelligent adversary. Most safety-critical systems (and high-assurance systems) posit a white hat world. Fact is, we live in a world with plenty of black hats as well, and we need to address that (head on). Attackers generally don't care whether a vulnerability is due to a flaw or a bug, although bugs tend to be easier to exploit. Design-level vulnerabilities are the hardest defect category to handle. What's So Different about Security?

Software Security 9 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Different tasks to manage software security risks, such as: –Creating security abuse/misuse cases –Listing normative security requirements (and security features and functions) –Performing architectural risk analysis –Building risk-based security test plans –Using static analysis tools –Performing security tests –Performing penetration testing in the final environment –Cleaning up security breaches Different tasks to manage software security risks, such as: –Creating security abuse/misuse cases –Listing normative security requirements (and security features and functions) –Performing architectural risk analysis –Building risk-based security test plans –Using static analysis tools –Performing security tests –Performing penetration testing in the final environment –Cleaning up security breaches Risk Management and Security Testing

Software Security 10 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Do not forget: Software security is not security software. So, SWS testing must necessarily involve two diverse approaches: –Functional security testing: testing security mechanisms –Adversarial security testing: performing risk-based security testing motivated by simulating the attacker's approach Together, these two distinct activities are a mix of white hat (security functionality) and black hat (security attack) philosophies. Wrong belief: liberal application and use of various security features  "adding SSL“ to securing an application. Software security practitioners regret the over-reliance on "magic crypto fairy dust“. Do not forget: Software security is not security software. So, SWS testing must necessarily involve two diverse approaches: –Functional security testing: testing security mechanisms –Adversarial security testing: performing risk-based security testing motivated by simulating the attacker's approach Together, these two distinct activities are a mix of white hat (security functionality) and black hat (security attack) philosophies. Wrong belief: liberal application and use of various security features  "adding SSL“ to securing an application. Software security practitioners regret the over-reliance on "magic crypto fairy dust“.

Software Security 11 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Security testing: determining who should do the testing and what activities they should undertake. Who? –Standard testing organizations using a traditional approach  functional security testing. –Traditional QA staff? They have more difficulty due to the lack of expertise. 1.Security tests are difficult to design, due to thinking like an attacker. 2.Security tests do not often cause direct security exploit. –Bottom line: Risk-based security testing relies more on expertise and security experience (not testing experience). Security testing: determining who should do the testing and what activities they should undertake. Who? –Standard testing organizations using a traditional approach  functional security testing. –Traditional QA staff? They have more difficulty due to the lack of expertise. 1.Security tests are difficult to design, due to thinking like an attacker. 2.Security tests do not often cause direct security exploit. –Bottom line: Risk-based security testing relies more on expertise and security experience (not testing experience). How to Approach Security Testing

Software Security 12 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 How: –Books; helps a lot … –White & Black box testing with/ without having access to source. In Black Box testing, malicious input is an effort to break the program; Any testing method can reveal possible software risks and potential exploits. However, One problem with security testing (black or white box) is the lack of it (Testing Method). There is no end-point for software security; even a reasonable security testing routine is just a start. Unfortunately, security is being sold as a product, and most defensive mechanisms on the market do little to address the heart of the problem, which is bad software. Any testing approach is deeply impacted by software process issues. How: –Books; helps a lot … –White & Black box testing with/ without having access to source. In Black Box testing, malicious input is an effort to break the program; Any testing method can reveal possible software risks and potential exploits. However, One problem with security testing (black or white box) is the lack of it (Testing Method). There is no end-point for software security; even a reasonable security testing routine is just a start. Unfortunately, security is being sold as a product, and most defensive mechanisms on the market do little to address the heart of the problem, which is bad software. Any testing approach is deeply impacted by software process issues.

Software Security 13 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 The biggest problems in software security AS software takes input. Trust the input is a critical question that all software builders must consider. From buffer overflow (which involves putting too much input in too small a place) to SQL injection attack and cross-site scripting (XSS) attacks, trusting input is the common root cause. Carefully handling input is dominant to software security. If your program consumes data from "out there," you need to think carefully about who can feed and the stuff your program eats. The biggest problems in software security AS software takes input. Trust the input is a critical question that all software builders must consider. From buffer overflow (which involves putting too much input in too small a place) to SQL injection attack and cross-site scripting (XSS) attacks, trusting input is the common root cause. Carefully handling input is dominant to software security. If your program consumes data from "out there," you need to think carefully about who can feed and the stuff your program eats. Thinking about (Malicious) Input

Software Security 14 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 STOMATH IS THE ROOT OF ALL DESEASES. Attacker toolkits focus plenty of attention on input, with a plenty of fault injection tools, re-players, and the like. By its very nature, penetration testing is focused on input as well If your program accepts input over the network, it needs to be very doubtful of what it is getting. Using a black-list approach (which tries to enumerate all possible bad input) will not work. Instead, software needs to defend its input space with a white-list approach. STOMATH IS THE ROOT OF ALL DESEASES. Attacker toolkits focus plenty of attention on input, with a plenty of fault injection tools, re-players, and the like. By its very nature, penetration testing is focused on input as well If your program accepts input over the network, it needs to be very doubtful of what it is getting. Using a black-list approach (which tries to enumerate all possible bad input) will not work. Instead, software needs to defend its input space with a white-list approach.

Software Security 15 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Testing around malicious input is a necessary but not sufficient condition. Security testing needs to focusing on data structures, components, APIs, program state, and so on. In addition to building tests around risks that remain in the system, testers should consider things like: –Sockets –Pipes –The Win32 Registry –Files –Remote procedure calls (RPCs) –Command-line arguments –…. Testing around malicious input is a necessary but not sufficient condition. Security testing needs to focusing on data structures, components, APIs, program state, and so on. In addition to building tests around risks that remain in the system, testers should consider things like: –Sockets –Pipes –The Win32 Registry –Files –Remote procedure calls (RPCs) –Command-line arguments –…. Getting Over Input

Software Security 16 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 Time is a critical issue; two major aspects of time to consider One problem is that most developers are unfamiliar with the effects of multithreading on their systems. That means they often overlook subtle time- based attacks. Unless a security tester thinks like a bad guy (black hat firmly on head), security testing will not be effective. Time is a critical issue; two major aspects of time to consider One problem is that most developers are unfamiliar with the effects of multithreading on their systems. That means they often overlook subtle time- based attacks. Unless a security tester thinks like a bad guy (black hat firmly on head), security testing will not be effective.

Software Security 17 Secure SW Development (SSD) Grad. Course (R. Jalili & M.S. Dousti ) – Spring 2012 پايان