web-dev-qa-db-fra.com

Que signifie "brûler un jour zéro"?

J'ai remarqué un commentaire sur cette réponse où un autre utilisateur a dit

... mais cela nécessite de risquer de brûler un jour, ce que les gens ne sont pas toujours prêts à faire.

J'ai fait une recherche sur Internet pour l'expression "brûler un 0 jour" (et des permutations similaires comme 0 jour, zéro jour, etc.) et peu de choses sont revenues. Il est évident que "brûler" signifie "épuiser" dans ce cas. Je comprends la plupart de ce que l'utilisateur voulait dire, mais probablement pas toutes les raisons pour lesquelles cela était important (alias le contexte). Je cherche une réponse canonique, avec quelques raisons pour lesquelles "brûler un jour zéro" est une chose coûteuse.

Mr Robot s01e06 touche à cela quand Elliot et Darlene commencent à discuter de ce qui n'a pas fonctionné dans leur tentative de piratage.

J'ai trouvé d'autres personnes sur cette SE utilisant la même terminologie:

163

C'est moi qui ai écrit le commentaire que vous avez cité.

Réponse rapide: Un jour 0 est gravé lorsque l'exploit est utilisé trop souvent ou de manière aléatoire, ce qui le fait être découvert et corrigé. Presque chaque fois qu'un 0day est utilisé, il risque d'être brûlé. Utiliser un jour 0 avec parcimonie et prudence peut augmenter sa durée de conservation. L'idiome a l'intention de comparer un jour 0 à une ressource non renouvelable comme le carburant combustible qui perd sa valeur lorsqu'elle est épuisée.

Cela provient probablement de l'idiome brûlez vos ponts :

Détruire son chemin, ses connexions, sa réputation, ses opportunités, etc., particulièrement intentionnellement.


Qu'est-ce qu'un 0day?

Un 0day est une vulnérabilité exploitable qui n'est pas connue du public. Lorsqu'un jour est découvert, il peut être transformé en un exploit "armé" fonctionnel. Comme toutes les vulnérabilités, si elle est découverte en public, elle sera généralement corrigée et corrigée, ce qui empêchera l'exploit de fonctionner. Chaque fois que vous utilisez un exploit, vous transmettez nécessairement des informations précieuses à un système que vous ne contrôlez pas (encore). Si le système fait l'objet d'une surveillance approfondie, la technique d'exploitation peut être découverte et, avec elle, les connaissances nécessaires pour corriger la vulnérabilité et déployer des correctifs sur tous les systèmes affectés.

Que signifie "brûler" un?

C'est moi qui ai écrit le commentaire vous faites référence. "Graver" un 0day est un argot pour l'utiliser trop souvent ou pour l'utiliser dans une situation à haut risque où il est probable qu'il sera découvert à cause de son utilisation. Comme le carburant combustible, une fois épuisé ou "brûlé", un 0day n'aura plus la même valeur (les deux en termes monétaires* termes tactiques). Il cesse d'être un jour 0 une fois qu'il n'est plus entre des mains privées.

Les amis peuvent vous laisser "emprunter" un jour pour vous en servir, à condition de ne pas le brûler. Cela signifie qu'ils vous disent que vous pouvez l'utiliser, mais ils vous font confiance pour être très prudent de ne pas l'utiliser de manière à ce qu'il soit probable qu'il soit trouvé et corrigé, privant ainsi l'accès.

Quelqu'un pourrait décider de révéler soudainement le jour 0 en public. Surtout quand cela n'est pas fait en utilisant la divulgation coordonnée, cela s'appelle souvent laisser tomber un 0day, qui brûlera également le 0day. C'est un peu rare mais pas inconnu. Il y a quelques années sur IRC, un gars nous a rejoint et nous a informés d'une vulnérabilité d'exécution de code à distance dans TeamViewer qui impliquait l'envoi de fichiers WinHelp malveillants (qui contiennent Visual Basic code) ou quelque chose le long de ces lignes. Depuis le premier endroit où il a révélé qu'il était au milieu d'un IRC général lié à la sécurité, il brûlait un jour en le laissant tomber.

* 0 jours ont généralement une valeur monétaire littérale. Un 0day peut varier de mille dollars à plus d'un million, en fonction de divers facteurs tels que l'exclusivité, l'applicabilité, la fiabilité, la spécificité, la nature conditionnelle, etc.

Combien valent 0 jours?

Les courtiers d'exploit achètent ou vendent souvent des bogues avec des promesses d'exclusivité. Par exemple, vous pouvez vendre un bogue à condition qu'il soit vendu au prix le plus élevé à une seule personne et non à plusieurs personnes. Cela réduit les chances de le découvrir, mais cela signifie que vous n'êtes payé qu'une seule fois. Alternativement, vous pouvez vendre un exploit à autant de personnes qui souhaitent l'acheter. Il faudrait le vendre à un prix inférieur car il sera brûlé très rapidement, ce qui raccourcira sa durée de vie. Évidemment, lorsqu'un 0day est gravé, il n'est plus aussi utile car il ne fonctionnera que sur des systèmes obsolètes. La valeur réelle dépend de plusieurs facteurs. Ils valent plus s'ils:

  • Travaillez sur une variété de systèmes.

  • Ne dépendez pas d'une configuration spécifique.

  • Sont fiables et fonctionnent à chaque fois.

  • Sont silencieux et ne laissent pas de traces dans les journaux.

  • Sont vendus à un seul acheteur ou à un nombre limité d'acheteurs.

