Transcript
Page 1: Relational Constraint Driven Test Case Synthesis  for Web Applications

Relational Constraint Driven Test Case Synthesis for Web Applications

Dr. Xiang Fu

Assistant ProfessorDepartment of Computer Science

Hofstra University

Page 2: Relational Constraint Driven Test Case Synthesis  for Web Applications

Introduction Path Transducer Model Relational Constraint Call Sequence Synthesis Detecting Workflow Attack Related Work and Conclusion

Outline

Page 3: Relational Constraint Driven Test Case Synthesis  for Web Applications

Web Application and Database

Web Server

Databases

Page 4: Relational Constraint Driven Test Case Synthesis  for Web Applications

Traditionally, SQLUnit & DBUnit◦Manual Test Case Design

Reverse Inference of DB State◦ Given Query & Expected Result◦ Generate Initial DB Instance

Our Problem: Synthesis Problem◦ Given Database State◦ Synthesize Call Sequence of Servlets

Testing Web App & DB

Page 5: Relational Constraint Driven Test Case Synthesis  for Web Applications

White-box Analysis (1) Interface Extraction Path Transducers (2) Coverage Goal Extraction (3) Call Sequence Generation Adaptation Discover Workflow Attacks

Our Proposal

Page 6: Relational Constraint Driven Test Case Synthesis  for Web Applications

Servlet Path Transducers Relational Transducer that Models One

Execution Path◦ Path Condition◦ Side Effects to DB

Path Transducer Model

Servlet

Page 7: Relational Constraint Driven Test Case Synthesis  for Web Applications

Relational Data Schema Input Domain Finite Set of Session Variables Boolean Combination of Terms

◦ Equality v’ = v + 1

◦ Satisfiability Check

Path Transducer Model

))(( SAT ''21 Ta

Page 8: Relational Constraint Driven Test Case Synthesis  for Web Applications

Selection

Projection

Cross Product

Union

Difference

Relational Algebra Formula)(21

)(2

21

21

21

Page 9: Relational Constraint Driven Test Case Synthesis  for Web Applications

Motivating ExampleSimpleScarf

ShowSessions.php

InsertSession.phpAddMember.php

GenOptions.php

Login.php

Page 10: Relational Constraint Driven Test Case Synthesis  for Web Applications

Database Schema

Usersvchar uname

vchar pwd

Sessionsint sid

vchar sname

Membersint sid

vchar uname

Page 11: Relational Constraint Driven Test Case Synthesis  for Web Applications

ShowSessions.php

Page 12: Relational Constraint Driven Test Case Synthesis  for Web Applications

Check Valid Session Var #uname Select Session Info No Side Effects

Path Transducer of ShowSession

Page 13: Relational Constraint Driven Test Case Synthesis  for Web Applications

User Specify New Session Name $SI Update Relation Sessions

InsertSession.php

Page 14: Relational Constraint Driven Test Case Synthesis  for Web Applications

Takes Two Parameters◦ $uA: User Name◦ $sA: Session Name

Add Membership Info

AddMember.php

Page 15: Relational Constraint Driven Test Case Synthesis  for Web Applications

Add User: One of Many Functions Available Takes Two Parameters

◦ $uG: User name◦ $pG: Password

Generaloptions.php

Encrypt PasswordPassword Rules

Encoded Using String Constraint

Page 16: Relational Constraint Driven Test Case Synthesis  for Web Applications

Given Two Parameters◦ $uL: user name◦ $pL: password

When Success, Update Session Variable◦ #u: Session Variable on user name

Login.php

Page 17: Relational Constraint Driven Test Case Synthesis  for Web Applications

Key to Synthesis Khurshid’s Approach [ASE’08] Translate to Alloy

Solving Relational Constraint

Page 18: Relational Constraint Driven Test Case Synthesis  for Web Applications

Pre/Post Images

Transition System Post Image

Page 19: Relational Constraint Driven Test Case Synthesis  for Web Applications

Key Problem: Satisfiability Check

Join of Session and Membership

Select Session Name ‘s1’

Project to uname Find users in paper session ‘s1’ but not in ‘s2’

Goal: Find DB Instance Satisfies query

Page 20: Relational Constraint Driven Test Case Synthesis  for Web Applications

Translation of Data Schema

Page 21: Relational Constraint Driven Test Case Synthesis  for Web Applications

Translation Part II

Page 22: Relational Constraint Driven Test Case Synthesis  for Web Applications

Experimental Results

Vars Clauses Trans_Time Solve_Time

4833 7876 829ms 78ms

Page 23: Relational Constraint Driven Test Case Synthesis  for Web Applications

Call Sequence Synthesis

Coverage Goal: Line

# 45

Path Transducers

CALL SeqSynthesis Algorithm

List of HTTP

Requests

Page 24: Relational Constraint Driven Test Case Synthesis  for Web Applications

(Η’,ϒ’)

Knowledge In Advance:◦ (1) Each Path Transducer – Transition System

(Relational Logic)◦ (2) Relations being Modified (add, drop, modify)◦ (3) Session Vars being Modified

Algorithm: Backtrack

Heuristic Algorithm

(Η,ϒ)

HTTP Reques

t

Current Constraint

ϒ’ = Pre(H’, ϒ)

Heuristic to pick to the next servlet: watch the difference between the relations in the current constraints and target constraints. “Insertion” has priority

Page 25: Relational Constraint Driven Test Case Synthesis  for Web Applications

Example: Coverage Target

Coverage Goal

Target Constraint: TrueInitial Constraint:Path Transducer:

Page 26: Relational Constraint Driven Test Case Synthesis  for Web Applications

Pre-Image ComputationTransition Post-Image

Standard Existential Quantification

Initial Constraint:

Compare M and #u modified! Next servlet: AddMember or Login

Page 27: Relational Constraint Driven Test Case Synthesis  for Web Applications

Constraint in Last Step

1.07 seconds for generating the model by ALLOY

Page 28: Relational Constraint Driven Test Case Synthesis  for Web Applications

Workflow Attack

EnterAddr

ChargeCC

GenReceipt PrintShipping

How to Detect Workflow Attack?

(1)Static Analysis for ALL URLS that could be generated by a servlet

(2)Modify the Backtrack algorithm for locating an “abnormal” link not in the ALL_URLs set

Database manipulation TAKEN CARE OF.

Page 29: Relational Constraint Driven Test Case Synthesis  for Web Applications

Proposal of Several Interesting Directions◦ Extraction of Path Transducer Model◦ Solving Relational Constraints◦ Call Sequence Synthesis Algorithm◦ Extension for Detecting Workflow Attacks

Future Directions◦ Implementation …

Conclusion

Page 30: Relational Constraint Driven Test Case Synthesis  for Web Applications

Interface Extraction◦ [Halfond’FSE07], [Halfond’FSE’08]

Relational Transducer◦ [Abiteboul’JCSS00]

Query Aware Relational Constraint Solving◦ [Binnig’ICDE07, Khalek’ICSE08]

Session Based Testing of Web App◦ [Elbaum’TSE05, Sampath’ASE05, Sprenkle’FSE05]

Related Work


Recommended