Essential IT Security Testing



Similar documents
Is Drupal secure? A high-level perspective on web vulnerabilities, Drupal s solutions, and how to maintain site security

Where every interaction matters.

WEB SECURITY CONCERNS THAT WEB VULNERABILITY SCANNING CAN IDENTIFY

Web Application Penetration Testing

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

(WAPT) Web Application Penetration Testing

OWASP Top Ten Tools and Tactics

Using Free Tools To Test Web Application Security

WHITE PAPER. FortiWeb and the OWASP Top 10 Mitigating the most dangerous application security threats

How to break in. Tecniche avanzate di pen testing in ambito Web Application, Internal Network and Social Engineering

Magento Security and Vulnerabilities. Roman Stepanov

Detecting Web Application Vulnerabilities Using Open Source Means. OWASP 3rd Free / Libre / Open Source Software (FLOSS) Conference 27/5/2008

ArcGIS Server Security Threats & Best Practices David Cordes Michael Young

Overview of the Penetration Test Implementation and Service. Peter Kanters

Testing the OWASP Top 10 Security Issues

Criteria for web application security check. Version

Web applications. Web security: web basics. HTTP requests. URLs. GET request. Myrto Arapinis School of Informatics University of Edinburgh

Adobe Systems Incorporated

Secure Web Development Teaching Modules 1. Threat Assessment

The Top Web Application Attacks: Are you vulnerable?

Web application security

OWASP AND APPLICATION SECURITY

Sitefinity Security and Best Practices

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

Nuclear Regulatory Commission Computer Security Office Computer Security Standard

OWASP and OWASP Top 10 (2007 Update) OWASP. The OWASP Foundation. Dave Wichers. The OWASP Foundation. OWASP Conferences Chair

05.0 Application Development

Integrating Security Testing into Quality Control

Introduction:... 1 Security in SDLC:... 2 Penetration Testing Methodology: Case Study... 3

Secure Web Development Teaching Modules 1. Security Testing. 1.1 Security Practices for Software Verification

MANAGED SECURITY TESTING

Last update: February 23, 2004

WHITE PAPER FORTIWEB WEB APPLICATION FIREWALL. Ensuring Compliance for PCI DSS 6.5 and 6.6

Guidelines for Web applications protection with dedicated Web Application Firewall

DFW INTERNATIONAL AIRPORT STANDARD OPERATING PROCEDURE (SOP)

Members of the UK cyber security forum. Soteria Health Check. A Cyber Security Health Check for SAP systems

Columbia University Web Security Standards and Practices. Objective and Scope

Attack Vector Detail Report Atlassian

The purpose of this report is to educate our prospective clients about capabilities of Hackers Locked.

Web Application Security. Vulnerabilities, Weakness and Countermeasures. Massimo Cotelli CISSP. Secure

Web Application Hacking (Penetration Testing) 5-day Hands-On Course

WEB APPLICATION SECURITY

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

Six Essential Elements of Web Application Security. Cost Effective Strategies for Defending Your Business

Software Assurance Tools: Web Application Security Scanner Functional Specification Version 1.0

Sichere Software- Entwicklung für Java Entwickler

OWASP TOP 10 ILIA

WHITE PAPER. FortiWeb Web Application Firewall Ensuring Compliance for PCI DSS 6.5 and 6.6

Application Security Testing. Generic Test Strategy

Web Vulnerability Assessment Report

Web attacks and security: SQL injection and cross-site scripting (XSS)

Cloud Security:Threats & Mitgations

Web Application Firewall on SonicWALL SSL VPN

SQuAD: Application Security Testing

Security Evaluation of Web Application. Using Custom Web Application

Web Security Testing Cookbook*

Web Application Vulnerability Testing with Nessus

CSE598i - Web 2.0 Security OWASP Top 10: The Ten Most Critical Web Application Security Vulnerabilities

Web Application Security Assessment and Vulnerability Mitigation Tests

Chapter 1 Web Application (In)security 1

SAST, DAST and Vulnerability Assessments, = 4

Rational AppScan & Ounce Products

Creating Stronger, Safer, Web Facing Code. JPL IT Security Mary Rivera June 17, 2011

FINAL DoIT v.8 APPLICATION SECURITY PROCEDURE

ETHICAL HACKING APPLICATIO WIRELESS110 00NETWORK APPLICATION MOBILE MOBILE0001

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

Thick Client Application Security

Advanced Web Technology 10) XSS, CSRF and SQL Injection 2

Secure Web Applications. The front line defense

Using Nessus In Web Application Vulnerability Assessments

National Information Security Group The Top Web Application Hack Attacks. Danny Allan Director, Security Research

Web application testing

Web Application Security

Intrusion detection for web applications

