C&ESAR 2021 - J1

C&ESAR 2021 - J1

Introduction par le Major Général des Armées

La cyber est une composante importante des missions du ministère des armées de par la diffusion constante des technologies numériques au sein du monde militaire. Le cyberespace est un domaine opérationnel transverse intégré des stratégies de menace hybride, mélangeant les théâtres traditionnels et les actions dans le domaine numérique. La révolution numérique à positionné la cyberdéfense en avant dans les priorités du ministère des armées.

L’efficacité des armées dépend de la qualité et de l’intégrité des informations transmises pour une prise de décision efficace. Il faut donc accompagner la numérisation en saisissant les opportunités offertes tout en gérant les vulnérabilités apportés par ces technologies. Cela se traduit par une augmentation des budgets et des ressources humaines.

Les armées renforcent leur présence dans la région Rennaise pour bénéficier de la dynamique « cyberdéfense » et d’un écosystème fort aussi bien au niveau académique qu’industriel.

Ouverture de la conférence par l’Ingénieur Général des Armées Lionel Morin

C&ESAR est un rendez-vous pour rassembler des ingénieurs, chercheurs, décideurs et fournisseurs du domaine de la sécurité des systèmes d’information. L’augmentation des ressources humaines implique de nombreux recrutement, notamment au sein de la DGA.

Keynote – William Lecat – Grand défi cyber

En 2019, l’état à créé une entité mixte public-privé en charge de l’innovation, avec un budget financier annuel à la DARPA. Avec chaque année des défis avec une enveloppe de 30 millions d’euros. C’est du jamais fait en France.

L’automatisation est au coeur de chaque grand défi cyber. La transformation des usages numériques font que tout est accessible de n’importe ou dans le monde. Du coup la cybersécurité, pour qu’elle passe à l’échelle et que le coût de la sécurité soit réduit afin de rendre cette dernièe accessible au plus grand nombre.

Le grand défi cyber s’est structuré autour de trois axes verticaux et deux axes transverses. Les réseaux dynamiques sont lié à la problématique de scalabilité des SI pour permettre leur passage à l’échelle. Les objets connectés sont peu sûrs et il faut aider les développeurs à ne pas faire d’erreurs au cours du dev, et rendre les objets connectés plus faciles à mettre à jour, et à re-initialiser en cas de compromission. Le 3ème axe porte sur la cybercriminalité et les petites structures. Ces dernières ont peu de budget voir pas du tout pour la sécurité, et aucune compétence dans le domaine. Les axes transverses sont d’un côté sur le financement des startups cyber en France, et l’autre sur la valorisation des données produites.

Le conseil de l’innovation à été renommé en CII, et la stratégie nationale cyber prend le relais du grand défi cyber au sein du plan d’investissement d’avenir. Les enjeux sont économiques, sociétaux, scientifiques et technologiques. Economique pour la conquête du marché européen par les entreprises françaises. Sociétal pour la protection des particuliers et petites structures. Scientifique & Technologique afin de rapprocher industrie et recherche.

Prosseco – protection contre les attaques matérielles

Prosseco est un ANR dont l’objectif est d’ajouter des contre-mesures contre les attaques par canaux cachés ou par injection de faute au niveau du code.

Ces contre-mesures peuvent aller du masquage à l’emploi de code polymorphique en passant par du contrôle de flot d’exécution. Par exemple on vient ajouter du bruit et compliquer la récupération des secrets par un canal caché.

Le problème c’est qu’en ajoutant du code de contre-mesure, il faut s’asssurer qu’elle survivent à la compilation. Lorsqu’on met en place de telles contre-mesures au niveau du langage assembleur il faut parfois casser certaines optimisations. Pour ce faire, les orateurs ont conçu une chaine de compilation spécifique, permettant au compilateur d’opérer sans faire sauter les protections.

Les protections sont insérées sous forme d’annotation au niveau du source, ou bien de transformations de code assembleur à insérer toutes les n instructions.

Une fois les protections tissées au sein du code (source ou assembleur), il faut s’assurer qu’elles sont bien fonctionnelles et effectives, tout en laissant le code performant. Pour ce faire, les auteurs ont utilisé des modèles de fuites, avec des résultats probants (plus d’informations dans les actes).

From source code to crash test-case through software testing automation

Chercher des bugs à partir d’outils automatique, c’est souvent un travail fastidieux de tri des alertes issus des outils d’analyse statique, ou bien des crash issus du fuzzing. Les orateurs ont sélectionné trois fuzzers travaillant à partir du source: AFL, Honggfuzz et AFL/QDBI. Pour la partie DSE ils ont choisi angr, manticore, klee et triton. Les outils sélectionnés ont été testés, chacun ayant ses spécificités, et étant « cablé » pour certaines typologies de bugs. Les DSE du fait de leur coût calculatoire passent difficilement à l’échelle par rapport aux approches de fuzzing instrumenté.

Pour automatiser des tests logiciels, il faut créer un harnais de test pour prendre le code source en entrée et le passer à des solutions d’analyse statique, ici Klockwork. Une fois l’analyse statique faite, on vient récupérer des informations telles que les tailles des buffers pour re-injecter cette information dans les phases des tests. Le source est ensuite compilé avec l’instrumentation pour que le fuzzing fasse son oeuvre. Le DSE et le Fuzzing sont orchestrés via un broker, et les informations découvertes d’un côté par le DSE sont renvoyé au Fuzzer, et inversement.

L’approche a été testé en utilisant une pile TCP/IP IoT à laquelle des vulnérabilités ont été ajoutés. Les auteurs ont trouvé au passage une CVE dans cette pile. La combinaison DSE / Fuzzing est loin d’être optimale, et il y a de nombreuses pistes d’optimisations. En effet, le DSE se retrouve vite saturé par les nombreux cas de tests intéressants générés par le fuzzer.