Oracle möchte, dass Sie aufhören, sie zu senden - hier ist der Grund, warum das verrückt ist

Oracle möchte, dass Sie aufhören, sie zu senden - hier ist der Grund, warum das verrückt ist / Sicherheit

Oracle befindet sich diese Woche in heißem Wasser über einen Blogeintrag ihrer Sicherheitschefs Mary Davidson. Obwohl es sich um eine Reihe von Themen handelt, handelt es sich bei dem Beitrag hauptsächlich um die Berichterstattung über mögliche Sicherheitslücken an Oracle. Insbesondere, warum Sie nicht sollten.

“Vor kurzem habe ich gesehen, dass Kunden bei der Reverse-Engineering unseres Codes nach Sicherheitslücken suchen. Aus diesem Grund habe ich eine Menge Briefe an Kunden geschrieben, die mit anfangen “Hi, Howzit, Aloha” aber enden mit “Bitte halten Sie sich an Ihre Lizenzvereinbarung und beenden Sie bereits die Rückentwicklung unseres Codes.”

Davidson erklärt, dass es eine wachsende Anzahl sicherheitsbewusster Kunden gibt, die eine Reverse-Engineering-Oracle-Software suchen, die nach Sicherheitslücken sucht (oder Berater anstellt, die dies für sie tun). Davidson wirft diesen Kunden vor, gegen ihre Lizenzvereinbarungen zu verstoßen, keine weltlichen Sicherheitsvorkehrungen zu treffen, zu versuchen, Oracle für sie zu erledigen, und generell schlechte Leute zu sein. Wenn der Kunde eine echte Schwachstelle gefunden hat, wird er von Oracle behoben.

“Ich hasse es fast, diese Frage zu beantworten, weil ich wiederholen möchte, dass Kunden unseren Code nicht umkehren dürfen und dürfen. […] Einem Kunden, der ein solches Problem meldet (das er durch Reverse Engineering gefunden hat) wird kein spezieller (einmaliger) Patch für das Problem bereitgestellt. Wir werden auch keine Gutschriften in irgendwelchen von uns erteilten Hinweisen gewähren. Sie können nicht wirklich erwarten, dass wir sagen “Vielen Dank, dass Sie die Lizenzvereinbarung gebrochen haben.””

Das tat nicht Gehen Sie in der Sicherheitsgemeinde gut durch, und der Posten wurde schnell abgebrochen - obwohl er nicht vor einem neuen Hashtag Hashtag-Aktivismus hervorbrachte: #powerful oder #pointless? Hashtag-Aktivismus: #powerful oder #pointless? #BringBackOurGirls, #ICantBreathe und #BlackLivesMatter haben im vergangenen Jahr eine breite internationale Berichterstattung erfahren - aber sind Hashtags ein wirksames Mittel für Aktivismus? Weiterlesen .

"Überprüfen Sie Enigmas EULA zuerst", sagte Alan Turing. #oraclefanfic

- Thorsten Sick (@ThorstenSick) 11. August 2015

Wenn Sie sich jedoch nicht mit der Sicherheitswelt auskennen, ist es möglicherweise nicht offensichtlich, warum der ursprüngliche Beitrag so falsch ist. Heute werden wir darüber sprechen, wo die Sicherheitsphilosophie von Oracle vom Mainstream abweicht und warum dies ein Problem ist.

Erklärung der Kontroverse

Was genau ist Reverse Engineering und warum ist Davidson so besorgt darüber? Im Grunde genommen, wenn Oracle eine Software veröffentlicht, diese “kompilieren” ihren internen Quellcode in ausführbare Dateien und liefern diese dann an Kunden. Kompilierung ist ein Prozess, der vom Menschen lesbaren Code übersetzt (in Sprachen wie C ++ 3-Websites zum Einstieg in das Erlernen der C ++ - Programmiersprache 3 Websites zum Einstieg in das Erlernen der C ++ - Programmiersprache) Das Programmieren zu erlernen kann für viele schwierig sein, selbst mit relativ einfachen Programmiersprachen Java ist zwar einfacher zu erlernen (wo wir bei MakeUseOf für Java zahlreiche Artikel haben, als auch… Weiterlesen) in eine dichtere Binärsprache, die direkt in einen Computerprozessor eingegeben werden kann.