What is Web Security? Motivation

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

Testnet Summerschool. Web Application Security Testing. Dave van Stein

Passing PCI Compliance How to Address the Application Security Mandates

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

Web Application Attacks And WAF Evasion

PCI-DSS and Application Security Achieving PCI DSS Compliance with Seeker

Web Application Security Guidelines for Hosting Dynamic Websites on NIC Servers

Web Application Threats and Vulnerabilities Web Server Hacking and Web Application Vulnerability

Barracuda Web Site Firewall Ensures PCI DSS Compliance

Data Breaches and Web Servers: The Giant Sucking Sound

External Vulnerability Assessment. -Technical Summary- ABC ORGANIZATION

Web App Security Audit Services

Application Security Vulnerabilities, Mitigation, and Consequences

Out of the Fire - Adding Layers of Protection When Deploying Oracle EBS to the Internet

Certified Secure Web Application Security Test Checklist

Web Application Guidelines

Web Application Security Considerations

SENSITIVE AUSTRALIAN SPORTS COMMISSION ATHLETE MANAGEMENT SYSTEM (AMS) SMARTBASE SECURITY TEST PLAN. Final. Version 1.0

Application Code Development Standards

Transcription:

Essential IT Security Testing Application Security Testing for System Testers By Andrew Muller Director of Ionize

Who is this guy? IT Security consultant to the stars Member of OWASP Member of IT-012-04 Security Techniques Member of IT-015-26 Software Testing

What s he talking about? Background Issues Methodologies Tools Common vulnerabilities

Why security testing? Some of us test to satisfy compliance requirements, the most popular being ISO 27001, with the ISM and PCI applying to specific industry sectors.

Why security testing? Some of us test so as to not run foul of the law.

Why security testing? This graph indicates the number of vulnerabilities, but not the number of breaches resulting from each of these vulnerabilities. http://web.nvd.nist.gov/vie w/vuln/statistics Some of us test to make software better. Long history of devastating software flaws. Number of vulnerabilities discovered each year is growing Plenty of high profile disclosures. Why? Are there more or smarter bad guys?

Why is this happening? Functional requirements are KING Security is a non-functional requirement and diminishes usability Some of the dysfunction is cultural Focus on positive test cases Believe that our own guys are OK Most compromises are due to insiders But what about higher classified enclaves with the network? What about unintentional DoS? We are highly connected with highly complex software, based on aging and unsecure technologies: HTTP, SMTP, DNS We can still relate security to key business requirements: Availability, Reliability

Perception of Security Lack of security knowledge by developers Lack of development knowledge by security Lack of knowledge of both by the business Lack of communication Security are all sheriffs

Perception of Developers Lack of communication Developers are all cowboys

Perception of Business Lack of communication Business don t know what they want and are unhappy with everything

How do we fix it? An SDLC is a process to produce software or systems that satisfy requirements How software is made is critical to understanding how to test it and how to fix it

Where does security fit?

OpenSAMM Software Assurance Maturity Model http://www.opensamm.org Okay, well now we know where security testing might fit, how do we undertake the testing?

Security testing methodologies Most of us have a robust test cycle System and integration testing is methodical Security testing hasn t been so rigourous Security is just another set of test cases

Security testing methodologies What do we want from a methodology? Accountability What was tested? Where are the results? Repeatability Will the next test be the same as this one? Thoroughness How do I know everything has been tested?

