IP Library Granted Patent US 9,032,528
Granted Patent B2
US 9,032,528 · App. 13/170,839 · Granted May 12, 2015

Black-box testing of web applications with client-side code evaluation

Inventors: Yinnon A. Haviv (Beerotaim, IL); Daniel Kalman (Herzliya, IL); Dmitri Pikus (Herzliya, IL); Omer Tripp (Herzliya, IL); Omri Weisman (Herzliya, IL)
Assignee: International Business Machines Corporation
G06F21/577H04L63/1441H04L63/1433
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,032,528
App. No.
13/170,839
Granted
May 12, 2015
Kind
B2
Abstract

Detecting security vulnerabilities in web applications by interacting with a web application at a computer server during its execution at the computer server, identifying client-side instructions provided by the web application responsive to an interaction with the web application, where the client-side instructions are configured to be implemented by a client computer that receives the client-side instructions from the computer server, evaluating the identified client-side instructions, and identifying a security vulnerability associated with the client-side instructions.

Claims (50)

1. A system for detecting security vulnerabilities in web applications, the system comprising:

at least one hardware processor, wherein

the at least one hardware processor includes a block-box tester, and a client-side evaluator,

the black-box tester is configured to

interact with a web application at a computer server during its execution at the computer server, and

identify client-side instructions provided by the web application responsive to an interaction with the web application,

the client-side instructions are configured to be implemented by a client computer that receives the client-side instructions from the computer server; and

the client-side evaluator is configured to

evaluate the client-side instructions identified by the black-box tester, and

identify a security vulnerability associated with the client-side instructions.

2. The system of claim 1 where

the black-box tester is configured to identify a security vulnerability associated with the web application.

3. The system of claim 1 where

the client-side evaluator is configured to perform static analysis of the client-side instructions identified by the black-box tester to identify the security vulnerability associated with the client-side instructions.

4. The system of claim 1 where

the client-side evaluator is configured to perform dynamic taint analysis on the client-side instructions to track taint propagation within the client-side instructions, thereby identifying the security vulnerability associated with the client-side instructions.

5. The system of claim 4 where

the client-side evaluator is configured to modify the client-side instructions identified by the black-box tester to store information indicating whether variables within the client-side instructions point to tainted objects, and where

the client-side evaluator is configured to perform dynamic taint analysis on the modified client-side instructions to track taint propagation within the modified client-side instructions, thereby identifying the security vulnerability associated with the client-side instructions.

6. The system of claim 4 where

the client-side evaluator is configured to use a predefined security specification to determine which objects within the client-side instructions are tainted and how taint propagates from variable to variable within the client-side instructions.

7. The system of claim 4 and further comprising

an interpreter configured to track any variable within the client-side instructions that directly points to a tainted object within the client-side instructions, where

the client-side evaluator is configured to perform dynamic taint analysis on the client-side instructions by calling the interpreter to track taint propagation within the client-side instructions, thereby identifying the security vulnerability associated with the client-side instructions.

8. The system of claim 7 where

the interpreter is configured to track any variable that ultimately depends from any variable within the client-side instructions that directly points to a tainted object within the client-side instructions.

9. The system of claim 7 where

the interpreter is configured to use a predefined security specification to determine which objects within the client-side instructions are tainted and how taint propagates from variable to variable within the client-side instructions.

10. The system of claim 4 and further comprising

a symbolic analyzer configured to perform symbolic analysis of the client-side instructions to determine at least one value for at least one variable within the client-side instructions that would result in a control flow target being reached within the client-side instructions during execution of the client-side instructions, where

the client-side evaluator is configured to use any value determined by the symbolic analyzer when performing the dynamic taint analysis on the client-side instructions to cause the target control flow.

11. A computer program product for detecting security vulnerabilities in web applications, the computer program product comprising:

a computer-readable storage medium; and

computer-readable program code embodied in the computer-readable storage medium, where the computer-readable program code is configured to

interact with a web application at a computer server during its execution at the computer server,

identify client-side instructions provided by the web application responsive to an interaction with the web application, where

the client-side instructions are configured to be implemented by a client computer that receives the client-side instructions from the computer server,

evaluate the client-side instructions, and

identify a security vulnerability associated with the client-side instructions, wherein

the computer-readable storage medium is not a transitory, propagating signal per se.

12. The computer program product of claim 11 where

the computer-readable program code is configured to identify a security vulnerability associated with the web application.

13. The computer program product of claim 11 where

the computer-readable program code is configured to perform static analysis of the client-side instructions to identify the security vulnerability associated with the client-side instructions.

14. The computer program product of claim 11 where

the computer-readable program code is configured to perform dynamic taint analysis on the client-side instructions to track taint propagation within the client-side instructions, thereby identifying the security vulnerability associated with the client-side instructions.

15. The computer program product of claim 14 where

the computer-readable program code is configured to

modify the client-side instructions to store information indicating whether variables within the client-side instructions point to tainted objects, and

perform dynamic taint analysis on the modified client-side instructions to track taint propagation within the modified client-side instructions, thereby identifying the security vulnerability associated with the client-side instructions.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2018
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: FINJAN BLUE, INC.
Reel/Frame 046037/0040 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 28, 2011
From: HAVIV, YINNON A.; KALMAN, DANIEL; PIKUS, DMITRI; TRIPP, OMER; WEISMAN, OMRI
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 026515/0302 →
Continuity (1)
Related Publication 20130007885A1 · Jan 3, 2013