Lokal oder Netzwerk? Die Versuchung der einfachen Zwei-Klassen-Lösung
Ein dialektisches Gespräch zwischen Mira und Jonas darüber, ob man bekannte Schwachstellen anhand des Attack Vectors (Netzwerk oder lokal) sortieren sollte — und was diese Trennung mit den Menschen macht, die danach handeln müssen.
KI-vertontShownotes
Shownotes hier ergänzen.
Transkript
Anni Brandt: Willkommen bei Security Dialogues, Episode eins. Ich bin Anni und moderiere diese Folge. Ich mache gerade mein Praktikum bei EACG und habe die Ehre beziehungsweise die Verantwortung, Security Dialogues zu organisieren. In dieser Folge diskutieren Mira und Jonas eine Idee, um die Bewertung von CVEs zu beschleunigen: Mira hat die Idee zu einer Vereinfachung, und Jonas ist drauf und dran, ihr die Woche zu versauen. Lasst und hören, wie es ausgeht...
— I. Der Vorschlag —
Mira Novak: Ich will dir einen Vorschlag machen, und ich will, dass du ihn ernst nimmst, bevor du ihn zerlegst.
Jonas Weber: Das ist eine sinnvolle Reihenfolge. Leg los!
Mira Novak: Wir ertrinken. Nicht bildlich — rechnerisch. Die Zahl veröffentlichter Schwachstellen wächst jedes Jahr, unsere Kundschaft wächst jedes Jahr, nur die Zahl unserer Analysten wächst nicht. Der Rückstau ist keine Warteschlange, die wir abarbeiten. Es ist wie ein Reservoire, das wir kontinuierlich befüllen.
Jonas Weber: Soweit kein Widerspruch.
Mira Novak: Also will ich einen ersten Schnitt. Etwas Einfaches, etwas Stabiles, etwas, das ich nicht mit jedem Product Owner neu verhandeln muss. Und ich glaube, es steckt schon in den Daten: Damit kann ich bekannte Schwachstellen in zwei Klassen teilen. Die, die über das Netzwerk ausnutzbar sind, und die, die nur lokal missbraucht werden können. Zwei Klassen, zwei Fristen: Die Netzwerk-Klasse bekommt eine Notfallreaktion... Die lokale Klasse geht in den normalen Patch-Zyklus.
Jonas Weber: Du meinst die Attack-Vector-Metrik: Netzwerk gegen lokal.
Mira Novak: Ich meine die Idee dahinter, aber ja — die Metrik ist schon da. Es kostet mich nichts sie zu lesen. Es braucht keinen Analysten, der nachdenkt. Das ist der ganze Reiz. Jedes andere Priorisierungsschema, das ich bisher kennengerlent habe, verlangt, dass sich jemand hinsetzt und über eine konkrete Schwachstelle in einem konkreten Deployment nachdenkt. Meine neue Systematik ist aufwandsarm!
Jonas Weber: Und die Begründung? Nicht die operative — die inhaltliche. Warum sollte es der Welt wichtig sein, wo der Angreifer steht?
Mira Novak: Wegen der unterschiedlichen Voraussetzungen: Eine netzwerk-ausnutzbare Schwachstelle setzt nichts voraus. Der Angreifer braucht eine Route und ein Paket. Eine lokal-ausnutzbare Schwachstelle setzt voraus, dass der Angreifer schon da ist — schon Code ausführt, schon eine Session hält, schon an allem vorbei ist, was gebaut wurde, um ihn draußen zu halten. Das heißt, die lokale Klasse hängt an einem anderen Versagen. Behebe die Fehler, die die Bösen Buben reinlassen und du entziehst der lokalen Klasse ihre Voraussetzung.
Jonas Weber: Oha?! Das ist ein echtes Argument. Genau das will ich mir mit Dir genau ansehen, weil ich glaube, es steckt ein kleiner Denkfehler drin.
Mira Novak: ...vermutlich. Sonst hätte vielleicht schon ein anderer die Idee gehabt...
— II. Der Vektor gehört zum Deployment, nicht zur Schwachstelle —
Jonas Weber: Fangen wir hier an. Nimm eine lokale Privilege Escalation in einer weit verbreiteten Systembibliothek. Identische CVE, identischer Vektor-String, drei Kundenszenarien: Im ersten betreibt der Kunde die Bibliothek einem Laptop, den eine Person nutzt. Damit der Angreifer sie ausnutzen kann, muss er den Laptop schon infiltriert haben oder besitzen — und wenn er den Laptop besitzt, hat er schon, was er wollte. Die Schwachstelle hateigentich kaum noch eine Beduetung, sie ist quasi irrelevant. Der zweite Kunde betreibt die Bibliothek auf einem Kubernetes-Node, den sich vier Mandanten teilen. Lokal heißt hier jede Workload auf diesem Node. Die Schwachstelle macht den Unterschied zwischen einem Container und dem ganzen Cluster. Der dritte Kunde betreibt die Lib auf einem Build-Runner, welcher Code aus jedem Pull Request ausführt, den ein Fremder aus dem Internet öffnet. Lokal heißt hier jeder mit einem GitHub-Account. Welche davon ist eine lokale Schwachstelle?
Mira Novak: Der Metrik nach alle drei.
Jonas Weber: Und wie viele davon sind zweitrangig?
Mira Novak: ... vielleicht ..., eine?
Jonas Weber: Der Vektor hat dir also nicht das gesagt, was du dachtest. Er beschreibt die verwundbare Komponente isoliert, unter der Annahme irgendeines gedachten Referenz-Deployment. Der Vector beschreibt nicht deinen Kunden oder sein Setup. Die Bewertungssysteme sind da ehrlich — genau deshalb erlauben sie Umgebungsmodifikatoren wie den Environmental Score neben den Basiswerten. Der Basiswert ist ein Startpunkt, der auf Überarbeitung wartet, und wir haben uns kollektiv darauf geeinigt, ihn wie ein Urteil zu behandeln, weil die Überarbeitung teuer erscheint.
Mira Novak: OK! Aber gib zu, dass der CI-Runner-Fall exotisch ist!
Jonas Weber: Er ist nicht exotisch, er ist die Standardarchitektur der Softwareauslieferung im Jahr 2026. Und er kippt deine Prämisse komplett um. Dein Argument war, dass Lokal eine vorherige Kompromittierung voraussetzt. Auf einem Build-Runner gibt es keine vorherige Kompromittierung. Fremden Code auszuführen ist die beworbene Funktion des Systems. Der Angreifer muss nicht einbrechen. Er wird eingeladen, per Design — und die lokale Schwachstelle ist das Einzige, was zwischen der Einladung und den Signierschlüsseln steht.
Mira Novak: Der Runner ist eine "Trust Boundary", auf die ich mich verlasse.
Jonas Weber: Sag das bitte nochmal, weil du gerade was gans Wichtiges gesagt hast.
Mira Novak: Der Runner ist meine "Trust Boundary", auf die ich mich verlasse. Container-Isolation ist eine solche Grenze, der Hypervisor ebenfalls. Alles Grenzen, auf die ich mich verlasse. Und jede dieser Grenzen wird von Code verteidigt, dessen Schwachstellen, in deiner Notation, lokal sind.
Jonas Weber: Container Escape: lokal. Hypervisor Escape: lokal. Browser Sandbox Escape: lokal. Kernel Privilege Escalation: lokal. Das sind nicht gerade die Restposten der Schwachstellenwelt. Das sind die tragenden Wände jedes Multi-Tenant-Systems, das in den letzten fünfzehn Jahren gebaut wurde. Ein Schema, das alle diese vier Fehlertypen in die Neunzig-Tage-Warteschlange schickt, ist kein Triage-Schema. Es ist die Terminplanung für einen Abrissplan.
— III. Ketten —
Mira Novak: hm... Aber nimm die zweite Hälfte meines Arguments: Selbst wenn ich Dir die Grenzfälle zugestehe — entzieh der lokalen Klasse ihre Voraussetzungen, und sie feuert nicht.
Jonas Weber: Wie viele echte Vorfälle hast du dir im Nachhinein durchgelesen?
Mira Novak: Genug.
Jonas Weber: Dann weißt du, dass es nie ein einzelner Schritt ist. Erstzugriff, dann Privilege Escalation, dann Persistenz, dann laterale Bewegung, dann das eigentliche Ziel. Erstzugriff ist sehr oft Netzwerk — ein exponiertes Randgerät, ein ungepatchtes Gateway, Zugangsdaten, die nicht hätten funktionieren dürfen. Alles danach ist lokal. Rechteausweitung ist lokal. Zugangsdatendiebstahl aus dem Speicher ist lokal. Aus dem Container auszubrechen, in dem der erste Fuß gefasst wurde, ist lokal. Dein Schema priorisiert Schritt eins der Kette und verschiebt die Schritte zwei bis fünf. Aber Schritt eins verschafft dem Angreifer immer nur eine Shell als unprivilegierter Dienstaccount in einem einzigen Container. Erst die Schritte zwei bis fünf machen daraus die Herrschaft über eine ganze Firma.
Mira Novak: Ich priorisiere also die Tür und vernachlässige das Innere.
Jonas Weber: Du priorisierst die Tür in der Annahme, dass sie halten kann. Und du weißt, wie diese Annahme sich in der Praxis schlägt. Sieh dir an, was tatsächlich auf den Listen der aktiv ausgenutzten Schwachstellen auftaucht — ein erheblicher Anteil nutzt lokale Privilege Escalation, genau weil sie der unverzichtbare zweite Zug sind. Angreifer respektieren unsere Taxonomie nicht. Sie verzichten nicht auf eine Schwachstelle, weil sie in irgendjemandes Tabelle einen niedrigeren Schweregrad hat.
Mira Novak: Du beschreibst einen Angreifer, der unsere Richtliniendokumente liest.
Jonas Weber: Ich beschreibe einen Angreifer, der unseren Patch-Rhythmus beobachtet und versteht — ein Richtliniendokument, das in einer Sprache geschrieben ist, die er sehr viel leichter lesen kann.
— IV. Wo die Unterscheidung reißt —
Mira Novak: Nun denn. Gib mir volle Breitseite. Wenn ich meine Idee aufgebe, will ich sie aus guten Gründen aufgeben. Und ich will genau wissen, aus welchen.
Jonas Weber: Gerne. Lass uns der Reihe nach vorgehen: Erstens: Netzwerk heißt nicht Internet. Das ist der Punkt, der dir in der Praxis am meisten wehtun wird, und es wird nicht technisch wehtun, sondern politisch. Der Vektor sagt, der Angriff läuft über eine Netzwerkschicht. Er sagt nicht, welches Netzwerk. Nim ein Air-gapped-System, ein rein internes System, von außen unerreichbar, kann trotzdem eine als netzwerk-ausnutzbar bewertete CVE erhalten. Aber wenn du einem Managementgremium die Worte "netzwerk-ausnutzbar" vorlegst, hören sie "vom Internet erreichbar" — und finanzieren entsprechend. Du hast eine Klassifikation gebaut, die von genau den Leuten systematisch falsch verstanden wird, die dein Budget vergeben. Der Vektor ist nicht gleich Exposition. Das sind unterschiedliche Fragen, und dein Zwei-Klassen-Schema wirft sie stillschweigend in einen Topf.
Mira Novak: Und andersherum ist es sogar schlimmer. Etwas, das echt vom Internet erreichbar ist, aber nur lokal ausnutzbar, landet in der als "unbedenklich" deklarierten Bucket.
Jonas Weber: Exakt. Da landet es. Zweitens: Die Mitte verschwindet. Ein Binärschema wirft benachbartes Netzwerk und physischen Zugriff weg. Für eine Webanwendung ist das zumutbar. Für Betriebstechnik ist es das nicht, wo der benachbarte Bus das Bedrohungsmodell ist — und für Automotive ist es das nicht, wo physischer Zugriff auf einen Steckverbinder für einen Forscher ein Dienstagnachmittag-Job ist und für einen Angreifer die ganze Produktlinie. Du hast eine Taxonomie entworfen, die für die Systeme funktioniert, die du selbst betreibst, und die für die Systeme versagt, die deine Kunden betreiben. ... Drittens: Der Angreifer ist manchmal von vornherein und dauerhaft lokal. Nimm alles, was du in fremde Hände aushändigst. Einen Stromzähler, eine Set-Top-Box, ein Fahrzeug, ein Zahlungsterminal oder eine Spielkonsole. Bei diesen versucht der Angreifer nicht, lokal zu werden. Er hat das Gerät gekauft. Lokaler Zugriff ist seine Ausgangslage, nicht sein Ziel. Jede lokal ausnutzbare Schwachstelle in diesem Produkt ist, aus der Sicht des Angreifers, eine netzwerk-ausnutzbare — weil das Netzwerk, das er braucht, ein Schraubenzieher ist.
Mira Novak: Das kippt das ganze Schema für eine komplette Produktkategorie um.
Jonas Weber: Es kippt, und zwar für die Kategorie, in der die Pflichten am schwersten wiegen und in der du dir einen Irrtum am wenigsten leisten kannst. Viertens: der umgekehrte Fall. Eine Air-gapped oder stark segmentierte, zero-trust Umgebung. Dort ist deine Netzwerk-Klasse weitgehend theoretisch, und deine lokale Klasse ist die reale. Gleiche Taxonomie, entgegengesetzte Rangfolge. Jede Klassifikation, die ihre eigene Reihenfolge je nach Architektur umkehrt, ist keine Klassifikation. Sie ist die Beschreibung einer einzigen Architektur. ... Fünftens: Bibliotheken wissen nicht, wie sie verwendet werden. Ein Vektor, der einer Bibliothek zugewiesen wird, unterstellt ein Referenz-Nutzungsmuster. Dein Produkt exponiert den verwundbaren Pfad vielleicht über eine API, kompiliert ihn vielleicht heraus, ruft ihn vielleicht nie auf. Die Schwachstelle erbt ihren wahren Vektor von der konsumierenden Anwendung, nicht von der verwundbaren Komponente. Und der Vektor in der öffentlichen Datenbank wurde von jemandem vergeben, der deine Anwendung nie gesehen hat. ... Sechstens: "bekannt ausnutzbar" ist keine einzelne Aussage. Dein Vorschlag sagt bekannt ausnutzbar. Bekannt wie? Existiert irgendwo ein Proof of Concept? Wird ein zuverlässiger, waffenfähiger Exploit gehandelt? Wurde er gegen echte Opfer beobachtet? Das sind drei völlig unterschiedliche Erkenntnisstände, und unsere Branche hat drei völlig unterschiedliche Instrumente dafür: einen Katalog dessen, was in freier Wildbahn beobachtet wurde, den CISA Known Exploited Vulnerability Katalog oder kurz KEV. Einen Wahrscheinlichkeitswert dafür, was bald ausgenutzt werden dürfte, den E P S S - Wert, das Exploit Prediction Scoring System von FIRST. Und den Vektor selbst, der nur beschreibt, was eben erforderlich wäre. Dein Zwei-Klassen-Schema hat eine ungelöste Unterscheidung an der Oberfläche und eine zweite, versteckt im Wort "bekannt".
Mira Novak: Der letzte Punkt ist fair, und den muss ich klar eingestehen. Ich habe "bekannt ausnutzbar" leichtfertig verwendet.
Jonas Weber: Das tun viele. Deshalb trägt der Begriff leider nihct mehr viel Information.
— V. Die Wende —
Mira Novak: Also gebe ich das Binärschema auf. Aber nicht den Impuls dahinter. Ich habe immer noch ein überlaufendes Speicherbecken und immer noch keine Analysten. Sag mir, wofür die Unterscheidung eigentlich gut ist — denn ich glaube nicht, dass sie nichts wert ist.
Jonas Weber: Gut, jetzt kommen wir zu etwas Nützlichem. Ich glaube, du hast die Angabe als Aussage zum Schweregrad gelesen, aber das ist sie nicht. Sie ist eine Aussage über Voraussetzung.
Mira Novak: Was heißt das?
Jonas Weber: Der Vektor sagt dir nicht, wie schlimm eine Schwachstelle ist. Er sagt dir, was ein Angreifer schon besitzen muss, bevor die Schwachstelle überhaupt nutzbar wird. Netzwerk: er muss eine Route besitzen. Lokal: er muss eine Position bzw. Zugang besitzen. Das ist keine Priorität. Es ist eine Eintrittsbedingung.
Mira Novak: Und eine Eintrittsbedingung ist nur gegenüber etwas aussagekräftig, das sie eigentlich verhindern soll.
Jonas Weber: Genau das ist der Punkt! Eine Voraussetzung ist nur im Verhältnis zu einer Grenze informativ. "Erfordert lokalen Zugriff" ist für sich allein nutzlos — und in dem Moment enorm aufschlussreich, in dem du fragst:"Welche meiner Grenzen soll eigentlich lokalen Zugriff verhindern?" Und: "Wie sehr kann ich mich darauf verlassen?"
Mira Novak: Die richtige Paarung ist also nicht Vektor zu Schweregrad. Es ist Vektor zu Trust Boundary?
Jonas Weber: Ja. Und diese Umdeutung leistet etwas, das dein Binärschema nicht konnte: sie fügt zusammen. Sie komponiert. Sie macht aus einem flachen Etikett eine Frage mit einer Antwort, die pro Deployment unterschiedlich ausfällt ... was auch richtig ist, weil jede Situation anders sein kann.
Mira Novak: Dann lass mich versuchen, den Ansatz neu aufzubauen. Nicht zwei Klassen, sondern drei. Die Erste: Ausnutzbar ohne jede vorherige Position. Der Angreifer braucht eine Route und sonst nichts. Das ist die Notfallklasse, und das war sie immer. Die Zweite: Nur aus einer Position ausnutzbar — aber diese Position ist eine, die eine Trust Boundary, bzw eine Grenze, auf die ich mich verlasse, eigentlich verweigern soll. Container Escape auf geteilter Infrastruktur. Privilege Escalation auf einem Multi Tenant Host. Alles auf einem Build-Runner. Alles auf einem Gerät, das der Kunde physisch in der Hand hält. Diese Klasse ist nominell lokal und operativ identisch mit der ersten Klasse — und ich hätte sie noch vor einer Stunde komplett in die Neunzig-Tage-Warteschlange geworfen. Die Dritte: Nur aus einer Position ausnutzbar, die nichts gewährt, was ich nicht ohnehin schon zugestehe. Privilege Escalation auf einer Einzelplatz-Workstation, wo der erste Fuß-in-der-Tür bereits der ganze Gewinn war. Das ist die Klasse, die wirklich warten kann.
Jonas Weber: Und Klasse zwei ist die, an der dein ursprüngliches Schema dich zugrunde gerichtet hätte.
Mira Novak: Sie ist die breite Mitte des Problems.
Jonas Weber: Und noch eine Sache. Da es noch eine Produktperspektive gibt und nicht nur eine Betreiberperspektive. Es gibt eine Asymmetrie zwischen unseren beiden Stühlen, die dein Vorschlag nicht berücksichtigt hat.
Mira Novak: Welche?
Jonas Weber: Du kennst das Deployment nicht. Ich schon ... oder zumindest habe ich hunderte davon gesehen. Ihr liefert in tausend Architekturen aus, die ihr nie gesehen habt und keine Analyse auf eurer Seite kann euch sagen, ob lokaler Zugriff bei einem bestimmten Kunden trivial oder unmöglich ist. Die Klassifikation kann also nicht euer Output sein. Was ihr schuldet, ist die präzise formulierte Voraussetzung — was ein Angreifer halten muss, welche Konfigurationen betroffen sind, welche nicht. Maschinenlesbar, wenn möglich, damit sie direkt verarbeitet anstatt nur gelesen wird.
Mira Novak: Und der Betreiber macht die Rangfolge.
Jonas Weber: Der Betreiber ist die einzige Partei, die die Rangfolge _machen kann_, weil die Rangfolge eine Tatsache über seine Architektur ist. Wenn ihr versucht, das für uns zu tun, ratet ihr — und euer Ratewert kommt mit der Autorität des Herstellers daher, was ihn schlimmer macht als gar keine Einschätzung, weil er die Leute vom Nachdenken abhält.
Mira Novak: Meine Seite liefert also die Voraussetzungen, die zutreffen müssen. Die Prüfung sozusagen. Deine Seite liefert den Kontext. Die Priorität ist die Schnittmenge.
Jonas Weber: Das ist die ganze Disziplin in einem Satz — und es ist genau der Satz, den deine zwei Klassen vermeiden wollten, sagen zu müssen.
Mira Novak: Oh, lass mir diese Erkenntnis übrig, da ich nicht mit leeren Händen gehen will.
Jonas Weber: Gerne. Greif zu!
Mira Novak: Erstens: Als Wording ist es exzellent zu nutzen. Mindestens die Hälfte der eingehenden Support-Last sind Kunden in Panik wegen einer Advisory. ... Der Hinweis "Erfordert lokalen Zugriff auf das Gerät" löst sehr viele dieser Gespräche mit einem einzigen Satz. Ehrlich, ohne irgendetwas zu verharmlosen. Das ist echter Wert — und es ist Kommunikationswert, nicht Priorisierungswert. Ich hatte die beiden vermischt.
Jonas Weber: Einverstanden, unter einer Bedingung: es darf nie benutzt werden, um ein Gespräch zu beenden. Es ist Kontext, keine Beruhigung.
Mira Novak: Klar. Zweitens: Als billiger Vorfilter überlebt die Betrachtung. Aber nur in Kombination mit anderen Informationen. Ein Exploit In freier Wildbahn beobachtet, sticht alles andere aus. Steht ein Exploit auf dieser KEV-Liste, ist der Vektor irrelevant. Die Wahrscheinlichkeit baldiger Ausnutzung verschiebt die Reihenfolge innerhalb der Bucket: Steigt die Wahrscheinichkeit, gewinnt es an Priorität. Und der Vektor liefert die Voraussetzung. Keines der drei Elemente funktioniert allein — und ich war auf der Suche nach einem, das es tut.
Jonas Weber: Und Drittens?
Mira Novak: Drittens, und das habe ich nicht erwartet: Als Messgröße ist die Trennung wirklich interessant — nur nicht als Priorisierungsmetrik. Wenn ich mein Backlog an lokal-ausnutzbaren Schwachstellen ist, bei denen ich auf eine Trust Boundary angewiesen bin, messe ich etwas, das mir keine andere Zahl sagt: Wie viel Schaden würde eine einziger Breach anrichten. Nicht, wie wahrscheinlich ein Einbruch ist. Sondern wie teuer der erste Einbruch wäre.
Jonas Weber: Blast-Radius-Debt.
Mira Novak: "Blast-Radius-Debt". Und ich würde einiges wetten, dass meine seit drei Jahren wächst. Ganz still und leise. Weil jedes Schema, das ich benutzt habe, genau diese Schwachstellen als die behandelt hat, die warten können.
— VI. Jonas fasst zusammen —
Jonas Weber: Lass mich das Ganze der Reihe nach ordnen, bevor einer von uns behauptet, wir hätten es erfunden. Der Vorschlag war, bekannte Schwachstellen in netzwerk-ausnutzbar und lokal-ausnutzbar zu teilen und zwei Uhren laufen zu lassen, um zu entlasten. Er scheitert in dieser Form aus sechs Gründen. Der Vektor ist eine Eigenschaft des Deployment, nicht der Schwachstelle — dieselbe CVE ist auf einem Laptop ein Ärgernis und auf einem geteilten Node eine Cluster-Kompromittierung. Netzwerk heißt nicht Internet, und der Ausdruck wird von genau den Leuten falsch gelesen, die unsere Arbeit finanzieren. Das Binärschema verwirft die Fälle "benachbart" und "physisch", die in Betriebstechnik und Automotive das ganze Bedrohungsmodell sind. Lokal setzt einen Fuß in der Tür nur dort voraus, wo ein Fuß in der Tür knapp ist — und auf Build-Infrastruktur, in Multi-Tenant-Systemen und auf jedem physisch übergebenen Gerät ist er das überhaupt nicht. Angriffe sind Ketten, und die lokale Klasse ist das zweite bis fünfte Glied fast jeder von ihnen. Und das Veröffentlichen einer solchen Trennung schafft ein beworbenes Zeitfenster, das der Gegner besetzen wird. Aber die Unterscheidung ist nicht wertlos. Es wurde nur die falsche Frage gestellt. Die Unterscheidung misst keinen Schweregrad. Sie formuliert eine Voraussetzung — was ein Angreifer schon können muss. Eine Voraussetzung ist nur im Verhältnis zu einer Trust Boundary aussagekräftig, deshalb ist die nützliche Paarung Vektor zu Trust Boundary des tatsächlichen Deployment, nicht Vektor zu Schweregrad. Daraus folgen drei Dinge. Eine Dreiteilung statt einer Zweiteilung, in der die entscheidende mittlere Klasse die lokal ausnutzbare Schwachstelle ist, die eine Trust Boundary überwindet, auf die man sich verlässt. Eine Arbeitsteilung, in der der Hersteller Voraussetzungen präzise veröffentlicht und der Betreiber, der allein die Architektur kennt, die Rangfolge vornimmt. Und eine Messgröße, die es wert ist erhoben zu werden: Der Impact des grenzüberwindenden Einbruchs — die Kosten des ersten Hacks, die noch nie ein Schwachstellenbericht erwähnt hat. Die Unterscheidung "Netzwerk vs. Lokal" ist echt. Sie ist aber ein Eingabewert. Sie war nie ein Entscheidungsverfahren — und die Versuchung, sie wie eines zu behandeln, ist genau proportional dazu, wie müde wir sind.
— VII. Mira zieht Bilanz —
Mira Novak: Ich bin hier reingekommen und wollte eine Regel, mit der ich aufhören kann nachzudenken — und ich will ehrlich sein, das war es tatsächlich, worum ich gebeten habe. Kein besseres Modell. Ein kleineres. Etwas, das mich sagen lässt diese Klasse wartet, ohne dass irgendjemand - mich eingeschlossen - das rechtfertigen muss. Dieser Instinkt ist beschämt mich nicht. Er kommt aus einer echten Zwangslage. Das Volumen ist tatsächlich jenseits dessen, was Abwägung im Einzelfall bewältigen kann, und niemand, der einem PSIRT-Lead sagt, er solle einfach jeden Fall sorgfältiger prüfen, hat die Fälle gezählt. Der Druck, das Problem zu verdichten, ist legitim. Aber ich glaube inzwischen, es gibt zwei Arten von Vereinfachung, und ich hatte sie nicht differenziert. Die eine reduizert Arbeit, indem sie Fragen entfernt, die nicht gestellt werden müssten. Die andere reduziert Arbeit, indem sie sich weigert, Fragen zu stellen, die wichitg sind. Die Lokal-gegen-Netzwerk-Trennung sah aus wie die erste , entpuppte sich aber als die Zweite. Sie verdichtet das Problem nicht. Sie verlagert es — aus meiner Warteschlange, wo es sichtbar ist und jemand dafür verantwortlich ist, in meine Architektur, wo es sich still ansammelt und nur ein einziges Mal auftaucht, in einer Form, die niemand einplant. Die Unterscheidung bleibt also, in drei Rollen, und keine davon ist die, die ich vorgeschlagen hatte. Sie bleibt als Sprache — weil "erfordert lokalen Zugriff" einem Kunden etwas Wahres und Nützliches sagt, und ich sollte es öfter sagen. Aber nie, um ein Gespräch zu beenden. Sie bleibt als einer von drei Eingabewerten — nach dem, was in freier Wildbahn beobachtet wurde, neben dem, was in naher Zukunft wahrscheinlich ausgenutzt wird, und immer als Voraussetzung gelesen, nicht als Urteil. Und sie bleibt als eine Messgröße, die ich vorher nicht erhoben habe — das Volumen lokal ausnutzbarer Werte, die auf Trust Boundaries beruhen, auf die ich mich verlasse. Diese Zahl ist der Preis des ersten Einbruchs, und ich wurde noch nie danach gefragt — wahrscheinlich genau deshalb ist sie so groß, wie ich vermute. Was sie nicht wird: eine Uhr. Zwei Uhren hätten sich nach Kontrolle angefühlt und wären ein Zeitplan gewesen, veröffentlicht für mögliche Gegner. Jonas, meine ehrliche Bilanz ist die: Ich habe gefragt, ob wir Schwachstellen danach sortieren sollten, wo der Angreifer stehen muss. Die bessere Frage war, was der Angreifer an Voraussetzungen erfüllen muss — und welche meiner Controls das eigentlich verhindern sollte. Das sind nicht dieselbe Fragen, und nur die zweite hat eine Antwort, nach der ich handeln kann.
Jonas Weber: Und was ist mit Deinem Reservoire?
Mira Novak: Immer noch voll. Aber ich weiß jetzt, welcher Teil davon trägt — und das ist mehr, als ich heute Morgen wusste.
— Outro —
Anni Brandt: OK, ... Blast-Radius-Debt ... Das nehme ich glatt mit ins nächste Team-Meeting! Das war unsere erste Folge! Ich hoffe, sie war informativ und du hast was mitgenommen. Ich auf jeden Fall. Danke, Mira. Danke, Jonas. Abonnier uns gern den Podcast. Wir planen, wöchentlich zu veröffentlichen, meistens freitags. Es ist also reichlich Zeit, reinzuhören. In Kürze gibt's uns auch über Apple Podcasts und die üblichen anderen Podcast-Quellen. Über Feedback freue ich mich immer — schreib mir gern unter podcast at E A C G punkt de. Unsere nächste Folge behandelt Risikomanagement. Sie heißt "Risiko ist Eintrittswahrscheinlichkeit mal Schadenshöhe". Bis dann!