NWEN405: Security Engineering



Similar documents
Web Application Security

Software Security Testing

Adobe ColdFusion. Secure Profile Web Application Penetration Test. July 31, Neohapsis 217 North Jefferson Street, Suite 200 Chicago, IL 60661

Using Web Security Scanners to Detect Vulnerabilities in Web Services

ensuring security the way how we do it

Integrating Web Application Security into the IT Curriculum

COURSE NAME: INFORMATION SECURITY INTERNSHIP PROGRAM

8070.S000 Application Security

Developing Secure Software, assignment 1

Application Intrusion Detection

Passing PCI Compliance How to Address the Application Security Mandates

Secure Programming Lecture 9: Secure Development

In Building Security In, Gary McGraw proposes three pillars to use throughout the lifecycle: I: Applied Risk Management

CRYPTUS DIPLOMA IN IT SECURITY

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

Application Security Testing

Learning objectives for today s session

Detecting SQL Injection Vulnerabilities in Web Services

Dissertation Masters in Informatics Engineering

90% of data breaches are caused by software vulnerabilities.

Cutting Edge Practices for Secure Software Engineering

Turning the Battleship: How to Build Secure Software in Large Organizations. Dan Cornell May 11 th, 2006

Chapter 4 Application, Data and Host Security

OWASP NZ Day 2011 Testing Mobile Applications

How to achieve PCI DSS Compliance with Checkmarx Source Code Analysis

Web application security: automated scanning versus manual penetration testing.

Web application testing

Adobe Systems Incorporated

Aiming at Higher Network Security Levels Through Extensive PENETRATION TESTING. Anestis Bechtsoudis. abechtsoudis (at) ieee.

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

The Devils Behind Web Application Vulnerabilities

THE ROLE OF IDS & ADS IN NETWORK SECURITY

WHITEPAPER. Nessus Exploit Integration

Web Application security testing: who tests the test?

How To Test For Security

CrashPlan Security SECURITY CONTEXT TECHNOLOGY

Security Products Development. Leon Juranic

Application Code Development Standards

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

Best Practices Top 10: Keep your e-marketing safe from threats

Comparing Application Security Tools

Mobile Application Security Report 2015

Reducing Application Vulnerabilities by Security Engineering

Web Application Security

Microsoft Security Development Lifecycle for IT. Rob Labbé Application Consulting and Engineering Services

DISCOVERY OF WEB-APPLICATION VULNERABILITIES USING FUZZING TECHNIQUES

The Different Mindset of Security Testing

Secure Web Application Coding Team Introductory Meeting December 1, :00 2:00PM Bits & Pieces Room, Sansom West Room 306 Agenda

Chapter 1 Web Application (In)security 1

Juniper Networks Secure

Security Considerations for the Spiral Development Model

Database Security Guide

How to Avoid an Attack - Security Testing as Part of Your Software Testing Process

Scope of this presentation

Bridging the Gap - Security and Software Testing. Roberto Suggi Liverani ANZTB Test Conference - March 2011

elearning for Secure Application Development

What is Really Needed to Secure the Internet of Things?

I Hunt Penetration Testers!

Penetration Testing Service. By Comsec Information Security Consulting

Payment Card Industry (PCI) Terminal Software Security. Best Practices

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

Auditing a Web Application. Brad Ruppert. SANS Technology Institute GWAS Presentation 1

Hack Proof Your Webapps

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

SY system so that an unauthorized individual can take over an authorized session, or to disrupt service to authorized users.

Critical Infrastructure Security: The Emerging Smart Grid. Cyber Security Lecture 5: Assurance, Evaluation, and Compliance Carl Hauser & Adam Hahn

The A-to-Z of CyberSecurity as a Kid Understands It

Microsoft STRIDE (six) threat categories

Secure in 2010? Broken in 2011!

KEN VAN WYK. Fundamentals of Secure Coding and how to break Software MARCH 19-23, 2007 RESIDENZA DI RIPETTA - VIA DI RIPETTA, 231 ROME (ITALY)

Vulnerability Management in Software: Before Patch Tuesday KYMBERLEE PRICE BUGCROWD

The Essentials Series. PCI Compliance. sponsored by. by Rebecca Herold

3. Broken Account and Session Management. 4. Cross-Site Scripting (XSS) Flaws. Web browsers execute code sent from websites. Account Management

Bug Report. Date: March 19, 2011 Reporter: Chris Jarabek

Zero-Day and Less-Than-Zero-Day Vulnerabilities and Exploits in Networked Infrastructures 1

Software Security Touchpoint: Architectural Risk Analysis

DISA's Application Security and Development STIG: How OWASP Can Help You. AppSec DC November 12, The OWASP Foundation

Integrating Application Security into the Mobile Software Development Lifecycle. WhiteHat Security Paper

Web Application Penetration Testing

ITEC441- IS Security. Chapter 15 Performing a Penetration Test

Penetration Testing Lessons Learned. Security Research

The Web AppSec How-to: The Defenders Toolbox

Using Web Security Scanners to Detect Vulnerabilities in Web Services

Automotive Ethernet Security Testing. Alon Regev and Abhijit Lahiri

Hacking Database for Owning your Data

INDUSTRIAL CONTROL SYSTEMS CYBER SECURITY DEMONSTRATION

Integrating Security Testing into Quality Control