Der Quellcode von Oracle ist nicht öffentlich. Dies soll es anderen erleichtern, ihr geistiges Eigentum zu stehlen. Es bedeutet jedoch auch, dass es für Kunden sehr schwierig ist, zu überprüfen, ob der Code sicher ist. Hier kommt die "Dekompilierung" ins Spiel. Im Grunde übersetzt die Dekompilierung in die andere Richtung und konvertiert ausführbare Dateien wieder in für Menschen lesbaren Code. Dies liefert zwar nicht genau den ursprünglichen Quellcode, aber Code, der auf dieselbe Weise funktioniert - obwohl er aufgrund des Verlusts von Kommentaren und der Organisationsstruktur oft schwer zu lesen ist.

Dies ist das “Reverse-Engineering” Davidson bezieht sich auf. Oracle ist dagegen, weil sie der Meinung sind, dass dadurch das geistige Eigentum gefährdet wird. Dies ist zumindest etwas töricht, denn die Verwendung eines Lizenzvertrags zum Verbot von IP-Diebstahl ist ein bisschen wie die Verwendung einer streng formulierten Fußmatte, um die Invasion von zu Hause aus zu verhindern. Die Art von Leuten, die versuchen werden, Ihre Produkte zu klonen, kümmert sich nicht um Lizenzvereinbarungen. 4 Möglichkeiten, einen Endbenutzer-Lizenzvertrag (EULA) zu lesen und zu verstehen. Einfacher 4 Wege, einen Endbenutzer-Lizenzvertrag (EULA) zu lesen und zu verstehen. Einfachere EULAs oder Endbenutzer-Lizenzvereinbarungen sind eines der Übel des modernen Lebens. Dies sind endlos wortreiche Vereinbarungen, die meist in winziger Schrift geschrieben sind. Dies sind die Dinge, die Sie blind nach unten scrollen und nach diesen Dingen suchen. Oftmals befinden Sie sich nicht in Gerichtsbarkeiten, in denen Sie diese Vereinbarungen auf jeden Fall durchsetzen könnten.

Die Menschheit ist zum Scheitern verurteilt… #oraclefanfic #justoraclethings pic.twitter.com/e6MOZzkkvq

- CyberAnarchist (@ Cyb3rOps) 12. August 2015

Die Richtlinie betrifft nur legitime Kunden. Die Situation ist der von Videospiel DRM ähnlich. 6 Orte zum Kaufen von DRM-Spielen [MUO Gaming] 6 Orte zum Kaufen von DRM-Spielen [MUO Gaming] Da ich beschlossen habe, keine Spiele bei Steam zu kaufen, muss ich andere suchen Quellen. Viele von ihnen sind tatsächlich schlimmer als Steam. Der Laden von Ubisoft ist verwirrend und voller nerviger DRM. Electronic Art's… Read More, aber irgendwie noch wirkungsloser.

Warum sollten Kunden diese ausführbare Datei dekompilieren wollen? Es geht um Sicherheit. Wenn Sie auf den Quellcode zugreifen, können Sie ihn durchforsten und nach Fehlern und möglichen Problemen suchen. Oft wird dies mit einer Software durchgeführt, die a “statische Code-Analyse” - ein automatisiertes Durchlesen des Codes, das bekannte Fehler und gefährliche Software-Praktiken identifiziert, die zu Fehlern führen können. Zwar gibt es Tools, die die ausführbare Datei direkt analysieren, durch die Dekompilierung werden jedoch tiefere Analysen möglich. Diese Art der statischen Analyse ist ein Standardwerkzeug für den Handel mit Sicherheit, und die meisten sicherheitsbewussten Unternehmen verwenden solche Software intern, um Code zu erzeugen, der weniger schwerwiegende Fehler enthält.

Die Richtlinie von Oracle zu dieser Art von Analyse ist einfach “nicht.” Warum? Ich werde Davidson erklären lassen.

“Ein Kunde kann den Code nicht analysieren, um zu ermitteln, ob ein Steuerelement vorhanden ist, das den Angriff verhindert, mit dem das Scan-Tool schreit (was höchstwahrscheinlich ein falsches Positiv ist). […] Nun, ich sollte beachten, dass wir nicht nur Scannen akzeptieren berichtet als “Beweis, dass es dort einen gibt,” Dies ist zum Teil darauf zurückzuführen, dass es sich bei statischen oder dynamischen Analysen nicht um einen Nachweis für eine tatsächliche Sicherheitsanfälligkeit handelt. […] Oh, und wir verlangen von Kunden / Beratern, dass sie die Ergebnisse dieses Reverse Engineering zerstören und bestätigen, dass sie dies getan haben.”

