Bugs, Schwachstellen, Exploits: die Bedingungen für eine Kompromittierung

(Di Marco Rottigni)
14/08/24

Im letzten Jahr traten Softwareprobleme auf, die äußerst beliebte Betriebssysteme und Softwarebibliotheken betrafen.

Probleme mit potenziell verheerenden Auswirkungen, oft klassifiziert als aus der Ferne ausnutzbar. Diese Bedingung gibt an, wie ein Angreifer diese Mängel ausnutzen kann, ohne unbedingt physisch in der Nähe des Systems zu sein, sondern nur über das Netzwerk oder die Logik Sicht darauf zu haben.

In diesem Artikel versuche ich, einige wichtige Unterschiede zwischen bestimmten Begriffen besser zu verdeutlichen, die allzu oft synonym (und falsch) verwendet werden, mit dem Ziel, Aufsehen zu erregen oder Klicks im Internet zu erzielen.

Beginnen wir mit ein paar absoluten Wahrheiten, deren Erinnerung ich für wichtig halte.

Das erste ist ein Zitat von CyberSecurity-Koryphäe Gene Spafford: „Das einzig wirklich sichere System ist dasjenige, das ausgeschaltet, getrennt, in einem Titankäfig, in einem Betonbunker voller Nervengas und bewacht von sehr gut bezahlten bewaffneten Wachen eingesperrt ist. Selbst dann würde ich nicht mein Leben darauf verwetten.

Die zweite Wahrheit, die deutlich einfacher auszudrücken ist, bekräftigt dies noch einfacher „Keine Software ist perfekt“.

Definieren Sie diese AusgangspunkteVersuchen wir, den wichtigen Unterschied zwischen a zu klären Fehler, eine Schwachstelle und a ausbeuten; Abschließend wird klargestellt, wie wichtig die Bedingungen sind, die erforderlich sind, um diese Elemente nutzen zu können.

Weit entfernt von der Welt der Entomologie, aus der der Begriff stammt, ist die Fehler o Wurm von Software kann definiert werden als eine Code-Unvollkommenheit aufgrund eines Codefehlers während der Entwicklung. Dieser Fehler tritt nur auf, wenn bestimmte Bedingungen erfüllt sind.

Die Neugier ist nicht jedem bekannt, schon gar nicht denen, die diesen Fehler weiterhin nennen buco Software ist der Ursprung dieses Begriffs im IT-Bereich: Er stammt tatsächlich aus der Zeit, als Software auf Lochkarten kodiert war und Computer riesige Schränke waren, die oft im Keller eines Gebäudes standen; In diesen Metallschränken waren die verschiedenen Komponenten alles andere als miniaturisiert, und der Platz ermöglichte unter bestimmten Bedingungen die Vermehrung kleiner Tiere, die sich von Lochkarten ernähren konnten, wie eine Raupe sich von einem knackigen reifen Apfel ernähren würde. Genau in diesen Kontexten entstand der Ausdruck Softwarefehler die seit über einem halben Jahrhundert in Farbe (und ein wenig) unerschrocken geblieben ist Nerd) Welt der Entwickler.

Also das von a Fehler Wenn jedoch eine Schwachstelle entsteht, müssen einige wichtige Bedingungen erfüllt sein.

Das erste ist, dass die Abfolge der Ereignisse, die dazu führt Fehler sich der Welt zu zeigen und die schädlichen Auswirkungen des ursprünglichen Fehlers des Entwicklers hervorzurufen. Es ist nicht nur völlig falsch, diesen Begriff zu verwenden Fehler und Verletzlichkeit austauschbar, aber sogar a Fehler bekannt ist nicht gleichbedeutend mit Verletzlichkeit.

Um diese Nuance besser zu verstehen, versuchen wir zu untersuchen, wie eine Schwachstelle gemeldet wird – inspiriert von der amerikanischen Bedrohungsanalyseorganisation MITRE. Zu den unzähligen Aktivitäten von MITRE gehört tatsächlich die Verwaltung und Aktualisierung einer Schwachstellendatenbank namens CVE (Common Vulnerabilities and Exposures).

Nachfolgend finden Sie ein Beispiel dafür, wie eine Sicherheitslücke in der Öffentlichkeit dargestellt wird:

Es wird sofort klar, dass die Beschreibung des Kontexts viel mehr sagt als die möglichen Möglichkeiten, den Fehler auszunutzen, ohne jedoch Beispiele dafür zu nennen wie in der Praxis: Es informiert uns beispielsweise darüber, dass das Modell Omada ER605 des Herstellers TP-Link ein Pufferüberlaufproblem hat: Dies bedeutet, dass der Speicher des Geräts aufgrund eines Entwicklungsfehlers mehr Daten akzeptiert, als er enthalten könnte; sagt uns, dass es nicht notwendig ist, authentifiziert zu sein, um in diesen Speicher zu schreiben; zeigt uns, wie die Ausbeutung dieser Riss kann auch remote stattfinden, mit der Qualifikation von Remotecodeausführung.

Der Schwachstellenbericht sagt aus mehreren triftigen Gründen nie aus, wie die Schwachstelle ausgenutzt werden kann.

Erstens würde dies diejenigen gefährden, die noch keine Zeit hatten, die Situation zu beheben, wenn dies beispielsweise durch die Anwendung eines Software-Updates des Herstellers oder eines anderen möglich wäre Flicken.

Zweitens, die Aufgabe Es liegt in der Verantwortung des Autors, eine Schwachstelle ausnutzbar zu machen ausbeuten.

L 'ausbeuten stellt einen Code und/oder eine Prozedur dar, deren Ausführung den Fehler verursacht, der das ausnutzt Fehler im Code des Entwicklers belassen.

Zusammengefasst: Fehler, Verletzlichkeit ed ausbeuten Es handelt sich um drei getrennte Einheiten, die zwar folgerichtig, aber sicher nicht synonym sind.

Die Praxis der Analyse der Merkmale der Schwachstellen, der Behebungsverfahren und der möglichen Verfügbarkeit einer Schwachstelle Flicken durch den Hersteller stellt einen Prozessbestandteil der Cybersicherheitsmaßnahmen jedes Unternehmens dar – genannt Schwachstellenmanagement und es ist eines der anspruchsvollsten Ziele einer guten Cybersicherheitspolitik eines Unternehmens.