Journal Brad remet le couvert

Posté par (page perso) .
Tags : aucun
14
19
sept.
2009
Brad a décidé de faire parler de lui cette année :-) Il vient (le 16 septembre) d'écrire un exploit pour le noyau 2.6.31 tout chaud, à peine sorti du four (le 9 sept.). Il a d'abord posté des vidéos sur Youtube, puis (le 18 sept.) le code de son exploit :
* Linux 2.6.31 perf_counter 0day Local Root Exploit
* Linux 2.6.31 perf_counter x64 Local Root Exploit
* enlightenment.tgz : exploit ainsi qu'une boite à outils pour faciliter l'écriture d'exploits fiables

La faille se situe dans perf_counter, fonctionnalité introduite dans Linux 2.6.31. Elle n'impacte donc que cette version.

Malgré les corrections apportées à SELinux (ex: Security/SELinux: seperate lsm specific mmap_min_addr), cette exploit arrive à contourner SELinux.

Dernières histoires de Brad :
* La fin de Grsecurity ? (6 janvier 2009)
* Exploit local dans le noyau Linux 2.6.30 (18 juillet 2009)
* Une interview de Brad Spengler (24 juillet 2009)
* Encore un trou de sécurité, encore Brad qui s'amuse... (14 août 2009)

Sources : hup.hu, linux-magazine.com, googez.com.