Mit anderen Worten, das Tool, das ein Ergebnis liefert, ist kein Beweis für einen echten Fehler. Da Oracle diese Tools intern verwendet, hat es keinen Sinn, dass Kunden sie selbst ausführen.

Das große Problem dabei ist, dass diese statischen Code-Analyse-Tools nicht vorhanden sind, nur um Fehler auf Sie aufmerksam zu machen. Sie sollen auch als Ziel für Codequalität und -sicherheit dienen. Wenn Sie die Codebasis von Oracle in ein statisches Analysetool mit Industriestandard aufnehmen und Hunderte von Seiten mit Problemen ausspucken, ist dies ein wirklich schlechtes Zeichen.

Die richtige Antwort, wenn ein statisches Codeanalyse-Tool ein Problem zurückwirft, ist nicht das Problem zu betrachten und zu sagen: "Oh, nein, das verursacht keinen Fehler, weil so und so." Die richtige Antwort ist, das Problem zu beheben. Die von den statischen Codeanalyse-Tools gekennzeichneten Dinge sind im Allgemeinen schlechte Praktiken und Sie können feststellen, ob ein Fehler tatsächlich einen Fehler verursacht. Bei Tausenden von Problemen werden Sie etwas vermissen. Es ist besser, wenn Sie solche Dinge überhaupt nicht in Ihrer Code-Basis haben.

Hier ist Oculus CTO John Carmack, der das Lob dieser Tools aus seiner Zeit bei iD Software singt. (Im Ernst, den ganzen Aufsatz lesen, es ist interessantes Zeug).

“Wir hatten eine Zeit, in der eines der Projekte die statische Analyseoption versehentlich für einige Monate deaktiviert hatte, und als ich es bemerkte und wieder aktivierte, gab es eine Menge neuer Fehler, die in der Zwischenzeit eingeführt worden waren. […] Dies war ein Beweis dafür, dass die normalen Entwicklungsvorgänge diese Fehlerkategorien kontinuierlich produzierten und [statische Code-Analyse] uns effektiv vor vielen von ihnen abschirmte.”

Kurz gesagt, es ist wahrscheinlich, dass viele Oracle-Kunden nicht unbedingt versucht haben, bestimmte Fehler zu melden. Sie fragten, warum die Codierungspraktiken von Oracle so schlecht waren, dass ihre Codebasis mit Tausenden und Abertausenden von Problemen durchsetzt war, die so grundlegend waren, dass sie herausgegriffen werden konnten durch automatisierte Software.

Ich bin immer noch traurig, dass Sun gegangen ist. Und wer war das Genie, das sie an Oracle verkaufte? Das ist, als würde Darth Vader Ihre Kinder babysitten.

- Brad Neuberg (@bradneuberg) 15. August 2015

Sicherheit durch Aufkleber

Was sollten also sicherheitsbewusste Kunden tun, anstatt statische Analysewerkzeuge zu verwenden? Zum Glück war Davidsons Blogpost zu diesem Thema sehr detailliert. Abgesehen von der Befürwortung allgemeiner grundlegender Sicherheitsmaßnahmen macht sie den Betroffenen konkrete Vorschläge zur Sicherheit der von ihnen verwendeten Software.

“[T] Hier gibt es viele Dinge, die ein Kunde tun kann, wie er kann, mit den Lieferanten über ihre Sicherungsprogramme sprechen oder Zertifizierungen für Produkte überprüfen, für die es Good Housekeeping-Siegel gibt (oder) “guter Code” Siegel) wie Common Criteria-Zertifizierungen oder FIPS-140-Zertifizierungen. Die meisten Anbieter - zumindest die meisten der großen, die ich kenne - verfügen jetzt über ziemlich robuste Assurance-Programme (wir wissen das, weil wir alle auf Konferenzen Notizen vergleichen)..”

