En ce jeudi matin, on arrive un peu en retard. Nos esprits ont été victimes d’une attaque de social engineering sur l’heure de début de la première conférence (merci Guillaume !).
« DreamBoot et UEFI » – Sébastien Kaczmarek (Quarkslab)
Les deux premières conférences tournent autour d’un sujet commun, l’UEFI. La première conférence nous présente « Dreamboot » ou comment contourner un certain nombre de protections présentes au sein de Microsoft Windows afin de compromettre le système d’exploitation.
Quelques explications plus tard, on arrive sur une démonstration assez parlante où l’orateur arrive à se connecter sur la session sans entrer de mot de passe, et arrive à lancer un invite de commande administrateur sans utiliser le moindre exploit durant l’exécution de l’OS.
« UEFI et bootkits PCI : le danger vient d’en bas » – Pierre Chifflier (ANSSI)
La seconde conférence descend un peu plus profond dans les mécanismes UEFI pour atteindre les couches hardware du poste de travail.
Une présentation rythmée autour de blagues et jeux de mots tels que « la route du ROM », « ils sont fous ces ROM, hein ? » s’enchaine de manière très fluide et captive l’audience. On apprend entre autres que les constructeurs de hardware n’ont pas vraiment compris l’intérêt des mémoires ROM (Read Only Memory) et permettent l’écriture dans ces puces.
La présentation s’achève sur une démonstration très animée, prouvant les capacités technique de l’orateur à créer un driver VGA nous assommant à coup de BAZINGA sur l’écran, démonstration allant jusqu’au patch à la volée du kernel Linux sans utiliser d’exploit sur l’OS en cours d’exécution.
« Programmation d’un noyau sécurisé en Ada » – Arnauld Michelizza (ANSSI)
On enchaine ensuite par une présentation qui vaudra par la suite quelques blagues des autres conférenciers au sujet de l’ADA. En effet, Arnaud Michelizza nous présente un PoC de noyau sécurisé réalisé entièrement en ADA.
Après un bref rappel des problèmes de sécurité liés au développement où ressort que près de 80% des bugs actuels sont liés à du mauvais développement, l’orateur nous énonce l’histoire de son projet.
Ayant déjà développé un kernel en C (Pépin), et partant du constat des problèmes liés aux pratiques non sécurisées du C, il a décidé de se lancer dans cette aventure en commençant par la recherche d’un langage « sécurisé ». Parmi les langages candidats, on trouvera des langages non maintenus (Algol60, PL/1, Modula2, SecureC), des langages inadaptés (Java, Haskell, OcamL) et finalement…. ADA.
Après avoir affronté le paradigme ADA et s’être affranchi de cette nouvelle façon de coder, il apparait avec un PoC de kernel fonctionnel, d’une dizaine de milliers de lignes de code. Le problème majeur réside dans le fait que les vérifications de sécurité imposent un overhead de 60% sur les cycles d’horloge, et un facteur 4 sur la taille du code généré. La désactivation des mécanismes de protection rendant le PoC inutile, la solution « Sparkle » s’avère être un compromis plutôt intéressant. En effet, en réduisant certaines vérifications et en application de l’analyse par preuve formelle en amont, l’overhead se réduit à une quinzaine de pourcent, et une réduction du même ordre sur le facteur taille du code.
Un problème technique nous fera attendre l’heure des rumps pour voir le noyau en fonction. Malgré le fait que cette présentation n’ait pas fait l’unanimité de l’audience, nous l’avons trouvé à titre personnel vraiment très intéressante.
« La couleur du net » – Laurent Chemla
Laurent Chemla aborde le sujet très largement controversé de la neutralité d’Internet. Il commence par rappeler les principales raisons mises en avant en vue de censurer certaines informations : atteinte au droit d’auteur, pédophilie, évasion fiscale… Il revient ensuite rapidement sur des exemples d’actualité, comme la possibilité des utilisateurs de Free de filtrer les publicités lorsqu’ils surfent.
L’exposé arrive très rapidement à la question suivante : faut-il ou non réguler Internet ? Il expose son avis : « l’objectif réel (conscient ou non) de ceux qui ne veulent pas de régulation spécifique n’est pas la pérennité d’Internet, mais de garantir qu’il continue de changer notre société (dans le bon sens). »
Le sujet de la neutralité se retrouve rapidement intimement lié à notre société et aux enjeux économiques. L’apparition d’Internet a considérablement changé la société. On assiste à une véritable suppression des intermédiaires (et donc des chaînes de valorisation associées) qui touche tous les domaines : économie, journalisme, commerce des biens matériels… En parallèle, les frontières se retrouvent amoindries, et la numérisation permet « l’abondance pour le plus grand nombre ou l’accumulation des richesses pour quelques-uns ».
Sa conclusion est claire : Internet n’a jamais été neutre et il ne le sera jamais. La neutralité n’est en réalité qu’une lutte contre les gens qui ont déjà le pouvoir (donc qui exploitent des filons rentables) et des gens qui n’avaient pas auparavant le moyen de s’exprimer, mais qui ont vu dans Internet le moyen d’ébranler les plus grands, et de partager la part du gâteau. Il ne s’agit dès lors plus de contrôler/réguler Internet, mais plutôt de maîtriser les changements provoqués sur la société.
Présentation courte : « Vulnérabilité Android Samsung » – Etienne Comet
La fin de matinée se termine et nous emmène au sein du système d’exploitation Android, de ses différents vecteurs d’attaques, et des spécificités apportées à Linux pour le support des fonctions mobiles.
On n’y apprend pas grand-chose de nouveau. Plus de 250 patchs sont apportés au noyau pour lui faire supporter les fonctionnalités mobiles. Certains constructeurs rajoutent eux même des patchs supplémentaires, augmentant ainsi potentiellement la surface d’attaque.
On enchaine ensuite sur la description de deux bugs identifiés qui ont plus ou moins mené à l’exploitation de vulnérabilités permettant potentiellement de prendre le contrôle de l’appareil.
La conclusion de cette présentation est que la sécurité Android, ce n’est pas encore ça. Ce à quoi je répondrai « Merci cap’tain obvious. »
Présentation courte : « Observatoire de la résilience de l’internet français » – Guillaume Valadon
La conférence aborde un sujet très intéressant. À quel point l’Internet français est-il résistant à des attaques ou à des pannes ?
Deux thématiques sont abordées : BGP et DNS. Des rappels trop longs sont faits sur le protocole BGP. Plus de la moitié du temps est consacrée à des rappels sur les AS, sur l’annonce de routes et sur le fonctionnement général du protocole. Il ne reste dès lors que peu de temps pour présenter la substantifique moelle et la vraie valeur ajoutée de cette étude. Des graphes sont présentés rapidement, notamment un graphe d’interconnexion des AS français.
Le conférencier conclut : concernant ces deux protocoles, la situation de l’Internet français est acceptable. Il donne toutefois des pistes qui devraient être prises pour l’avenir : déployer de l’IPv6, décentralisation des serveurs DNS, etc.
Présentation courte : « Compromission d’un environnement VoIP Cisco / Exploitation d’un call manager » – @Fransisco
Partant du fait que l’environnement VoIP Cisco est très largement déployé en entreprise, Fransisco s’est penché sur un élément central : le call manager. Après quelques rappels sur le fonctionnement d’une architecture de ce type, plusieurs vulnérabilités permettant une compromission complète des appliances ont été présentées.
Le bilan est éloquent. De nombreuses vulnérabilités critiques ont été identifiées et ne nécessitent pas de compétences techniques avancées (injection SQL, élévation de privilèges, exécution de commandes, etc.).
L’audience a cependant fortement regretté la démarche de « demi-full disclosure », aucune des failles identifiées n’ayant été remontée à Cisco. La question « pensez-vous le faire ? » à quant à elle eu le droit à une réponse inattendue : « euh, ce n’est pas prévu… ».
« Sécurité des applications Android constructeurs et réalisation de backdoors sans permission » – André Moulu
Au retour du repas, on assiste à une nouvelle conférence en rapport avec Android. Un sommaire plus complet que la précédente, avec en introduction, la sécurité Android ce n’est pas encore ça (une impression de déjà-vu ?)
Enchainant sur une comparaison entre les ROM customs et celles natives Android, on s’aperçoit que les constructeurs de téléphones n’hésitent pas à surcharger les firmwares de nombreuses applications que l’utilisateur ne peut pas supprimer. Une étude a dénombré plus de 250 applications sur un téléphone Samsung S2, contre un peu plus d’une centaine sur un Nexus 4.
La présentation s’enchaine vite, avec une escalade de privilèges représentée sur un graphe qui se remplit au fur et à mesure des slides. Le nombre de slides est trop important pour le temps imparti, donc on accélère et on néglige certains scénarios pour arriver à une compromission complète du device. Et ce, avec uniquement des applications ayant des privilèges « standards ».
Un entracte publicitaire pour une suite d’outils qu’il a développée autour d’Androguard nous amène à la conclusion suivante : l’amélioration de la sécurité des devices Android est une question en évolution permanente, et les solutions actuelles ne sont pas encore suffisamment performantes.
« Limites des tables Rainbow et comment les dépasser en utilisant des méthodes probabilistes optimisées » – Cedric Tissieres, Philippe Oechslin, Pierre Lestringant
La conférence débute avec des rappels sur les Rainbow Tables et s’intéresse aux limitations liées à la taille de ces tables, taille qui explose rapidement lorsque l’on augmente la taille des mots de passe pouvant être cassés.
Afin de casser des mots de passe toujours plus longs, deux méthodes probabilistes optimisées ont été appliquées :
- Représentation des mots de passe sous forme de patterns ;
- Utilisation du modèle de Markov.
Les phases d’apprentissage se basent sur des ensembles de mots de passe réels disponibles sur Internet (par ex. RockYou). Ces phases permettent de maximiser les chances de trouver des mots de passe « probable ».
Quelques facteurs de réduction sont donnés : division par 10000 de la taille d’une table, en passant de 99% à 95% de chance de trouver le mot de passe. Fait intéressant, les tables générées contiennent des mots de passe allant jusqu’à 12 caractères !
Rumps
Pour finir en beauté cette journée, on termine sur les fameux « Rumps » qui font la force du SSTIC. Dans le désordre, on trouvera une nouvelle apparition de Nicolas Ruff sur une appliance pas franchement sécurisée (mais cependant certifiée par l’ANSSI), un coup de gueulante de l’ANSSI contre les agissements de certains conférenciers passés un peu plus tôt dans la journée, une étude très intéressante sur les IP Black Holes sur Internet, etc.
On a également aussi pu assister à l’appel à contributions de quelques outils liés plus ou moins directement à la sécurité des SI tels qu’un outil d’analyse AD, un outil d’analyse des claviers virtuels bancaires (OCR Panda), l’interface graphique flambant neuve de Photorec, ou le désespoir d’un photographe reverseur ne pouvant pas assouvir son désir de corriger les photos RAW qui sortent de son appareil Panasonic.
Au final, un rump « anonyme » aura retenu l’attention de toute l’audience, suspendue aux lèvres de notre orateur masqué sous hélium. Il nous parlera de techniques théoriquement possibles pour gagner des accords-cadres en contournant les règles imposées par le S(uper)CAT (Service Centralisé des Achats Techniques)
Deux questions seront posées à la suite de cette présentation, « Aurez-vous assez d’hélium pour répondre à toutes les questions ? » et « Est-ce que ces techniques ont déjà été utilisées ? ». Question dont on n’aura pas la réponse…
Comme chaque année, la journée se termine par le fameux Social Event qui s’est déroulé à la Halle Martenot. Cette année pas de champagne, mais de la bière au dessert ! L’ambiance décontractée et détendue permet d’échanger et discuter avec les différents intervenants, ainsi que les participants. C’est ça aussi le charme du SSTIC !
Par Maxime le Metayer et Antoine David