common web application vulnerabilities know your enemy

63
Common Web Application Vulnerabilities Know Your Enemy

Upload: damien-purks

Post on 14-Dec-2015

226 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Common Web Application Vulnerabilities Know Your Enemy

Common Web Application VulnerabilitiesKnow Your Enemy

Page 2: Common Web Application Vulnerabilities Know Your Enemy

Speakers

Jason ChrinInfrastructure Security

Jonathan BailerCode Vulnerability

Lawrence WolfeThe Human Factor

Page 3: Common Web Application Vulnerabilities Know Your Enemy

The State of the Internet - 2014

• January– Target: 70 million

contact records stolen– Michaels: 2.6 million

credit cards stolen

• May– eBay: 223 million

customer accounts stolen

• June– Evernote: DDoS

• September– Home Depot: 56 million

credit cards stolen– Google: 5 million

accounts compromised– Apple: iCloud hacking

Page 4: Common Web Application Vulnerabilities Know Your Enemy

Motivations Behind Attacks

Soucre: Hackmageddon.com

Page 5: Common Web Application Vulnerabilities Know Your Enemy

SERVER & INFRASTRUCTURE SECURITY

Know Your Enemy

Page 6: Common Web Application Vulnerabilities Know Your Enemy

Attack Surface

• The sum of all paths for data/commands into and out of the application• The code that protects these paths • All valuable data used in the application,

including secrets and keys, intellectual property, critical business data, personal data and Personally Identifiable Information• The code that protects this data

Page 7: Common Web Application Vulnerabilities Know Your Enemy

Limiting your Attack Surface

Warner Bros. Pictures 2006

Page 8: Common Web Application Vulnerabilities Know Your Enemy

Limiting your Attack Surface

• Build and maintain a secure network• Data Security Policies• Encryption and secure transmission

Page 9: Common Web Application Vulnerabilities Know Your Enemy

Attack Type 1: Port Scanning

• Attacker attempts to connect to various ports on your networks

• Tries to determine what is open on the network and can be used as an entry vector

Page 10: Common Web Application Vulnerabilities Know Your Enemy

Firewall – external access

• The front door to your application

• Only open access that is needed

• Only allow ingress from known locations

Page 11: Common Web Application Vulnerabilities Know Your Enemy

Firewall – internal access

• DMZ• Network Segmentation• Application firewalls

Page 12: Common Web Application Vulnerabilities Know Your Enemy

Attack Type 2: Eavesdropping

Source: owasp.org

Page 13: Common Web Application Vulnerabilities Know Your Enemy

Data Security

Types of sensitive data1. Regulated• Financial Information• Healthcare Information

2. Unregulated• Proprietary Information• Confidential Information

Page 14: Common Web Application Vulnerabilities Know Your Enemy

How to Handle Your Data

• Securely store data – use encryption• Only store what data is needed• Limit Access to data• Encrypted transmission - SSL

Page 15: Common Web Application Vulnerabilities Know Your Enemy

Attack Type 3: Password Attacks

• Brute force attacks• Info gained from Eavesdropping• Default credential attempts

Page 16: Common Web Application Vulnerabilities Know Your Enemy

Secure Access

• Remote access over secure channels– VPN– SSL connections

• Authentication– Unique credentials for each user– Strong password policy– Multi Factor Authentication

Page 17: Common Web Application Vulnerabilities Know Your Enemy

What is MFA?

• Possession Factor – something user has• Knowledge Factor – something user knows• Inherence Factor – something the user is

Page 18: Common Web Application Vulnerabilities Know Your Enemy

Logging

• Access Logging for system connections• Application level Logging• Log monitoring software

Page 19: Common Web Application Vulnerabilities Know Your Enemy

Attack type 4: Application Layer Attack

• Targets application servers looking for OS or application faults

• Bypass normal access controls• Gains Elevated privileges

Page 20: Common Web Application Vulnerabilities Know Your Enemy

Patch Management

• OS Updates• Application Updates• AV / Malware Definitions

Page 21: Common Web Application Vulnerabilities Know Your Enemy

Active Scanning

• Anti-Virus– Protects against malicious code

• Malware– Annoyance programs that may offer back door to

attacks• Intrusion Detection– Automated monitoring for suspicious activity

• Penetration Testing

Page 22: Common Web Application Vulnerabilities Know Your Enemy

Attack Type 5: Man in the Middle

Source: 4kcc.com

Page 23: Common Web Application Vulnerabilities Know Your Enemy

Preventing Man in the Middle

• Use strong encryption for communication• Segregate production networks

Page 24: Common Web Application Vulnerabilities Know Your Enemy

Be Diligent

• This is just a start• New exploits found daily• Review your logs and procedures• External auditing

Page 25: Common Web Application Vulnerabilities Know Your Enemy

CODE VULNERABILITYKnow Your Enemy

Page 26: Common Web Application Vulnerabilities Know Your Enemy

What does code vulnerability mean?

• Flaw or oversight in an application allowing unauthorized or unintended use

Page 27: Common Web Application Vulnerabilities Know Your Enemy

Types of code vulnerabilities

• Injection• Cross-site scripting (XSS)• Cross-site request forgery (CSRF)• Information leakage

Page 28: Common Web Application Vulnerabilities Know Your Enemy

