Exploiting vulnerabilities in Web applications thanks to secure models.
Johan Oudinet
29 March 2013, 14:00 Salle/Bat : 465/PCRI-N
Contact :
Activités de recherche :
Résumé :
Web applications are a major target of attackers. The increasing
complexity of such applications and the subtlety of today's attacks make
it very hard for developers to manually secure their Web applications.
Penetration testing is considered an art; the success of a penetration
tester in detecting vulnerabilities mainly depends on his skills.
Recently, model-checkers dedicated to security analysis have proved
their ability to identify complex attacks on web-based security
protocols. However, bridging the gap between an abstract attack trace
output by a model-checker and a penetration test on the real Web
application is still an open issue.
In this talk, I present a methodology, developed within the EU project
spacios.eu, for testing Web applications starting from a secure model.
First, we mutate the model to introduce well-known vulnerabilities for
Web applications. Then, model-checking techniques find some abstract
attack traces (AATs) that exploit those vulnerabilities. Next, the AATs
are translated into concrete test cases by using a 2-step mapping.
Finally, the tests are executed on the real system using an automatic
procedure that may request the help of a test expert from time to time.
A prototype has been implemented and evaluated on WebGoat, an insecure
Web application maintained by OWASP. It successfully reproduced
Role-Based Access Control (RBAC) and Cross-Site Scripting (XSS) attacks.