Software Development: The Next Security Frontier



Similar documents
Information Security and Privacy. Lynn McNulty, CISSP. Advisory Board November 2008

Protect Your Organization With the Certification That Maps to a Master s-level Education in Software Assurance

How to start a software security initiative within your organization: a maturity based and metrics driven approach OWASP

Update on the CSSLP And its Impact on the SDLC Profession. Hart Rossman, CSSLP Member, (ISC) 2 Application Security Advisory Board

Application Security Testing

Threat Modeling. Frank Piessens ) KATHOLIEKE UNIVERSITEIT LEUVEN

ISSECO Syllabus Public Version v1.0

White Paper. Guide to PCI Application Security Compliance for Merchants and Service Providers

Enterprise Application Security Program

Strategic Information Security. Attacking and Defending Web Services

KASPERSKY SECURITY INTELLIGENCE SERVICES. EXPERT SERVICES.

SAFECode Security Development Lifecycle (SDL)

Seven Practical Steps to Delivering More Secure Software. January 2011

Developing Secure Software in the Age of Advanced Persistent Threats

The Security Development Lifecycle

ETHICAL HACKING APPLICATIO WIRELESS110 00NETWORK APPLICATION MOBILE MOBILE0001

CS 356 Lecture 25 and 26 Operating System Security. Spring 2013

Effective Software Security Management

SAST, DAST and Vulnerability Assessments, = 4

Web Application Security

Software Application Control and SDLC

CompTIA Security+ (Exam SY0-410)

05.0 Application Development

CSUSB Web Application Security Standard CSUSB, Information Security & Emerging Technologies Office

90% of data breaches are caused by software vulnerabilities.

DFW INTERNATIONAL AIRPORT STANDARD OPERATING PROCEDURE (SOP)

SECURITY PRACTICES FOR ADVANCED METERING INFRASTRUCTURE Elif Üstündağ Soykan, Seda Demirağ Ersöz , ICSG 2014

Secure Development LifeCycles (SDLC)

State of Web Application Security. Ralph Durkee Durkee Consulting, Inc. Rochester ISSA & OWASP Chapters rd@rd1.net

LEARNING CURRICULUM SECURITY COMPASS TRAINING 2015 Q3. Copyright Security Compass. 1

Rational AppScan & Ounce Products

Development. Resilient Software. Secure and. Mark S. Merkow Lakshmikanth Raghavan. CRC Press. Taylor& Francis Croup. Taylor St Francis Group,

Information Technology Engineers Examination. Information Security Specialist Examination. (Level 4) Syllabus

locuz.com Professional Services Security Audit Services

Redhawk Network Security, LLC Layton Ave., Suite One, Bend, OR

CORE Security and the Payment Card Industry Data Security Standard (PCI DSS)

Penetration Testing in Romania

Adobe Systems Incorporated

Application Security in the Software Development Lifecycle

Security Testing. Vulnerability Assessment vs Penetration Testing. Gabriel Mihai Tanase, Director KPMG Romania. 29 October 2014

Kenna Platform Security. A technical overview of the comprehensive security measures Kenna uses to protect your data

Reducing Application Vulnerabilities by Security Engineering

How To Ensure That Your Computer System Is Safe

Protect Your IT Infrastructure from Zero-Day Attacks and New Vulnerabilities

Emerging Network Security Threats and what they mean for internal auditors. December 11, 2013 John Gagne, CISSP, CISA

ensure prompt restart of critical applications and business activities in a timely manner following an emergency or disaster

Introduction to Web Application Security. Microsoft CSO Roundtable Houston, TX. September 13 th, 2006

WHITEPAPER. Nessus Exploit Integration

Securing Your Web Application against security vulnerabilities. Ong Khai Wei, IT Specialist, Development Tools (Rational) IBM Software Group

External Supplier Control Requirements

How to achieve PCI DSS Compliance with Checkmarx Source Code Analysis

Vulnerability Management

FINAL DoIT v.4 PAYMENT CARD INDUSTRY DATA SECURITY STANDARDS APPLICATION DEVELOPMENT AND MAINTENANCE PROCEDURES

Protecting Your Organisation from Targeted Cyber Intrusion

Cloud Security:Threats & Mitgations

Complete Web Application Security. Phase1-Building Web Application Security into Your Development Process

The Security Development Lifecycle. Steven B. Lipner, CISSP Senior Director Security Engineering Strategy Microsoft Corp.

Software Assurance: An Overview of Current Industry Best Practices

Secure By Design: Security in the Software Development Lifecycle

Building Security into the Software Life Cycle

