IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Sécurité Discussion :

OpenBSD va embarquer une fonctionnalité permettant de disposer d'un noyau unique à chaque redémarrage système


Sujet :

Sécurité

  1. #1
    Chroniqueur Actualités

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2013
    Messages
    8 359
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Mars 2013
    Messages : 8 359
    Points : 195 972
    Points
    195 972
    Par défaut OpenBSD va embarquer une fonctionnalité permettant de disposer d'un noyau unique à chaque redémarrage système
    OpenBSD va embarquer une fonctionnalité permettant de disposer d'un noyau unique à chaque redémarrage système,
    KARL est déjà disponible dans les versions tests

    Une nouvelle fonctionnalité, qui a été ajoutée dans les snapshots de test du système d’exploitation Unix OpenBSD, va permettre de créer un noyau unique à chaque fois que l’utilisateur va redémarrer ou mettre à jour son ordinateur. Baptisée KARL (Kernel Address Randomized Link), elle fonctionne en reliant les fichiers internes du noyau dans un ordre aléatoire afin qu'il génère chaque fois un binaire unique du noyau.

    Rappelons qu’actuellement, pour les versions stables, le noyau OpenBSD utilise un ordre prédéfini pour lier et charger des fichiers internes à l'intérieur des binaires du noyau, ce qui a pour conséquence d’attribuer le même noyau à tous les utilisateurs.

    C’est Theo de Raadt, un ingénieur qui est le créateur et le chef des projets OpenBSD, OpenSSH, OpenNTPD et OpenBGPD, qui a expliqué la raison pour laquelle il a dû travailler sur une nouvelle fonctionnalité de randomisation du noyau pour le protéger : « La situation actuelle est que de nombreuses personnes installent un kernel binaire depuis OpenBSD et exécutent ce même binaire kernel pendant six mois, voire plus. Nous avons une randomisation substantielle pour les allocations de mémoire faites par le noyau, mais aussi pour les utilisateurs, bien sûr. Cependant, ce noyau est toujours dans la même mémoire physique et au même espace d'adresse virtuelle (on l'appelle KVA). »

    Il ne s’agit pas de ASLR

    Raadt rappelle qu’auparavant, le langage d'assemblage du noyau bootstrap / runtime locore.S était compilé et lié à tous les autres fichiers .c du noyau dans un mode déterministe : « Locore.o était toujours le premier, puis venaient les fichiers .c dans un ordre spécifié par notre utilitaire config (8) et certains fichiers auxiliaires. »

    « Dans le nouvel ordre, locore est divisé en deux fichiers : un morceau Bootstrap, qui est laissé au début. Le runtime du langage d'assemblage et tous les autres fichiers qui sont liés de manière aléatoire. Il y a d'autres pièces qu’il faudrait essayer afin d'améliorer le caractère aléatoire de la mise en page. Par conséquent, chaque nouveau noyau est unique. Les compensations relatives entre les fonctions et les données sont uniques », a-t-il assuré.

    En clair, KARL ne doit pas être confondu avec ASLR (Address Space Layout Randomization), une technique qui répartit de manière aléatoire l'adresse de la mémoire où le code de l'application est exécuté, de sorte que les exploits ne peuvent pas cibler une zone spécifique de mémoire où une application ou le noyau est connu pour s'exécuter.

    Au lieu de cela, KARL génère des binaires de noyau avec des structures internes aléatoires, de sorte que les exploits ne peuvent pas faire fuiter ou attaquer les fonctions, les pointeurs ou les objets internes du noyau.

    Les travaux sur cette fonctionnalité ont débuté en mai et ont d'abord fait l’objet d’une discussion à la mi-juin sur la liste de diffusion technique OpenBSD. KARL a récemment atterri dans des versions instantanées d'OpenBSD 6.1.

    « Nos systèmes immunitaires fonctionnent mieux lorsqu'ils sont uniques », a-t-il conclu.
    Pour Tiberiu C. Turbureanu, fondateur de la startup Technoethical qui vend des produits matériels axés sur la vie privée, cette fonctionnalité semble être unique à OpenBSD.

    « Elle n'est pas implémentée dans Linux », a-t-il déclaré. « Cela semble être une excellente idée », a-t-il ajouté, pour ce qui concerne la possibilité de porter cette fonctionnalité sur le noyau Linux.

    Au lieu de cela, le projet Linux vient d'ajouter une prise en charge de Kernel Address Space Layout Randomization (KASLR), une fonctionnalité qui porte ASLR sur le noyau lui-même, en chargeant le noyau à une adresse de mémoire aléatoire.

    Cette fonctionnalité a été activée par défaut dans Linux 4.12, publié la semaine dernière. La différence entre les deux est que KARL charge un binaire de noyau différent au même endroit, tandis que KASLR charge le même binaire dans des endroits aléatoires. En clair, ils ont le même but, mais empruntent des voies différentes.

    En ce qui concerne Windows, KARL n'est pas pris en charge, mais Microsoft a utilisé KASLR depuis de nombreuses années. Fabian Wosar, responsable technique chez l’éditeur de l'antivirus Emsisoft, est enthousiaste à l’idée d’ajouter KARL au noyau de Windows : « L'idée d'OpenBSD irait encore plus loin [que les protections actuelles du noyau de Windows], car tout le monde aurait un binaire unique du noyau », a-t-il expliqué.

    « Donc, même si vous aviez l'adresse où le noyau débute (qui est randomisée), vous ne pourriez pas l'utiliser pour déterminer où se trouvent certaines fonctions, car l'emplacement des fonctions par rapport au début du noyau sera différent d’un système à l’autre », a-t-il ajouté.

    Source : liste de diffusion OpenBSD

    Et vous ?

    Que pensez-vous de cette fonctionnalité ?
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Expert confirmé
    Avatar de TiranusKBX
    Homme Profil pro
    Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Inscrit en
    Avril 2013
    Messages
    1 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur C, C++, C#, Python, PHP, HTML, JS, Laravel, Vue.js
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 1 476
    Points : 4 805
    Points
    4 805
    Billets dans le blog
    6
    Par défaut
    Voila quelque chose d'intéressant, il et vrai qu'un mélange des 2 techniques serait un must mais je ne pense pas que cela se fasse sans difficultés
    Rien, je n'ai plus rien de pertinent à ajouter

  3. #3
    Expert éminent Avatar de marsupial
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2014
    Messages
    1 758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2014
    Messages : 1 758
    Points : 7 176
    Points
    7 176
    Par défaut
    Il serait effectivement intéressant que la thread linux y parvienne tout comme Microsoft.
    Repeat after me
    Le monsieur lutte pour la défense des libertés individuelles et collectives

    Repeat after me...

  4. #4
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Intéressant, reste à voir la granularité utilisé pour réordonner le binaire.

    Si le kernel est découpé en une dizaine de "morceaux" mis dans un ordre aléatoire, c'est beaucoup plus simple de passer outre que si il est découpé en 100k morceaux.

    Je me posais des questions sur le temps de boot, mais à priori ce n'est pas un problème
    On a fast machine it takes less than a second (pour link le kernel lors de la phase de boot).
    Quelque chose comme ça donne vraiment envi de bosser dans la sécurité: ça à l'air plutôt sympa d'essayer de trouver les morceaux qui restent statiques entre chaque reboot et comment ça peut être exploité.

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    585
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 585
    Points : 1 138
    Points
    1 138
    Par défaut
    Utilisable dans l'espoir de ne pas être tracé par les pubs ?
    L'avis publié ci-dessus est mien et ne reflète pas obligatoirement celui de mon entreprise.

  6. #6
    Membre chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Juillet 2007
    Messages : 884
    Points : 2 018
    Points
    2 018
    Par défaut
    les morceaux qui restent statiques entre chaque reboot et comment ça peut être exploité
    Je ne suis même pas certains que cela puisse être exploité par un attaquant. Parce qu'il me semble que le problème posé par un noyau aléatoire (ou chaque librairie est a une adresse aléatoire) c'est qu'en exploitant une faille d'un programme anodin, le pirate ne puisse pas corrompre tout le système. Explication même si un exploitant arrive par une faille a remonter dans la librairie "réseau" il ne puisse pas modifier l'adresse de boot (par décalage) ou la librairie "system (libc)". Il aura corrompu le réseau mais il en sera "prisonnier" puisqu'il ne saura pas ou aller... A moins peux t'être de trouver une parade (chercher une signature d'une autre librairie sur tout le système?) Le but d'une sécurité n'est pas de garantir la sécurité mais de compliquer la tâche des pirates, de les bloquer aussi bien que possible...
    Tout ce que j'écris est libre de droits (Licence CC0) et je vous incite à faire de même.

  7. #7
    ovh
    ovh est déconnecté
    Rédacteur
    Avatar de ovh
    Homme Profil pro
    Architecte devops web full stack
    Inscrit en
    Mai 2002
    Messages
    3 841
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte devops web full stack

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 841
    Points : 6 513
    Points
    6 513
    Par défaut
    C'est un peu ce que faisaient les virus polymorphes dans le temps non ? (et peut-être encore maintenant)

    Tutoriels sur les UPS, e-commerce, PHP, critiques de livres...

    Pensez à consulter les FAQs et les cours et tutoriels.
    FAQ Linux - Cours et tutoriels Linux - FAQ PHP - Cours et tutoriels PHP
    Ce forum est fait pour vous et surtout par vous, merci d'en respecter les règles.

    Je n'ai rien à voir avec la société www.ovh.com !

  8. #8
    Expert éminent Avatar de BufferBob
    Profil pro
    responsable R&D vidage de truites
    Inscrit en
    Novembre 2010
    Messages
    3 035
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : responsable R&D vidage de truites

    Informations forums :
    Inscription : Novembre 2010
    Messages : 3 035
    Points : 8 400
    Points
    8 400
    Par défaut
    Citation Envoyé par ovh Voir le message
    C'est un peu ce que faisaient les virus polymorphes dans le temps non ? (et peut-être encore maintenant)
    oui et non, pour autant que je sache le polymorphisme ça consistait plutot en une couche de chiffrement, avec uniquement la clé qui changeait (et donc quelques octets seulement de la routine de déchiffrement), ça ça se rapproche plus de ce qu'on appelait "métamorphe" en fait, même si dans les deux cas les termes sont abusifs

Discussions similaires

  1. Réponses: 4
    Dernier message: 30/09/2016, 21h15
  2. Embarquer une image dans le code
    Par hisy dans le forum Langage
    Réponses: 3
    Dernier message: 06/11/2006, 11h01
  3. Recherche une distribution permettant le boot reseau
    Par ToMs dans le forum Distributions
    Réponses: 1
    Dernier message: 11/09/2006, 01h26
  4. Ajout d'une valeur permettant un regroupement
    Par antony59 dans le forum SAP Crystal Reports
    Réponses: 8
    Dernier message: 27/07/2006, 17h02
  5. Réponses: 7
    Dernier message: 11/05/2006, 10h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo