Metrics, Methods and Tools to Measure Security and Trustworthiness. Measuring trustworthiness



Similar documents
Metrics, methods and tools to measure trustworthiness

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

Learning objectives for today s session

Protecting Database Centric Web Services against SQL/XPath Injection Attacks

SECURITY METRICS: MEASUREMENTS TO SUPPORT THE CONTINUED DEVELOPMENT OF INFORMATION SECURITY TECHNOLOGY

Securing PHP Based Web Application Using Vulnerability Injection

Evaluation of Web Security Mechanisms Using Inline Scenario & Online Scenario

Using Web Security Scanners to Detect Vulnerabilities in Web Services

Reducing Application Vulnerabilities by Security Engineering

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

Virtualization for Cloud Computing

Mingyu Web Application Firewall (DAS- WAF) All transparent deployment for Web application gateway

The Road from Software Testing to Theorem Proving

APPLICATION SECURITY RESPONSE: WHEN HACKERS COME A-KNOCKING

A clustering Approach for Web Vulnerabilities Detection

Using Web Security Scanners to Detect Vulnerabilities in Web Services

Detecting SQL Injection Vulnerabilities in Web Services

Confinement Problem. The confinement problem Isolating entities. Example Problem. Server balances bank accounts for clients Server security issues:

Bradford J. Willke, CISSP

Latest Trends in Testing. Ajay K Chhokra

Comparing the Effectiveness of Penetration Testing and Static Code Analysis

Obj: Sec 1.0, to describe the relationship between hardware and software HW: Read p.2 9. Do Now: Name 3 parts of the computer.

Topics. Introduction. Java History CS 146. Introduction to Programming and Algorithms Module 1. Module Objectives

Streamlining Application Vulnerability Management: Communication Between Development and Security Teams

Unix Security Technologies. Pete Markowsky <peterm[at] ccs.neu.edu>

IT Professional Standards. Information Security Discipline. Sub-discipline 605 Information Security Testing and Information Assurance Methodologies

Security Testing for Web Applications and Network Resources. (Banking).

Software Engineering Compiled By: Roshani Ghimire Page 1

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

SAFE SOFTWARE FOR SPACE APPLICATIONS: BUILDING ON THE DO-178 EXPERIENCE. Cheryl A. Dorsey Digital Flight / Solutions cadorsey@df-solutions.

Software Testing Interview Questions

Effective Software Security Management

Network operating systems typically are used to run computers that act as servers. They provide the capabilities required for network operation.

A Network Administrator s Guide to Web App Security

Understanding Virus Behavior in 32-bit Operating Environments

Uses for Virtual Machines. Virtual Machines. There are several uses for virtual machines:

RAMS Software Techniques in European Space Projects

Geospatial Server Performance Colin Bertram UK User Group Meeting 23-Sep-2014

Secure Software Programming and Vulnerability Analysis

SOFTWARE DEVELOPMENT STANDARD FOR SPACECRAFT

CPS221 Lecture: Operating System Structure; Virtual Machines

Software testing. Objectives

INTRODUCTION ADVANTAGES OF RUNNING ORACLE 11G ON WINDOWS. Edward Whalen, Performance Tuning Corporation

x86 ISA Modifications to support Virtual Machines

Chapter 3 Operating-System Structures

CDC UNIFIED PROCESS JOB AID

Software Testing. Knowledge Base. Rajat Kumar Bal. Introduction

Web application security: automated scanning versus manual penetration testing.

The Software Development Life Cycle: An Overview. Last Time. Session 8: Security and Evaluation. Information Systems Security Engineering

Levels of Software Testing. Functional Testing

Automatic vs. Manual Code Analysis

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

Functions of NOS Overview of NOS Characteristics Differences Between PC and a NOS Multiuser, Multitasking, and Multiprocessor Systems NOS Server

Full and Para Virtualization

Defining Quality Workbook. <Program/Project/Work Name> Quality Definition

Application Code Development Standards

Application Security Testing. Erez Metula (CISSP), Founder Application Security Expert

QUANTITATIVE MODEL FOR INFORMATION SECURITY RISK MANAGEMENT

Systems Software. Introduction to Information System Components. Chapter 1 Part 2 of 4 CA M S Mehta, FCA

Module 1: Introduction to Computer System and Network Validation

Measurement Information Model

SAN Conceptual and Design Basics

How To Migrate To Redhat Enterprise Linux 4

Security Testing & Load Testing for Online Document Management system

Integrated Threat & Security Management.

Security Overview of the Integrity Virtual Machines Architecture

Developing LPF s Data Management Unit

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

