Oracle veut que vous arrêtiez de leur envoyer des bogues - Voici pourquoi c'est dingue
Oracle est en ébullition cette semaine à la suite d'un article de blog écrit par leur responsable de la sécurité, Mary Davidson. Le message, bien qu’il couvre un large éventail de sujets, concerne principalement la communication des vulnérabilités de sécurité possibles à Oracle. Plus précisément, pourquoi vous ne devriez pas.
“Récemment, j'ai constaté une légère hausse de la part de nos clients qui procédaient à une rétro-ingénierie de notre code pour tenter de détecter des failles de sécurité..
C’est la raison pour laquelle j’ai écrit beaucoup de lettres aux clients qui commencent par “salut, howzit, aloha” mais finir avec “veuillez vous conformer à votre contrat de licence et arrêter le reverse engineering de notre code, déjà.”
Davidson explique qu'il y a de plus en plus de clients soucieux de la sécurité qui rétro-ingèrent les logiciels Oracle à la recherche de vulnérabilités en matière de sécurité (ou font appel à des consultants pour le faire à leur place). Davidson accuse ces clients de violer leurs contrats de licence, de ne pas prendre les précautions de sécurité banales, d'essayer de faire le travail d'Oracle pour eux et d'être généralement de mauvaises personnes. Si le client a trouvé une vulnérabilité réelle, alors Oracle le résoudra.
“Je déteste presque répondre à cette question parce que je tiens à répéter que les clients ne doivent pas et ne doivent pas faire de l'ingénierie inverse de notre code. […] Nous ne donnerons pas à un client signalant un tel problème (qu'il aurait trouvé par le biais de l'ingénierie inverse) un correctif spécial (ponctuel) pour le problème. De plus, nous ne fournirons aucun crédit aux avis que nous pourrions émettre. Vous ne pouvez pas vraiment vous attendre à ce que nous disions “merci d'avoir rompu le contrat de licence.””
Cela fait ne pas bien dans la communauté de la sécurité, et le poste a été rapidement supprimé - bien que pas avant la création d’un nouveau hashtag Hashtag Activism: #powerful or #pointless? Hashtag Activism: # puissant ou #pointless? #BringBackOurGirls, #ICantBreathe et #BlackLivesMatter ont bénéficié d'une large couverture internationale au cours de la dernière année - mais les hashtags sont-ils un moyen efficace d'activisme? Lire la suite .
"Vérifiez d'abord le CLUF d'Enigma", a déclaré Alan Turing. #oraclefanfic
- Thorsten Sick (@ThorstenSick) 11 août 2015
Toutefois, si vous n'êtes pas familiarisé avec le monde de la sécurité, il est peut-être difficile de comprendre pourquoi le message original est si mal orienté. Donc, aujourd'hui, nous allons parler des domaines dans lesquels la philosophie de sécurité d'Oracle se démarque de la réalité, et pourquoi c'est un problème.
Expliquer la controverse
En quoi consiste exactement la rétro-ingénierie et pourquoi Davidson est-il si préoccupé par cela? Fondamentalement, lorsque Oracle publie un logiciel, ils “compiler” leur code source interne en fichiers exécutables, puis les transmet aux clients. La compilation est un processus qui traduit un code lisible par un humain (dans des langages tels que C ++ 3 Sites Web pour commencer à apprendre le langage de programmation C ++ 3. Sites Web pour commencer à apprendre le langage de programmation C ++. Apprendre à programmer peut être difficile pour beaucoup, même avec des langages de programmation relativement simples. Alors que Java est plus facile à utiliser (où nous avons de nombreux articles ici à MakeUseOf pour Java ainsi que… Lire la suite) dans un langage binaire plus dense qui peut être directement introduit dans un processeur informatique..
Le code source d'Oracle n'est pas public. Ceci est destiné à rendre plus difficile pour les autres de voler leur propriété intellectuelle. Cependant, cela signifie également qu'il est très difficile pour les clients de vérifier que le code est sécurisé. C'est ici qu'intervient la «décompilation». Fondamentalement, la décompilation se traduit dans l'autre sens, en reconvertissant les fichiers exécutables en code lisible par l'homme. Cela ne fournit pas exactement le code source d'origine, mais un code qui fonctionne de la même manière - bien qu'il soit souvent difficile à lire, en raison de la perte de commentaires et de la structure organisationnelle..
C'est le “ingénierie inverse” auquel fait référence Davidson. Oracle est contre, car ils pensent que cela met leur propriété intellectuelle en péril. C’est au moins un peu idiot, car utiliser un contrat de licence pour interdire le vol de propriété intellectuelle revient un peu à utiliser un paillasson très sévère pour empêcher l’invasion de domicile. Les types de personnes qui vont essayer de cloner vos produits ne s’intéressent pas aux contrats de licence. 4 manières de lire et de comprendre un contrat de licence utilisateur final (CLUF) plus facilement 4 manières de lire et de comprendre un contrat de licence utilisateur final (CLUF) Plus facilement, les CLUF, ou contrats de licence utilisateur final, font partie des maux de la vie moderne. Ce sont des accords infiniment verbaux, généralement écrits en petits caractères. Ce sont les choses que vous faites défiler à l'aveuglette, à la recherche de ce… Lire la suite, et ne le sont souvent pas dans les juridictions où vous pouvez appliquer ces accords dans tous les cas.
L’humanité est condamnée… #oraclefanfic #justoraclethings pic.twitter.com/e6MOZzkkvq
- CyberAnarchist (@ Cyb3rOps) 12 août 2015
La politique n'affecte réellement que les clients légitimes. La situation est similaire à celle du jeu vidéo DRM. 6 Places pour acheter des jeux sans DRM [MUO Gaming] 6 Places pour acheter des jeux sans DRM [MUO Gaming] Depuis que j’ai décidé de ne pas acheter de jeux de Steam, je dois trouver d’autres sources. Nombre d'entre eux sont en réalité pires que Steam. Le magasin d'Ubisoft est déroutant et regorge de DRM agaçants. Electronic Art's… En savoir plus, mais encore plus inefficace.
Pourquoi les clients voudraient-ils décompiler ces exécutables? Tout est une question de sécurité. Avoir accès au code source vous permet de le parcourir en cherchant des bugs et des problèmes potentiels. Ceci est souvent fait en utilisant un logiciel qui effectue une “analyse de code statique” - une lecture automatisée du code, qui identifie les bogues connus et les pratiques logicielles dangereuses qui ont tendance à conduire à des bogues. Bien que certains outils analysent directement le fichier exécutable, la décompilation permet des analyses généralement plus approfondies. Ce type d'analyse statique est un outil standard du commerce de la sécurité, et la plupart des entreprises soucieuses de la sécurité utilisent ce logiciel en interne pour produire du code moins susceptible de contenir des bugs sérieux..
La politique d'Oracle sur ce type d'analyse est tout simplement “ne pas.” Pourquoi? Je laisserai Davidson expliquer.
“Un client ne peut pas analyser le code pour voir s'il existe un contrôle empêchant l'attaque à propos de laquelle l'outil d'analyse hurle (ce qui est probablement un faux positif) […] Je dois noter que nous n'acceptons pas simplement l'analyse rapports comme “preuve qu'il y en a, là,” en partie parce que vous parlez d'analyse statique ou dynamique, un rapport d'analyse ne prouve pas une vulnérabilité réelle. […] Oh, et nous demandons aux clients / consultants de détruire les résultats de cette ingénierie inverse et de confirmer qu'ils l'ont déjà fait..”
En d’autres termes, l’obtention d’un résultat par un outil n’est pas la preuve d’un véritable bogue - et, comme Oracle utilise ces outils en interne, il n’ya aucun intérêt à ce que les clients les exécutent eux-mêmes..
Le gros problème est que ces outils d’analyse de code statique n’existent pas uniquement pour attirer votre attention sur des bogues. Ils sont également censés servir de cible pour la qualité et la sécurité du code. Si vous dépassez la base de code d'Oracle dans un outil d'analyse statique standard du secteur et que celui-ci génère des centaines de pages de problèmes, c'est vraiment mauvais signe..
La réponse correcte, quand un outil d'analyse de code statique génère un problème, ne consiste pas à examiner le problème et à dire «oh, non, cela ne cause pas de bogue, car tel ou tel». La bonne réponse consiste à résoudre le problème. Les éléments signalés par les outils d'analyse de code statique sont généralement de mauvaises pratiques en général, et votre capacité à déterminer si un problème donné cause réellement un bogue est faillible. Sur des milliers de problèmes, vous allez manquer des choses. Vous feriez mieux de ne pas avoir de telles choses dans votre base de code en premier lieu.
Voici John Carmack, CTO d'Oculus, qui fait l'éloge de ces outils de son temps chez iD Software. (Sérieusement, lisez tout l'essai, c'est intéressant).
“Nous avons eu une période pendant laquelle l'un des projets avait désactivé l'option d'analyse statique pendant quelques mois, et lorsque j'ai remarqué et réactivé cette option, de nombreuses nouvelles erreurs avaient été introduites entre-temps. […] C'étaient des démonstrations du fait que les opérations de développement normales produisaient continuellement ces classes d'erreurs, et [l'analyse de code statique] nous protégeait efficacement de beaucoup d'entre elles..”
En bref, il est probable que de nombreux clients d’Oracle n’essayaient pas nécessairement de signaler des bogues spécifiques. Ils se demandaient pourquoi les pratiques de codage d’Oracle étaient si mauvaises que leur base de code était truffée de milliers de problèmes si élémentaires qu’ils pouvaient être sélectionnés. par logiciel automatisé.
Je suis toujours triste que Sun soit parti. Et qui était le génie qui les a vendus à Oracle? C'est comme laisser Darth Vader garder vos enfants.
- Brad Neuberg (@bradneuberg) 15 août 2015
Sécurité par autocollants
Alors, que doivent faire les clients concernés par la sécurité au lieu d’utiliser des outils d’analyse statique? Heureusement, le blog de Davidson était extrêmement détaillé sur ce sujet. En plus de défendre les pratiques de sécurité de base générales, elle fait des suggestions concrètes aux personnes concernées par la sécurité des logiciels qu’elles utilisent..
“[L] a client peut aimer beaucoup de choses, ça alors, parler aux fournisseurs de leurs programmes d’assurance ou vérifier les certifications de produits pour lesquels il existe des sceaux Good Housekeeping (ou “bon code” sceaux) comme les certifications Common Criteria ou FIPS-140. La plupart des fournisseurs - du moins, la plupart des grands fournisseurs que je connais - ont maintenant des programmes d'assurance assez robustes (nous le savons parce que nous comparons tous les notes lors de conférences)..”
C'est un effroyable réponse d'une organisation de la taille d'Oracle. La sécurité informatique est un domaine en pleine évolution. De nouvelles vulnérabilités sont trouvées tout le temps, et formaliser les exigences de sécurité dans une certification qui est mise à jour toutes les quelques années est absurde. La sécurité n'est pas un autocollant. Si vous pensez qu'un logiciel essentiel est sécurisé sur la base d'un sceau sur l'emballage, vous êtes stupide et irresponsable..
Heck, les outils d'analyse statiques sont mis à jour beaucoup plus souvent que ces certifications - dans certains cas, quotidiennement - et en éliminant tous les problèmes qu'ils rencontrent encore n'est pas suffisant pour avoir une grande confiance dans la sécurité de votre code, car la plupart des vulnérabilités sont trop complexes pour être détectées par ce type d'outils automatisés.
La seule façon de faire confiance à votre propre sécurité est d'exposer votre code au monde entier et de demander aux pirates informatiques de tenter de le casser. Voici comment fonctionnent la plupart des grands éditeurs de logiciels: si vous rencontrez un problème avec leur code, ils ne vous attaqueront pas avec condescendance pour avoir enfreint votre contrat d'utilisation. Ils vont vous payer de l'argent. Ils veulent que les gens essaient de leur mieux pour casser leur logiciel tout le temps. C'est la seule façon pour eux de s'assurer que leur code est sécurisé..
Ces programmes s'appellent “bug bounty” programmes, et ils sont la meilleure chose à faire pour la sécurité au niveau de l'entreprise depuis longtemps. C'est aussi une coïncidence, quelque chose que Davidson a des opinions assez fortes sur.
“Les primes de bogues sont le nouveau groupe de garçons (joliment allitératif, non?) De nombreuses entreprises crient, s'évanouissent et jettent des sous-vêtements aux chercheurs en sécurité […] pour trouver des problèmes dans leur code et insistent pour que ce soit le cas. ne faites pas de primes de bogues, votre code n'est pas sécurisé.
Eh bien, nous trouvons nous-mêmes 87% des vulnérabilités en matière de sécurité, environ 3% en recherche sur la sécurité, le reste étant découvert par les clients. […] Je ne dissocie pas les primes de bugs, mais je précise que sur une base strictement économique, pourquoi devrais-je jeter beaucoup d'argent à 3% du problème.”
Pour commencer, sur la base des résultats de ces analyses de code statiques, il pourrait s’avérer beaucoup plus que 3% si vous les payiez. Mais je m'égare. Le vrai problème est le suivant: les primes de bug ne sont pas pour vous, elles sont pour nous. Pourriez-vous trouver les bogues plus efficacement si vous dépensiez le même argent en experts en sécurité interne? Eh bien, probablement pas - mais jetons un os à Oracle et supposons qu’il le pourrait. Cependant, ils pourraient aussi prendre l'argent, le mettre en banque, puis ne rien faire du tout. Si la sécurité qui en résulte est médiocre, les clients ne la découvriront que dans quelques années lorsque leurs numéros de sécurité sociale se retrouveront mystérieusement sur le Web profond. Sites (et pourquoi vous voudrez peut-être) Les sites oignon sont hébergés sur le réseau Tor. Mais comment trouvez-vous les sites Onion actifs? Et quels sont ceux que vous devriez aller? Lire la suite .
"Il n'y a pas de vulnérabilité. Le CLUF le dit." #oraclefanfic pic.twitter.com/cUfafDCWbb
- Schuyler St. Leger (@DocProfSky) 11 août 2015
Les primes de bogues existent à moitié parce qu’elles sont un moyen véritablement efficace d’identifier les bogues et à moitié parce qu’elles constituent une forme de sécurité que vous ne pouvez pas simuler. Une prime de bogues indique de manière crédible au monde que tous les bogues laissés dans le code sont plus coûteux à trouver que la prime indiquée..
Les primes de bogues n'existent pas pour votre commodité, Oracle, elles existent parce que nous ne vous faisons pas confiance.
Nous ne devrions pas non plus! Un grand nombre de grandes entreprises laissent tomber la sécurité, alors que les nombreuses mégabranchées cibles confirment jusqu'à 40 millions de cartes de crédit américaines. La cible potentiellement piratée confirme jusqu'à 40 millions de cartes de crédit américaines. La cible potentiellement piratée vient d'être confirmée. les informations relatives aux cartes de crédit de près de 40 millions de clients ayant effectué leurs achats dans ses magasins aux États-Unis entre le 27 novembre et le 15 décembre 2013. Plus d'informations sont trop claires. Vous êtes le deuxième fabricant de logiciels au monde. Il est absurde de nous demander de croire que vos produits sont sécurisés.
Ce que Davidson a raison
En toute justice pour Davidson, certains éléments sont raisonnables dans leur contexte. Il est probable que nombre de leurs clients se lancent dans des audits ambitieux du code Oracle, sans prendre le temps d'éliminer les problèmes de sécurité plus banals de leurs systèmes..
“Menaces persistantes avancées” - les organisations de pirates informatiques expérimentées qui tentent d'accéder à des organisations spécifiques pour voler des données - sont certes effrayantes, mais elles sont beaucoup moins dangereuses, en chiffres, que les millions de pirates amateurs opportunistes dotés d'outils automatisés. Faire ce genre d'analyses statiques de logiciels commerciaux lorsque vous n'avez pas adopté de mesures de sécurité élémentaires revient un peu à installer une salle anti-panique alors que vous n'avez pas encore de verrou sur la porte d'entrée..
De même, il est probablement frustrant et inutile de se voir présenter encore et encore la même analyse automatisée..
Cependant, pris dans son ensemble, l'article révèle des idées sérieusement obsolètes sur la sécurité du système et sur les relations entre développeurs et clients. Je sais que le travail de Davidson est frustrant, mais le problème ne réside pas dans le fait que les utilisateurs s’efforcent de vérifier la sécurité des logiciels qu’ils utilisent. Voici le point de vue d'Ira Winkler, président de Security Awareness:
“Oracle est une société très grande et riche, avec des produits largement distribués et utilisés pour des applications critiques. Période. Ils ont la responsabilité de rendre leurs logiciels aussi puissants que possible […] Il peut y avoir beaucoup de faux positifs et de coûts associés, mais cela conditionne [leur vente] à beaucoup de logiciels qui ont beaucoup d'utilisateurs. C'est un coût de faire des affaires. Je suis sûr que tous les éditeurs de logiciels ont les mêmes faux positifs. Je n'entends pas Microsoft et al. se plaindre.”
Si Oracle ne veut pas continuer à recevoir des milliers de problèmes trouvés par les outils de sécurité statiques, ils devraient peut-être résoudre ces milliers de problèmes. S'ils sont contrariés par les gens retournant les mêmes non-bogues encore et encore, ils devraient peut-être avoir un programme de prime aux bogues qui dispose de mécanismes pour traiter les soumissions répétées de non-problèmes. Les clients d’Oracle réclament un niveau de sécurité élevé, mais ne pas leur faire honte.La bonne réponse.
Même si Oracle a été désavoué et généralement désavoué, sa publication révèle une culture de la sécurité profondément erronée au sein d’Oracle. L’approche d’Oracle en matière de sécurité privilégie la protection de leur propriété intellectuelle à la sécurité et à la tranquillité d’esprit de leurs clients - et si vous confiez au logiciel Oracle des informations cruciales, cela devrait faire peur à bejeezus..
Qu'est-ce que tu penses? Êtes-vous préoccupé par la philosophie de sécurité d'Oracle? Pensez-vous que Davidson est traité trop durement? Faites le nous savoir dans les commentaires!
En savoir plus sur: la sécurité en ligne, les licences de logiciels.