Les articles de MISC Hors-Série N°9

Article mis en avant

Limites et mérites de l'évaluation des logiciels

Les militaires ont été les premiers à tenter « d'industrialiser » un processus permettant d'évaluer la sécurité des systèmes informatiques. Ces travaux ont été à l’origine en 1984 de la parution du « livre orange » dont l'impact sur ces sujets fut déterminant. D'autres travaux en ont découlé avec la parution en 1991 des ITSEC puis des Critères Communs. Ces approches « normalisées » de l'évaluation et de la certification sécuritaire imposant répétabilité et reproductibilité des analyses ont souvent été accueillies avec un certain scepticisme, voir un certain rejet de la part des « experts » informatiques pour qui l'expertise pure, avec toute la subjectivité qu'elle comporte, est la seule approche valable. En pratique, ces deux approches sont indissociables. C'est du moins ce que tente de démontrer l'article qui suit.

Toute personne s’intéressant à la sécurité informatique connaît les tests d’intrusion applicatifs (pentest) pour la recherche de failles. Quelques-uns connaissent la revue de code source orientée sécurité. En revanche, une très faible minorité veut en faire : lire du code toute la journée semble moins attractif que d’exploiter une injection SQL. Dans cet article, nous vous faisons découvrir (et aimer :) cette approche de la sécurité applicative.
Le fuzzing consiste à envoyer, de façon massive et automatisée, des données à un programme afin d'y identifier des vulnérabilités. Ce retour d'expérience devrait vous éviter quelques écueils et montrer comment des logiciels réputés peuvent succomber à cette technique peu coûteuse.
La recherche de vulnérabilités est généralement menée en plusieurs étapes : identifier des parties du code potentiellement dangereuses puis étudier la possibilité de les exploiter, par exemple pour corrompre la mémoire. Dans cet article, nous montrons comment des techniques d'analyse statique de code apportent une aide significative à ces étapes.
Le Return-Oriented Programming (ROP) est aujourd'hui une technique très fréquemment utilisée pour passer outre certaines protections présentes sur les systèmes d'exploitation. Dans cet article, nous présentons ces défenses, puis comment le ROP contribue à les contourner.
Vous êtes habitués aux articles rédigés par les gagnants du Pwn2Own chaque année ? Pourtant cela manque cruellement dans le Pwn2Own Mobile... Cet article a pour but de corriger le tir en vous proposant de redécouvrir la vulnérabilité utilisée par l'équipe de MWR Labs pour exploiter un Samsung Galaxy S3 au Pwn2Own 2012, puis de développer un exploit pour cette vulnérabilité.
Cet article est une présentation des différentes protections (mitigations) mises en œuvre dans les différents systèmes Windows, aussi bien en mode utilisateur qu’en mode noyau.
L'année 2013 a été une année assez « riche » en termes de découverte et d'exploitation de 0-day dans la nature en ce qui concerne la famille Java (1). Java Card fait tout aussi bien partie de cette famille. Néanmoins, son processus d'évaluation suit un tout autre chemin et les attaques découvertes jusqu'à maintenant n'en sont pas moins intéressantes.
Les bases de données en général, dont Oracle, sont installées au cœur des réseaux et interagissent avec un grand nombre de systèmes de l'entreprise. Le peu de protections dont elles bénéficient contraste avec la criticité des informations qu'elles possèdent. Si le risque souvent retenu se limite au vol d'informations, les possibilités de rebond sont tout de même réelles et peuvent même ouvrir la porte du système. Oracle offre en ce sens un grand nombre de possibilités.
À l'heure de l'Internet of Things, de la suspicion généralisée envers les codes fermés des matériels embarqués (en particulier ceux des routeurs) et de la démocratisation des outils de reverse engineering hardware, l'étude de firmwares est de plus en plus répandue. Dans cet article, nous verrons comment procéder à l'analyse du firmware de différents routeurs, depuis la recherche de vulnérabilités jusqu'à leur exploitation.