August 1, 2006 Software Security. August 1, 2006 Essential Facts Software Security != Security Features –Cryptography will not make you secure. –Application.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering 2.
Advertisements

Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation.
Risk Analysis James Walden Northern Kentucky University.
Risk Analysis James Walden Northern Kentucky University.
Hands on Demonstration for Testing Security in Web Applications
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
August 1, 2006 XP Security. August 1, 2006 Comparing XP and Security Goals XP GOALS User stories No BDUF Refactoring Continuous integration Simplicity.
Threat Modeling for Hostile Client Systems Avni Rambhia.
SOFTWARE SECURITY TESTING IS IMPORTANT, DIFFERENT AND DIFFICULT Review by Rayna Burgess 4/21/2011.
Security Engineering II. Problem Sources 1.Requirements definitions, omissions, and mistakes 2.System design flaws 3.Hardware implementation flaws, such.
Leveraging User Interactions for In-Depth Testing of Web Applications Sean McAllister, Engin Kirda, and Christopher Kruegel RAID ’08 1 Seoyeon Kang November.
Software Security Course Course Outline Course Overview Introduction to Software Security Common Attacks and Vulnerabilities Overview of Security.
Presenter Deddie Tjahjono.  Introduction  Website Application Layer  Why Web Application Security  Web Apps Security Scanner  About  Feature  How.
Application Threat Modeling Workshop
Security Scanning OWASP Education Nishi Kumar Computer based training
OWASP Mobile Top 10 Why They Matter and What We Can Do
A Scanner Sparkly Web Application Proxy Editors and Scanners.
Vulnerabilities. flaws in systems that allow them to be exploited provide means for attackers to compromise hosts, servers and networks.
1 ISEC0511 Programming for Information System Security Lecture Notes #4 Security in Software Systems (cont)
Testing Tools. Categories of testing tools Black box testing, or functional testing Testing performed via GUI. The tool helps in emulating end-user actions.
CSCE 548 Secure Software Development Risk-Based Security Testing.
A Framework for Automated Web Application Security Evaluation
March 4, 2008 ISACA Web Application Security James Walden Northern Kentucky University
 Protect customers with more secure software  Reduce the number of vulnerabilities  Reduce the severity of vulnerabilities  Address compliance requirements.
A Security Review Process for Existing Software Applications
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.
August 1, The Software Security Problem August 1, 2006.
Application Security
Version 02U-1 Computer Security: Art and Science1 Penetration Testing by Brad Arkin Scott Stender and Gary McGraw.
1 1 Vulnerability Assessment of Grid Software Jim Kupsch Associate Researcher, Dept. of Computer Sciences University of Wisconsin-Madison Condor Week 2006.
Copyright © The OWASP Foundation Permission is granted to copy, distribute and/or modify this document under the terms of the OWASP License. The OWASP.
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
Risk Analysis James Walden Northern Kentucky University.
Security in Computer System 491 CS-G(172) By Manesh T
SIGITE 2008: Oct Integrating Web Application Security into the IT Curriculum James Walden Northern Kentucky University.
1 Vulnerability Assessment of Grid Software James A. Kupsch Computer Sciences Department University of Wisconsin Condor Week 2007 May 2, 2007.
An Ad Hoc Writable Rule Language for White-Box Security Scanners Author:Sebastian Schinzel Referent:Prof. Dr. Alexander del Pino Korreferent:Prof. Dr.
 Chapter 14 – Security Engineering 1 Chapter 12 Dependability and Security Specification 1.
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.
CSCE 548 Secure Software Development Taxonomy of Coding Errors.
nd Joint Workshop between Security Research Labs in JAPAN and KOREA Marking Scheme for Semantic- aware Web Application Security HPC.
Static Analysis James Walden Northern Kentucky University.
Web Applications Testing By Jamie Rougvie Supported by.
Hands-On Threat Modeling with Trike v1. Generating Threats.
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.
Code Reviews James Walden Northern Kentucky University.
Practical Threat Modeling for Software Architects & System Developers
CSCE 548 Secure Software Development Security Operations.
Principles of Computer Security: CompTIA Security + ® and Beyond, Third Edition © 2012 Principles of Computer Security: CompTIA Security+ ® and Beyond,
CSCE 201 Secure Software Development Best Practices.
CSC 593: Secure Software Engineering Seminar
Copyright © The OWASP Foundation This work is available under the Creative Commons SA 2.5 license The OWASP Foundation OWASP Denver February 2012.
CIT 380: Securing Computer SystemsSlide #1 CIT 380: Securing Computer Systems Web Security.
By Ramesh Mannava.  Overview  Introduction  10 secure software engineering topics  Agile development with security development activities  Conclusion.
Security Development Lifecycle. Microsoft SDL 概觀 The SDL is composed of proven security practices It works in development organizations regardless of.
Engineering Secure Software. A Ubiquitous Concern  You can make a security mistake at every step of the development lifecycle  Requirements that allow.
CSCE 548 Secure Software Development Risk-Based Security Testing
Software Security Testing
Software Security ITGD 2202 Supervision:- Assistant Professor
Evaluating Existing Systems
Evaluating Existing Systems
A Security Review Process for Existing Software Applications
CSCE 548 Secure Software Development Test 1 Review
Evaluating Program Security
James Walden Northern Kentucky University
The role of the test organization in a Security Sensitive project
Presentation transcript:

August 1, 2006 Software Security

