Relational Constraint Driven Test Case Synthesis for Web Applications

30
Relational Constraint Driven Test Case Synthesis for Web Applications Dr. Xiang Fu Assistant Professor Department of Computer Science Hofstra University

description

Relational Constraint Driven Test Case Synthesis for Web Applications. Dr. Xiang Fu Assistant Professor Department of Computer Science Hofstra University. Outline. Introduction Path Transducer Model Relational Constraint Call Sequence Synthesis Detecting Workflow Attack - PowerPoint PPT Presentation

Transcript of Relational Constraint Driven Test Case Synthesis for Web Applications

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