Conférence francophone sur le thème de la sécurité de
l'information.
Elle a eu lieu
à Rennes du 7 au 9 juin 2017.
L'Active Directory n'a cessé, depuis son introduction en 1999, de gagner en importance au sein des systèmes d'information. Avec ce rôle central, la sécurité de l'Active Directory est devenue un élément crucial et les pratiques d'administrations ont dû évoluer. Pour cela, Microsoft propose plusieurs solutions techniques dont les dernières permettent de restreindre et de contrôler très finement les autorisations d'authentification des utilisateurs et de restreindre la dissémination des secrets d'authentification.
Cette présentation se propose d'étudier ces nouveaux mécanismes de protection - les revendications (utilisateur, périphérique et ressource), le blindage Kerberos (Kerberos Armoring), l'authentification composée (Compound Authentication), les stratégies d'authentification et les silos d'authentification - ainsi que leur mise en oeuvre.
Les processus de mises à jour des postes et serveurs d'un parc informatique font partie intégrante de la sécurisation des systèmes d'exploitation et des applications. WSUS est ainsi la réponse de Microsoft à la gestion de ce processus en environnement Windows. Ce service permet d'installer sur tous les postes Windows d'un réseau les mises à jour nécessaires. Son altération serait critique puisqu'elle permettrait d'installer des applications non contrôlées sur certaines cibles, notamment celles ayant de forts pouvoirs sur le réseau, tels que les contrôleurs de domaine. La présentation reviendra sur les différentes architectures mises en place dans les réseaux d'entreprise et permettra d'expliquer le fonctionnement du service WSUS. Ces constats vont permettre d'une part d'établir de nouveaux scénarios d'attaque qui, en cas de prise de contrôle du serveur hébergeant WSUS, vont permettre de propager l'intrusion à l'ensemble du réseau, voire à d'autres réseaux, et d'autre part de développer une méthodologie d'audit permettant d'obtenir un aperçu de l'état des mises à jour du parc Windows.
Cet article présente trois mécanismes de sécurité du noyau Linux et détaille ensuite leur mise en action à l’aide des fonctionnalités proposées par systemd. Plusieurs cas pratiques sont alors étudiés pour valider l’efficacité de ces protections face à trois vulnérabilités majeures.
Landlock est un nouveau module de sécurité Linux (LSM) qui a vocation à être disponible pour tous les utilisateurs. Ce mécanisme, inspiré de seccomp-bpf, apporte un contrôle d'accès adapté pour faire du sandboxing, c'est-à-dire permettre à un processus de se restreindre à un sous-ensemble d'accès strictement nécessaire. De manière similaire à XNU Sandbox (iOS, macOS), Capsicum (FreeBSD) ou encore Pledge (OpenBSD), Landlock permet de créer des logiciels durcis en prévention de potentielles vulnérabilités. De plus, les fonctionnalités offertes par ce LSM permettent à des utilisateurs non privilégiés de limiter l'impact de nuisance de processus malveillants. Notre approche se veut simple d'utilisation mais également flexible pour convenir à de multiples cas d'usage. Un travail est en cours pour intégrer Landlock dans la version de référence de Linux : https://www.mail-archive.com/netdev@v.../msg160516.html
Cette présentation permettra de donner un aperçu des mécanismes utilisés par Landlock, de son fonctionnement et de son utilisation. Des fonctionnalités de contrôle d'accès au système de fichiers seront exposées ainsi qu'un exemple concret d'utilisation.
This paper presents a methodology which combines static analysis and runtime assertion checking in order to automatically generate counter-measures, and execute them whenever a flaw in the code which may compromise the security of an application is detected during execution. Static analysis pinpoints alarms that must be converted into runtime checks. Therefore the verifier is able to only monitor the security critical points of the application. This method allows to strengthen a security-critical source code in a cost-effective manner. We implemented it in the Frama-C framework and experimented it on a real use case based on Apache web server. The paper ends with preliminary considerations on potential perspectives for security evaluation and certification.
Frama-C platform and its plug-ins can be found here: https://frama-c.com/download.html
We present BinCAT, a new open source static analyzer of x86 binary code. It currently implements control flow graph reconstruction, value analysis, taint analysis at the bit level and type reconstruction. Analyses can be led either in forward or backward mode.
We expect this tool to be more useful than existing ones as it is (i) extensible in terms of analysis capabilities and supported architectures; (ii) scriptable and (iii) fully integrated into IDA.
La virtualisation est une technique de protection binaire qui consiste à transformer un bytecode original vers un nouveau jeu d’instructions (ISA - Instruction Set Architecture) propriétaire. Cette nouvelle ISA est ensuite interprétée par une machine virtuelle (embarquée dans le binaire) afin de simuler le comportement d’origine. Cette protection a pour but de cacher le code binaire d’origine ainsi que son control flow graph (CFG), ce qui implique de devoir comprendre (reverser), en premier lieu, la machine virtuelle avant de pouvoir reverser le programme ciblé. Nous proposons une méthode permettant de dévirtualiser une fonction (ou un ensemble de fonctions) de façon automatique (et peut-être générique) en s’appuyant sur les concepts de base de l’analyse par teinte, l’exécution symbolique, la décompilation vers LLVM puis la recompilation. Nous illustrons ensuite nos résultats sur 25 virtualisations différentes basées sur la protection Tigress ainsi que leurs challenges. Nous expliquons également dans quels cas cette méthode fonctionne ainsi que ses limitations.
Despite being known since a long time, memory violations are still a very important cause of security problems in low-level programming languages containing data parsers.
We address this problem by proposing a pragmatic solution to fix not only bugs, but classes of bugs. First, using a fast and safe language such as Rust, and then using a parser combinator.
We discuss the advantages and difficulties of this solution, and we present two cases of how to implement safe parsers and insert them in large C projects. The implementation is provided as a set of parsers and projects in the Rust language.
PDF est un format de document largement utilisé, complexe, et exploité pour la diffusion de logiciel malveillant. Il semble donc pertinent de l’étudier. Pour compléter la panoplie d’outils existants, nous présentons caradoc, une boîte à outils pour disséquer des fichiers PDF de manière robuste et fiable. L’apport de caradoc est d’insister sur les aspects bas-niveau de la dissection (parsing), là où de nombreux outils partent généralement d’une structure déjà interprétée pour leur analyse. Or l’étape d’interprétation des structures bas-niveau est connue pour être complexe et pour introduire de la confusion dans les lecteurs PDF. Un article scientifique présentant notre démarche a été publié au troisième workshop LangSec en 2016. L’outil est disponible sur GitHub ainsi que sous la forme d’un paquet Debian.
Rumps
Les hyperviseurs occupent désormais une place importante au sein de la plupart des infrastructures. Il est donc important de s'assurer de la robustesse de ces logiciels.
CrashOS a été développé dans ce but. Il propose un moyen de rechercher des vulnérabilités dans les hyperviseurs. C'est un système d'exploitation minimaliste présentant l'avantage d'être entièrement configurable, permettant ainsi d'implémenter simplement des attaques logicielles à très bas niveau. Cet outil est opensource.
À l'heure actuelle, CrashOS a pu être utilisé pour éprouver principalement 2 solutions de virtualisation, l’une développée en interne sous forme d'outil d'expérimentation (Ramooflax), l’autre déployée à grande échelle (VMware). Dans la plupart des cas d'attaques, les logiciels étudiés se sont montrés robustes aux tests réalisés, que ce soit au niveau de la virtualisation du processeur, de la mémoire, ou des autres périphériques. Néanmoins, certains tests ont conduit à un crash de la machine virtuelle. L’outil développé a commencé à montrer son efficacité en permettant de détecter certains dysfonctionnements des solutions de virtualisation étudiées.
Rogue peripherals are not reserved to elite attackers with physical access to the machine anymore: practical tools are regularly published and virtualization has led to widespread use of remote services provided by third-parties.
In this paper, we advocate for a new more systematic approach in analyzing PCIe device security. Related works comprise attacks, from proof of concepts to more systematic tools, and the IronHide fuzzing device. But to our knowledge, no formalization or methodical analysis has yet been published. To fill this gap in, we introduce ProTIP, a Prolog Tester of Information Flow in PCIe networks. This open-source tool implements a model comprising all PCIe components, the CPU, I/OMMU and system RAM. It uses the constraint solving ability of the Prolog engine to enumerate all possible transactions between components.
ProTIP naturally rediscovers all problems listed previously in the litterature, including the need for Access Control Services in switches and their limits. It also highlights two subtleties: firstly, a race condition enabling an attacker to arbitrarily answer read requests and secondly, that I/OMMUs base their access right check on an ID that can change. While the tool currently models specification conformant behaviors and rogue endpoints, it is meant to be extended, e.g. with potential specific defects of given hardware, to evaluate the severity of their security impact. Thus, we believe ProTIP can quite efficiently be combined with other tools such as IronHide.
- Since 2006, many papers have been devoted to the analysis of the security of the Hitag-2 algorithm in the context of vehicles access control. While this algorithm has proven to be a weak security function, it was suggested that it is still in use in the car industry. In a recent paper presented at Usenix 2016, new vulnerabilities regarding Remote Keyless Entry systems have been exposed. These findings have led to the remote lock/unlock of targeted vehicles with a fake key. The authors came up with a new cryptanalysis of the Hitag-2 algorithm adapted to the RKE context: they were able to design a fake key for accessing the car lock and unlock functions by capturing 4 to 8 RF packets.
- The contribution of this article is related to the analysis of published papers in order to qualify the threats of publicly disclosed vulnerabilities in a black-box context, as we didn’t have access to the related car Electronic Control Units and any related proprietary document. Due to the findings of some important discrepancies during the process of applying the approach proposed in the literature to our test vehicle, further scientific and technical efforts have shown to be necessary. The aim of this work is to provide additional details and proven results obtained during the replication of the recent academic papers methodology. As an additional and main outcome, a new and efficient way of attacking Hitag-2 RKE based systems is proposed.
- Depuis 2006, plusieurs articles ont été consacrés à l'analyse de la sécurité de l'algorithme Hitag-2, notamment utilisé dans le contexte du contrôle d'accès aux fonctionnalités de véhicules (anti-démarrage, ouverture/fermeture). Bien que cet algorithme soit reconnu comme faible depuis longtemps, il semblerait qu'il soit encore utilisé dans l'industrie automobile. Dans un article récent paru à Usenix 2016, de nouvelles vulnérabilités concernant les systèmes de déverrouillage distant (RKE, pour Remote Keyless Entry) ont été exposées. Grâce à une nouvelle cryptanalyse de Hitag-2 adaptée au contexte RKE, les auteurs peuvent forger une fausse clé permettant de verrouiller/déverrouiller une voiture cible en capturant préalablement 4 à 8 trames radio.
- La présente étude s'inscrit dans le cadre de ces publications, afin de qualifier le niveau de menace des vulnérabilités publiques dans un contexte d'attaquant boîte noire (i.e. sans accès aux Electronic Control Units des voitures ou à des documents non publics). La découverte sur notre véhicule de test de certaines divergences avec l'état de l'art a nécessité un travail d'adaptation non négligeable que nous présentons dans cet article, avec notamment comme contribution la description d'une nouvelle attaque efficace contre les systèmes RKE basés sur l'algorithme Hitag-2.
Le matériel est souvent représenté comme une couche abstraite qui se comporte de manière correcte, exécutant des instructions et produisant un résultat. Cependant, le matériel peut ouvrir la voie à des vulnérabilités au niveau logiciel, en créant des effets de bords sur les calculs effectués, par des attaques par fautes ou attaques par canal auxiliaire. Bien que ces vulnérabilités soient présentes à très bas niveau, dans le matériel, elles sont également exploitables à très haut niveau, dans les navigateurs web.
Dans cette conférence, nous présenterons des attaques sur la micro-architecture - et en particulier sur le row buffer de la DRAM - et leurs applications sur les navigateurs web. Nous détaillerons également les techniques qui permettent de retrouver des timers haute résolution, sans passer par les APIs qui ont été éliminées des versions récentes des principaux navigateurs.
Binacle est une base de données écrite en Rust et conçue pour indexer le contenu entier de fichiers binaires. Les bases de données classiques permettent d’indexer les chaînes de caractères pour des recherches "full-text" mais pas directement les données binaires. Un des domaines où cette fonctionnalité s’avère utile est l’analyse de codes malveillants: l’analyste est souvent amené à se demander s’il existe d’autres codes qui contiennent une séquence d’octets observée dans un code. Plusieurs expérimentations avec des bases de données classiques ont montré la nécessité de développer une base spécialisée pour ce type d’indexation.
YaCo est un outil utilisable sous forme de plugin IDA permettant à ses utilisateurs de collaborer lors de l’analyse de binaire. Nous présenterons l'outil ainsi que les solutions techniques employées (intégration dans IDA, gestion des conflits, ...).
Sibyl a pour but de reconnaître des fonctions dans un binaire en « brute-forçant » leurs APIs et en comparant leurs effets de bord avec un ensemble de signatures.
Ainsi, et a contrario des outils d'analyses statiques, il n'est pas dépendant de la manière dont la fonction est implémentée, des optimisations compilateurs, de l'obscurcissement utilisé, ...
A bootloader bug in Samsung Galaxy smartphones allows an attacker with physical access to execute arbitrary code. Protections like OS lock screen and reactivation lock can be defeated. Several attacks are possible, including memory dump. Fortunately countermeasures exist for unpatched devices.
Le piratage du Comité national démocrate (DNC) et de la boîte e-mail du directeur de campagne d'Hillary Clinton a rapidement dépassé la simple actualité technique, posant de nombreuses questions au journaliste spécialisé dans la sécurité informatique.
Présentation du challenge et de sa solution par le gagnant du classement qualité.
Liste des rumps (avec liens vers les vidéos) :
- Rump (2/2) (Benjamin Morin)
- Note : le budget présenté est celui de 2016 avec 450 participants.
- Tracking the bad guys via un "favico" (Xavier)
- Sisyphe (GomoR)
- Internet of trash (Jean-Michel)
- Sécurité des télévisions connectées (Tristan)
- Scapy pipes (Phil)
- IDASuckLess (Eloi)
- BeeRumP (Eloi)
- Du PHP dans du PNG (Christophe)
- L'intelligence artificielle au service de la cybersécurité (Nicolas)
- Votre profil psychologique en fonction de votre mot de passe LinkedIN (Jiss)
- La vie et la survie des logiciels open source (Eric)
- Typons avec Miasm! (Serpi) :
- FreeOTP (Romain)
- SELinux vs. Analyse de code (Nicolas)
- http2.lol: active stack fingerprinting (Georges)
- nojail.py (Ivan)
- metasm ebpf (yo)
- USBWALL : Outil de filtrage et d'imputabilité des éléments USB dans un SI (Sylvain)
- Hello pdf (Guillaume)
- Des voitures incontrôlables ? (FlUxIuS)
- Sécurité des micros sans fil (Pierre-Michel)
PacketWeaver (pw) est un outil d’organisation de scripts de tests réseau. Il permet d’écrire, lors d’audits ou de travaux de recherches, des tâches relativement complexes de façon aisée grâce à un ensemble de bibliothèques et d’outils déjà intégrés. Son cadre de développement uniforme et son interface en ligne de commande donnent au développeur tous les outils afin de rendre son code, dès la première ligne, plus lisible et réutilisable.
Cet outil sert, face à un binaire inconnu, à reconnaître grossièrement quelle est l'architecture présente (le type de microprocesseur) et à quel endroit se trouve le code exécutable. L'approche est statistique, afin de pouvoir facilement prendre en compte de nombreuses architectures, en particulier sans avoir besoin de comprendre les architectures exotiques.
L'outil est disponible sur github. Il est fourni avec un corpus par défaut qui contient de quoi reconnaître plus de 70 architectures.
Les systèmes de détection d’intrusion, reposant traditionnellement sur des signatures, n’ont pas échappé à l’attrait récent des techniques de Machine Learning. Si les résultats présentés dans les articles de recherche académique sont souvent excellents, les experts en sécurité ont cependant encore de nombreuses réticences concernant l’utilisation du Machine Learning dans les systèmes de détection d’intrusion. Ils redoutent généralement une inadéquation de ces techniques aux contraintes opérationnelles, notamment à cause d’un niveau d’expertise requis important, ou d’un grand nombre de faux positifs.
Dans cet article, nous montrons que le Machine Learning peut être compatible avec les contraintes opérationnelles des systèmes de détection. Nous expliquons comment construire un modèle de détection et présentons de bonnes pratiques pour le valider avant sa mise en production. La méthodologie est illustrée par un cas d’étude sur la détection de fichiers PDF malveillants et nous proposons un outil libre, SecuML, pour la mettre en œuvre.
La détection d'intrusion réseau n'est pas un sujet mort. Deux des outils open source les plus populaires, Snort et Suricata, analysent le trafic réseau sous le prisme de signatures et alertent quand ils trouvent quelque chose. La source des attaques est habituellement définie comme étant la source du flux déclenchant l'alerte. Ce papier traite des conséquences de ce choix au niveau de l'automatisation de l'analyse et de la recherche des chaines de compromissions. Il expliquera comment améliorer les signatures d'IDS et quel en sont les bénéfices. Nous utiliserons Suricata pour montrer les gains de la nouvelle approche.
Transport Layer Security (TLS) 1.3 is almost here. The protocol that protects most of the Internet secure connections is getting the biggest ever revamp, and is losing a round-trip. We will explore differences between TLS 1.3 and previous versions in detail, focusing on the performance and security improvements of the new protocol as well as some of the challenges we face around securely implementing new features such as 0-RTT resumption. At Cloudflare we were the first to deploy TLS 1.3 on a wide scale, and we’ll be able to discuss the insights we gained while implementing and deploying this protocol.
VoLTE (Voice over LTE) is a technology implemented by many operators over the world. Unlike previous 2G/3G technologies, VoLTE offers the possibility to use the end-to-end IP network to handle voice communications. This technology uses VoIP (Voice over IP) standards over IMS (IP Multimedia Subsystem) network.
In this paper, we will first introduce the basics of VoLTE technology. We will then, demonstrate how to use an Android phone, to communicate with VoLTE networks and what normal VoLTE communications look like. Finally, we will describe different issues and implementations problems. We will present vulnerabilities, both passive and active, and attacks that can be done using VoLTE Android smartphones to attack subscribers and operators infrastructure.
Some of these vulnerabilities are new and not previously disclosed: they may allow an attacker to silently retrieve private pieces of information on targeted subscribers, such as their geolocation.
The commercial drone market has significantly taken off for a few years. In 2016, sales of drones used for commercial and enterprise purposes was worth 3.4 billion dollars. This fast-growing field raises many questions regarding security since damages caused by such drones could be disastrous. Knowing that in some cases, transmission range is so wide (7 kilometers for a DJI Phantom 4 Pro) and that some drones can lift off more than 30 kg (PD6B by Prodrone, https://www.prodrone.jp/en/) worth of equipment, we cannot deny that there will be (and already are) unexpected and unwanted uses of such a technology. In this article, we introduce DroneJack, an anti-drone solution that can protect an area from being flown over. DroneJack allows to automatically take over multiple foreign drones cutting across a defended area. Using DroneJack, you can either conduct a predefined defense over foreign drones as shutting them down, pilot them instead of the true user, direct them towards some GPS coordinates. You can also exploit data owned by the drone as recover photos, videos or flight logs. Even better, you can configure your own attacks on foreign drones and deployed them on DroneJack.
Let's play...
Il n'est pas coutume de parler de brosse à dents dans les conférences de sécurité. Celle dont nous allons parler est "connectée", et vous vous en doutez certainement pas très bien sécurisée.
Mais c'est une brosse à dents, est-ce vraiment important ?
En fait, oui, car il y a quelques répercussions imprévues... C'est ce que je me propose de vous expliquer lors de cette présentation, armée de ma brosse à dents.
Conférence de clôture