10/05/2017

OSS-Fuzz renforce la sécurité des projets open source

Lancé en décembre dernier, le robot de test à données aléatoires de Google a permis la découverte d’un millier de failles dans des projets open source. Pour encourager l’adoption de sa technologie, la firme de Mountain View étend son programme de récompense pour les patchs issus d’une intégration d’OSS-Fuzz.

À la fin de l’année 2016, Google lançait OSS-Fuzz avec pour objectif d’accroître l’utilisation des techniques de fuzzing au sein de la communauté des développeurs de logiciel open source. Google déclarait alors avoir utilisé cette technique d’injection de données pour repérer plusieurs centaines de problèmes de sécurité ou de stabilité dans le navigateur Chrome. Le concept de cette stratégie de test est relativement simple : des données aléatoires sont injectées dans les entrées d’un programme. Si le programme échoue, c’est qu’il y a des défauts à corriger. Dans son implémentation, la mise en place d’une stratégie de test de fuzzing nécessite en revanche une infrastructure complexe permettant d’envoyer en mode distribué de grandes quantités de données, c’est là qu’intervient la plateforme proposée par Google.

Une armada de Bot

Dans un billet de blog résumant les six premiers mois d’expérimentation, les équipes de Google déclarent :« L'objectif d'OSS-Fuzz est de rendre l'infrastructure logicielle commune plus sûre et plus stable en combinant des techniques de fuzzing modernes avec une exécution répartie évolutive. OSS-Fuzz combine divers moteurs de fuzzing (e.g. libFuzzer) avec Sanitizers (e.g. AddressSanitizer) et fournit un environnement d'exécution distribué massif alimenté par ClusterFuzz ».

Google a mis en œuvre une infrastructure adaptée, autant dire une véritable armée de robots, pour détecter les vulnérabilités potentielles rapidement. Google annonce près de 10 milliards d’entrées de tests par jour lui ayant permis de découvrir près de 1000 failles dont 264 liées à des vulnérabilités au sein de 47 projets open source lors des 6 derniers mois, parmi lesquels FreeType2, FFmpeg, LibreOffice, SQLite 3, GnuTLS, PCRE2, gRPC et Wireshark.

La typologie des failles de sécurité

Au rang des failles découvertes par OSS-Fuzz on trouve divers problèmes : débordement de tampon, les vulnérabilités UAF (qui se réfère spécifiquement à la tentative d'accéder à la mémoire après qu'elle a été libérée), les débordements de la pile et les fuites de données, les bogues, etc..Google Fuzz a permis de signaler 300 pannes de type timeout et hors mémoire parmi lesquels 75 % ont déjà été réparées. Dans le billet de blog les chercheurs en sécuritéde Goog

le commentent que « tous les projets ne les traitent pas[les découvertes de OSS-Fuzz]commedes bogues, mais les corriger permet à OSS-Fuzz de trouver des bogues plus intéressants ».

OSS-Fuzz

Un processus d’amélioration continue et des récompenses

Une grande force du projet OSS-Fuzz réside dans l’automatisation des tests, ce qui signifie que les équipes peuvent repérer très rapidement (en quelques heures) les régressions intégrées dans un dépôt en amont de la distribution. Ainsi l’impact potentiel d’une faille est minimisé pour l’utilisateur final.

Google veut promouvoir l’adoption du fuzzing comme outil d’amélioration continue de la sécurité des logiciels open source. Dès lors, le programme de récompense pour les professionnels de l’informatique édifié par la firme a été étendu pour inclure les utilisateurs d’OSS-Fuzz. Les récompenses peuvent s’élever à 20 000 $. Les projets admissibles doivent disposer d’un socle utilisateur de grande taille et d’une infrastructure informatique globale. Une particularité non négligeable de ce programme de récompenses : si les vendeurs et le personnel choisissent de faire don de leur récompense à un organisme de bienfaisance, le montant de cette dernière est doublé.

Source : opensource.googleblog.com

Actualités