CERT Secure Coding Initiative. Define security requirements. Model Threats 11/30/2010

Similar documents
Practical Guide to Securing the SDLC


Web 2.0, Consumerization, and Application Security

ANATOMY OF AN ATTACK!

C1: Define Security Requirements

RiskSense Attack Surface Validation for IoT Systems

90% of data breaches are caused by software vulnerabilities.

Unit Level Secure by Design Approach

Threat Modeling for System Builders and System Breakers!! Dan Copyright 2014 Denim Group - All Rights Reserved

CSWAE Certified Secure Web Application Engineer

Threat Modeling OWASP. The OWASP Foundation Martin Knobloch OWASP NL Chapter Board

SANS Institute , Author retains full rights.

Protect Your Application with Secure Coding Practices. Barrie Dempster & Jason Foy JAM306 February 6, 2013

"Charting the Course to Your Success!" Securing.Net Web Applications Lifecycle Course Summary

Threat Modeling. Bart De Win Secure Application Development Course, Credits to

Students should have an understanding and a working knowledge in the following topics, or attend these courses as a pre-requisite:

*NSTAC Report to the President on the Internet of Things.

Symantec Security Monitoring Services

Security+ Guide to Network Security Fundamentals, Third Edition. Chapter 9 Performing Vulnerability Assessments

2. INTRUDER DETECTION SYSTEMS

Effective Threat Modeling using TAM

W e b A p p l i c a t i o n S e c u r i t y : T h e D e v i l i s i n t h e D e t a i l s

Secure Coding in C and C++

CYSE 411/AIT 681 Secure Software Engineering. Topic #6. Seven Software Security Touchpoints (III) Instructor: Dr. Kun Sun

Host Hardening Achieve or Avoid. Nilesh Kapoor Auckland 2016

4. Risk-Based Security Testing. Reading. CYSE 411/AIT 681 Secure Software Engineering. Seven Touchpoints. Application of Touchpoints

Security Fundamentals for your Privileged Account Security Deployment

Secure Application Development. OWASP September 28, The OWASP Foundation

ABB Ability Cyber Security Services Protection against cyber threats takes ability

Integration of the softscheck Security Testing Process into the V-Modell

Specialized Security Services, Inc. REDUCE RISK WITH CONFIDENCE. s3security.com

Privileged Account Security: A Balanced Approach to Securing Unix Environments

Getting over Ransomware - Plan your Strategy for more Advanced Threats

10 KEY WAYS THE FINANCIAL SERVICES INDUSTRY CAN COMBAT CYBER THREATS

RiskSense Attack Surface Validation for Web Applications

How AlienVault ICS SIEM Supports Compliance with CFATS

Improving Security in the Application Development Life-cycle

NEN The Education Network

QuickBooks Online Security White Paper July 2017

New York Cybersecurity. New York Cybersecurity. Requirements for Financial Services Companies (23NYCRR 500) Solution Brief

Secure Programming I. Steven M. Bellovin September 28,

Trustwave Managed Security Testing

An Attack Surface Driven Approach to Evaluation

TOP 10 IT SECURITY ACTIONS TO PROTECT INTERNET-CONNECTED NETWORKS AND INFORMATION

Ethical Hacking and Countermeasures: Web Applications, Second Edition. Chapter 3 Web Application Vulnerabilities

18-642: Security Mitigation & Validation

DEFENSIVE PROGRAMMING. Lecture for EDA 263 Magnus Almgren Department of Computer Science and Engineering Chalmers University of Technology

Advanced Systems Security: Principles

NERC CIP VERSION 6 BACKGROUND COMPLIANCE HIGHLIGHTS

How to Underpin Security Transformation With Complete Visibility of Your Attack Surface

A Supply Chain Attack Framework to Support Department of Defense Supply Chain Security Risk Management

Certified Secure Web Application Engineer

To Audit Your IAM Program

Web Applications (Part 2) The Hackers New Target

Software Security and Exploitation

Development*Process*for*Secure* So2ware

90% 191 Security Best Practices. Blades. 52 Regulatory Requirements. Compliance Report PCI DSS 2.0. related to this regulation

CyberArk Privileged Threat Analytics

Courses. X E - Verify that system acquisitions policies and procedures include assessment of risk management policies X X

Session 11: Security Policies 1

IT & DATA SECURITY BREACH PREVENTION

Presenter Jakob Drescher. Industry. Measures used to protect assets against computer threats. Covers both intentional and unintentional attacks.

Outline. Security as an economic good. Risk budgeting with ALE. Failure: Risk compensation. Failure: Displacement activity

Trustwave Managed Security Testing

Simplifying Security for IBM i and IBM Security QRadar

INFORMATION SUPPLEMENT. Use of SSL/Early TLS for POS POI Terminal Connections. Date: June 2018 Author: PCI Security Standards Council

Top considerations for implementing secure backup and recovery. A best practice whitepaper by Zmanda

Guide to Network Defense and Countermeasures Second Edition. Chapter 2 Security Policy Design: Risk Analysis

PENETRATION TEST REPORT

DEVELOPING SECURE EMBEDDED SOFTWARE

IANS Pragmatic Threat Modeling. Michael Pinch, IANS Faculty

THREAT MODELING IN SOCIAL NETWORKS. Molulaqhooa Maoyi Rotondwa Ratshidaho Sanele Macanda

What is Penetration Testing?

Security Information & Event Management (SIEM)

