Zéro SQLi malgré les développeurs

Magazine
Marque
MISC
Numéro
111
Mois de parution
septembre 2020
Domaines


Résumé

Nous proposons une méthode pour effectuer des requêtes SQL qui garantit l'invulnérabilité aux injections SQL, y compris lorsqu'elle est utilisée par un développeur pressé ou incompétent, contrairement aux requêtes paramétrées. Basée sur l'utilisation d'arbres de syntaxe abstraite, elle permet facilement de construire des requêtes dynamiques et est plus facile à mettre en œuvre qu'un ORM. Nous proposons une bibliothèque Java implémentant nos idées, mais la méthode peut s'appliquer à d'autres langages de programmation et d'autres types de requêtes.


La notion de vulnérabilité à des injections SQL est connue depuis plus de 20 ans [1]. La contre-mesure classiquement conseillée contre ce type de faille est également connue depuis longtemps : il suffit d'utiliser des requêtes paramétrées. Pourtant, les injections SQL sont toujours en tête des problèmes de sécurité applicative [2]. Pourquoi ?

Une réponse est le manque de formation des développeurs. Néanmoins, il nous semble que cette réponse mériterait réexamen. Considérons par exemple le code Java présenté dans le listing ci-dessous :

String computeCriterion(String[] fields, String[] values) {
    StringBuffer b = new StringBuffer();
    for (int i = 0; i < Math.min(values.length, fields.length); i++) {
    if (values[i] != null) {
        b.append(" AND " + fields[i] + " = '" + values[i] + "'");
    }
    }
    return b.toString();
}
 
PreparedStatement buildStatement(int y, String[] fields,
                 String[]...
Cet article est réservé aux abonnés. Il vous reste 96% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite
Références

[1] Rain Forest Puppy. « NT Web Technology Vulnerabilities ». In Phrack Magazine, 8.54, déc. 1998. http://phrack.org/issues/54/8.html

[2] Andrew van der Stock, Brian Glass, Neil Smithline, and Torsten Gigler. « OWASP top 10 - 2017 ». https://owasp.org/www-pdf-archive/OWASP_Top_10-2017_%28en%29.pdf.pdf

[3] Judicaël Courant. « sqltrees: A secure, developper-proof, Java library for querying SQL databases », 2020. https://github.com/Orange-Cyberdefense/sqltrees

[4] E. Gamma, R. Helm, R. Johnson, and J. Vlissides. « Design Patterns: Elements of Reusable Object-Oriented Software ». Addison-Wesley Professional Computing Series. Pearson Education, 1994. ISBN : 978-0-201-63361-0

[5] Kevin Wall and Matt Seil. « The OWASP Enterprise Security API ». https://owasp.org/www-project-enterprise-security-api/

[6] Sebastian Bergmann, Arne Blankerts, and Stefan Priebsch. « Why magic quotes are gone in php 7 ». Août 2017. https://thephp.cc/news/2017/08/why-magic-quotes-are-gone-in-php7

[7] « SQLJ », Wikipedia, The Free Encyclopedia. Mars 2020. https://en.wikipedia.org/w/index.php?title=SQLJ&oldid=945238109

[8] « Embedded SQL », Wikipedia, The Free Encyclopedia. Mars 2020. https://en.wikipedia.org/w/index.php?title=Embedded_SQL&oldid=948412805

[9] R. A. McClure and I. H. Kruger. « SQL DOM: compile time checking of dynamic SQL statements ». In : Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005. p. 88-96.

[10] Querydsl. http://www.querydsl.com/

[11] jOOQ. https://www.jooq.org/

[12] Robin Milner. « A theory of type polymorphism in programming ». Journal of Computer and System Sciences, 17 (1978), p. 348-375.

[13] Hibernate project. https://hibernate.org/

[14] Zhengqin Luo, Tamara Rezk, and Manuel Serrano. « Automated code injection prevention for web applications ». In : Theory of Security and Applications - Joint Workshop, TOSCA 2011, Saarbrücken, Germany, March 31 - April 1, 2011, Revised Selected Papers.Sous la dir. De Sebastian Mödersheim et Catuscia Palamidessi. T. 6993. Lecture Notes in Computer Science. Springer, 2011, p. 186-204. https://doi.org/10.1007/978-3-642-27375-9_11

[15] Gregory T. Buehrer, Bruce W. Weide, and Paolo A. G. Sivilotti. « Using parse tree validation to prevent sql injection attacks ». In : Proceedings of the International Workshop on Software Engineering and Middleware (SEM) at Joint FSE and ESEC. 2005, p. 106-113.

[16] Zhendong Su and Gary Wassermann. « The essence of command injection attacks in web applications ». In : Proceedings of the 33rd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, POPL 2006. Sous la dir. de J. Gregory Morrisett et Simon L. Peyton Jones. ACM, 2006. https://doi.org/10.1145/1111037.1111070



Articles qui pourraient vous intéresser...

Assurez l’intégrité de vos fichiers avec fs-verity

Magazine
Marque
Linux Pratique
HS n°
Numéro
48
Mois de parution
septembre 2020
Domaines
Résumé

Vous êtes-vous déjà demandé comment faire pour protéger des fichiers importants ? Votre système d’exploitation vous a-t-il déjà informé que vos fichiers étaient corrompus ? Pensez-vous souvent à l’intégrité des informations contenues dans vos fichiers ? Vous êtes tombé au bon endroit, nous découvrirons ici comment protéger vos données avec fs-verity.

Détection d'anomalies par ACP

Magazine
Marque
MISC
Numéro
111
Mois de parution
septembre 2020
Domaines
Résumé

Retour de vacances. L’analyse du SIEM après un mois d’absence montre que dix incidents ont été déclenchés sur la base des alertes automatiques et ont pu être gérés convenablement par la chaîne de traitement d’incidents. Tout est-il sous contrôle ? Un analyste aimerait rapidement s’en assurer en complétant cette supervision par sa propre analyse du mois écoulé. Mais par où commencer ? Il est inenvisageable de regarder un mois de logs « rapidement » et d’autant plus quand on ne sait pas précisément ce que l’on cherche… Une solution possible est de recourir à des outils statistiques qui permettent d’identifier des périodes d’activité atypiques sur lesquelles concentrer son analyse. L’analyse en composantes principales (ACP ou PCA en anglais) est une méthode statistique qui peut répondre relativement efficacement à cette problématique. L’article présente cette méthode et son apport dans la détection d’anomalies, en prenant comme exemple l’analyse de flux réseaux.

Télétravail : une sécurité à repenser et une nouvelle organisation à encadrer

Magazine
Marque
MISC
Numéro
111
Mois de parution
septembre 2020
Domaines
Résumé

Entre mode et nécessité, le télétravail nous oblige à repenser notre organisation du travail et les règles de sécurité associées. Comment mettre en place ces nouveaux modèles sans risque pour l’entreprise et ses salariés ?

Les environnements virtuels : pourquoi et comment les utiliser

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
110
Mois de parution
septembre 2020
Domaines
Résumé

Si vous êtes un Pythoniste débutant, vous en avez probablement entendu parler et si vous êtes confirmés, ils sont forcément tout le temps dans votre boite à outils.Aujourd’hui, ils sont faciles à utiliser, intégrés aux IDE et permettent une économie de temps considérable dans la gestion et la maîtrise de l’environnement de nos applications.