Codenomicon Products Roadmap - PowerPoint PPT Presentation

About This Presentation
Title:

Codenomicon Products Roadmap

Description:

Le Fuzzing s'int resse aux outils et aux vuln rabilit s logicielles ... Fuzzing par bloc : ajoutez le potentiel issu des blocs de donn es et des structures plus complexes. ... – PowerPoint PPT presentation

Number of Views:75
Avg rating:3.0/5.0
Slides: 41
Provided by: codenom
Learn more at: http://actes.sstic.org
Category:

less

Transcript and Presenter's Notes

Title: Codenomicon Products Roadmap


1
Fuzzing passé, présent et futurAri
Takanen, CTO, Codenomicon4 Juin 2009SSTIC,
Rennes, France
NOT!
2
Traduit par Jean-Philippe Gaulier (jpgaulier_at_point
-libre.org)
(corrections to attak_at_iki.fi)(or
ari.takanen_at_codenomicon.com)
3
Au sujet de Ari Takanen
  • Passé Chercheur et professeur
  • 1998-2002
  • Université d'Oulu, Finlande
  • Groupe de recherche OUSPG/PROTOS
  • Présent Entrepreneur et évangéliste
  • 2001-aujourd'hui
  • CTO de Codenomicon
  • 10 présentations de conférence, chaque année
  • Auteur de deux livres
  • VoIP sécurité
  • Le Fuzzing

4
Trois mots au sujet Codenomicon
  • Compagnie fondée en 2001, après cinq ans de
    recherche dans la sécurité de produits logiciels,
    à l'université d'Oulu (1996-2001)
  • Quelques références
  • NEMs (Cisco, Alcatel, ...)
  • La défense
  • Finances
  • Grands comptes
  • 95 de notre marché Produits de Fuzzing pour
    200 protocoles

5
Le Fuzzing sintéresse aux outils et aux
vulnérabilités logicielles
6
(No Transcript)
7
Vision de sécurité Fenêtre de la vulnérabilité
TIME
SW après la mise à disposition
Apparition de bogues Versionnage Bug
trouvé Vuln trouvée Vuln rapportée Vuln patche
disponible Patch versionné Avertissement
émis Patch installé
Exposition Zéro
SW durant lanalyse de vulnérabilité
Exposition Limitée
SW après le process danalyse de vuln
Exposition Publique
8
Point Clé ?
Parler des problèmes dans le logiciel n'est pas
le sujet de mon thème aujourdhui(Pas de
Zero-Days aujourdhui... Passez me voir après si
vous voulez en voir un)
9
Les Problèmes du Fuzzing
  • Mesures pour le fuzzing !!!
  • Sélection du bon outil pour réaliser les bonnes
    tâches
  • Comprendre quand utiliser le fuzzing
  • Déterminer ce que lon doit fuzzer
  • Expliquer lintérêt du fuzzing au management
  • Focaliser les ressources sur la recherche de
    nouveaux bogues plutôt que de chercher à
    exploiter quelques bogues mis en évidence
  • Motiver vos vendeurs à utiliser le fuzzing

10
Ce qui est testé - Les trois caractéristiques
1
3
2
11
Le Fuzzing Test de robustesse
Qu'est-ce que c'est ? Où est-il employé ?
12
Fuzzing - Définition originale
  • http//fr.wikipedia.org/wiki/Fuzzing
  • Le fuzzing est une technique pour tester des
    logiciels. L'idée est d'injecter des données
    aléatoires dans les entrées d'un programme. Si le
    programme échoue (par exemple en crashant ou en
    générant une erreur), alors il y a des défauts à
    corriger.

13
Fuzz par Barton Miller et al.
  • http//pages.cs.wisc.edu/bart/fuzz/fuzz.html
  • Le Fuzzing est une technique simple pour
    alimenter des entrées aléatoires dans les
    applications. Alors que le test aléatoire est une
    technique consacrée, notre approche est composée
    de trois caractéristiques qui, une fois prise
    ensembles, la rend quelque peu différente
    d'autres approches.
  • La différence principale entre le test aléatoire
    et le fuzzing est que ce dernier emploie des
    techniques de tests aléatoires pour trouver des
    problèmes de sécurité

