mercredi 23 mai 2012

Acheter et vendre des exploits - part2

[EDIT 1/06/2012 ajout de 2 liens en conclusion]

Ce post est la suite du message http://exploitability.blogspot.fr/2012/05/acheter-et-vendre-des-exploits-part1.html. Ce second post va reparcourir les sept points soulevées par Charlie Miller en les adaptant à la situation actuelle.

1/ Valeur de l'exploit
Ce point particulier varie légèrement puisqu'une faille corrigée peut conserver de la valeur. On voit apparaître des failles demi-days qui sont des failles de sécurité patchées récemment. Selon le but de l'acheteur (cible localisée ou ratissage large), une exploitation fiable d'une faille corrigée peut avoir un interêt certain. A ce titre, on observe que la faille MS12-020 continue d'être la plus recherchée sur les modules metasploit, alors même que le patch existe, et que la faille n'a toujours pas été prouvée! Toujours chez metasploit, un programme d'achat de fiabilisation de failles de sécurités existe, prouvant ainsi qu'un patch publié n'enterre pas forcément la faille de sécurité associée.

2/ Prix de vente
Depuis 2007, quelques prix ont commencé à apparaître. Certains fiables, d'autres moins. Pour la fiabilité, il suffit de se référer aux programmes de bug bounty des éditeurs (une recherche google donne un grand nombre de sociétés offrant des bug bounty). Différents prix sont proposés:
Dans le moins fiable, il y a les prix du "marché noir". Une grille circule:
(tirée de l'article http://www.forbes.com/sites/andygreenberg/2012/03/23/shopping-for-zero-days-an-price-list-for-hackers-secret-software-exploits/ )
On retrouve peu ou prou les prix du pw2own contest (20000-60000$) et celui de Charlie Miller (80000$). Cette grille à un autre interêt, j'y reviendrai plus tard.

Enfin, il existe entre les deux les sociétés spécialisées (voir point 3/ ) et les prix sont soit absents, soit aux alentours de 10000$ la faille.

Ce qui saute aux yeux, c'est la disparité des tarifs (!). Les bounty sont complètements décorrélés des autres prix. Par exemple pour un bounty chrome à 3000$, on doit trouver une société spécialisée à 10000$, ou le pw2own à 20000 et enfin le marché noir à +80000$ (!).

Enfin, on lit beaucoup d'autres prix, pas toujours réalistes. VUPEN, à la suite de sa victoire au pwn2own indique vouloir conserver une faille Chrome et refuse même le prix de 60000$. Il ajoute qu'il conserverai cette faille même dans l'hypothèse ou Google lui proposerai 1 million de dollars! Plusieurs spéculations sur le prix délirant des failles ont démarré sur internet. Néanmoins Tavis Ormandy fait remarquer "It's common to see the shadier side of infosec exaggerate about big money deals, you can lookup actual revenue data at http://www.infogreffe.fr", ce qui signifie que Vupen surévalue le prix de vente de ses failles, car une faille à 1M lui fait presque 2 ans de chiffre d'affaire. [mais cela semble logique pour un vendeur de gonfler les tarifs :-) et il y a peut-être des clauses de confidentialités sur cette faille par ailleurs.. ]

3/ Trouver l'acheteur
Cela semble beaucoup plus facile qu'en 2007 pour les programmes bounty et les sociétés spécialisées. Je ne les listerai pas toutes ici, on peut en trouver un grand nombre sur ce lien (la liste date de 2009, cela a pu évoluer) ou celui-ci (qui contient aussi une bonne liste de bounty programs).
Pour le marché noir, c'est toujours aussi opaque, mais c'est aussi la définition du marché noir (on connait quelqu'un qui connait quelqu'un de fiable qui connait quelqu'un... :) ).
Il semble donc beaucoup plus simple aujourd'hui de vendre des failles de sécurité, en tout cas à bas prix.

4/ Vérification de l'acheteur
Charlie Miller souhaitait connaître les intentions de l'acheteur avant de vendre. Pour les bug bounty, pas de problèmes moraux à avoir. Pour les sociétés généralistes d'achats, il est fait mention de diffusion contrôlée, limitée, réservée aux spécialistes et chercheurs. Je ne sais pas jusqu'a quel degré de cynisme on peut le lire. Il s'agit généralement de sociétés vendant de l'outil cyber-offensif ou des prestations cyber-offensives. Je regarderai plutôt du côté des clients de ces sociétés, mais il n'y a aucune publicité à ce sujet. Vupen indique travailler avec des gouvernements entre autre.

5/ Démonstration de l'exploit
Actuellement, c'est un jeu de confiance. Pour les bounty ou les sociétés ayant pignon sur rue, c'est le chercheur qui doit fournir la preuve de sa faille avant toute négociation ultérieure. Pour le marché noir, étant opaque, pas d'autres infos. Par contre, il est fait mention d'un tiers de confiance qui met en relation des vendeurs et des acheteurs (moyennant pourcentage toutefois), bien qu'il faille lui fournir les preuves complètes d'un exploit. Il se fait joindre sur twitter et s'appelle thegrugq. Apparemment, il suffit de lui fournir un exploit, et il trouve un vendeur. Toutefois, je n'ai pas trouvé d'information fiable à ce sujet, uniquement des liens citant un autre lien "qui dit que", donc je ne garantirai pas la fiabilité de cette méthode. (d'ailleurs si quelqu'un à des infos fiables là-dessus...)

6/ Propriété intellectuelle de l'exploit
Quelques sociétés d'achat de failles font signer des NDA, mais comme le disait déjà Charlie Miller, il existe toujours pour le vendeur un moyen de vendre deux fois un exploit sans que cela ne soit prouvable par le premier ou le second acheteur. C'est une forme d'honnêteté de la part du vendeur. Parmi les sociétés qui achètent, on trouve d'ailleurs des exigences délirantes comme la fourniture de plusieurs pièces d'identités, plus des adresses postales et numéros de téléphones [Et là, c'est une question de paranoïa ou de cupidité sachant qu'avec tout ce qui est demandé la société peut facilement voler l'identité de ceux qui traitent avec eux...].

Conclusion/
Contrairement à 2007, il est aujourd'hui plus simple de vendre des exploits (à bas prix) à l'aide des bugs bounty. Les sociétés spécialisées ou le marché noir n'offrant pas suffisamment de garanties de sérénité au vendeur.
Le tableau montré plus haut est intéressant à plus d'un titre. La liste des exploits présentée fait immédiatement à une volonté offensive et ciblée. On cherche des failles dans pdf, doc (spear phishing), les navigateurs les plus courants, ou les systèmes (l'élévation de privilège je pense) ou les smartphones qui sont remplis d'informations personnelles à haute valeur (carnet d'adresses, appels émis et reçus, position géographique etc..). Cette liste semble à des antipodes des préoccupations d'un chercheur en sécurité de l'information. Elle semble plutôt construite sur des besoins d'espionnage, ce qui fait penser aux états. On sait que la guerre cyber va devenir de plus en plus importante jusqu'à imaginer des mécanismes de vente d'armes cyber aussi protégées que les armes chimiques ou nucléaire (Kaspersky, Cebit 2012). Comme le fait remarquer Ben Nagy sur une mailing list, vendre des exploits ne fait pas de vous un inconscient qui dégoupille une grenade au milieu d'une foule. Vendre un exploit aujourd'hui, c'est le fournir à un gouvernement qui va s'en servir à la manière d'un sniper dans un but précis et encadré [1] (on retrouve encore cet aspect sécurité informatique et gouvernements..).
Cela tend donc à signifier que la faille qui se vend aujourd'hui est forcément offensive, ciblée vers l'utilisateur final et achetée par les gouvernements. Pour le reste, s'il n'existe pas de bounty, publiez un CVE, ou sur full-disclosure, ça vous apportera au moins la gloire :-) Il est d'ailleurs possible de contacter secunia qui s'occupe de gérer toute la partie ennuyeuse (communication à l'éditeur concerné, prévention des différents CERT, numérotation CVE etc...) et qui conserve votre nom au crédit de la faille! Bon, la rémunération oscille entre rien du tout et un tee-shirt, mais c'est toujours un début :-)

