Abstract :
[en] Malicious users can attack Web applications by exploiting injection
vulnerabilities in the source code. This work addresses the challenge of
detecting injection vulnerabilities in the server-side code of Java Web
applications in a scalable and effective way. We propose an integrated
approach that seamlessly combines security slicing with hybrid constraint
solving; the latter orchestrates automata-based
solving with meta-heuristic search. We use static analysis to extract minimal
program slices relevant to security from Web programs and to generate attack
conditions. We then apply hybrid constraint solving to determine the
satisfiability of attack conditions and thus detect vulnerabilities.
The experimental results, using a benchmark comprising a set of diverse and
representative Web applications/services as well as security benchmark
applications, show that our approach (implemented in the JOACO tool) is
significantly more effective at detecting injection vulnerabilities than
state-of-the-art approaches, achieving
98% recall, without producing any false alarm. We also compared the constraint
solving module of our approach with state-of-the-art constraint solvers, using
six different benchmark suites; our approach correctly solved the highest
number of constraints (665 out of 672), without producing any incorrect result,
and was the one with the least number of time-out/failing cases. In both
scenarios, the execution time was practically acceptable, given the offline
nature of vulnerability detection.
Scopus citations®
without self-citations
12