Secure OS and software configuration checklists for: Secure configuration Security vulnerabilities Security weaknesses Supports Security Content Automation Protocol (SCAP) to automate enumeration of insecure software and platform configuration. National Checklist Program (http://checklists.nist.gov)

A complete set of test cases for all areas and levels of security: Human Physical Wireless Telecommunications Digital network From policy to implementation Open Source Security Testing Methodology Manual (http://www.isecom.org)

Open Web Application Security Project Documentation Testing Guide (integrates with OSSTMM) Code Review Guide Development Guide Tools WebScarab

Tools Several HTTP intercepting proxies Webscarab Paros BurpSuite Tamperdata (Firefox plugin)

Test Automation There are bunch of commercial tools HP s WebInspect Aspect s Acunetix And free tools Paros Nikto So which one is the best?

Test Automation SAMATE - Software Assurance Metrics And Tool Evaluation (http://samate.nist.gov) Found that the best tools find 33% of software vulnerabilities. All of the tools together could detect 50% of software vulnerabilities.

OWASP Top 10-2010 Injection Flaws Cross Site Scripting (XSS) Broken Authentication and Session Management Insecure Direct Object Reference Cross Site Request Forgery (CSRF) Security Misconfiguration Insecure Cryptographic Storage Failure to Restrict URL Access Insufficient Transport Layer Protection Unvalidated Redirects and Forwards Injection occurs when user-supplied data is sent to an interpreter as part of a command or query. XSS flaws occur whenever an application takes user supplied data and sends it to a web browser without first validating or encoding that content. Account credentials and session tokens are often not properly protected. A direct object reference occurs when a developer exposes a reference to an internal implementation object, such as a file, directory, database record, or key, as a URL or form parameter. A CSRF attack forces a logged-on victim's browser to send a pre-authenticated request to a vulnerable web application, which then forces the victim's browser to perform a hostile action to the benefit of the attacker. Good security requires having a secure configuration defined and deployed for the application, frameworks, application server, web server, database server, and platform. Web applications rarely use cryptographic functions properly to protect data and credentials. Frequently, an application only protects sensitive functionality by preventing the display of links or URLs to unauthorized users. Applications frequently fail to encrypt network traffic when it is necessary to protect sensitive communications. Web applications frequently redirect and forward users to other pages and websites, and use untrusted data to determine the destination pages For this presentation we re going to focus on application security issues. We re doing this because it boasts the best developed framework.

OWASP Testing Guide The testing guide provides a set of test cases Practical guidance for execution

Authentication Testing The keys to the kingdom

User enumeration Common/default usernames Guessable username structure Error responses from login application Invalid user Invalid password Mitigation Generic error messages Non-standard usernames

Guessable user account Common account names admin, test, guest Developer/tester accounts in production

Bypass authentication schema Forced browsing Only the login page verifies login status Parameter modification http://server/login.asp?authenticated=no Session identifier prediction SQL injection

Remember password and password reset Identity verification Secret questions Password change Immediate interactive Email

Demonstration: Authentication Flaws Forgot password Basic authentication Welcome to WebGoat. A deliberately insecure web application used to demonstrate common web application vulnerabilities. Web application security training simulator

Demonstration: Parameter tampering Exploit hidden fields Change Price field in HTTP header

Session management HTTP being stateless requires a mechanism to provide state VIEWSTATE PHPSESSID JSESSIONID

Bypass session management schema Session is most typically implemented using cookies Cookie collection What generates and consumes cookies? Cookie analysis Session token structure and predictability Cookie structure and lifetime Cookie manipulation

Demonstration: Session management Spoof an authentication cookie Reverse and decrement by one: aspect auth cookie = 65432udfqtb webgoat auth cookie = 65432ubphcfx

Session fixation Session cookie set upon accessing application New session cookie not set upon successful authentication Session cookie can be fixed using other vulnerabilities

Cross Site Request Forgery Trick an authenticated to execute a malicious action Login as a valid user Have user execute pregenerated request to perform function

Demonstration: Cross Site Request Forgery Unauthorised bank transfer <IMG SRC= http://127.0.0.1/webgoat/attack?screen= 9&menu=900&transferFunds=4000 width= 1 height= 1 >

Authorisation Testing Controlling access to resources

Path traversal Identify parameters that may be used for file operations Input validation../../../ %2e%2e%2f %2e%2e%2f %2e%2e%2f Many other encoding options

Bypass authorisation schema Horizontal authorisation bypass Forced browsing by unauthenticated user http://www.site.com/admin/stop_server.asp

Privilege escalation Vertical authorisation bypass Tamper with group, profile or role parameters

Demonstration: Access Control Bypass a path based access control scheme

Data validation testing The root of all evil

Reflected Cross Site Scripting An attack needs user interaction Identify parameter inputs that are reflected to the browser <script>alert( xss )</script> Lots more (CAL9000)

Stored Cross Site Scripting Same as reflected but persistent Usual suspects are guestbooks and user comments

Demonstration: Cross-site Scripting Reflected XSS attacks Stored XSS attacks

SQL injection Identify probable inputs to database queries Login pages Search pages Detection is as simple as The inclusion of this query delimiter throws an exception

Standard SQL injection Consider a typical authentication database query SELECT * FROM Users WHERE Username='$username' AND Password='$password Username input is ' or 1=1-- Query becomes SELECT * FROM Users WHERE Username='' or 1=1-- ' AND Password='$password Query is always true, usually authenticating as the first record in the Users table

Demonstration: Injection flaws Numeric SQL injection 101 OR 1=1

Blind SQL injection Doesn t provide any visible response Use inference to determine query structures Lot of guesswork (lots of requests)

Code injection Can lead to Remote File Inclusion (RFI) vulnerability User accessible variables in include() statements Accept user input in the construction of application code within the application

OS Commanding Accept user input in the construction of a system call within the application Nuke the server rm f /*

Thank you! In this session we have only been able to explore the tip of the iceberg I would encourage you to continue to broaden your knowledge of security testing.