American Fuzzy Lop

Magazine
Marque
MISC
HS n°
Numéro
11
Mois de parution
juin 2015
Domaines


Résumé

Le fuzzing est une technique datant de plusieurs années qui consiste à modifier de manière aléatoire des données fournies à un programme. Le but est de rendre instable le programme lisant ces données. Cette méthode est très utilisée en sécurité informatique pour trouver des failles de sécurité, soit par déni de service, soit par corruption de mémoire. Elle a l'avantage d'être facile à mettre en œuvre et de produire des bons résultats, car les programmeurs font souvent un peu trop confiance dans les données provenant de l'extérieur, sans avoir prévu les cas aux limites, ou qui s'écartent de la norme attendue.


1. Au commencement était le fuzz

Cet article va s'intéresser au fuzzing de programmes lisant des fichiers. Nous commencerons par étudier les principes du fuzzing à l'aide d'un simple script shell, puis d'une évolution possible de ce concept avec zzuf ou radamsa, deux fuzzers open source. Les limites du fuzzing seront présentées. Afl sera alors introduit. Afl, ou American Fuzzy Lop, est un fuzzer développé par lcamtuf (Michel Zalewsky) qui permet de dépasser les limites évoquées tout en conservant la simplicité d'usage du fuzzing. Des cas pratiques seront donnés pour expliquer la syntaxe et l'usage de ce fuzzer.

2. Le fuzzing

2.1 Un fuzzer en 10 lignes de bash

Fuzzer un programme est très simple. Il suffit de modifier un fichier d'entrée, et de monitorer le programme qui va le lire, puis répéter l'opération jusqu'à produire des résultats intéressants. Un fuzzer simpliste peut s'écrire en moins de dix lignes de script bash :

#!...

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


Articles qui pourraient vous intéresser...

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.

Introduction à QBDI et ses bindings Python

Magazine
Marque
MISC
Numéro
109
Mois de parution
mai 2020
Domaines
Résumé

Le présent article traite de l'outil d'instrumentation dynamique QBDI. C'est un framework de DBI (Dynamic Binary Instrumentation), comparable à d'autres projets publics tels qu’Intel PIN, Valgrind ou encore DynamoRIO. Avant d'entrer dans le vif du sujet, quelques rappels peuvent s'avérer nécessaires…

Introduction au dossier : Python au service de la recherche et l’exploitation de vulnérabilités

Magazine
Marque
MISC
Numéro
109
Mois de parution
mai 2020
Domaines
Résumé

Quand on s’adonne aux plaisirs de la sécurité informatique, il est ce moment où doivent s’aligner les idées et la pratique, c’est-à-dire la production d’une preuve de concept. Et quand il faut écrire du code, le choix du langage s’impose forcément : d’un côté, il y a les contraintes fortes qui nous donnent des possibilités restreintes, et de l’autre il y a nos bas instincts qui prennent la solution qui produira le plus rapidement possible le résultat escompté.