14
Le Fuzzing original était aléatoire
  • L'entrée est aléatoire. Nous n'employons aucun
    modèle de comportement en fonction du programme,
    du type d'application ou de la description de
    système.. ...
  • Le but était d'examiner des centaines
    d'applications, chacune avec des millions de cas
    de test
  • Cependant, ils employaient un modèle !
    (Paramètres de la ligne de commande)

15
Exemple des paramètres dune commande
  • usage vim arguments file .. edit
    specified file(s)
  • or vim arguments - read text
    from stdin
  • or vim arguments -t tag edit file
    where tag is defined
  • or vim arguments -q errorfile edit file
    with first error
  • Arguments
  • -- Only file names after this
  • -v Vi mode (like "vi")
  • -e Ex mode (like "ex")
  • -s Silent (batch) mode (only for "ex")
  • -d Diff mode (like "vimdiff")
  • -y Easy mode (like "evim", modeless)
  • -R Readonly mode (like "view")
  • -Z Restricted mode (like "rvim")

16
Exemple dun modèle de protocole simple
17
Le verdict des essais était très simple
  • Notre critère de fiabilité est simple si
    l'application crash ou se gèle, on la considère
    comme ne passant pas l'essai, autrement c'est ok.
    Notez que l'application ne doit pas répondre
    d'une façon sensible à l'entrée, elle peut
    cependant se terminer silencieusement.
  • Il y avait très peu de surveillance de la cible
  • Cependant il y avait une surveillance des crashes.

18
Le Fuzzing était entièrement automatisé
  • En raison des deux premières caractéristiques,
    le fuzzing peut être automatisé à un degré élevé
    et des résultats peuvent être comparés à travers
    des applications, des logiciels d'exploitation,
    et des fournisseurs.
  • Génération automatisée de tests.
  • Exécution automatisée de tests.
  • Analyse automatisée des résultats des tests.

19
Résumé de ce qu'est le Fuzzing
  • Il y a toujours un modèle
  • Fichier gabarit,
  • PCAP,
  • Spécifications
  • Il y a toujours surveillance
  • Détection de fuite de mémoire,
  • Détection de la corruption de heap/stack,
  • Contrôles de logique d'affaires
  • Il y a toujours automatisation
  • La génération,
  • L'exécution,
  • L'analyse

20
Catégorisation des Fuzzers
(Mi chemin !)
21
L'évolution de l'automatisation des tests
From Olli-Pekka Puolitaival, VTT, 2008
22
Fuzzing Les approches de la nouvelle génération
  • Fuzzing vs. test de robustesse
  • Le fuzzing n'embarque pas d'aspect aléatoire
  • Deux techniques principales de Fuzzing
  • Mutation (non intelligent, modification
    semi-aléatoire)
  • Génération (intelligent, tests sur models ciblés)

23
Principaux axes de recherche de PROTOS
  • PROTOS s'est concentré sur l'application d'une
    modélisation plus intelligente sur les interfaces
    de test afin d'éliminer la nécessité de recourir
    aux tests aléatoires
  • Le langage initial de spécifications des
    interfaces était basée sur BNF, avant de migrer
    pour adopter ASN.1 et XML
  • Le framework de génération de tests est
    propriétaire, le projet libère seulement les
    logiciels de test de produits ou protocoles.
  • Note Les tests de DNS sont une exception.

24
Le Fuzzing par bloc
  • Explication simple les fuzzers par bloc
    traitent les protocoles de manière plate (vs
    structure arborescente de protocole)
  • Certains pensent que PROTOS est construit comme
    un fuzzer par bloc bien qu'il emploie une
    structure arborescente pour spécifier une
    interface de protocole
  • Le nom vient en fait de la méthode de génération,
    qui est basée sur des meta-data issus des
    morceaux de données
  • Ceci est une chaîne
  • Ceci est un entier
  • ...