PS : Au sujet de SELinux, la faille exploite un code spécifique pour les applications nécessitant de désactiver SELinux, telle que WINE.
  • # Correction de la faille

    Posté par (page perso) . Évalué à 7.

    Pour suivre les correctifs de la faille, voir le CVE qui lui a été assigné :
    http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-3234

    Il semble que la faille ait été corrigé le 15 septembre dans le dépôt git :
    http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6(...)
    • [^] # Re: Correction de la faille

      Posté par . Évalué à -4.

      J'ai du mal à cerner ce gars, il exploite un faille connue et joue le kéké ou c'est bien lui qui les découvre ces failles?

      En regardant la chronologie, j'ai l'impression qu'il ne les découvre pas.

      En tout cas chez moi :
      $ run_exploits.sh
      Compiling exp_cheddarbay.c...
      Compiling exp_powerglove.c...
      Compiling exp_therebel.c...
      Compiling exp_wunderbar.c...
      [+] Personality set to: PER_SVR4
      Pulseaudio is not suid root!

      Pour que la faille fonctionne, il faut que je soit root!

      $ rpm -qi kernel-desktop-latest-2.6.31-2mnb2
      Name : kernel-desktop-latest Relocations: (not relocatable)
      Version : 2.6.31 Vendor: Mandriva
      Release : 2mnb2 Build Date: mar. 15 sept. 2009 04:57:53 CEST
      Install Date: mar. 15 sept. 2009 17:49:02 CEST Build Host: n2.mandriva.com
      • [^] # Re: Correction de la faille

        Posté par . Évalué à 8.

        Il arrive que les exploit comportent des erreurs volontaires (faciles à corriger pour un dév noyau), de façon à éviter l'utilisation du programme par des script-kiddies.
      • [^] # Re: Correction de la faille

        Posté par . Évalué à 2.

        Ben on dirait que c'est toujours la même classe de bug qui est exploité : remaper la page 0 pour que le kernel execute du code dedans au lieu de partir en panic.
        Ca marchais bien au premier exploit, mais j'espère que depuis on a compris qu'il fallait mieux eviter que l'utilisateur puisse mapper cette page 0.
        Vu que les distrib on fait des changement (pulseaudio, kernel, ...), ben les exploits ne marche plus.


        PS : c'est meme pas brad qui a trouvé l'idée d'exploiter pulseaudio pour cette classe de bug : http://blog.cr0.org/2009/06/bypassing-linux-null-pointer.htm(...)
      • [^] # Re: Correction de la faille

        Posté par . Évalué à 8.

        Pulseaudio is not suid root!

        Pour que la faille fonctionne, il faut que je soit root!


        Non c'est comme le Port-salut.... , c'est pulseaudio qui doit etre suid root , ce n'est pas vraiment la même chose ...
  • # The LinuxFr Way

    Posté par . Évalué à 8.

    Microsoft renoue avec ses fondamentaux
    euh, non; c'est pas ça
  • # cette exploit arrive à contourner SELinux

    Posté par (page perso) . Évalué à 1.

    Encore une fois, il lance son exploit en contexte SELinux unconfined_t ce qui fait que SELinux est deja "desactivé" pour lui.
    Et la 2eme video, j'ai pas vu de trace de SELinux.

    Bon ok, a partir du moment où on passe en kernel land on fait ce qu'on veux.

    • [^] # Re: cette exploit arrive à contourner SELinux

      Posté par (page perso) . Évalué à 3.

      Tu peux expliquer pour les puceaux du SELinux? Est-ce que unconfined_t est un réglage particulier? Est-ce activé par défaut?
      • [^] # Re: cette exploit arrive à contourner SELinux

        Posté par (page perso) . Évalué à 2.

        Je ne suis absolument pas spécialiste SELinux mais il me semble que unconfined_t est un mode qui fait que SELinux n'est pas appliqué pour les application pour lesquelles il n'est pas configuré. C'est donc une sécurité assez mauvaise et c'est (c'était) le mode par défaut pour Fedora (entre autre) pour ne pas compliqué la vie de l'utilisateur avec SELinux qui lui empêcherait d'utiliser une application qui a un comportement particulier et qui n'est pas configuré.

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

        • [^] # Re: cette exploit arrive à contourner SELinux

          Posté par . Évalué à 3.

          pour expliquer un peu plus en profondeur : en gros les process tourne suivant certains types. Il y a httpd_t, daemon_t, user_t, sysadm_t, ...
          Ces types sont limités aux interactions qu'ils ont le droit de faire. Par exemple un processus "httpd_t" n'a pas le droit de modifier un fichier de /etc même si les permissions unix sur ce fichier le lui permette, etc...

          le type unconfined_t est un type qui n'a aucune restriction (d'où "selinux est désactivé pour ces process"). Il est utilisé à la base lorsqu'on migre à selinux et que donc tous les daemon/... n'as pas encore de politique de créée.

          Bien entendu c'est une "mauvaise" sécurité pour les programmes en unconfined_t, mais utiliser selinux avec unconfined_t permet d'avoir un système simple, tout en assurant la protection pour les daemons qui ont déjà des politiques de sécu (httpd, ...) .
        • [^] # Re: cette exploit arrive à contourner SELinux

          Posté par (page perso) . Évalué à 5.

          c'est (c'était) le mode par défaut pour Fedora (entre autre) pour ne pas compliqué la vie de l'utilisateur avec SELinux

          Ce qui démontre une fois de plus la stupidité de l'activation par défaut de SELINUX sous Fedora. C'est lourd, compliqué à administrer, et exagéré pour un utilisateur de bureau; d'autant que cet exemple démontre une fois de plus que ça ne sert à rien du tout si c'est mal administré.
          • [^] # Re: cette exploit arrive à contourner SELinux

            Posté par . Évalué à -1.

            ce qui démontre surtout la stupidité des commentaires qui ne savent absolument pas de quoi ils parlent mais se permettent de la ramener.

            Selinux permet de protéger les programmes qui ont une politique de sécurité.
            Ensuite tu peux avoir deux choix :
            -> tout interdire par défaut, et c'est à l'admin de se demerder pour faire les bonnes règles (politiques strict et tout le tintouin).
            -> autoriser ce qui n'est pas protéger à fonctionner comme avant. C'est le mode utilisé par fedora.

            Ca ne requiert AUCUNE administration.

            De plus selinux est absolument pas lourd.

            Enfin "d'autant que cet exemple démontre une fois de plus que ça ne sert à rien du tout si c'est mal administré. " montre clairement que tu n'as pas compris.
            Ca montre clairement que selinux ne rajoute pas de sécurité _SUR LES DAEMONS QUI NE SONT PAS PROTEGEES_.

            C'est un peu comme si tu avait deux maison, dans l'une tu met un système d'alarme, dans l'autre tu n'en met pas (parce que tu n'as pas envie, trop cher, ...)
            Ta maison _sans_ système d'alarme se fait cambrioler, donc tu viens crier sur les toits que le système d'alarme est inutile...

            Un utilisateur normal peut avoir envie de faire tourner httpd, et béneficier de sa protection, ou alors d'autres daemons unix qui ont déjà une politique de sécu.
            • [^] # Re: cette exploit arrive à contourner SELinux

              Posté par (page perso) . Évalué à 6.

              Ca ne requiert AUCUNE administration.

              Tu peux dire ce que tu veux, moi je sais le nombre de gens que j'ai dépanné parce que Selinux les empêchait de faire ce qu'ils voulaient.


              Un utilisateur normal peut avoir envie de faire tourner httpd,


              C'est pas vraiment ma définition de l'utilisateur lambda. Et si quelqu'un sait faire tourner httpd, je crois qu'il peut aussi remplacer "disabled" par "targeted" dans un fichier de configuration.
              • [^] # Re: cette exploit arrive à contourner SELinux

                Posté par . Évalué à -4.

                tu les a dépanné comment ? Ils étaient sur quel politiques ? Ils essayaient de faire quoi ?
                Parce que mettre selinux sur "disabled" c'est pas les dépanner. Par contre faire les bon modules ou les bon booléens, là...

                Tu peux dire ce que tu veux, moi je sais ce que je fais quand j'administre une machine, et je comprend ce que je fais. ET pas plus tard que y'a deux jours j'ai mis une machine. selinux m'a bloqué dans un truc. (configuration par défaut : apache ne doit pas établire de connexion, ce qui est plutot logique pour un serveur). Je me renseigne et oh, il y a un flag qui permet d'autoriser ça (j'ai au départ fait un module local : moins de 20min. Ensuite je me suis renseigné. En 2h j'avais la réponse.)
                alors oui faut oser se renseigner.... mais ça c'est valide pour tout.



                C'est pas vraiment ma définition de l'utilisateur lambda.
                Donc je présume que fedora ne devrait pas non plus proposer le paquet httpd vu que ce n'est pas pour "l'utilisateur lambda".
                ...
                D'autant plus que fedora est une distrib de test pour rhel, raler qu'ils osent utiliser des technologies qui ne sont pas super bien rodés pour toutes les applications, c'est plus ne rien avoir compris quand on a choisis sa distrib.

                Et si quelqu'un sait faire tourner httpd, je crois qu'il peut aussi remplacer "disabled" par "targeted" dans un fichier de configuration.
                AHAHAHAHAHAHAH
                MDR
                XPTDR
                au moins c'est facile avec toi de montrer que tu ne sais absolument pas de quoi tu parle.
                Tu confond policy et le mode de fonctionnemt.

                Allez petit cours du soir pour celui qui crane mais qui comprend absolument pas ce qu'il fait.
                Il y a trois modes de fonctionnement avec selinux :
                - disabled : selinux n'est pas activé
                - permissive ; selinux est activé mais n'interdit rien. Par contre il logge tout ce qui ne vas pas. Permet de voir qu'est ce qui ne vas pas de bout en bout etc..
                - enforcing : selinux est activé, et empêche ce qui n'est pas autorisé par les politiques. Il loggue aussi les tentatives qui ne marchent pas.

                Ensuite il y a des policfy, ce sont les règles utilisés. On peut cité entre autre strict, targeted (par défaut le plus souvent), mls ou encore mcs.

                bref, quand tu sauras de quoi tu parle, tu pourras me faire la morale, mais là franchement c'est trop comique


                Ps : je te ferais remarquer qu'entre comprendre ce qui se passe quand on fait un yum httpd et quand on met SELINUX=enforcing c'est pas du tout la même chose.
                Mais rassure moi, pour toi l'administration c'est bien _comprendre_ les actions que l'on fait non ? Pas juste suivre une doc d'install sans rien comprendre à ce que l'on tape ?
                • [^] # Re: cette exploit arrive à contourner SELinux

                  Posté par (page perso) . Évalué à 2.

                  Sur une machine qui a une utilisation familiale, souvent le cas quand on dépanne une personne, c'est plus simple de désactiver cette usine à gaz que de perdre sa vie à régler ça. Vaut mieux lire linuxfr.

                  Envoyé depuis mon lapin.

          • [^] # Re: cette exploit arrive à contourner SELinux

            Posté par . Évalué à 3.

            En fait, de mémoire, un certain nombre d'exploits précédents ne fonctionnaient pas du tout si SELinux n'était pas activé.
            Parce que le déréferencement de l'adresse 0 n'est pas activé par défaut, sauf sous SELinux.
          • [^] # Re: cette exploit arrive à contourner SELinux

            Posté par . Évalué à 3.

            En même temps, le but de Fedora est justement de tester ce genre de nouvelle technologie, pas d'être utilisable par tout le monde. Donc ce n'est absolument pas stupide d'intégrer SELinux par défaut, ça permet de déceler tous ces problèmes de configuration (comme les services « non confinés »), afin de débugger et de proposer une meilleure politique, notamment pour RHEL (puisque Fedora est un bac à sable pour cette dernières) et aussi pour les autres distributions.

            Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

            • [^] # Re: cette exploit arrive à contourner SELinux

              Posté par (page perso) . Évalué à 0.

              puisque Fedora est un bac à sable pour cette dernières

              S'ils veulent conserver des utilisateurs pour Fedora, ils feraient mieux de ne pas repéter ce genre d'expériences trop souvent... Fedora est sensée être utilisable, au moins pour du desktop, et pas une beta. Et ce genre de choses est la raison pour laquelle j'ai abandonné cette distribution.
              • [^] # Re: cette exploit arrive à contourner SELinux

                Posté par (page perso) . Évalué à 6.

                "One of the big, essential differences between Fedora and other distributions is that we’d rather gain one contributor than a dozen users. In fact, if I could lose 1000 users right now and gain a contributor, I’d do it. It’s not up to me, but if it were, I’d do it."

                Jeroen van Meeuwen, Fedora Project Vice President Fedora EMEA

                Donc les utilisateurs, c'est clairement pas leur priorité.

                « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

              • [^] # Re: cette exploit arrive à contourner SELinux

                Posté par (page perso) . Évalué à 5.

                Fedora a toujours été une béta... il n'y a que les utilisateurs de fedora qui parfois se voile la face !
              • [^] # Re: cette exploit arrive à contourner SELinux

                Posté par . Évalué à 4.

                Le fait est que Fedora ne souhaite pas d'utilisateurs, mais des développeurs; ils ne s'en sont jamais cachés, ni d'ailleurs d'être un laboratoire pour Red Hat. Ce n'est pas pour rien si de nombreux produits non encore finalisés sont intégrés en premier dans Fedora (PulseAudio, SELinux, Plymouth, KMS, DeviceKit, PackageKit, etc).

                Pour les utilisateurs finaux, il existe d'autres alternatives viables, comme Mandriva, Ubuntu ou Suse, qui elles ciblent clairement ce public.

                Article Quarante-Deux : Toute personne dépassant un kilomètre de haut doit quitter le Tribunal. -- Le Roi de Cœur

  • # Bonne nouvelle!

    Posté par (page perso) . Évalué à 10.

    Ca fait toujours une faille en moins dans le noyau linux. J'espère juste qu'il en a pas 50 en stock...
    • [^] # Re: Bonne nouvelle!

      Posté par . Évalué à 2.

      On peut se protéger de l'exploit en restreignant la valeur minimum de l'adresse mappable à une valeur différente de 0 (65536 recommandé), dans /proc/sys/vm/mmap_min_addr.

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.