Threat Modeling. Categorizing the nature and severity of system vulnerabilities. John B. Dickson, CISSP

Learn Ethical Hacking, Become a Pentester

Cisco Advanced Services for Network Security

SERENA SOFTWARE Serena Service Manager Security

Application Security 101. A primer on Application Security best practices

Presented by Evan Sylvester, CISSP

Promoting Application Security within Federal Government. AppSec DC November 13, The OWASP Foundation

NETWORK AND CERTIFICATE SYSTEM SECURITY REQUIREMENTS

OWASP AND APPLICATION SECURITY

Mean Time to Fix (MTTF) IT Risk s Dirty Little Secret Joe Krull, CPP, CISSP, IAM, CISA, A.Inst.ISP, CRISC, CIPP

elearning for Secure Application Development

PI Server Security Best Practice Guide Bryan Owen Cyber Security Manager OSIsoft

Host Hardening. Presented by. Douglas Couch & Nathan Heck Security Analysts for ITaP 1

The Top Web Application Attacks: Are you vulnerable?

G- Cloud Specialist Cloud Services. Security and Penetration Testing. Overview

Black Box versus White Box: Different App Testing Strategies John B. Dickson, CISSP

Passing PCI Compliance How to Address the Application Security Mandates

REGULATIONS FOR THE SECURITY OF INTERNET BANKING

NEXPOSE ENTERPRISE METASPLOIT PRO. Effective Vulnerability Management and validation. March 2015

Where every interaction matters.

IBM Rational AppScan: Application security and risk management

Cloud Security Through Threat Modeling. Robert M. Zigweid Director of Services for IOActive

Addressing the SANS Top 20 Critical Security Controls for Effective Cyber Defense

Black Box Penetration Testing For GPEN.KM V1.0 Month dd "#$!%&'(#)*)&'+!,!-./0!.-12!1.03!0045!.567!5895!.467!:;83!-/;0!383;!

8070.S000 Application Security

white SECURITY TESTING WHITE PAPER

Ivan Medvedev Principal Security Development Lead Microsoft Corporation

Overview of the Penetration Test Implementation and Service. Peter Kanters

Learning objectives for today s session

Build (develop) and document Acceptance Transition to production (installation) Operations and maintenance support (postinstallation)

Transcription:

James E. Molini, CISSP, CSSLP Microsoft Member, (ISC)² Advisory Board of the Americas jmolini@microsoft.com http://www.codeguard.org/blog Software Development: The Next Security Frontier

De-perimiterization of networks places more burden on the security of individual machines and applications Malware increased by 200-300% over the past year More incidents of data loss could result in greater government oversight and regulation 38 out of 50 states in US have now enacted breach disclosure laws 2008 (ISC)² Global Information Security Workforce Study (GISWS) report found significant costs result from data breaches US $50 to $200 per record lost (not including reputation damage and loss of trust)

Software Vulnerabilities: Opening the Door to Criminals XSS Attacks (Ongoing) Cross Site Scripting (XSS) is becoming the new buffer overflow In 2007, XSS accounted for 80% of documented vulnerabilities OWASP site recommends proper web site coding practices SQL Injection Attacks (Ongoing) Recently several security sites were attacked using this technique Data entry fields on websites are loaded with SQL commands Bypasses the firewall and many web gateways Input validation reduces the exposure from this attack (see OWASP Notes on SQL Injection) Recent worms exploit patching latency Conficker worm released 1 month after the patch from Microsoft This exposes a flaw in patch management practices

Vulnerability Rates 2003-2008 Vulnerability Types 2008 100% 80% 60% 40% 20% 0% O S Browser Other Apps Taken from Microsoft Security Intelligence Report: Volume 6. Jul Dec 2008

What Is Software Security? Security is a distinct property of a software system or application. It is composed of Confidentiality, Integrity, Availability, Authenticity, and other related attributes*. Software Security vs. Secure Software Secure software can be delivered by rigorously applying all the techniques of a software security plan Software Security vs. Secure Coding Secure coding is one aspect of an overall software security plan Software Security vs. Software Quality High quality software can also be insecure (e.g. medical device software) Security requires specialized skills *Definition derived from description provided in Software Assurance BoK from DHS.

Can t We Just Learn How to Write Secure Code? Many eyeballs won t solve the security problem. (e.g. recent DNS bug took 10 years to discover) If you have seen a SQL Injection attack, or a Buffer Overflow consider this: The IDE should have enforced ASLR for all production code The requirements document should have specified composition parameters for all incoming data The design should have defined an input validator that rejected input which failed to meet specifications The code should have called validation routines for all external data requests The tester should have included injection attacks and fuzzing as part of the testing process

