Security Testing - IBM
Security Testing - IBM
Applications
Ofer Shezaf, HP Enterprise Security Products
[email protected]
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
What I do for a living?
• Product Manager, Security Solutions, HP ArcSight
• Led security research and product
management at Breach Security & HP Fortify
3 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
About RESTful Web Services
• About RESTful Web Services
• RESTful WS in the Wild
• Security of RESTful WS
• Pen-testing RESTful WS
• Automated security testing of RESTful WS
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Web Services
Used for:
• Inter application communication
• Web 2.0 and Mashups
• Think client applications
• Phone applications
5 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
SOAP Web Services: example
Highly defined
6 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
SOAP Web Services
Commonly used protocol set for Web Services
The theory:
• Structures and well defined
• Robust
• Secure (?*)
However:
• Complex and heavy, especially for phone and Web 2.0
• Not the HTTP way: Designed to work on any protocol
including SMTP
Stateless •The client–server communication is further constrained by no client context being stored on the
server between requests*.
Cacheable •Responses must therefore, implicitly or explicitly, define themselves as cacheable or not
Layered •A client cannot ordinarily tell whether it is connected directly to the end server, or to an
intermediary along the way.
Uniform •A uniform interface between clients and servers simplifies and decouples the architecture.
Code on demand •Servers are able to temporarily extend or customize the functionality of a client by transferring
logic to it that it can execute.
* The server can be stateful; this constraint merely requires that server-side state be addressable by URL as a resource.
8 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
8
RESTful Web Services
Are:
• A common practice for using REST design patterns
for Web Services
Are Not:
• A well defined protocol
• A set of software libraries or frameworks
9 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
RESTful Web Services: example
GET /InStock/HP
10 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Common RESTful WS Practices
Use of HTTP methods to indicate action
CRUD: GET /InStock/HP
• Create (PUT),
• Read (GET),
• Update (POST),
• Delete (DELETE)
11 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Common RESTful WS Practices
None standard parameters specifications
• As part of the URL GET /InStock/HP
• None standard request parameters
• In headers
• Serialized as JSON in a parameter value of
request body
12 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Common RESTful WS Practices
Structured parameters and responses
• JSON and XML both widely used http://api.geonames.org/earthquakesJSON
?north=44.1&south=-9.9&east=-22.4&
• Parameter: west=55.2&username=demo
• In the request body
• Embedded in the value of a single parameter {"earthquakes":
[
• Response usually in the response body {"eqid":"c0001xgp","magnitude":8.8,"lng":142.369,"src
":"us","datetime":"2011-03-11
04:46:23","depth":24.4,"lat":38.322},
{"eqid":"2007hear","magnitude":8.4,"lng":101.3815,"sr
c":"us","datetime":"2007-09-12 09:10:26","depth":30,"lat":-
4.5172},
{"eqid":"2007aqbk","magnitude":8,"lng":156.9567,"src
":"us","datetime":"2007-04-01 18:39:56","depth":10,"lat":-
8.4528},
...
13 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Common RESTful WS Practices
Custom authentication and session management
• Commonly use security token/tickets
• While pure REST calls for URL based
tokens, this is not secure and headers are
often used.
14 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
RESTful services Documentation
15 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
RESTful WS in the Wild
• About RESTful Web Services
• RESTful WS in the Wild
• Security of RESTful WS
• Pen-testing RESTful WS
• Automated security testing of RESTful WS
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
It’s Up and Coming!
17 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Everybody uses REST
18 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Security of RESTful WS
• About RESTful Web Services
• RESTful WS in the Wild
• Security of RESTful WS
• Pen-testing RESTful WS
• Automated security testing of RESTful WS
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
You Already Know This Part
20 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Key issues to keep in mind
21 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Pen-testing RESTful WS
• About RESTful Web Services
• RESTful WS in the Wild
• Security of RESTful WS
• Pen-testing RESTful WS
• Automated security testing of RESTful WS
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Challenges
Detecting Attack Surface
23 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Challenges
Mega fuzzing
None
Standard
Parameters
A very large
number of
parameters
to fuzz
Serialized
JSON/XML
paramters
24 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Challenges
Session management
25 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Solutions
Use Documentation
Determine:
• Available services
• Use of HTTP methods
• Use of parameters
Potential Sources:
• WADL
• Programing guides
• Configuration information
• Application source
26 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Solutions
Use Documentation
Determine:
• Available services
• Use of HTTP methods
• Use of parameters
Potential Sources:
• WADL
• Programing guides
• Configuration information
• Application source
27 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Solutions
Use a proxy
28 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Solutions
Guessing parameters
29 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Automated security testing of RESTful WS
• About RESTful Web Services
• RESTful WS in the Wild
• Security of RESTful WS
• Pen-testing RESTful WS
• Automated security testing of RESTful WS
© Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
How does automated pen-testing work?
Understanding
request
generation (i.e.
Today employ links)
Crawling Determining
attack surface
Historically only
links based
JavaScript
emulation to get
dynamic requests
Pre- Understanding
requisites parameters
31 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
RESTful WS Challenges
Custom authentication and session management breaks common cookie sharing practices
32 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
One: define rules
Or…
Get smart! WebInspect 9.2 REST rule editor
33 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Two: ask the server
Program
Point Handlers <Event
Handler>
Action Log
svc/Grid.asmx/{param}
c/k1collection/Sem_Schilt/{param1}/{param2}
{param1}/{param2}/{param3}/{param4}/{param5}
35 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Four: examine response codes
404 analysis
Examine if
“folder” access
returns 404
everything
beyond the
“folder” is a
parameter
36 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.
Thank You!
Ofer Shezaf, [email protected]
37 © Copyright 2012 Hewlett-Packard Development Company, L.P. The information contained herein is subject to change without notice.