Histoire d’une technique pour faire des trous d’épingles ou la difficile gestion d’un problème de sécurité. La découverte d’une attaque sur les pare-feu à état m’a amené à devoir gérer les problèmes de la correction et de la divulgation de la faille. Le but de cette présentation est de faire un retour sur l’expérience acquise dans la gestion d’une telle problématique.
Présentation de Sonar 2.0 et plus généralement de l'évolution du métier de développeur au JUG Genève. Bonne ambiance, bonne participation, bon feedback !
Les conteneurs sont partout, laptop, serveurs, cloud hosting, embarqué, edge computing, ils prennent littéralement le monde d'assaut ! Cette tempête s'accompagne d'un certain nombre de préoccupations cruciales, et l'une est la gestion de la sécurité.
Dans cette présentation, nous découvrir ensemble quelques bonnes pratiques en matière de sécurité, et une mise en œuvre avancée.
Nous découvrirons l'analyse comportementale ou comment détecter les activités indésirables / malveillantes, l'intégration d'un scanner de sécurité directement dans votre pipeline de CI/CD et le verrouillage des images Docker via un admission controller dans Kubernetes.
Que vous soyez un développeur, un responsable opérationnel ou technique, ce talk vous donnera des clés que vous pourrez appliquer directement dans vos projets de mise en place / migration d'infrastructure cloud.
Slides de l'université "Linux est ton meilleur ami." à Devoxx 2017.
Disponible en vidéo sur Youtube: https://www.youtube.com/watch?v=xqdWi6SblV8
(avec certains slides mieux rendus qu'après l'import de slideshare :D)
Présentation aux équipes VSCT de la Task Force que j'ai mis en place afin de résorber toutes les problématiques lié au portail E-Commerce Junior & Cie.
Présentation de Sonar 2.0 et plus généralement de l'évolution du métier de développeur au JUG Genève. Bonne ambiance, bonne participation, bon feedback !
Les conteneurs sont partout, laptop, serveurs, cloud hosting, embarqué, edge computing, ils prennent littéralement le monde d'assaut ! Cette tempête s'accompagne d'un certain nombre de préoccupations cruciales, et l'une est la gestion de la sécurité.
Dans cette présentation, nous découvrir ensemble quelques bonnes pratiques en matière de sécurité, et une mise en œuvre avancée.
Nous découvrirons l'analyse comportementale ou comment détecter les activités indésirables / malveillantes, l'intégration d'un scanner de sécurité directement dans votre pipeline de CI/CD et le verrouillage des images Docker via un admission controller dans Kubernetes.
Que vous soyez un développeur, un responsable opérationnel ou technique, ce talk vous donnera des clés que vous pourrez appliquer directement dans vos projets de mise en place / migration d'infrastructure cloud.
Slides de l'université "Linux est ton meilleur ami." à Devoxx 2017.
Disponible en vidéo sur Youtube: https://www.youtube.com/watch?v=xqdWi6SblV8
(avec certains slides mieux rendus qu'après l'import de slideshare :D)
Présentation aux équipes VSCT de la Task Force que j'ai mis en place afin de résorber toutes les problématiques lié au portail E-Commerce Junior & Cie.
Le best-of des campagnes digital marketing de marque du dernier trimestre 2011 organisé par l'EBG.
5 campagnes marketing web et mobile sur le thème suivant : "Les marques : gestionnaires de temps au service du plaisir des utilisateurs."
Camille Renier
Planneur Stratégique
camille.renier@valtech-agency.fr
Pascal Malotti
Directeur Pôle Conseil et Branding
pascal.malotti@valtech-agency.fr
Enquête exclusive de Harris Interactive "Nouveaux usages de consommation des Français et leurs conséquences sur les commerces de proximité".
Etude présentée lors de la Journée Nationale des Marchés de Gros de France 2013
Slides de la présentation de Sonar 2.0 sur les 7 péchés capitaux au GenevaJUG le 23 février 2010.
La sortie de la version 2.0 de la plateforme Open Source Sonar est l'occasion de revenir et d'échanger sur l'un des plus jeunes métier du monde: Développeur logiciel. Après de nombreuses générations d'autodidactes, de passionnés, qu'est qu'être développeur professionnel aujourd'hui, quels sont nos responsabilités et nos défis ?
Le principal héritage légué par un développeur et plus globalement par une équipe de développement est son code source. La principale qualité attendue d'un code source est est sa capacité à permettre d'accueillir le changement à moindre coût. Quels sont donc les critères d'évaluation de cette qualité du code source ?
Présentation faite par Freddy Mallet
www.sonarsource.com
www.genevajug.ch
Le best-of des campagnes digital marketing de marque du dernier trimestre 2011 organisé par l'EBG.
5 campagnes marketing web et mobile sur le thème suivant : "Les marques : gestionnaires de temps au service du plaisir des utilisateurs."
Camille Renier
Planneur Stratégique
camille.renier@valtech-agency.fr
Pascal Malotti
Directeur Pôle Conseil et Branding
pascal.malotti@valtech-agency.fr
Enquête exclusive de Harris Interactive "Nouveaux usages de consommation des Français et leurs conséquences sur les commerces de proximité".
Etude présentée lors de la Journée Nationale des Marchés de Gros de France 2013
Slides de la présentation de Sonar 2.0 sur les 7 péchés capitaux au GenevaJUG le 23 février 2010.
La sortie de la version 2.0 de la plateforme Open Source Sonar est l'occasion de revenir et d'échanger sur l'un des plus jeunes métier du monde: Développeur logiciel. Après de nombreuses générations d'autodidactes, de passionnés, qu'est qu'être développeur professionnel aujourd'hui, quels sont nos responsabilités et nos défis ?
Le principal héritage légué par un développeur et plus globalement par une équipe de développement est son code source. La principale qualité attendue d'un code source est est sa capacité à permettre d'accueillir le changement à moindre coût. Quels sont donc les critères d'évaluation de cette qualité du code source ?
Présentation faite par Freddy Mallet
www.sonarsource.com
www.genevajug.ch
Concevoir des piles logicielles entreprises et des applications java professionnelles en utilisant la puissance de l'inversion de contrôle avec nuun.io.
Les paquets snaps « les paquets d’applications linux universels, nouvelle g...Vincent JOBARD
Le paquet snap est un nouveau format de paquet d'applications pour système Linux, adapté autant à l'IoT au Serveur ou au Poste de travail, fonctionnant aussi bien sur Debian, Fedora ou Ubuntu (entre autres). Decouvrez ce nouveau format d'applications, sont fonctionnement et ses opportunités.
Sonar devant le Java User Group de LausanneFreddy Mallet
Voici les planches (comme dirait un bon ami québécois) de ma présentation d'hier soir au JUG de Lausanne. Merci aux collaborateurs d'Octo pour l'organisation de cette soirée !
Slides du meetup devops aix-marseille d'ocotbre 2023Frederic Leger
Pour ce mois d'octobre, nous vous avons préparé un programme que nous espérons incroyable :
- La sécurité Kube à tous les étages par Hervé Fontbonne, consultant Cloud et DevOps (Les Filles & Les Garçons de la Tech)
- Des superpouvoirs dans kube par Matthis Holleville, Principal Cloud Engineer (Agicap) et mainteneur du projet k8sgpt.ai
Ces présentations seront suivies d'un rapide jeu et du traditionnel apéro !
Merci encore une fois à FGTech de nous accueillir pour cet événement
1/ Retour d'expérience sur la mise en place d'une message queue pour SoCloz - http://www.socloz.fr.
- première phase : job queue, résolu par la mise en place de beanstalk
- deuxième phase : pub/sub.
Alternatives évaluées : NSQ (en complément de beanstalk) et RabbitMQ.
Adéquation fonctionnelle : léger avantage pour beanstalk (job), égalité (pub/sub)
Simplicité : avantage pour beanstalk/NSQ
Durabilité : avantage RabbitMQ
2/ Etat des lieux des solutions de message queue
Metasploit et Metasploitable2 : exploiter VSFTPD v2.3.4 Khalid EDAIG
exploiter VSFTPD v2.3.4 manuellement et avec Metasploit. Cet exploit VSFTPD
particulier est assez facile à exploiter et constitue un excellent premier départ sur la boîte Metasploitable 2.
Kernel Recipes 2019 - Driving the industry toward upstream firstAnne Nicolas
Wanting to avoid the Android experience, Google developers always aimed to make their Chrome OS Linux kernels as close to mainline as possible. However, when Chromebooks were first created, Google was left with no choice, the mainline kernel, in some subsystems, still did not have all the functionalities needed by Chromebooks. Hence, similarly to Android, Chrome OS had to develop their own out-of-tree code for the kernel and maintain that for a few different kernel versions.
Luckily, over the last few years a strong and consistent effort has been happening to bring Chromebook devices closer to mainline. It has led to significant improvements that now make it possible to run mainline on Chrome OS devices. And not only Chromebooks, as these significant strides are also improving Arm-based SOCs and other key components of the rich Chromebook hardware ecosystem. In this talk, we will look at how and why upstream support for Chromebooks improved, the current status of various models, and what we expect in the future.
Enric Balletbò i Serra
Kernel Recipes 2019 - No NMI? No Problem! – Implementing Arm64 Pseudo-NMIAnne Nicolas
As the name would suggest, a Non-Maskable Interrupt (NMI) is an interrupt-like feature that is unaffected by the disabling of classic interrupts. In Linux, NMIs are involved in some features such as performance event monitoring, hard-lockup detector, on demand state dumping, etc… Their potential to fire when least expected can fill the most seasoned kernel hackers with dread.
AArch64 (aka arm64 in the Linux tree) does not provide architected NMIs, a consequence being that features benefiting from NMIs see their use limited on AArch64. However, the Arm Generic Interrupt Controller (GIC) supports interrupt prioritization and masking, which, among other things, provides a way to control whether or not a set of interrupts can be signaled to a CPU.
This talk will cover how, using the GIC interrupt priorities, we provide a way to configure some interrupts to behave in an NMI-like manner on AArch64. We’ll discuss the implementation, some of the complications that ensued and also some of the benefits obtained from it.
Julien Thierry
Kernel Recipes 2019 - Hunting and fixing bugs all over the Linux kernelAnne Nicolas
At a rate of almost 9 changes per hour (24/7), the Linux kernel is definitely a scary beast. Bugs are introduced on a daily basis and, through the use of multiple code analyzers, *some* of them are detected and fixed before they hit mainline. Over the course of the last few years, Gustavo has been fixing such bugs and many different issues in every corner of the Linux kernel. Recently, he was in charge of leading the efforts to globally enable -Wimplicit-fallthrough; which appears by default in Linux v5.3. This presentation is a report on all the stuff Gustavo has found and fixed in the kernel with the support of the Core Infrastructure Initiative.
Gustavo A.R. Silva
Kernel Recipes 2019 - Metrics are moneyAnne Nicolas
In I.T. we all use all kinds of metrics. Operations teams rely heavily on these, especially when things go south. These metrics are sometimes overrated. Let’s dive into a few real life stories together.
Aurélien Rougemont
Kernel Recipes 2019 - Kernel documentation: past, present, and futureAnne Nicolas
The Linux kernel project includes a huge amount of documentation, but that information has seen little in the way of care over the
years. The amount of care has increased significantly recently, though, and things are improving quickly. Listen as the kernel’s documentation maintainer discusses the current state of the kernel’s docs, how we got here, where we’re trying to go, and how you can help.
Jonathan Corbet
Embedded Recipes 2019 - Knowing your ARM from your ARSE: wading through the t...Anne Nicolas
Modern SoC designs incorporate technologies from numerous vendors, each with their own inconsistent, confusing, undocumented and even contradictory terminology. The result is a mess of acronyms and product names which have a surprising impact on the ability to develop reusable, modular code thanks to the nature of the underlying IP being obscured.
This presentation will dive into some of the misnomers plaguing the Arm ecosystem, with the aim of explaining why things are like they are, how they fit together under the architectural umbrella and how you, as a developer, can decipher the baffling ingredients list of your next SoC design!
Will Deacon
Kernel Recipes 2019 - GNU poke, an extensible editor for structured binary dataAnne Nicolas
GNU poke is a new interactive editor for binary data. Not limited to editing basic ntities such as bits and bytes, it provides a full-fledged procedural, interactive programming language designed to describe data structures and to operate on them. Once a user has defined a structure for binary data (usually matching some file format) she can search, inspect, create, shuffle and modify abstract entities such as ELF relocations, MP3 tags, DWARF expressions, partition table entries, and so on, with primitives resembling simple editing of bits and bytes. The program comes with a library of already written descriptions (or “pickles” in poke parlance) for many binary formats.
GNU poke is useful in many domains. It is very well suited to aid in the development of programs that operate on binary files, such as assemblers and linkers. This was in fact the primary inspiration that brought me to write it: easily injecting flaws into ELF files in order to reproduce toolchain bugs. Also, due to its flexibility, poke is also very useful for reverse engineering, where the real structure of the data being edited is discovered by experiment, interactively. It is also good for the fast development of prototypes for programs like linkers, compressors or filters, and it provides a convenient foundation to write other utilities such as diff and patch tools for binary files.
This talk (unlike Gaul) is divided into four parts. First I will introduce the program and show what it does: from simple bits/bytes editing to user-defined structures. Then I will show some of the internals, and how poke is implemented. The third block will cover the way of using Poke to describe user data, which is to say the art of writing “pickles”. The presentation ends with a status of the project, a call for hackers, and a hint at future works.
Jose E. Marchesi
Kernel Recipes 2019 - Analyzing changes to the binary interface exposed by th...Anne Nicolas
Operating system distributors often face challenges that are somewhat different from that of upstream kernel developers. For instance, some kernel updates often need to stay at least binary compatible with modules that might be “out of tree” for some time.
In that context, being able to automatically detect and analyze changes to the binary interface exposed by the kernel to its module does have some noticeable value.
The Libabigail framework is capable of analyzing ELF binaries along with their accompanying debug info in the DWARF format, detect and report changes in types, functions, variables and ELF symbols. It has historically supported that for user space shared libraries and application so we worked to make it understand the Linux kernel
binaries.
In this presentation, we are going to present the current support of ABI analysis for Linux Kernel binaries, the challenges we face, how we address them and the plans we have for the future.
Dodji Seketeli, Jessica Yu, Matthias Männich
Embedded Recipes 2019 - Remote update adventures with RAUC, Yocto and BareboxAnne Nicolas
Different upgrade and update strategies exist when it comes to embedded Linux system. If at development time none of these strategies have been chosen, adding them afterwards can be tedious task.
Even harder it gets when the system is already deployed in the field and only accessible via a 3G connection.
This talk is a developer experience of putting in place exactly that. Giving a return of experience on one way of doing it on a system running Barebox and a Yocto-based distribution.
Patrick Boettcher
Embedded Recipes 2019 - Making embedded graphics less specialAnne Nicolas
Traditionally graphics drivers were one of the last hold-outs of proprietary software in an embedded Linux system. This situation is changing with open-source graphics drivers showing up for almost all of the graphics acceleration peripherals on the market right now. This talk will show how open-source graphics drivers are making embedded systems less special, as well as trying to provide an overview of the Linux graphics stack, de-mystifying what is often seen as black magic GPU stuff from outside observers.
Lucas Stach
Embedded Recipes 2019 - Linux on Open Source Hardware and Libre SiliconAnne Nicolas
This talk will explore Open Source Hardware projects relevant to Linux, including boards like BeagleBone, Olimex OLinuXino, Giant board and more. Looking at the benefits and challenges of designing Open Source Hardware for a Linux system, along with BeagleBoard.org’s experience of working with community, manufacturers, and distributors to create an Open Source Hardware platform. In closing also looking at the future, Libre Silicon like RISC-V designs, and where this might take Linux.
Drew Fustini
Embedded Recipes 2019 - From maintaining I2C to the big (embedded) pictureAnne Nicolas
The I2C subsystem is not the shiniest part of the Linux Kernel. For embedded devices, though, it is one of the many puzzle pieces which just have to work. Wolfram Sang has the experience of maintaining this subsystem for nearly 7 years now. This talk gives a short overview of how maintaining works in general and specifically in this subsystem. But mainly, it will highlight noteworthy points in the timeline and lessons learnt from that. It will present trends, not so much regarding I2C but more the Linux Kernel and the embedded ecosystem in general. And of course, there will be plenty of anecdotes and bits from behind the scenes for your entertainment.
Wolfram Sang
Embedded Recipes 2019 - Testing firmware the devops wayAnne Nicolas
ITRenew is selling recertified OCP servers under the Sesame brand, those servers come either with their original UEFI BIOS or with LinuxBoot. The LinuxBoot project is pushing the Linux kernel inside bios flash and using userland programs as bootloader.
To achieve quality on our software stack, as any project, we need to test it. Traditional BIOS are tested by hand, this is 2019 we need to do it automatically! We already presented the hardware setup behind the LinuxBoot CI, this talk will focus on the software.
We use u-root for our userland bootloader; this software is written in Go so we naturally choose to use Go for our testing too. We will present how we are using and extending the Go native test framework `go test` for testing embedded systems (serial console) and improving the report format for integration to a CI.
Julien Viard de Galbert
Embedded Recipes 2019 - Herd your socs become a matchmakerAnne Nicolas
About 60% of the Linux kernel source tree is devoted to drivers for a large variety of supported hardware components. Especially in the embedded world, the number of different SoC families, versions, and revisions, integrating a myriad of “IP cores”, keeps on growing.
In this presentation, Geert will explain how to match drivers against hardware, and how to support a wide variety of (dis)similar devices, without turning platform and driver code into an entangled bowl of spaghetti.tra
Starting with a brief history of driver matching in Linux, he will fast-forward to device-tree based matching. He will discuss ways to handle slight variations of the same hardware devices, and different SoC revisions, each with their own quirks and bugs. Finally, Geert will show best practices for evolving device drivers in a maintainable way, based on his experiences as an embedded Linux kernel developer and maintainer.
Geert Uytterhoeven
Embedded Recipes 2019 - LLVM / Clang integrationAnne Nicolas
Buildroot is a popular and easy to use embedded Linux build system. It generates, in few minutes, lightweight and customized Linux systems, including the cross-compilation toolchain, kernel and bootloader images, as well as a wide variety of userspace libraries and programs.
This talk is about the integration of LLVM/clang into Buildroot.
In 2018, Valentin Korenblit, supervised by Romain Naour, worked on this topic during his internship at Smile ECS. After a short introduction about llvm/clang and Buildroot, this talk will go through the numerous issues discovered while adding llvm/clang componants and how these issues were fixed. Romain will also detail the work in progress and the work to be done based on llvm/clang libraries (OpenCL, Compiler-rt, BCC. Chromium, ldd).
Romain Naour
Embedded Recipes 2019 - Introduction to JTAG debuggingAnne Nicolas
This talk introduces JTAG debugging capabilities, both for debugging hardware and software. Marek first explains what the JTAG stands for and explains the operation of the JTAG state machine. This is followed by an introduction to free software JTAG tools, OpenOCD and urJTAG. Marek shortly explains how to debug software using those tools and how that ties into the JTAG state machine. However, JTAG was designed for testing hardware. Marek explains what boundary scan testing (BST) is, what are BSDL files and their format, and practically demonstrates how to blink an LED using BST and only free software tools.
Marek Vasut
Embedded Recipes 2019 - Pipewire a new foundation for embedded multimediaAnne Nicolas
PipeWire is an open source project that aims to greatly improve audio and video handling under Linux. Utilising a fresh design, it bridges use cases that have been previously addressed by different tools – or not addressed at all -, providing ground for building complex, yet secure and efficient, multimedia systems.
In this talk, Julien is going to present the PipeWire project and the concepts that make up its design. In addition, he is going to give an update of the current and future work going on around PipeWire, both upstream and in Automotive Grade Linux, an early adopter that Julien is actively working on.
Julian Bouzas
Kernel Recipes 2019 - ftrace: Where modifying a running kernel all startedAnne Nicolas
Ftrace’s most powerful feature is the function tracer (and function graph tracer which is built from it). But to have this enabled on production systems, it had to have its overhead be negligible when disabled. As the function tracer uses gcc’s profiling mechanism, which adds a call to “mcount” (or more recently fentry, don’t worry if you don’t know what this is, it will all be explained) at the start of almost all functions, it had to do something about the overhead that causes. The solution was to turn those calls into “nops” (an instruction that the CPU simply ignores). But this was no easy feat. It took a lot to come up with a solution (and also turning a few network cards into bricks). This talk will explain the history of how ftrace came about implementing the function tracer, and brought with it the possibility of static branches and soon static calls!
Steven Rostedt
Kernel Recipes 2019 - Suricata and XDPAnne Nicolas
Suricata is a network threat detection engine using network packets capture to reconstruct the traffic till the application layer and find threats on the network using rules that define behavior to detect. This task is really CPU intensive and discarding non interesting traffic is a solution to enable a scaling of Suricata to 40gbps and other.
This talk will present the latest evolution of Suricata that knows uses eBPF and XDP to bypass traffic. Suricata 5.0 is supporting the hardware XDP to provide ypass with network card such as Netronome. It also takes advantage of pinned maps to get persistance of the bypassed flows. This talk will cover the different usage of XDP and eBPF in Suricata and shows how it impact performance and usability. If development time permit, the talk will also cover AF_XDP and the impact on this new capture method on Suricata.
Eric Leblond
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)Anne Nicolas
System memory configuration is a transparent operation nowadays, something that we all came to expect to just work out of the box. Still, it does happen behind the scenes every single time we boot our computers. This requires the cooperation of hardware components on the mainboard and on memory modules themselves, as well as firmware code to drive these. While it is possible to just let it happen, having a deeper understanding of how it works makes it possible to access valuable information from the operating system at run-time.
I will take you through the history of system memory configuration from the mid 70s to now. We will explore the different types of memory modules, how their configuration data is stored and how the firmware can access them. We will see which problems had to be solved along the way and how they were solved. Lastly we will see how Linux supports reading the memory configuration information and what you can do with that information.
Jean Delvare
Kernel Recipes 2019 - Marvels of Memory Auto-configuration (SPD)
Pinhole story
1. Histoire d’une technique pour faire des trous
d’épingles
ou
la difficile gestion d’un problème de sécurité
Éric Leblond
OISF
Kernel Recipes 2012
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 1 / 14
2. Eric Leblond (Regit)
Spécialiste de la sécurité des réseaux
Créateur du projet NuFW, co-fondateur de la société EdenWall
Auteur de coccigrep, un grep sémantique basé sur coccinelle
Développeur Netfilter :
Ulogd2: démon de journalisation de Netfilter
Contributions diverses:
Bibliothèques NFQUEUE et dépendances.
Travail sur le journalisation.
Actuellement :
Consultant indépendant en sécurité
Développeur financé de l’IDS/IPS Suricata
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 2 / 14
3. Une "nouvelle" technique d’attaque
Des couches OSI indépendantes
Les couches 2 et 3 sont traités indépendamment
Il est donc possible d’usurper une identité du niveau 3
En utilisant une couche 2 valide
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 3 / 14
4. Une "nouvelle" technique d’attaque
Des couches OSI indépendantes
Les couches 2 et 3 sont traités indépendamment
Il est donc possible d’usurper une identité du niveau 3
En utilisant une couche 2 valide
Une attaque locale
L’attaquant doit être connecté sur le même réseau Ethernet que le
pare-feu
Pas d’ouverture distante possible
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 3 / 14
5. Essai sur Netfilter
Video
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 4 / 14
6. Essai sur Netfilter
Video
Prenons un pare-feu avec une politique de filtrage autorisant
seulement le port 21 et ouvrons une connexion vers le port 22 du
serveur FTP.
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 4 / 14
7. Violation de la politique de sécurité
Nous sommes parvenus à
ouvrir une connexion sur le
port 22.
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 5 / 14
8. Violation de la politique de sécurité
Nous sommes parvenus à
ouvrir une connexion sur le
port 22.
Avec une politique de
filtrage ne le permettant
pas.
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 5 / 14
9. Violation de la politique de sécurité
Nous sommes parvenus à
ouvrir une connexion sur le
port 22.
Avec une politique de
filtrage ne le permettant
pas.
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 5 / 14
10. Violation de la politique de sécurité
Nous sommes parvenus à
ouvrir une connexion sur le
port 22.
Avec une politique de
filtrage ne le permettant
pas.
Tout doux, chaton, tout
doux!
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 5 / 14
11. Contre-mesures
L’anti-spoofing est suffisant pour bloquer l’attaque.
Reverse path filtering est notre ami:
Accepter seulement les paquet arrivant sur une interface si on a
une route vers cette source passant par cette interface.
Le noyau ne traitera alors pas le paquet d’attaque.
C’est si facile d’être protégé?
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 6 / 14
12. Contre-mesures
L’anti-spoofing est suffisant pour bloquer l’attaque.
Reverse path filtering est notre ami:
Accepter seulement les paquet arrivant sur une interface si on a
une route vers cette source passant par cette interface.
Le noyau ne traitera alors pas le paquet d’attaque.
C’est si facile d’être protégé? Oui
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 6 / 14
13. Contre-mesures
L’anti-spoofing est suffisant pour bloquer l’attaque.
Reverse path filtering est notre ami:
Accepter seulement les paquet arrivant sur une interface si on a
une route vers cette source passant par cette interface.
Le noyau ne traitera alors pas le paquet d’attaque.
C’est si facile d’être protégé? Oui
Mais il reste quelques surprises.
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 6 / 14
14. Protection de Netfilter
Il suffit d’utiliser la fonctionnalité rp_filter.
Elle est disponible depuis le siècle dernier dans tout les noyaux
Linux.
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 7 / 14
15. Protection de Netfilter
Il suffit d’utiliser la fonctionnalité rp_filter.
Elle est disponible depuis le siècle dernier dans tout les noyaux
Linux.
Désactivée par défaut.
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 7 / 14
16. Protection de Netfilter
Il suffit d’utiliser la fonctionnalité rp_filter.
Elle est disponible depuis le siècle dernier dans tout les noyaux
Linux.
Désactivée par défaut.
Une vérification de routage pour chaque paquet est trop couteuse
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 7 / 14
17. Protection de Netfilter
Il suffit d’utiliser la fonctionnalité rp_filter.
Elle est disponible depuis le siècle dernier dans tout les noyaux
Linux.
Désactivée par défaut.
Une vérification de routage pour chaque paquet est trop couteuse
Activée par tous les scripts de filtrage décents
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 7 / 14
18. Protection de Netfilter
Il suffit d’utiliser la fonctionnalité rp_filter.
Elle est disponible depuis le siècle dernier dans tout les noyaux
Linux.
Désactivée par défaut.
Une vérification de routage pour chaque paquet est trop couteuse
Activée par tous les scripts de filtrage décents
Pour l’activer:
echo " 1 " > / proc / sys / n e t / i p v 4 / c o n f / a l l / r p _ f i l t e r
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 7 / 14
19. Protection de Netfilter
Il suffit d’utiliser la fonctionnalité rp_filter.
Elle est disponible depuis le siècle dernier dans tout les noyaux
Linux.
Désactivée par défaut.
Une vérification de routage pour chaque paquet est trop couteuse
Activée par tous les scripts de filtrage décents
Pour l’activer:
echo " 1 " > / proc / sys / n e t / i p v 4 / c o n f / a l l / r p _ f i l t e r
Hummmmm
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 7 / 14
20. Protection de Netfilter
Il suffit d’utiliser la fonctionnalité rp_filter.
Elle est disponible depuis le siècle dernier dans tout les noyaux
Linux.
Désactivée par défaut.
Une vérification de routage pour chaque paquet est trop couteuse
Activée par tous les scripts de filtrage décents
Pour l’activer:
echo " 1 " > / proc / sys / n e t / i p v 4 / c o n f / a l l / r p _ f i l t e r
Hummmmm et pour IPv6 ?
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 7 / 14
21. Protection de Netfilter
Il suffit d’utiliser la fonctionnalité rp_filter.
Elle est disponible depuis le siècle dernier dans tout les noyaux
Linux.
Désactivée par défaut.
Une vérification de routage pour chaque paquet est trop couteuse
Activée par tous les scripts de filtrage décents
Pour l’activer:
echo " 1 " > / proc / sys / n e t / i p v 4 / c o n f / a l l / r p _ f i l t e r
Hummmmm et pour IPv6 ?
Trop facile, positionnons la valeur dans /proc:
echo " 1 " > / proc / sys / n e t / i p v 6 / c o n f / a l l / r p _ f i l t e r
/ proc / sys / n e t / i p v 6 / c o n f / a l l / r p _ f i l t e r : No such f i l e o r d i r e c t o r y
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 7 / 14
22. Protection de Netfilter
Il suffit d’utiliser la fonctionnalité rp_filter.
Elle est disponible depuis le siècle dernier dans tout les noyaux
Linux.
Désactivée par défaut.
Une vérification de routage pour chaque paquet est trop couteuse
Activée par tous les scripts de filtrage décents
Pour l’activer:
echo " 1 " > / proc / sys / n e t / i p v 4 / c o n f / a l l / r p _ f i l t e r
Hummmmm et pour IPv6 ?
Trop facile, positionnons la valeur dans /proc:
echo " 1 " > / proc / sys / n e t / i p v 6 / c o n f / a l l / r p _ f i l t e r
/ proc / sys / n e t / i p v 6 / c o n f / a l l / r p _ f i l t e r : No such f i l e o r d i r e c t o r y
Okay, Houston, we’ve had a problem here.
(Jack Swigert)
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 7 / 14
23. Phase 1 (mai 2011) : contacter les développeurs
Envoi d’un mail à des membres de la Coreteam de Netfilter
Ils reconnaissent le problème
Des règles de filtrage manuelles permettent de prévenir l’attaque
Nécessité de communiquer sur le sujet
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 8 / 14
24. Phase 2 (juin 2011)
Prévenir les développeurs de frontend
Les implémentations testées sont vulnérables en IPv6
Les développeurs sont très coopératifs
Prévenir les gens du noyau
La solution de protection manuelle est complexe à mettre en
oeuvre
Envoi d’un mail à security@kernel.org pour évoquer la nécessité
de rp_filter pour IPv6
Réponse d’un des principaux développeurs :
Security issues are just bugs, and we report bugs on the public
mailing list and try to fix them.
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 9 / 14
25. Phase 3 (juin 2011) : proposer un patch
Utilisation d’un code déjà proposé
Code déjà proposé en 2006 par Denis Semmau
Rebasé sur la branche net-next
Eric Dumazet me signale que la RFC sur le sujet n’est pas
respectée
Je modifie le patch en conséquence et resoumet
David Miller n’aime pas
Mauvais pour les performances
Ce type de sécurité doit être fait dans Netfilter
Les détails:
http://permalink.gmane.org/gmane.linux.network/197607
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 10 / 14
26. Phase 5 (juin 2011) : contacter les CERTs
Une attaque à prendre en compte
Nécessité de protection sur les frontends
Et sur les scripts maisons
Une coordination de haut niveau semble parfaite
Contacter de nombreux acteurs
Faire des annonces suffisamment publiques pour attirer l’attention
Les CERTs refusent de traiter
Le CERT français ne m’a même par répondu (malgré relance)
Le CERT US a refusé de traiter
Alors que l’attaque est générique et
Que des pare-feu comme Checkpoint sont impactés en
configuration par défaut
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 11 / 14
27. Phase 6 (aout 2011) : définition d’un plan d’action
Présentation de l’attaque au Netfilter Workshop
Présentation de l’étude sur les helpers
Description de l’attaque
Discussion ouverte sur les mesures à prendre
Plan d’action
Rédaction d’un document expliquant les contre-mesures:
https://home.regit.org/netfilter-en/
secure-use-of-helpers/
Assistance à Florian Westphal pour son implémentation
Ajout d’une option pour désactiver l’assignation automatique des
helpers
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 12 / 14
28. Phase 7 : divulgation
CansecWest (mars 2012)
Description détaillée de l’attaque
Annonce de la mise à disposition sur demande d’un outil de tests
Présentation au SSTIC (juin 2012)
Description détaillée de l’attaque
Mise à disposition publique de opensvp
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 13 / 14
29. Questions
Avez-vous des questions ?
Merci à
Pablo Neira, Patrick McHardy: les développeurs noyaux peuvent
être sympas.
Florian Westphal: pour son implémentation Netfilter de RP filter.
Plus d’information
Mon blog : https://home.regit.org
Secure use of Iptables and connection tracking helpers:
http://home.regit.org/netfilter-en/secure-use-of-helpers/
Me joindre
Courriel: eric@regit.org
Twitter: @Regiteric
Éric Leblond (OISF) Histoire d’une faille de sécurité Kernel Recipes 2012 14 / 14