De nombreux entrepreneurs qui traitent des exploits vous paieront le prix complet en petites sommes sur une période de temps. Si le jour 0 est découvert avant que vous ne soyez payé en totalité, ils arrêteront les paiements. Cela dissuade de le vendre à plusieurs entrepreneurs ou de l'utiliser fréquemment vous-même. Cela vous oblige essentiellement à leur garantir qu'il restera un jour, ou vous ne serez tout simplement pas payé en totalité.

De plus, 0 jours sont achetés pour plus par des entrepreneurs gouvernementaux que par des courtiers d'exploits aléatoires. Vous pourriez être en mesure de vendre une chaîne d'exploitation complète Chrome complète avec contournement de sandbox et escalade des privilèges locaux (LPE) pour des centaines de milliers de dollars à Raytheon SI. exploiter ne rapporterait qu'une fraction de ce prix si vous le vendiez à J. Random Broker sur IRC. La raison en est simplement que les gouvernements corrompus veulent être non compétitifs et avoir suffisamment d'argent des contribuables pour obtenir des vulnérabilités exclusives afin qu'ils puissent des drones frappent des journalistes protéger leur nation.

Comment les jours 0 sont-ils brûlés?

Il existe de nombreuses activités qui peuvent risquer de brûler un jour. Quelques exemples:

  • L'utilisation d'un exploit qui n'est pas fiable et peut créer un coredump.

  • Utiliser un exploit qui est conditionnel et ne fonctionne que pour certaines configurations.

  • Utilisation d'un exploit qui entraîne la journalisation d'un événement.

  • Utiliser un exploit contre une cible sophistiquée et paranoïaque.

  • Il suffit d'utiliser un exploit trop souvent, ce qui augmente son exposition.

  • Le donner ou l'échanger avec un ami qui n'en est pas responsable.

Je ne pardonne pas la vente de 0 jours aux gouvernements ou aux entrepreneurs du gouvernement.

222
forest

Un jour zéro est une vulnérabilité inconnue du fabricant du logiciel et pour laquelle aucun correctif n'existe.

Lorsque vous utilisez une vulnérabilité zero-day contre un serveur distant, elle peut révéler son fonctionnement. Les administrateurs de l'application peuvent remarquer qu'ils ont été piratés, consulter les journaux et découvrir la vulnérabilité qui a été utilisée pour les pirater. S'ils corrigent ensuite la vulnérabilité, celle-ci n'est plus une vulnérabilité zero-day et sa connaissance est inutile.

Par exemple, ce Flash zero-day était activement exploité et c'est ainsi qu'Adobe a découvert la vulnérabilité.

Dans certains cas, l'utilisation d'un jour zéro n'expose pas la vulnérabilité. Par exemple, zéro jour pour rooter un système d'exploitation mobile peut être utilisé sans que le fabricant du logiciel ne soit au courant de la vulnérabilité.

113
Sjoerd

Les recherches sur la sécurité trouvent des exploits. Le jour où ils signalent que c'est le jour zéro parce que les développeurs vont commencer à travailler sur le patch.

Les chercheurs de Good Security (comme dans le chapeau blanc) publieront le jour zéro aux développeurs avant de le publier au reste de la communauté. Dans de nombreux cas, ils ne le publient que dans la communauté parce que les responsables du code les ont autrement ignorés.

Les chercheurs de Bad Security (comme dans Black Hat) archiveront cet exploit pour un jour de pluie. Brûler un jour zéro ... c'est exploiter les archives des jours de pluie. Cela n'est généralement effectué que pour les cibles de grande valeur.

Indépendamment de Divulgué ou Utilisé, le temps des exploits est fini à partir du moment où les développeurs en charge du code réalisent ce qui se passe. Donc, dans un sens, l'exploit est épuisé ou brûlé.

23
CaffeineAddiction

Se concentrer spécifiquement sur votre question sur la façon dont la gravure d'un 0day peut être une chose coûteuse:

Avec une valeur monétaire littérale, la réponse de CaffeineAddiction l'a très bien couvert.

Il y a un autre type de valeur que je n'ai pas vu mentionné - quand il est délibérément rendu public pour permettre à une communauté de contourner les règles d'un fabricant. Un exemple de cela est dans la communauté de jailbreaking (rooting des appareils iOS). On parle souvent de ne pas "graver un 0 jour" sur une itération mineure d'iOS. D'autant plus que Apple deviennent plus difficiles à trouver, si un 0day était trouvé le 11.3.1, il serait question d'attendre le 11.4, ou même le 12.0 pour le publier.

Contrairement à d'autres attaques où le risque augmente à mesure qu'il est utilisé, un jailbreak garantit essentiellement la perte du 0day car il est rendu complètement public.

9
CeePlusPlus