Injection - What is it?

• Processing of invalid data changing the course of execution– Arbitrary modification of data– Installation of malware– Privilege escalation– HTML/Script injection

Page 29: Common Web Application Vulnerabilities Know Your Enemy

Injection – How does it work?

http://xkcd.com/327/

Page 30: Common Web Application Vulnerabilities Know Your Enemy

Injection - Example

Page 31: Common Web Application Vulnerabilities Know Your Enemy

Injection - Example

Page 32: Common Web Application Vulnerabilities Know Your Enemy

Injection – Types

• SQL Injection• HTML Script Injection• Dynamic Evaluation Vulnerability• Object injection (serialization)• Remote File Injection• Shell Injection

Page 33: Common Web Application Vulnerabilities Know Your Enemy

Injection – Prevention

• Whitelist input

Page 34: Common Web Application Vulnerabilities Know Your Enemy

Injection – Prevention

• Whitelist input• Sanitize input

Page 35: Common Web Application Vulnerabilities Know Your Enemy

Injection – Prevention

• Whitelist input• Sanitize input• Parameterization

Page 36: Common Web Application Vulnerabilities Know Your Enemy

Cross-site Scripting – What is it?

• Injecting client-side script into Web pages viewed by other users

Page 37: Common Web Application Vulnerabilities Know Your Enemy

Cross-site Scripting – Example

Page 38: Common Web Application Vulnerabilities Know Your Enemy

Cross-site Scripting – Types

• Non-Persistent– Query string, post data, etc. (e.g. search results)

• Persistent– Database or file changes (e.g. comments)

• DOM-based– Runs entirely in the client

Page 39: Common Web Application Vulnerabilities Know Your Enemy

Cross-site Scripting - Prevention

• Sanitize user input and output that is based on user created content

• Top-down testing and analysis of client side scripts

Page 40: Common Web Application Vulnerabilities Know Your Enemy

Cross-site Request Forgery – What is it?

Causing a user’s browser to perform an unwanted action on a trusted site for which the user is authenticated.

A form of the confused deputy problem.

Page 41: Common Web Application Vulnerabilities Know Your Enemy

Cross-site Request Forgery – Example

Page 42: Common Web Application Vulnerabilities Know Your Enemy

Cross-site Request Forgery – Prevention

• Synchronizer token pattern• Cookie-to-header Token

Page 43: Common Web Application Vulnerabilities Know Your Enemy

Information Leakage – What is it?

• Application unintentionally revealing sensitive information– System/environment configuration– User information– etc.

Page 44: Common Web Application Vulnerabilities Know Your Enemy

Information Leakage – What is it?

• Comments visible in response data• Overly detailed error information• Difference in behavior

Page 45: Common Web Application Vulnerabilities Know Your Enemy

Information Leakage – Example

http://xkcd.com/1354/

Page 46: Common Web Application Vulnerabilities Know Your Enemy

Information Leakage – Example

http://xkcd.com/1354/

Page 47: Common Web Application Vulnerabilities Know Your Enemy

Information Leakage - Prevention

• Parse errors before display• Remove debugging information from

production• Always be aware of what your application’s

behavior reveals

Page 48: Common Web Application Vulnerabilities Know Your Enemy

THE HUMAN FACTORKnow Your Enemy

Page 49: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Code Review

Source: SmartBear

Page 50: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Code Review

Source: SmartBear

Page 51: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Code Review

What if?

Page 52: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Code Review

What if……one of those bugs is a security vulnerability

that exposes customer data?

Page 53: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Code Review

What if……one of those bugs is a security vulnerability

that exposes customer data?

Labor + Damages = $$$ Millions? Billions?

Page 54: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Code Review

• Self audit through annotation & peer review– Less defects, better performing code– Reduces chance of vulnerable code making it to production– Go from as strong as your weakest link to as good as the

best on your team– Reduce technical debt– Continuous education

• Tools– SmartBear Collaborator, Atlassian Crucible

Page 55: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Source Control

Page 56: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Source Control

• Source Control– Beyond version management and feature development– Enables code collaboration and vulnerability prevention– Merge workflow, feature/module branches– Git - BitBucket, Github + Console, SourceTree, VS

• Automated Builds – Continuous Integration– Code Standards, Static Analysis– Reduces potential for introducing insecure configurations– Empowers team and individual accountability– Tools

Jenkins, Team Foundation Server, Travis CI (cloud)

Page 57: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Sensitive Data

Page 58: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Sensitive Data

• Obfuscated, Masked and Mock Data– Limit developer access to production data when

possibleex. employee, customer and financial data

– Development data sources should not contain real data

– Use mock data for test driven development– Tools

SQL: redgate SQL Data Generatorruby: Faker::HipsterIpsum

Page 59: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Modular Dev

Page 60: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Modular Dev

• For large projects and teams, isolate risks with modular development

• Architect for modular development.ex. SOA, libraries, packages, gems

• Developer only needs access to build specific components

Page 61: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Social Hacking

Page 62: Common Web Application Vulnerabilities Know Your Enemy

The Human Factor: Social Hacking

• Phishing– Common behaviors

• Spear Phishing– Specific target

• Impersonation - “Service Desk”

Page 63: Common Web Application Vulnerabilities Know Your Enemy

Thank You!Q&A