Il n'y a pas beaucoup d'infos, mais c'est dans un tweet que fail0verflow qu'on ne présente plus, a publié il y a quelques jours cette photo d'une Nintendo Switch avec un joli Linux dessus.
D'après fail0verflow, son exploit utilise un bug situé dans la rom nécessaire au boot, ne nécessite aucune puce et qui plus beau encore, ne peut pas être patché sur les Switch sorties jusqu'à présent.
Bien que Nintendo propose depuis l'année dernière, un programme de Bug Bounty pour justement récompenser ce genre de découverte et corriger ses vulnérabilités, il semble que certains préfèrent s'amuser avec des homebrews et éventuellement plus tard, avec des jeux piratés sur des consoles rootées.
Affaire à suivre, surtout si effectivement, l'impossibilité de patcher s'avère vraie.
Zerodium, spécialisé dans l'achat / revente de vulnérabilité 0day a fait hier, une annonce sur son compte Twitter.
Si pour vous tout ceci n'est qu'un amas de gros mots techniques, je vous explique. En gros, Zerodium propose 45 000 $ en échange d'un 0day (une vulnérabilité non patchée et non connue) fonctionnant avec les distribs Linux les plus connues (Fedora, Ubuntu, Debian, CentOs et Red Hat Entreprise).
À titre de comparaison, ils avaient, il y a quelques années, proposé 1,5 million de $ pour un 0day touchant iOS 10.
45 000$ c'est une belle somme et ça pourrait tenter pas mal de monde. Mais ce business reste un business de merde, et je vais vous expliquer pourquoi.
Premièrement, s'ils lancent cet appel, c'est qu'ils ont des clients. Probablement des gouvernements ou des boites privées puissantes. L'objectif de ces clients, c'est de pouvoir s'introduire sur des machines Linux pour les véroler ou en sortir des informations. Y'a pas vraiment de mystère.
Le premier problème, c'est que par définition, celui qui vendra son 0day à Zerodium se fera arnaquer. 45 000$ un 0day qui sera surement revendu avec une doc d'utilisation, le double de son prix (voire plus) à 2, 3, 4…10 ou 100 clients, j'appelle ça se faire arnaquer 🙂
Bon, ça c'était pour la blague.
Maintenant ce qui est grave c'est-ce que ce 0day va permettre.
Repensez aux révélations Snowden, repensez à votre vie privée et à votre vie tout court. Un 0day Linux qui grosso modo peut ouvrir une porte sur un grand nombre de serveurs est un sacré problème, y compris si vous n'avez pas de machine Linux sous la main. Car vous ne le savez peut-être pas, mais toutes vos données et votre activité en ligne circulent ou se retrouve stockées sur des machines Linux. Donc même si vous êtes un utilisateur lambda, cela vous concerne totalement.
Pensez ensuite aux gens qui pourraient souffrir directement d'une telle arme. Les activistes, les opposants politiques, les gens qui travaillent dans les entreprises et qui ont des secrets industriels à défendre, les gouvernements au travers de ses soldats ou de ses agents sur le terrain, sans parler de ceux qui se retrouveraient en position de subir un chantage ou une humiliation à cause de données dérobées via de tels moyens.
Le champ des possibilités est vaste et même si on est totalement dans les hypothèses, celles-ci sont parfaitement plausibles, car déjà vues.
Et je ne vous parle pas, le jour où le 0day est enfin découvert et annoncé publiquement, du bad buzz que cela peut ensuite avoir sur Linux, sur les sociétés touchées, sur les serveurs non patchés subissant les ravages des scripts kiddies et bien sûr de la surcharge de boulot non prévue pour les admin sys et la communauté Open Source.
J'ai beau retourner le problème dans tous les sens, vendre une telle vulnérabilité à un tiers qui est tout sauf de confiance, c'est un peu comme vendre une kalachnikov à un intermédiaire, sans savoir qui va l'utiliser, ni quand et contre qui, tout en espérant qu'on ne sera pas l'une des victimes.
Maintenant c'est sûr, 45 000$ c'est une belle somme. On peut s'en payer des jolies choses avec 45 000$… Une belle voiture, des travaux pour la maison, faire la fête pendant 1 an, ou arrêter de bosser quelques temps.
Mais s'il y a un truc que vous ne pourrez pas vous payer avec ces 45 000$, ce sera une éthique. Car oui, quoi qu'en disent les pubs à la TV et quoi qu'en disent les médias qui s’esclaffent sur la proposition de Zerodium, la notion d'éthique reste à mon sens primordial.
Car toute l'année, que ce soit mes copains de YesWeHack, ou d'autres hackers de par le monde, on se casse le cul à sécuriser la planète, à remonter le niveau de compétence des gens et des boites dans un seul but : Que chacun puisse évoluer dans le cyberespace avec une relative tranquillité d'esprit.
Tout n'est pas parfait, c'est sûr, mais ça va dans le bon sens pour servir l'intérêt général, grâce aux efforts de chacun. Malheureusement, l'initiative de Zerodium est à l'opposé de ces efforts.
Seulement, pour contrer de telles pratiques qui n'ont comme but que de faire du pognon au détriment de l'intérêt général, il n'y a malheureusement que 3 possibilités.
– Soit les Américains décident que Zerodium va dans le sens contraire de leurs intérêts, et décident d'interdire de telles pratiques. Mais j'imagine que cela n'arrivera jamais, car ils sont surement leurs premiers clients et ont probablement négocié quelques exclusivités mondiales avec eux.
– Soit je trouve une planche à billets magique, et je propose x3 en pognon pour racheter les 0day avant qu'ils ne tombent entre de mauvaises mains pour ensuite les offrir à la communauté open source dans un cadre de divulgation coordonnée de vulnérabilités.
– Soit, j'en appelle au bon sens, en ayant conscience du côté bisounours de la chose, en expliquant aux gens que tout ceci est éthiquement malsain et que la seule option quand on découvre une vulnérabilité sur un site, un soft, un service (peu importe), c'est de la remonter à celui qui est impacté par ce problème pour qu'il puisse patcher au plus vite.
Pour le moment, à moins que vous ne soyez tous Milliardaires, c'est cette dernière possibilité qui est à notre portée à tous. Et cela peut se faire de 2 façons :
Si vous avez un site internet, que ce soit un site sur lequel transitent des informations personnelles ou une simple vitrine statique, il est maintenant grand temps, si vous ne l'avez pas encore fait, de passer en HTTPS.
Alors oui, si vos internautes remplissent des champs ou s'identifie avec un mot de passe sur votre site, il est vital que ce dernier propose à minima une connexion HTTPS.
Mais si vous avez un site statique, qui n'est qu'une vitrine et qui ne présente aucun risque à être diffusé via le protocole HTTP uniquement, je vais vous donner 2 bonnes raisons de passer en HTTPS.
La première (et c'est déjà le cas) c'est que Google (et probablement d'autres moteurs de recherche) favorise dans leurs résultats les sites en HTTPS au détriment de ceux en HTTP. Donc si vous avez des besoins de positionnement dans les moteurs de recherche, vous n'avez pas d'autre choix que le HTTPS.
La seconde raison est celle qui va faire le plus mal. À partir de la version 59 de Firefox et de la version 68 de Chrome, TOUS les sites diffusés en HTTP seront marqués dans le navigateur comme "Not Secure" (Pas sécurisé). Même si techniquement l'impact d'un tel marquage est nul, celui en terme d'image auprès de vos internautes va être violent.
Ils seront très peu à savoir exactement de quoi il retourne et la plupart en voyant ce "Not Secure" prendront peur, passeront leur chemin, vous contacteront pour vous faire part du problème ou vous donneront de grandes leçons sur l'importance du chiffrement (ah ah).
Et à service équivalent, entre choisir le joli petit cadenas vert ou l'alerte rouge "Not Secure", je vous laisse deviner où vos internautes iront.
Vous n'avez donc plus le choix. Le HTTP c'est de l'histoire ancienne et vous allez devoir migrer tous vos sites même le plus basique et le moins à risque, en HTTPS, simplement pour préserver votre image
Si maintenant vous êtes motivé, sachez qu'il existe des tas de tutos sur le net qui expliquent comment faire. De mon côté, j'ai appliqué la méthode Certbot qui est sans doute la plus simple et la plus gratuite 🙂
Si vous êtes développeur et que vous bossez sur un site de recette ou quelque chose d'approchant qui nécessite de savoir si des ingrédients sont vegan ou pas, j'ai la solution.
Il s'agit d'une lib nommée Is-Vegan qui à partir d'un tableau d'ingrédients et d'une base de données issue des sites suivants, veganpeace, peta, veganwolf, permet de déterminer si tel ou tel ingrédient est vegan et par conséquent si une recette dans son ensemble est vegan.
Voici un exemple d'utilisation :
const isVegan = require('is-vegan');
// or
import * as isVegan from 'is-vegan';
// example for single ingredient
isVegan.isVeganIngredient('soy'); // true
isVegan.isVeganIngredient('milk'); // false
// example for list of ingredients
isVegan.isVeganIngredientList(['aspic', 'albumin']); // false
isVegan.isVeganIngredientList(['soy', 'cacao butter']); // true
// example for list of ingredients
isVegan.containsNonVeganIngredients(['aspic', 'albumin', 'soy']); // ['aspic', 'albumin']
isVegan.containsNonVeganIngredients(['soy', 'cacao butter']); // []
// example for list of ingredients wich contain flagged and non-vegan ingredients
isVegan.checkIngredients(['soy', 'cacao butter', 'pork', 'beef', 'glycine']);
// returns
// {
// nonvegan: ['pork', 'beef'],
// flagged: ['glycine']
// }
// or
import { checkIngredients } from 'is-vegan';
// example for list of ingredients wich contain flagged and non-vegan ingredients
checkIngredients(['soy', 'cacao butter', 'pork', 'beef', 'glycine']);
// returns
// {
// nonvegan: ['pork', 'beef'],
// flagged: ['glycine']
// }