MISC Hors-série N°
Numéro
24

Reverse engineering : apprenez à analyser des binaires

Temporalité
Septembre/Octobre 2021
Image v3
Reverse engineering : apprenez à analyser des binaires
Article mis en avant

Résumé

Bienvenue dans ce dossier consacré au reverse engineering, et plus globalement, à l'analyse de fichiers. Dans le monde pas toujours très accueillant et néanmoins excitant de la cybersécurité, il est un domaine qui est regardé par beaucoup comme un sommet inaccessible : le reverse engineering. Grosso modo, il s'agit, à partir d'un produit fini, de retrouver ses ingrédients. Prenez un Big Mac, et recherchez ce qu'ils mettent dans la sauce, le pain, la salade et le steak, et comment tout cuire et superposer. Pour analyser un produit fini (programme ou hardware), un peu d'astuce, d'espièglerie, c'est la vie du reverser. Il doit avoir un appétit insatiable, une curiosité toujours en éveil, et être prêt à sauter vers de nouvelles saveurs.

Dans ce numéro...


Public chéri mon amour, me revoilà !! Après m'être occupé de 77 numéros et quelques hors séries, avoir fait ma propre nécrologie [1], et comme le formol n'est pas mon kif malgré mon âge canonique, hop, hop, je reviens. Telles ces vieilles gloires déchues qui font des tournées sur des paquebots pour un public centenaire, me revoilà, avec un public rajeuni.
Entretien avec Alexandre Gazet, ingénieur sécurité et reverse engineer dans l'industrie aérospatiale.
« Practical Reverse Engineering » est né de la passion et de la volonté de Bruce Dang (@brucedang), alors jedi in training au sein du Microsoft Security Response Center (MSRC). Il en est l’architecte et la force motrice. À l’invitation de Fred (pappy), plus qu’une critique, voici une brève rétrospective, 10 ans après, de l'aventure qu'a représenté ce livre pour nous.
Dans une étude menée entre 2019 et 2020, Veracode rapporte que 76% des 132465 applications analysées comportaient au moins une vulnérabilité et que 24% avaient au moins une vulnérabilité critique. Comment aider les développeurs à prendre en compte la sécurité au sein de leurs tâches quotidiennes ?
On trouve des compilateurs partout : quand on construit des programmes, bien sûr, mais aussi quand on visite la page web des Éditions Diamond — elle embarque du JavaScript, qui est probablement compilé à la volée par un composant de votre navigateur. Quand on utilise un Notebook Jupyter pour du calcul scientifique — ne serait-ce que pour la compilation en bytecode du source Python. Quand on installe un APK pour ART, celui-ci est transformé en code natif depuis son bytecode Dalvik… encore de la compilation. Et nous allons voir que le domaine de la compilation peut aussi très largement intéresser celui de la sécurité informatique et du reverse engineering.
L'analyse d'un binaire, que ce soit un malware, une protection, un binaire inconnu, repose quasiment toujours sur les mêmes approches : analyse statique, dynamique et parfois instrumentation. Dans cet article, nous présentons la démarche et les outils habituels.
Nous vous proposons un aperçu de la rétro-ingénierie matérielle, principalement à un niveau « amateur éclairé » avec un matériel de hobbyiste accessible, ainsi que les références utiles pour approfondir les domaines couverts.
Analyser des binaires est une tâche souvent répétitive, voyons comment capitaliser sur les analyses passées et automatiser les analyses futures.
Du point de vue de la sécurité, l'étude d'un objet connecté passe par différentes étapes allant de la récupération du firmware à l'identification de l'architecture du processeur. Cet article est un retour d'expérience sur l'analyse de la carte SD FlashAir qui a débuté en 2015. Il détaille une méthodologie typique visant à comprendre le fonctionnement d'un objet connecté inconnu afin d'y exécuter du code.
Objet de fantasmes et de débats souvent houleux ou moqueurs, naviguant entre mythes et réalités, l'attribution cyber perd peu à peu son image sulfureuse. Fille naturelle de la Threat Intelligence et du DFIR, de bonnes fées se penchent enfin sur son berceau pour lui donner ses lettres de noblesse.
Nous sommes en 2021, et les documents malveillants (aussi appelés « maldocs ») sont toujours d'actualité, depuis la fin des années 90 avec les macro-virus VBA comme Melissa, et surtout depuis leur grand retour vers 2014. En 2020, on a même vu ressurgir de l'oubli les macros Excel 4 qui datent de... 1992 ! Aujourd'hui, les maldocs sont utilisés comme vecteur d'attaque initial pour de nombreuses familles de malware comme Hancitor, ZLoader, Emotet, Qakbot ou encore des groupes comme Sofacy/APT28. Dans cet article, nous allons voir comment analyser différents types de documents malveillants à l'aide d'outils libres : oletools, msoffcrypto-tool, ViperMonkey et XLMMacroDeobfuscator.

Magazines précédents

Les derniers articles Premiums

Les derniers articles Premium

Du graphisme dans un terminal ? Oui, avec sixel

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

On le voit de plus en plus, les outils en ligne de commandes s'étoffent peu à peu d'éléments graphiques sous la forme d'émojis UTF8. Plus qu'une simple décoration, cette pointe de « graphisme » dans un monde de texte apporte réellement un plus en termes d'expérience utilisateur et véhicule, de façon condensée, des informations utiles. Pour autant, cette façon de sortir du cadre purement textuel d'un terminal n'est en rien une nouveauté. Pour preuve, fin des années 80 DEC introduisait le VT340 supportant des graphismes en couleurs, et cette compatibilité existe toujours...

Game & Watch : utilisons judicieusement la mémoire

Magazine
Marque
Contenu Premium
Spécialité(s)
Résumé

Au terme de l'article précédent [1] concernant la transformation de la console Nintendo Game & Watch en plateforme de développement, nous nous sommes heurtés à un problème : les 128 Ko de flash intégrés au microcontrôleur STM32 sont une ressource précieuse, car en quantité réduite. Mais heureusement pour nous, le STM32H7B0 dispose d'une mémoire vive de taille conséquente (~ 1,2 Mo) et se trouve être connecté à une flash externe QSPI offrant autant d'espace. Pour pouvoir développer des codes plus étoffés, nous devons apprendre à utiliser ces deux ressources.

Body