[1] Je ne fais que résumer le propos de Ben Nagy, ce n'est pas une opinion personnelle.

[EDIT 01/06/2012] : Bruce Schneier revient sur le concept de marché de la vente de vulnérabilité : http://www.schneier.com/blog/archives/2012/06/the_vulnerabili.html et fournit un autre tableau qui est un sondage effectué en 2010 auprès des vendeurs de failles de sécurité http://unsecurityresearch.com/index.php?option=com_content&view=article&id=52&Itemid=57
Il ajoute qu'un des problèmes avec des prix d'achats trop élevés réside chez les éditeurs de logiciels. A +100k$ la faille, un programmeur pourrait laisser de manière intentionnelle un léger bug exploitable afin de le revendre sous le manteau un peu plus tard.

mercredi 9 mai 2012

Acheter et vendre des exploits - part1 2007

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:
  • Ceux qui trouvent des failles sur commande, sur n'importe quel logiciel. Au monde, il y en a très peu.
  • Ceux qui trouvent des failles par eux-mêmes. Il n'y en pas beaucoup non plus. (Charlie Miller en fait donc partie, selon lui)
  • Ceux qui peuvent trouver une faille lorsqu'on leur dit ou chercher ou lorsqu'ils on un exploit partiel, ou un patch. Ce sont d'eux que Charlie Miller a peur.
  • Ceux qui comprennent les enjeux liés par une faille de sécurité, sont capables de monter des PoC. Il y en a encore très peu. Ce sont eux les acheteurs pour Charlie Miller.
  • Et les autres. Ce sont eux qui préconisent de mettre un antivirus et un firewall personnel par exemple.
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.