80 likes | 200 Views
FLAX: Systematic Discovery of Client-Side Validation Vulnerabilities in Rich Web Applications. Software Security Jorina van Malsen. Client-Side Validation (CSV) Vulnerabilities.
E N D
FLAX: SystematicDiscovery of Client-SideValidationVulnerabilities in Rich Web Applications Software Security Jorina van Malsen
Client-SideValidation (CSV) Vulnerabilities “A CSV vulnerabilityresultsfromunsafeusage of untrusted data in the client-side code of the web application” CSV more commonthan ever due to the increasedcomplexity of JavaScriptapplications
FLAX Tool to analyze a web application in anend-to-endmanner, aimed to discover vulnerabilities in the client-side code The frameworksimplifiesJavaScriptanalysis and explicitly models reflectedflows and pathconstraints. Challenges: - Complexity of JavaScript - Parsingoperations are syntacticallyindistinguishablefromvalidation checks - Difficultieswith the reflectedflows
ExistingApproaches Fuzzing/Black Box Testing DynamicTaint-Tracking SymbolicExecutionTechniques FLAX is a hybridapproachnamed a ‘taintenhancedblackboxfuzzingapproach’
Attacksresultingfrom CSV Vulnerabilities OriginMisattribution Arisesbecause the applicationchecks the domain field of the origin parameter insufficiently, though the protocol sub-field is correctlyvalidated Code Injection PossiblebecauseJavaScriptcandynamicallyevaluateboth HTML and script code usingvarious DOM methods as well as JavaScriptnativeconstructs(oftenreferred to as DOM-based XSS) CommandInjection Allows the attacker to performunintendedactionsonbehalf of the user. Cookie-SinkVulnerabilities Anattackercould, amongothers, fix the values of the sessionidentifierswhichmayresult in a sessionfixation
FLAXTechnicalChallenges and Design Points Modelingpathconstraints ImprovementSanerbyenabling FLAX to capture the validationchecks as branchconditions SimplifyingJavaScript By the use of JASIL Dealingwithreflectedflows This is donebytesting the client-side code independently of the server-sidecodybygeneratingcandidateinputsthatmakesimpleassumptionsabout the transformationsoccurring in reflectedflows. Subsequently, the tool verifies the assumptionby running the candidateattackconcretely, and reports a vulnerabilityif the concrete test succeeds
The System’sArchitecture The taintenhancedblackboxfuzzingalgorithmconsists of five steps at a high level: Dynamictracegeneration and conversion to JASIL Dynamictaintanalysis Generateanacceptor slice Sink-aware random testing Verification of candidateinputs
Evaluation FLAX FLAX discoveredseveralreal-world bugs (incl. severaliGoogle gadgets, websites and AJAX applicationsforinstance) 11 of the foundedvulnerabilitieswereunknownbefore, soitprovesthat the tool is a valuable resource forsecurityanalysts and developers of rich web applications The technique is light-weightcompared to symbolicexecutiontechniques, has nofalsepositives and is scalableenough to useonreal-worldapplications