Das ist ein schrecklich Antwort von einer Organisation so groß wie Oracle. Computersicherheit ist ein sich schnell entwickelndes Gebiet. Es werden ständig neue Sicherheitslücken gefunden, und die Formalisierung der Sicherheitsanforderungen in eine Zertifizierung, die alle paar Jahre aktualisiert wird, ist absurd. Sicherheit ist kein Aufkleber. Wenn Sie darauf vertrauen, dass eine entscheidende Software auf der Grundlage eines Siegels auf der Verpackung sicher ist, sind Sie unverantwortlich dumm.

Die statischen Analysewerkzeuge werden viel häufiger aktualisiert als diese Zertifizierungen - in manchen Fällen täglich - und beseitigen alle auftretenden Probleme immer noch Es genügt nicht, viel Vertrauen in die Sicherheit Ihres Codes zu haben, da die meisten Sicherheitsanfälligkeiten zu komplex sind, um von solchen automatisierten Tools erkannt zu werden.

Die einzige Möglichkeit, sich auf Ihre eigene Sicherheit zu verlassen, besteht darin, Ihren Code der Welt zugänglich zu machen und Hacker zu bitten, zu versuchen, ihn zu brechen. So arbeiten die meisten großen Softwareunternehmen: Wenn Sie ein Problem mit ihrem Code finden, werden sie nicht unhöflich auf Sie aufmerksam, weil Sie Ihre Nutzungsvereinbarung verletzt haben. Sie werden dir Geld bezahlen. Sie möchten, dass die Leute ihr Bestes geben, um ihre Software ständig zu brechen. Nur so können sie sicher sein, dass ihr Code überhaupt sicher ist.

Diese Programme werden aufgerufen “Bug-Kopfgeld” Programme, und sie sind das Beste, was der Sicherheit auf Unternehmensebene seit langem passieren kann. Sie sind auch zufällig etwas, auf das Davidson ziemlich starke Meinungen hat.

“Bug Bounties sind die neue Boy-Band (nett alliterativ, nein?) Viele Unternehmen schreien, fallen in Ohnmacht und werfen Sicherheitsforschern […] Unterwäsche auf, um Probleme in ihrem Code zu finden Sie machen keine Fehlerkosten, Ihr Code ist nicht sicher.

Nun, wir finden 87% der Sicherheitslücken selbst, Sicherheitsforscher finden etwa 3% und der Rest wird von Kunden gefunden. […] Ich lehre keine Bug-Kopfgeldern ab, nur auf einer rein wirtschaftlichen Basis, warum sollte ich bei 3% des Problems viel Geld werfen.”

Für den Anfang, basierend auf den Ergebnissen dieser statischen Code-Analysen, könnte es sich herausstellen, dass sie viel mehr als 3% beträgt, wenn Sie diese bezahlen. Aber ich schweife ab. Der eigentliche Punkt ist folgender: Fehlerkosten sind nicht für Sie, sondern für uns. Könnten Sie Fehler effizienter finden, wenn Sie dasselbe Geld für interne Sicherheitsexperten ausgeben? Nun, wahrscheinlich nicht - aber werfen wir Oracle einen Knochen und gehen davon aus, dass sie es könnten. Sie könnten jedoch auch das Geld mitnehmen, Bankgeschäfte machen und dann absolut nichts tun. Wenn die sich daraus ergebende Sicherheit unterdurchschnittlich ist, werden Kunden davon erst in einigen Jahren erfahren, wenn ihre Sozialversicherungsnummern auf mysteriöse Weise im tiefen Web auftauchen Standorte (und warum Sie dies vielleicht möchten) Zwiebelstandorte werden im Tor-Netzwerk gehostet. Aber wie findest du aktive Onion-Sites? Und zu welchen sollten Sie gehen? Weiterlesen .

"Es gibt keine Sicherheitslücke. Das EULA sagt das." #oraclefanfic pic.twitter.com/cUfafDCWbv

- Schuyler St. Leger (@DocProfSky) 11. August 2015

Bug-Kopfgeld gibt es zur Hälfte, weil sie eine wirklich wirksame Methode zur Identifizierung von Fehlern sind, und zur Hälfte, weil sie eine Form von Sicherheit sind, die Sie nicht fälschen können. Ein Bug-Kopfgeld sagt der Welt glaubwürdig, dass alle im Code verbleibenden Fehler teurer zu finden sind als das angegebene Kopfgeld.

Fehlerprämien gibt es nicht für Ihre Bequemlichkeit, Oracle, sie existieren, weil wir Ihnen nicht vertrauen.