Introduction to Penetration Testing Graham Weston

CYBERTRON NETWORK SOLUTIONS

CSCI 454/554 Computer and Network Security. Instructor: Dr. Kun Sun

Web Engineering Web Application Security Issues

Hack Your SQL Server Database Before the Hackers Do

External Supplier Control Requirements

Barracuda Web Site Firewall Ensures PCI DSS Compliance

Harness Your Robot Army for Total Vulnerability Management

Seven Practical Steps to Delivering More Secure Software. January 2011

2015 Golf & Learn August 18, 2015

AN OVERVIEW OF VULNERABILITY SCANNERS

Application security testing: Protecting your application and data

FIREWALLS & NETWORK SECURITY with Intrusion Detection and VPNs, 2 nd ed. Chapter 4 Finding Network Vulnerabilities

Transcription:

NWEN405: Security Engineering Lecture 15 Secure Software Engineering: Security Evaluation Engineering & Computer Science Victoria University of Wellington Dr Ian Welch (ian.welch@vuw.ac.nz)

Waterfall Secure Lifecycle Based upon Secure Coding Principles & Practices Graff & Wyk

Security Evaluation How do we know that we have met our security requirements? Testing is the answer but how does security testing differ from ordinary testing? How does testing your own code differ from testing someone else s code? What do we do post-testing?

Aim of testing is to find bugs that perhaps are triggered due to interactions between components or environmental conditions.

True or False? Users normally search for security bugs. Attackers will act like ordinary users. A hard-to-find bug is of low risk to a system. Security tests focus on what should happen. It is acceptable to mark some assumptions as too unlikely to hold.

True or False? Users normally search for security bugs. Few users do this, attackers take pleasure in finding corner cases.

True or False? Attackers will act like ordinary users. Normal test cases might neglect some boundary conditions because they are highly unlikely, attackers will test for these.

True or False? A hard-to-find bug is of low risk to a system. A small number of users might trigger a hard-tofind bug therefore restricting potential damage. Attackers will write a script to weaponise the bug and potentially deploy it against many systems (widespread damage).

True or False? Security tests focus on what should happen. Ordinary tests are usually positive, what the application should do. Security tests emphasize the negative, what shouldn t happen.

True or False? It is acceptable to mark some assumptions as too unlikely to hold. An attacker should never be able to take control of the application might be rejected as untestable from ordinary point-of-view but should be investigated from a security point-of-view.

Software testing v. Software Security Testing A piece of software with 90% fewer bugs than another piece of software is usually more reliable under ordinary circumstances. A piece of software with 90% fewer securityrelated bugs than another piece of software is not necessarily more secure if the 10% is easily exploitable.

Adapting Testing Strategies Some strategies: 1. Functional security testing. 2. Risk-based security testing. 3. Penetration testing.

1. Functional-based testing In simplest case, derive from requirements. When X happens, software should do Y. Functional testing is positive in orientation. Despite that, it can be used for security testing. Test that encrypting with key K and plaintext P generates ciphertext PK Here we are testing security functionality = positive test. Can be black-box or white-box, apply to control flow, data flow etc. All the standard testing considerations.

2. Risk-based testing What about the negative tests? Mitigations can used to derive extra security requirements for positive testing. Three failed logins cause user account to be disabled Note that result of testing is evidence of the problems, not their absence. presence of Can also look at dependencies to test what happens in cases of failure Authentication server fails, everyone by superuser locked out of system (instead of allowing everyone into the system) Doesn t help with risks that you do not know about.

3. Penetration Testing Often done on operational system. Assemble outside experts, they use hacking toolkits to attack the system and find holes. Most expensive way to fix your system (catch faults after complete system is deployed). However, can be integrated into the lifecycle at earlier stage and carried out by software development team themselves.

3.1. Fuzz testing What about the corner cases and negative testing. No set of requirements that give hints as to the possible inputs. One approach is fuzz testing (derived from software fault injection). Randomly generate inputs that are invalid or unexpected and monitoring for crashes or assertions.

3.1. Fuzz testing SPI Dynamics (http://www.spidynamics.com) Fortify Software ( http://www.immunitysec.com/productscanvas.shtml) Shim (inject faults into web apps directly) http://www.ieinspector.com/httpanalyzer/

3.2 Bug Finding Tools FindBugs and other similar static analysis tools. Looking for common programmer errors. Purify is another tool for C and C++ -- control flow and data flow analysis.

3.3 Imitating the Hacker Disassemblers and decompilers. What information is disclosed that you don t know about? Rootkits. What can you do once installed? Can you change configuration files through a backdoor? Attack creation. Launch your own buffer overflow, XSS exploits, etc. Time consuming!

3.3 Imitating the Hacker (Tools) SATAN and SANTA System penetration tools (the original), operating system is the main target. METASPLOIT Includes web applications, network services in general. Opensource with a commercial version available. ICEPACK and its relations Commercial tools for criminals.

What about external libraries, thirdparty code? Penetration testing is a possibility. Also trust-based approaches (described in Anderson). Orange Book (DoD 1980s) generally discredited. Common Criteria (International project, 1990s onwards) more accepted, key idea is idea of profiles.

Closes the loop on testing. Do something about it. Decide (using risk modeling) whether and when to fix a problem uncovered due to testing (or post-implementation) after release of the software.