Can Secure Systems Really Prevent Intrusions? Two Firewalls. Two manufacturers. Two development methodologies. One was based on a Trusted OS & Security Development Lifecycle. One was not. 1999 2000 2001 2002 Total Firewall-A 3 15 10 4 32 Firewall-B 0 0 0 0 0 Vulnerabilities listed by US Natl. Vulnerability Database: 1999-2002 To perform your own search, visit: http://web.nvd.nist.gov/view/vuln/statistics?execution=e2s1

COMMON ELEMENTS OF A SOFTWARE SECURITY PROGRAM

Overview Security must become an integral process throughout the SDLC Software security requires: 1) Technology Layered and maintained 2) Process -- targeted and structured 3) People -- trained and qualified (first line of defense and organization s most critical asset) Employ people, process, & technology to get the job done.

Secure Software Concepts Confidentiality, Integrity, Availability Authentication, Authorization, and Auditing Security Design Principles Risk Management (e.g., vulnerabilities, threats and controls) Regulations, Privacy, and Compliance Software Architecture (e.g., layers) Software Development Methodologies Legal (e.g., Copyright, IP and trademark) Standards (e.g., ISO 2700x, OWASP) Security Models (e.g., Bell-LaPadula, Clark-Wilson & Brewer-Nash) Trusted Computing (e.g., TPM, TCB) Acquisition (e.g., contracts, SLAs and specifications)

Getting Started Training and Awareness Start with basic concepts Train developers and testers first When you train train well. Appoint or hire a Security Lead Becomes local authority on software security Coordinates security activities and drive SDL Establishes risk management process Consider certification for security specialists

Advice: ~ RoleSeparation() { } Security process decisions must be conscious risk decisions. Do not let the development group separate security off into another segment of the process. Every subsystem team and every developer must have a coherent understanding of the security design Tuning and testing teams must understand security requirements

Secure Software Requirements Policy Decomposition Confidentiality, Integrity, Availability Requirements Authentication, Authorization, and Auditing Requirements Internal and External Requirements Identification and Gathering Data Classification Use Cases Abuse Cases (inside and outside adversaries)

Secure Software Requirements: Getting Started Create a baseline for security Build boilerplate requirements for use in new projects Understand how requirements differ for: In-house development Product Development Software Acquisition Develop common abuse cases Begin Risk Management Process Threat Model Development Feature/Component Risk Analysis