Introduction to Automated Testing

Dynamic Load Balancing of Virtual Machines using QEMU-KVM

Pattern Insight Clone Detection

Certification Report

Risk and Security Assessment. Zbigniew Kalbarczyk

VMware and CPU Virtualization Technology. Jack Lo Sr. Director, R&D

ITIL Essentials Study Guide

DEVELOPING SECURE SOFTWARE

Malicious Software. Ola Flygt Växjö University, Sweden Viruses and Related Threats

PATCH MANAGEMENT. February The Government of the Hong Kong Special Administrative Region

White Paper. Fundamentals of Performance Testing

Transcription:

Metrics, Methods and Tools to Measure Security and Trustworthiness Henrique Madeira, University of Coimbra, Portugal Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS) Cascais, June 29 th, 2009 University of Coimbra Measuring trustworthiness Trustworthy ICT should be: Dependable Require different metrics, Resilient methods and tools Secure to attacks, operational faults and changes Quite different types of animals Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 2

Measuring trustworthiness Trustworthy ICT should be: Dependable Measuring, assessing, and benchmarking dependability and resilience is not solved Resilient Measuring, assessing and benchmarking Secure security is even harder to attacks, operational faults and changes Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 3 Dependability and resilience metrics Dependability Availability - readiness for correct service Fine! Reliability - continuity of correct service But just Safety - absence of catastrophic consequences for faults! Integrity - absence of improper system alteration Maintainability - ability to undergo modifications and repairs (Performance, measured as response time & throughput, is part of correct service) Resilience The persistence of delivery of justifiably trusted service in the presence of evolutionary changes. The changes can be planned, predictable, or totally unforeseen (ReSIST - Resilience for Survivability in IST, www.resist-noe.org) Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 4

Security metrics The problem is not the lack of security metrics Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 5 Security metrics The problem is not the lack of security metrics Different groups of metrics Organizational Security Metrics Measure the effectiveness of organizational programs and processes Related to best practices Specify levels of maturity Technical Security Metrics Access security attributes of ICT objects Many ad hoc metrics addressing quite specific aspects Operational Security Metrics Measure security risks based on metrics produced as a part of normal operations Operational readiness Security posture (e.g., measure antivirus protection, password strength, ) Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 6

Measuring trustworthiness Trustworthy ICT should be: Dependable Measuring, assessing, and benchmarking dependability and resilience is not solved Resilient Measuring, assessing and benchmarking Secure security is even harder to attacks, operational faults and changes A single word is not enough Measuring, assessing and benchmarking trustworthiness Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 7 Measuring The act of obtaining a proper measurement for a parameter or metric. It relies on a quantitative with well-known scale/reference Measurement uncertainty can make the difference between good and bad measurements. Quality of measurements is all about uncertainty evaluation. Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 8

Assessing The act of classifying something with respect to its worth. It can just be qualitative. Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 9 Benchmarking Agreement/contract and well-identified properties to ensure fairness in comparison (DBench project). Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 10

What we have in mind when we talk about security measuring? Qualitative and quantitative measurements Quantitative measurement in two flavors: Relative sense (benchmarking), to choose among alternatives Absolute sense, to give guaranties to users Predictive value At different levels Organizational measurements: measure effectiveness of organizational processes Technical measurements: assess/compare technical objects Operational measurements: produced as a part of normal operations Throughout systems lifecycle Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 11 Limitations of existing security measuring methods? In general, are focused on specific aspects of security. Lots of useful methods that help improving security, but none of them can quantify security. Methods based on process guidelines and best practices Red Teams, that may be effective in finding problems Formal methods fail proving absolute security in realistic scenarios, although useful to find problems Vulnerability detection approaches Etc Lack of predictive metrics and methods. Organizational-level and technical security metrics are not integrated to provide a comprehensive view Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 12

Measuring security; judging on trust Security is a feature of a system or a service (taking system/service in both the technical and organizational levels and including people as elements of the system) Trust is a relationship between two entities Linked to confidence on something (a person, a machine, the related environment) Dependent on the context Varies along the time Non-reflexive, non-symmetric, non-transitive Security measurements could provide support/evidences for the establishment of trust Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 13 Challenges Challenge 1: Define the right elements Metrics Evaluation methods Tools Challenge 2: Validation Challenge 3: Impact and relevance Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 14

Challenge 1 Metrics, methods, and tools Appropriate metrics Methods for estimating metrics Effective evaluation tools Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 15 Challenge 1 Metrics, methods, and tools Appropriate metrics Methods for estimating metrics Which metrics? Just a small number? Specific of a given context? Metrics purpose (related to Effective evaluation requirements)? tools Metrics at different levels: component, system, infrastructure, organization, Product oriented and process oriented Applied throughout the system lifecycle Metric composition, namely how to relate organizational and technical metrics. Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 16