Wir sollten auch nicht! Zahlreiche große Unternehmen lassen die Sicherheit auf der Strecke bleiben, da die zahlreichen Megabreaks Target bis zu 40 Millionen US-Kunden Kreditkarten potenziell gehacktes Ziel bestätigen Die Kreditkarteninformationen für bis zu 40 Millionen Kunden, die zwischen dem 27. November und dem 15. Dezember 2013 in ihren US-amerikanischen Läden eingekauft haben. Lesen Sie mehr. Sie sind der zweitgrößte Softwarehersteller der Welt. Es ist absurd, uns zu bitten, einfach zu sagen, dass Ihre Produkte sicher sind.

Was Davidson richtig macht

Aus Fairness gegenüber Davidson gibt es Elemente, die im Kontext angemessen sind. Wahrscheinlich unternehmen viele ihrer Kunden ehrgeizige Überprüfungen des Oracle-Codes, ohne sich die Zeit zu nehmen, um banalere Sicherheitsprobleme in ihren Systemen zu beseitigen.

“Erweiterte persistente Bedrohungen” - Qualifizierte Hacker-Organisationen, die versuchen, Zugang zu bestimmten Organisationen zu erhalten, um Daten zu stehlen - sind sicherlich beängstigend, aber durch die Zahlen sind sie viel weniger gefährlich als die Millionen opportunistischer Amateur-Hacker mit automatisierten Tools. Diese Art statischer Analysen von kommerzieller Software durchzuführen, wenn Sie keine grundlegenden Sicherheitsmaßnahmen getroffen haben, ist in etwa so, als würden Sie einen Panikraum installieren, wenn Sie noch keine Verriegelung an der Haustür haben.

Ebenso ist es wahrscheinlich wirklich frustrierend und wenig hilfreich, immer wieder die gleiche automatisierte Analyse präsentiert zu bekommen.

Insgesamt zeigt der Artikel jedoch einige überkommene Vorstellungen zur Systemsicherheit und zur Beziehung zwischen Entwicklern und Kunden. Ich weiß es zu schätzen, dass Davidsons Job frustrierend ist, aber die Benutzer, die alles daran setzen, die Sicherheit der von ihnen verwendeten Software zu überprüfen, sind nicht das Problem. Hier ist der Präsident des Sicherheitsbewusstseins, Ira Winkler:

“Oracle ist ein sehr großes und reiches Unternehmen, dessen Produkte weit verbreitet sind und für kritische Anwendungen verwendet werden. Zeitraum. Sie sind dafür verantwortlich, ihre Software so stark wie möglich zu machen […] Es gibt viele falsche Positive und damit verbundene Kosten, aber das ist ein Faktor für den Verkauf einer Menge Software, die viele Benutzer hat. Es ist ein Geschäftsaufwand. Ich bin sicher, dass alle Softwareunternehmen die gleichen falsch positiven Berichte haben. Ich habe Microsoft et al nicht gehört. sich beschweren.”

Wenn Oracle nicht ständig Tausende von Problemen erhalten möchte, die von statischen Sicherheitstools gefunden wurden, sollten sie dies vielleicht tun Beheben Sie diese Tausenden von Problemen. Wenn sie sich darüber ärgern, dass Leute immer wieder dieselben Fehler abliefern, sollten sie vielleicht über ein korrektes Fehlergeldprogramm verfügen, das über Mechanismen verfügt, die sich mit wiederholten Einsendungen von Nichtproblemen befassen. Die Kunden von Oracle fordern einen höheren Sicherheitsstandard und schämen sich nicht dafürdie richtige Antwort.

Obwohl Oracle den Posten abgenommen und allgemein abgelehnt hat, zeigt die Tatsache, dass er überhaupt geschrieben wurde, eine zutiefst fehlgeleitete Sicherheitskultur in Oracle. Der Sicherheitsansatz von Oracle priorisiert den Schutz des eigenen geistigen Eigentums vor der Sicherheit und Sicherheit seiner Kunden - und wenn Sie Oracle-Software mit wichtigen Informationen anvertrauen, sollte Ihnen dies den Bejeezus abschrecken.

Was denkst du? Sorgen Sie sich um die Sicherheitsphilosophie von Oracle? Denken Sie, dass Davidson zu hart behandelt wird? Lass es uns in den Kommentaren wissen!

Erfahren Sie mehr über: Online-Sicherheit, Softwarelizenzen.