Secure Software Design Design Processes Attack surface evaluation, Threat modeling, Control Identification, Control prioritization Design Considerations Confidentiality, Integrity, Availability, Authentication, Authorization, and Auditing Security design principles, Interconnectivity, Security management interfaces, Identity management Architecture Distributed, Service-oriented, Rich Internet applications, Pervasive computing Integration with existing architectures Software as a Service Technologies IAM, Audit, DRM, Flow control (e.g., proxies, firewalls, middleware) Data protection (e.g., DLP, encryption and database security) Computing environment (e.g., programming languages, virtualization, and operating systems Integrity (e.g., code signing)

Secure Software Design: Getting Started Saltzer & Schroeder: Security Design Principles Economy of mechanism Fail Safe Defaults Complete Mediation Open Design Separation of Privilege Least Privilege Least Common Mechanism Psychological acceptability

Secure Coding: Key Concepts Declarative versus programmatic security (e.g., bootstrapping, cryptographic agility, and handling configuration parameters) Common software vulnerabilities and countermeasures Defensive coding practices (e.g., type safe practices, locality, memory management, error handling) Exception management Configuration management (e.g., source code and versioning) Build environment (e.g., build tools) Code/Peer review Code Analysis (static and dynamic) Anti-tampering techniques (e.g., code signing) Interface coding (e.g., proper authentication and third party API)

Secure Coding: Getting Started Never build your own crypto or authentication mechanisms Develop a list of banned functions Train developers to avoid most common flaws Develop with least privilege

Secure Software Testing: Key Concepts Testing for Security Quality Assurance Functional Testing (e.g., reliability, logic, performance and scalability) Security Testing (e.g., white box and black box) Environment (e.g., interoperability) Bug tracking (e.g., defects, errors and vulnerabilities) Attack surface validation Test types Penetration Testing Fuzzing, Scanning, Simulation Testing (e.g., environment and data) Testing for Failure Cryptographic validation (e.g., environment and data) Impact Assessment and Corrective Action Standards for software quality assurance (e.g., ISO 9126, SSE-CMM and OSSTMM) Regression testing

Secure Software Testing: Getting Started Use security testing tools to discover common vulnerabilities. Implement static analysis testing for all Internet facing code. Add security bug categories to the bug tracking system

Secure Software Acceptance & Deployment: Key Concepts Pre-release or pre-deployment Completion Criteria (e.g., documentation, BCP) Risk Acceptance Documentation (e.g., DRP and BCP) Post-release Validation and Verification (e.g., Common Criteria) Independent testing (e.g., third-party) Installation and Deployment Bootstrapping (e.g., key generation, access management) Configuration Management (e.g., elevated privileges, hardening, platform change)

Secure Software Acceptance & Deployment: Getting Started Develop an official security signoff during release Define rules for software security acceptance Implement a security documentation standard

Secure Software Operations & Maintenance: Key Concepts Operations and Maintenance Monitoring (e.g., Metrics and Audits) Incident Management Problem Management (Root Cause Analysis) Patching End of life policies

Secure Software Maintenance: Getting Started Implement patch security testing and delivery mechanisms Develop a Security Response Plan for software vulnerabilities

Security Lifecycle Results Taken from Microsoft Security Intelligence Report: Volume 6. Jul Dec 2008 Download the report at: http://www.microsoft.com/ downloads/details.aspx?familyid=aa6e0660-dc24-4930-affd-e33572ccb91f&displaylang=en 25

The Security Imperative We must move from vulnerability management to security engineering Identify security needs up front in the concepts and requirements stage Define adequate security controls in the design stage Code appropriately to reduce security bugs Test for failures in the process Maintain code with security in mind Participate in community activities (e.g. (ISC) 2, OWASP, SANS

What You Can Do Get involved in the software development security process now. Support one of the active independent organizations that is advocating improvements to the discipline: (ISC)2, ISSA, OWASP, SANS. Educate software developers and managers regarding the need for adequate risk management. Promote better software security practices throughout the SDLC, including design, testing deployment, and ultimately disposal of software.

For more on software security, visit: http://www.codeguard.org/blog Warning: I speak for myself and do my own analysis. Viewers should not presume that my comments represent the official policies of any organization listed in this presentation.

What is CSSLP CM? Certified Secure Software Lifecycle Professional (CSSLP) Base credential (no other certification is required as a prerequisite) Professional certification program Takes a holistic approach to security in the software lifecycle Tests candidates competency (KSAs) to significantly mitigate the security concerns Purpose Addresses building security throughout the entire software lifecycle from concept and planning through operations and maintenance, to the ultimate disposal. Provides a credential that speaks to the individual s ability to contribute to the delivery of secure software through the use of standards and best practices. The target professionals for this certification includes all stakeholders involved in the Software Lifecycle.

CSSLP CM Industry Supporters Microsoft Cisco Xerox SAFECode Symantec BASDA SANS DSCI (NASSCOM) SRA International ISSA As the global dependence on information and communications technology has grown, users have become increasingly concerned over the security of software, especially those in the government, critical infrastructure and enterprise sectors. By offering software professionals a means to increase and validate their knowledge of best practices in securing applications throughout the development lifecycle, (ISC)² s CSSLP is helping the industry take an important step forward in addressing the people part of the solution. Paul Kurtz, executive director, SAFECode

CSSLP CM Certification Requirements By Examination: Process The first public exam will be held at the end of June 2009 Candidate must submit: Completed examination registration form Proof of 4 years experience in the Software Development Lifecycle (SDLC) or 3 years experience with a one year waiver for 4-year degree or equivalent in an IT related field Pay a Fee of $549 early-bird or $599 standard Candidate must Pass the official (ISC)² CSSLP certification examination Complete the endorsement process The Associate of (ISC)² Program applies to those who have passed the exam but need to acquire the necessary minimum experience requirements

For more information, please contact: Glenn Johnson, (ISC)², Certification Consultant gjohnson@isc2.org Vehbi Tasar, (ISC)² Manager of Professional Programs vtasar@isc2.org Visit www.isc2.org/csslp

References Secure Software Assurance: A guide to the Common Body of Knowledge to Produce, Acquire, and Sustain Secure Software, S. Redwine, Ed., US Department of Homeland Security, 2005. The Trustworthy Computing Security Development Lifecycle, S. Lipner, et al, Microsoft, March 2005. http://msdn.microsoft.com/enus/library/ms995349.aspx OWASP: http://www.owasp.org/index.php/main_page Microsoft Security Site for Developers: http://msdn.microsoft.com/en-us/security/default.aspx Books: The Security Development Lifecycle, M. Howard & S. Lipner Microsoft Press, 2006