Challenge 1 Metrics, methods, and tools Appropriate metrics Methods for estimating metrics Effective evaluation tools Which methods? Formal, experimental, risk assessment, threat & vulnerability assessment, Should be both model and experimentally based Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 17 Challenge 1 Metrics, methods, and tools Appropriate metrics? Methods for estimating metrics Effective evaluation tools Effective tools that can be used by practitioners Integration of different tools in a toolset, including tools for organizational and technical metrics Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 18

Challenge 1 Metrics, methods, and tools Example of benchmarking vulnerability scanners tools Appropriate metrics? Vulnerability Scanner 1 (detected 51/117) Methods for estimating 17 metrics 17 Detected by manual scanning only Effective evaluation tools 30 3 1 Vulnerability 7 Vulnerability Scanner 3 16 Scanner 2 (detected Effective 73/117) tools that can be used by practitioners 26 (detected 27/117) Integration of different tools in a toolset, including tools for organizational and technical metrics Scanners used Acunetix Web Vulnerability Scanner 4 Watchfire AppScan 7 (aquired by IBM) Spi Dynamics WebInspect 6.32 (aquired by HP) Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 19 Properties Representativeness Repeatability Reproducibility Portability Scalability Generalization Challenge 2 Validation Just being pragmatic is enough? Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 20

Challenge 3 Impact and relevance How to select the challenges and research problems that maximize the impact of research outcomes? Metrics that promote security improvement User view Industry Metrics that show the return on investment Regulation policy Benchmarking Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 21 How can we give some contribution? (back to 5 years ago) Apply methods used in the dependability and resilience evaluation to the security field Fault injection Robustness testing Dependability benchmarking Vulnerability injection Attack injection Security benchmarking Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 22

What is fault injection? (and a little bit of history ) Deliberate insertion of upsets (faults or errors) in computer systems to evaluate its behavior in the presence of faults or validate specific fault tolerance mechanisms in computers. Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 23 Examples of fault injection approaches Pin-level fault injection (e.g., RIFLE) Fault injection elements Adaptation Module CPU Routing Control logic Monitoring logic To the fault injection host Target System Software Implemented Fault Injection (e.g., Xception) Reproduce pin-level fault injection by software Injection of hardware faults only! Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 24

Examples of fault injection approaches Pin-level fault injection (e.g., RIFLE) Fault injection elements Adaptation Module CPU Routing Control logic Monitoring logic To the fault injection host Target System Software Implemented Fault Injection (e.g., Xception) Reproduce pin-level fault injection by software Injection of hardware faults only! What about injecting software faults? Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 25 Two possible injection points (software faults) 1. Injection of interface faults in software components (classical robustness testing) Interface faults Input SW component under test Output 2. Injection of realistic software faults inside software components (new approach) Input Target SW component Output Software faults Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 26

Example of results from interface faults (robustness testing) Robustness failure in RTEMS 4.5.0 Excerpt of application code: requestedsize1 = 4294967295; returnstatus = rtems_region_get_segment (regionid, requestedsize1, option, timeout, ptsegment1); Result: Memory exception at fffffffc (illegal address) Unexpected trap (0x09) at address 0x0200aaac Data access exception at 0xfffffffc This software fault was discovered automatically by the Xception robustness testing tool! Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 27 Example of results obtained with injection of software faults 1. Software faults are injected in the disk device driver What happens using if the a G-SWFIT software bug in the disk device technique. driver becomes active? 2. The device is heavily used by programs. Availability Feedback Stability 7 6 8 8 5 6 6 4 3 4 4 2 1 2 2 0 Worst Best 0 Worst Best 0 Worst Best Windows NT Windows 2000 Windows XP Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 28

Example of results obtained with injection of software faults What happens if a software bug in the disk device driver becomes active? Availability Feedback Stability 7 6 8 8 5 6 6 4 3 4 4 2 1 2 2 0 Worst Best 0 Worst Best 0 Worst Best Windows NT Windows 2000 Windows XP Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 29 Why injection or real software faults? Injection of SW faults Component 1 Custom Component 2 COTS Component 4 Custom Exception handler Component 3 COTS Injection of SW faults Error propagation through non conventional channels is a reality. Faults injected inside components are more representative. Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 30