25
Architecture et vue d'ensemble de Sulley
26
Utilisation de Sulley et exécution de tests
27
L'évolution du Fuzzing
  • Fuzzing par Mutation/Rejeu capture et rejeu
    améliorés par la compréhension du protocole,
    complexité de mutation, possibilités pour le
    proxy fuzzing.
  • Fuzzing Pre-généré/Scripté plus de cas de test,
    de cadres d'exécution, de parallélisme.
  • Fuzzing par bloc ajoutez le potentiel issu des
    blocs de données et des structures plus
    complexes.
  • Fuzzing par Model automatisation de la
    construction des modèles de protocole,
    automatisation de la nomalisation de la syntaxe
    et de la sémantique de protocole.

28
Métrique d'efficacité du Fuzzing
  • Comparaison entre les fuzzers basés sur la
    mutation et sur la génération (Charlie Miller,
    CanSecWest 2008)
  • Les meilleurs fuzzer ont une meilleure
    compréhension des protocoles
  • Les meilleurs fuzzers couvrent jusqu'à de 70 des
    bugs.
  • La combinaison de deux fuzzers permet de couvrir
    de 70-90 des bogues.
  • Résultats de PROTOS contre des cibles
    précédemment non-fuzzées (1998-2001)
  • 80 de produits testés présentent au moins une
    vulnérabilité distante, dans la plupart des tests
    100 des produits échoués.
  • Jusqu'à 50 des tests sont efficaces ! !
    Possibilité de crash de 50 !

29
Exemples de résultats d'essai
30
Résultats de Fuzz de 1990 et 1995
31
PROTOS Results
32
(No Transcript)
33
L'efficacité contre le WiFi
34
L'efficacité contre WiMAX BS
35
Qui emploie le fuzzing ?
36
Le fuzzing et les produits/logiciels de sécurité
  • Environ 50 de nos clients nappartiennent pas à
    des organisations dassurance qualité (lusage du
    fuzzing est quasiment similaire)
  • Developpeurs (tests unitaires, interopérabilité)
  • Organisations de sécurité (audits, pen tests)
  • Intégrateurs (tests dintégration, acceptabilité)
  • Equipe IT (acceptabilité, pen test)
  • Activité des groupes de sécurité produit/logiciel
    et support nécessaire pour tous les types de
    profile dusagers
  • Le fuzzing aide à la priorisation des bugs, tous
    les problèmes trouvés étant critiques et ouverts
    à lexploitation
  • Pas de faux positif
  • Le fuzzing est utilisé pour valider la qualité
    des composants open source et/ou out sourcés

37
Toutes les grandes compagnies utilisent le Fuzzing
  • Tous les groupes majeurs de sécurité utilisent le
    fuzzing
  • BSIMM 9 sur 9 interviewés
  • 40-60 des décisionnaires IT utilisent ou
    planifient lusage dici à un an
  • Forrester 2000 décisionnaires participants
  • Les compagnies majeures de logiciel lancent des
    initiatives et mentionnent le fuzzing dans leur
    discours de marketing

From http//www.google.com/googlebooks/chrome/
38
Check-list !
  • Métriques dans le fuzzing WORK IN PROGRESS
  • Sélection doutils Génération vs. Mutation
  • Où utiliser le fuzzing SDLC
  • Qui doit utiliser le fuzzing Testeurs !
  • Convaincre le management ROI, TCO
  • Plus de bugs non exploitables Maturité de
    lOrganization
  • Motivation des vendeurs Exigeances, Regulations

39
Le Buzz sur le Fuzzing En couverture
  • http//www.fuzz-test.com/book/
  • Takanen, DeMott et Miller Fuzzing for Software
    Security Testing and Quality Assurance
  • Vous navez pas besoin dêtre un spécialiste de
    la sécurité pour lire ce livre
  • Ecrit pour enseigner les bonnes approches à la
    prochaine génération de testeurs
  • Utilisateurs de logiciel
  • Ingénieur en sécurité
  • Academiciens

40
PROACTIVE SECURITY AND ROBUSTNESS SOLUTIONS
Merci QUESTIONS?
Frissonnez dexcitation à lévocation de la
chasse ! Traquez les bugs avec soin,
méthodologie et raison. Construisez leurs des
pièges. ....Testeurs!Cassez du logiciel (cest
votre devoir) et obtenez le graal- mais ne vous
amusez pas de la souffrance des
programmeurs. de Boris Beizer
Write a Comment
User Comments (0)
About PowerShow.com