Difference between revisions of "Map execution paths through application (OTG-INFO-008)"

From OWASP
Jump to: navigation, search
m (moved Testing Map execution paths through application (OWASP-IG-009) to Map execution paths through application (OTG-INFO-008): Align with common numbering effort and clarify purpose of test case)
Line 3: Line 3:
  
  
== Brief Summary ==
+
== Summary ==
  
 
Before commencing security testing, understanding the structure of the application is paramount. Without a thorough understanding of the layout of the application, it is unlkely that it will be tested thoroughly.   
 
Before commencing security testing, understanding the structure of the application is paramount. Without a thorough understanding of the layout of the application, it is unlkely that it will be tested thoroughly.   
  
 +
== Test Objectives ==
  
== Description of the Issue ==  
+
== How to Test ==
  
 
In black box testing it is extremely difficult to test the entire code base. Not just because the tester has no view of the code paths through the application, but even if they did, to test all code paths would be very time consuming. One way to reconcile this is to document what code paths were discovered and tested.  
 
In black box testing it is extremely difficult to test the entire code base. Not just because the tester has no view of the code paths through the application, but even if they did, to test all code paths would be very time consuming. One way to reconcile this is to document what code paths were discovered and tested.  
Line 20: Line 21:
 
The trade off as to what method is used and to what degree each method is used should be negotiated with the application owner. Simpler approaches could also be adopted, including asking the application owner what functions or code sections they are particularly concerned about and how those code segments can be reached.
 
The trade off as to what method is used and to what degree each method is used should be negotiated with the application owner. Simpler approaches could also be adopted, including asking the application owner what functions or code sections they are particularly concerned about and how those code segments can be reached.
  
 
+
''' Black Box testing '''
== Black Box testing and example ==
+
  
 
The demonstrate code coverage to the application owner the tester can start with a spreadsheet and documenting the links discovered by spidering the application (either manually or automatically). Then the tester can being looking more closely at decision points in the application and investigating how many significant code paths are discovered, documenting them in the spreadsheet with URLs, prose and screenshot descriptions of the paths discovered.
 
The demonstrate code coverage to the application owner the tester can start with a spreadsheet and documenting the links discovered by spidering the application (either manually or automatically). Then the tester can being looking more closely at decision points in the application and investigating how many significant code paths are discovered, documenting them in the spreadsheet with URLs, prose and screenshot descriptions of the paths discovered.
  
  
== Gray Box testing and example ==
+
''' Gray/White Box testing '''
  
 
Ensuring sufficient code coverage for the application owner is far easier with the gray and white box approach to testing. Information solicited by and provided to the tester will ensure the minimum requirements for code coverage are met.  
 
Ensuring sufficient code coverage for the application owner is far easier with the gray and white box approach to testing. Information solicited by and provided to the tester will ensure the minimum requirements for code coverage are met.  
  
 +
=== Example ===
  
  
== References ==
+
== Tools ==
 
+
 
+
'''Whitepapers'''
+
 
+
[1] http://en.wikipedia.org/wiki/Code_coverage
+
 
+
'''Tools'''
+
  
 
* Spidering (either manual or software assisted)
 
* Spidering (either manual or software assisted)
Line 48: Line 42:
  
 
* Diagramming software
 
* Diagramming software
 +
 +
== Vulnerability References ==
 +
 +
 +
'''Whitepapers'''
 +
 +
[1] http://en.wikipedia.org/wiki/Code_coverage
 +
 +
 +
== Remediation ==

Revision as of 08:36, 28 July 2013

This article is part of the new OWASP Testing Guide v4. 
At the moment the project is in the REVIEW phase.

Back to the OWASP Testing Guide v4 ToC: https://www.owasp.org/index.php/OWASP_Testing_Guide_v4_Table_of_Contents Back to the OWASP Testing Guide Project: http://www.owasp.org/index.php/OWASP_Testing_Project

Contents



Summary

Before commencing security testing, understanding the structure of the application is paramount. Without a thorough understanding of the layout of the application, it is unlkely that it will be tested thoroughly.

Test Objectives

How to Test

In black box testing it is extremely difficult to test the entire code base. Not just because the tester has no view of the code paths through the application, but even if they did, to test all code paths would be very time consuming. One way to reconcile this is to document what code paths were discovered and tested.

There are several ways to approach the testing and measurement of code coverage:

  • Path - test each of the paths through an application which includes combinatorial and boundary value analysis testing for each decision path. While this approach offers thoroughness, the number of testable paths grows exponentially with each decision branch.
  • Data flow (or taint analysis) - tests the assignment of variables via external interaction (normally users). Focuses on mapping the flow, transformation and use of data throughout an application.
  • Race - tests multiple concurrent instances of the application manipulating the same data.

The trade off as to what method is used and to what degree each method is used should be negotiated with the application owner. Simpler approaches could also be adopted, including asking the application owner what functions or code sections they are particularly concerned about and how those code segments can be reached.

Black Box testing

The demonstrate code coverage to the application owner the tester can start with a spreadsheet and documenting the links discovered by spidering the application (either manually or automatically). Then the tester can being looking more closely at decision points in the application and investigating how many significant code paths are discovered, documenting them in the spreadsheet with URLs, prose and screenshot descriptions of the paths discovered.


Gray/White Box testing

Ensuring sufficient code coverage for the application owner is far easier with the gray and white box approach to testing. Information solicited by and provided to the tester will ensure the minimum requirements for code coverage are met.

Example

Tools

  • Spidering (either manual or software assisted)
  • Spreadsheet software
  • Screenshot software
  • Diagramming software

Vulnerability References

Whitepapers

[1] http://en.wikipedia.org/wiki/Code_coverage


Remediation