Which are the most representative SW faults? Field data on real software errors is the most reliable information source on which faults should be injected Typically, this information is not made public Open source projects provide information on past (discovered) software faults Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 31 Open source field data survey Programs Description # faults CDEX CD Digital audio data extractor. 11 Vim Improved version of the UNIX vi editor. 249 FreeCiv Multiplayer strategy game. 53 pdf2h pdf to html format translator. 20 GAIM All-in-one multi-protocol IM client. 23 Joe Text editor similar to Wordstar 78 ZSNES SNES/Super Famicom emulator for x86. 3 Bash GNU Project's Bourne Again SHell. 2 LKernel Linux kernels 2.0.39 and 2.2.22 93 Total faults collected 532 Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 32

The Top-N software faults Perc. Observed Fault types in field study ODC classes Missing "If (cond) { statement(s) }" 9.96 % Algorithm Missing function call 8.64 % Algorithm Missing "AND EXPR" in expression used as branch condition 7.89 % Checking Missing "if (cond)" surrounding statement(s) 4.32 % Checking Missing small and localized part of the algorithm 3.19 % Algorithm Missing variable assignment using an expression 3.00 % Assignment Wrong logical expression used as branch condition 3.00 % Checking Wrong value assigned to a value 2.44 % Assignment Missing variable initialization 2.25 % Assignment Missing variable assignment using a value 2.25 % Assignment Wrong arithmetic expression used in parameter of function call 2.25 % Interface Wrong variable used in parameter of function call 1.50 % Interface Total faults coverage 50.69 % Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 33 G-SWFIT: Generic software fault injection technique Component executable code 01011 00010 01001 Low-level code fault injection engine Component with injected faults 01X11 00010 01001 01011 0X010 01001 Library of low level fault injection operators... 01011 0001X 01001 01011 00010 0X001 Emulate common programmer mistakes The technique can be applied to binary files prior to execution or to in-memory running processes Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 34

Software fault operators Location pattern how to locate where to inject a software fault Code change what to change in order to inject a software fault Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 35 Fault/operator ex 1: Missing and-expression in condition Target source code (avail. not necessary) if(a==3 & & b==4 ) { do something } Code with intended fault if(a==3 & & b==4 ) { do something } Original target code (executable form) cmp dword ptroff_a[ebp],3 jne short ahead cmp dword ptroff_b[ebp],4 jne short ahead ;...do so mething... ahead:... ;remaining prog. code Target code with emulated fault cmp dword ptroff_a[ebp],3 jne short ahead nop nop nop ;...do so mething... ahead:... ;remaining prog. code The actual mutation is performed in executable (binary) code. Assembly mnemonics are presented here for readability sake Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 36

Vulnerability Injection (for Web Applications) Some possible scenarios: Train security teams Evaluate security teams Estimation of vulnerabilities in the code Attack Injector and with an attack injector we can evaluate security mechanisms Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 37 Field Study on Vulnerabilities 6 LAMP web applications 655 security vulnerabilities (XSS and SQLi) Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 38

Vulnerability Operators Location pattern how to locate where to inject a vulnerability Vulnerability code change what to change in order to inject a vulnerability Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 39 Vulnerability Injection methodology 1. Analysis of the source code of the web application 2. Search for the locations where a vulnerability may exist 3. Change the code to inject a vulnerability Original web application source code Vulnerability Operators Code with faults injected Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 40

Attack Injection Methodology Methodology to test security mechanisms: 1. Injection of realistic vulnerabilities 2. Controlled attack of the vulnerabilities Stages: 1. Preparation 2. Injection of Vulnerabilities 3. Attack Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 41 Simple example 1. Verify the quality of the vulnerabilities and attacks injected 2. Test one IDS for databases Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 42

1: Verification of the Injection 60 50 40 30 54 100% 43 80% 1200 1000 800 600 1099 100% 20 10 400 200 413 38% 0 Some vulnerabilities could not be attacked: Vuln. Injected Vuln. Attacked Successfully Multiple protection of the variable Different variables with the same name 0 Attacks Attacks Successfull Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 43 2: IDS Evaluation 450 400 350 300 250 200 413 100% 408 99% 700 600 500 400 300 686 100% 393 57% 150 200 100 100 50 0 Attacks Successfull Detected 0 Attacks not Successfull False Positives The IDS missed five attacks due to a bug in the code of one of its core functions Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 44

Conclusion Measuring, assessing and benchmarking security is a big challenge Metrics, methods, and tools What is required? Who is measuring and who is going to use the measurements? There are a lot of stakeholders Validation? Trusting on the tools? Learn with old dependability evaluation techniques could be useful Henrique Madeira Workshop on Recent Advances on Intrusion-Tolerant Systems (WRAITS), Cascais, June 29, 2009 45