August 1, 2006 Essential Facts Software Security != Security Features –Cryptography will not make you secure. –Application firewalls will not make you secure. 50/50 Architecture/Implementation Problems An Emergent Property of Software –Like Usability or Reliability –Not a Feature

August 1, 2006 Security Problems SECURITY BUGS 50% Buffer overflow Cross-site scripting Race condition SQL injection Unsafe system calls Untrusted input ARCHITECTURAL FLAWS 50% Cryptography misuse Fragility Insecure auditing Lack of compartmentalization More privilege than necessary Replay attacks

August 1, 2006 Security as Risk Management Helps communicate security need to customer. –Cost of security vs. amount of potential losses. No system is 100% secure. –Some risks aren’t cost effective to mitigate. –Humans make mistakes. –New types of vulnerabilities are discovered.

August 1, 2006 Risk Management 1.What assets are you trying to protect? 2.What are the risks to those assets? 3.Which risks do we need to mitigate? 4.What security measures would mitigate those risks? 5.Which of those measures is most effective, when considering cost, side effects, etc.?

August 1, 2006 Software Security Practices

August 1, 2006 Software Security Practices 1.Code reviews 2.Architectural risk analysis 3.Penetration testing 4.Security testing 5.Abuse cases 6.Security operations

August 1, 2006 Code Reviews Fix implementation bugs, not design flaws. Benefits of code reviews –Find defects sooner in the lifecycle. –Find defects with less effort than testing. –Find different defects than testing. –Educate developers about security flaws.

August 1, 2006 Static Analysis Tools Automated assistance for code reviews –Speed: review code faster than humans can –Accuracy: 100s of secure coding rules False Positives –Tool reports bugs in code that aren’t there. –Complex control or data flow can confuse tools. False Negatives –Tool fails to discover bugs that are there. –Code complexity or lack of rules to check.

August 1, 2006 Static Analysis Tools Older simple search tools –Flawfinder –ITS4 –RATS Parsing Tools –Fortify Source Code Analyzer –Klocwork K7 Suite –Secure Software Code Assure

August 1, 2006 Architectural Risk Analysis Fix design flaws, not implementation bugs. Risk analysis steps 1.Develop an architecture model. 2.Identify threats and possible vulnerabilities. 3.Develop attack scenarios. 4.Rank risks based on probability and impact. 5.Develop mitigation strategy. 6.Report findings

August 1, 2006 Architecture Model Background materials –Use scenarios (use cases, user stories) –External dependencies (web server, db, libs, OS) –Security assumptions (external auth security, &c) –User security notes Determine system boundaries / trust levels –Boundaries between components. –Trust level of each component. –Sensitivity of data flows between components.

August 1, 2006 Level 0 Data Flow Diagram

August 1, 2006 Level 1 Data Flow Diagram

August 1, 2006 Risk Analysis Attack Analysis –Historical attacks and vulnerabilities. –Attack patterns Command Delimiters Multiple Parsers and Double Escapes –Attack trees Ambiguity Analysis –Compare understandings of architects. External Weakness Analysis

August 1, 2006 Penetration Testing Test software in deployed environment. Allocate time at end of development to test. –Often time-boxed: test for n days. –Schedule slips often reduce testing time. –Fixing flaws is expensive late in lifecycle. Penetration testing tools –Test common vulnerability types against inputs. –Fuzzing: send random data to inputs. –Don’t understand application structure or purpose.

August 1, 2006 Penetration Testing Tools –WebScarab –Paros Proxy –Burp Suite Vulnerability Scanners –Nikto –Nessus

August 1, 2006 Security Testing Intendended Functionality Actual Functionality Functional testing will find missing functionality. Injection flaws, buffer overflows, XSS, etc.

August 1, 2006 Security Testing Two types of testing –Functional: verify security mechanisms. –Adversarial: verify resistance to attacks generated during risk analysis. Different from traditional penetration testing –White box. –Use risk analysis to build tests. –Measure security against risk model.

August 1, 2006 Abuse Cases Anti-requirements –Think explicitly about what software should not do. A use case from an adversary’s point of view. –Obtain Another User’s CC Data. –Alter Item Price. –Deny Service to Application. Developing abuse cases –Informed brainstorming: attack patterns, risks.

August 1, 2006 Security Operations User security notes –Software should be secure by default. –Enabling certain features/configs may have risks. –User needs to be informed of security risks. Incident response –What happens when a vulnerability is reported? –How do you communicate with users? –How do you send updates to users?

August 1, 2006 References 1.Greg Hoglund and Gary McGraw, Exploiting Software: How to Break Code, Addison- Wesley, Gary McGraw, “XP and Software Security?!”, XP Universe, Gary McGraw, Software Security, Addison-Wesley, Michael Howard and Steve Lipner, The Security Development Lifecycle, Microsoft Press, OWASP, The OWASP Top 10 Project, OWASP, The OWASP Guide to Building Secure Web Applications, Paul Saitta, Brenda Larcom, and Michael Eddington, “Trike v.1 Methodology Document [draft],” Joel Scambray, Mike Shema, and Caleb Sima, Hacking Web Applications Exposed, 2 nd edition, Addison-Wesley, Frank Swiderski and Window Snyder, Threat Modeling, Microsoft Press, John Viega and Gary McGraw, Building Secure Software, Addison-Wesley, VISA, Payment Card Industry Data Security Standard (PCI-DSS), ata_Security_Standard.pdf