OWASP Top 10 The Ten Most Critical Web Application Security Risks

COPYRIGHTED MATERIAL. Contents. Part I: The Basics in Depth 1. Chapter 1: Windows Attacks 3. Chapter 2: Conventional and Unconventional Defenses 51

The checklist is dynamic, not exhaustive, and will be updated regularly. If you have any suggestions or comments, we would like to hear from you.

Tools For Vulnerability Scanning and Penetration Testing

Xerox FreeFlow Print Server. Security White Paper. Secure solutions. for you and your customers

Building Trust in Digital Identities

ABB Process Automation, September 2014

CSE127 Midterm. Yee Winter 03

Under the hood testing - Code Reviews - - Harshvardhan Parmar

Vulnerability Management

Internet of Things. Internet of Everything. Presented By: Louis McNeil Tom Costin

Students should have an understanding and a working knowledge in the following topics, or attend these courses as a pre-requisite:

Developing Secure Software

Enterprise Cybersecurity Best Practices Part Number MAN Revision 006

Attacks Against Websites 3 The OWASP Top 10. Tom Chothia Computer Security, Lecture 14

Mitigation Controls on. 13-Dec-16 1

CMPSC 497 Buffer Overflow Vulnerabilities

A Secure Update Architecture for High Assurance Mixed-Criticality System Don Kuzhiyelil Dr. Sergey Tverdyshev SYSGO AG

ISO COMPLIANCE GUIDE. How Rapid7 Can Help You Achieve Compliance with ISO 27002

Cloud Under Control. HyTrust Two-Man Rule Solution Brief

Building UAE s cyber security resilience through effective use of technology, processes and the local people.

Compliance Brief: The National Institute of Standards and Technology (NIST) , for Federal Organizations

Achieving regulatory compliance

Critical Systems. Objectives. Topics covered. Critical Systems. System dependability. Importance of dependability

Software defects and security

IS 2620: Developing Secure Systems. Building Security In Lecture 2

Transcription:

Secure Coding Practices COMP620 CERT Secure Coding Initiative Works with software developers and software development organizations to reduce vulnerabilities resulting from coding errors Many of the slides in this presentation come from the CERT list of the Top 10 Secure Coding Practices Define security requirements Identify and document security requirements early in the development tlife cycle Make sure that code is evaluated for compliance with those requirements When security requirements are not defined, the security of the resulting system cannot be effectively evaluated Model Threats Use threat modeling to anticipate the threats to which h the software will be subjected Identify and categorize the threats to each asset or component Rate the threats based on a risk ranking Develop a threat mitigation strategy that is implemented in design, code, and test cases 1

Validate Input Validate input from all untrusted data sources Proper input validation can eliminate the vast majority of software vulnerabilities Be suspicious of most external data sources, including command line arguments, network interfaces, environmentalvariables variables, anduser controlled files Simple checks of method parameters can help detect errors earlier and easier Sanitize Data Sent to Other Systems Check the validity of any data sent to subsystems such as command shells, hll relational lti l databases, and third party components Attackers may be able to invoke unused functionality in these components Because the calling process understands the context, it is responsible for sanitizing the data Heed Compiler Warnings Compile code using the highest warning level available for your compiler Eliminate warnings by modifying the code Replace potentially dangerous functions with their safer version Keep It Simple Keep the design as simple and small as possible Complex designs increase the likelihood that errors will be made in their implementation, configuration, and use The effort required to achieve an appropriate level of assurance increases dramatically as security mechanisms become more complex 2

Default Deny Base access decisions on permission rather than exclusion By default, access should be denied and the protection scheme identifies conditions under which access is permitted Fail Securely If the program encounters an error, it should leave the system in a secure state isadmin = true; try { codewhichmayfail(); if(regular user) isadmin = false; } catch (Exception ex) { log.write(ex.tostring()); } Principle of Least Privilege Every process should execute with the least set of privileges iil necessary to complete lt the job Any elevated permission should be held for a minimum time This approach reduces the opportunities an attacker has to execute arbitrary code with elevated privileges External Systems are Insecure Do not trust data from users Test input data Avoid parameter tampering Third party systems may be compromised 3

Practice Defense in Depth Create systems with multiple defensive strategies If one layer of defense turns out to be inadequate, another layer of defense can prevent a security flaw from becoming an exploitable vulnerability or limit the consequences of a successful exploit Fix Security Issues Correctly All too often the quick fix for an immediate problem becomes the final fix Problems corrected with valid solutions that follow the architecture of the system are more likely to provide strong security Use Quality Assurance Techniques Good quality assurance techniques can be effective in identifying i and eliminating i vulnerabilities Penetration testing, fuzz testing, and source code audits should be incorporated as part of an effective quality assurance program Independent security reviews can lead to more secure systems. External reviewers bring an independent perspective Fuzz Testing Software testing technique that provides invalid, unexpected, tdor random dt data to the inputs of a program Most valuable when testing input format from an external source, such as files downloaded from the web Generally only finds very simple faults 4

Code Checking Tools There are many tools designed to check your program for well known flaws Static code checkers read the source code of your program and report on potential vulnerabilities Dynamic code checkers execute the program with a variety of data Popular Code Checkers Rats Rough Auditing Tool for Security open source static code checker acquired by Fortify Software Inc. Flawfinder runs under Linux Fortify Commercial product yasca Yet Another Source Code Analyzer Uses rats 5