Wahre Geschichte aus meinen frühen Tagen bei Microsoft.
Sie haben bis zu dem Tag, an dem Sie aufwachen und die Überschrift auf ZDNet.com an diesem Morgen sehen, keine Angst gekannt. " schlechteste Internet Explorer-Sicherheitsloch, das jemals in" Blah "entdeckt wurde " sehen, in dem "Blah" Code ist, den Sie selbst sechs Monate zuvor geschrieben haben .
Unmittelbar nach der Arbeit überprüfte ich die Änderungsprotokolle und stellte fest, dass jemand in einem anderen Team - jemand, dem wir vertrauten, um Änderungen am Produkt vorzunehmen - meinen Code ausgecheckt und eine Reihe von Einstellungen für den Sicherheitsregistrierungsschlüssel ohne guten Grund geändert hatte. checkte es wieder ein und bekam nie eine Codeüberprüfung oder erzählte jemandem davon. Bis heute habe ich keine Ahnung, was um alles in der Welt er zu tun glaubte; Kurz darauf verließ er die Firma. (Von sich aus.)
(UPDATE: Einige Antworten auf Probleme, die in den Kommentaren angesprochen wurden:
Beachten Sie zunächst, dass ich mich für die gemeinnützige Position entscheide, dass die Änderungen des Sicherheitsschlüssels unbeabsichtigt waren und eher auf Nachlässigkeit oder Unbekanntheit als auf Bosheit beruhen. Ich habe auf die eine oder andere Weise keine Beweise und glaube, dass es ratsam ist, Fehler der menschlichen Fehlbarkeit zuzuschreiben.
Zweitens sind unsere Check-in-Systeme heute viel, viel stärker als vor zwölf Jahren. Beispielsweise ist es jetzt nicht möglich, Code einzuchecken, ohne dass das Einchecksystem die Änderungsliste per E-Mail an interessierte Parteien sendet. Insbesondere Änderungen, die spät im Schiffszyklus vorgenommen werden, sind mit vielen "Prozessen" verbunden, die sicherstellen, dass die richtigen Änderungen vorgenommen werden, um die Stabilität und Sicherheit des Produkts zu gewährleisten.)
Der Fehler bestand jedenfalls darin, dass ein Objekt, das für die Verwendung in Internet Explorer NICHT sicher war, versehentlich als "sicher für Skripte" gekennzeichnet wurde. Das Objekt war in der Lage, Binärdateien - tatsächlich Bibliotheken vom Typ OLE Automation - auf beliebige Speicherorte zu schreiben. Dies bedeutete, dass ein Angreifer eine Typbibliothek erstellen konnte, die bestimmte Zeichenfolgen feindlichen Codes enthielt, sie in einem Pfad speichern konnte, der ein bekannter ausführbarer Speicherort war, ihr die Erweiterung von etwas geben konnte, das die Ausführung eines Skripts verursachen würde, und hoffen konnte, dass der Benutzer dies irgendwie tat würde versehentlich den Code ausführen. Ich kenne keine erfolgreichen "realen" Angriffe, die diese Sicherheitsanfälligkeit nutzten, aber es war möglich, damit einen funktionierenden Exploit zu erstellen.
Wir haben verdammt schnell einen Patch für diesen ausgeliefert, lassen Sie mich Ihnen sagen.
Ich habe viel mehr Sicherheitslücken in JScript verursacht und anschließend behoben, aber keine von ihnen hat jemals annähernd die Publizität erreicht, die man gemacht hat.