Hat die NSA eine Hintertür in jeder CPU seit 2007?
Stimmt das ?
5 Antworten
Das kann man so nicht sagen, es gibt keine direkten Beweise dafür.
Was man aber sagen kann:
- es kann Lücken in CPUs geben, und die wären für Geheimdienste auch interessant
- viele verdächten etwa die Intel ME, das ist ein Chip der auch Netzwerkzugriff haben kann und nicht gut dokumentiert ist. Ist aber nicht der einzige Hersteller oder Punkt bei denen so etwas möglich wäre.
- es gibt in CPUs auch undokumentierte Intsructions bei denen nur der Hersteller weiß was sie machen.
Ich denke nicht, dass deine Aussage so stimmt. Es wäre aber logisch, dass sich ein Geheimdienst für unbekannte Lücken in verbreiteten CPUs interessieren würde, und es ist nicht ausgeschlossen, dass es bewusst implementierte Backdoors gibt.
So was wäre zwar möglich, aber die schlechteste Hintertür aller Zeiten!
Ohne Hilfe des Betriebssystems kann die CPU keine Daten - egal welche - irgendwohin bringen oder annehmen.
Auch weiß die CPU ja nicht, was die da macht. Die arbeitet Stur Maschinenbefehle nacheinander ab und berechnet und kopiert Daten. Was das für Daten sind und wozu die gehören, kann die CPU nicht wissen.
Außerdem bekommt die CPU nie zusammenhängende Daten, also zum Beispiel ein komplettes Dokument zu Gesicht. Mit irgendwelchen zufällig erwischten Datenfragmenten kann man nichts anfangen.
Ein viel besseres Ziel wo man eine gezielte Kontrolle über das ganze System hat, das ist das UEFI, also der Nachfolger des BIOS. Darüber kann man gezielt Funktionen im Betriebssystem einschmuggeln die dann die volle Kontrolle des Computers übernehmen können.
Das würde einen immensen Aufwand bedeuten der dann auch sehr schnell entdeckt würde und Auffliegt.
Auch wäre das dann ein elementarer Bestandteil des CPU Designs und das lässt sich nicht vor den Mitarbeitern geheim halten. Und da gibt es zu viele als dass man die kontrollieren könnte und Whistleblower ausschließen könnte.
Eine Hintertür in der CPU wäre wie eine Hintertür im 30. Stockwerk. Kann jeder sehen, ist absolut schwierig zu benutzen und einfach nur gefährlich für alle Beteiligten.
Da ist es viel einfacher so was in einen Board Treiber, ins UEFI oder gleich ins Betriebssystem selber ein zu bauen. Klein, effizient, leicht zu benutzen und absolut unauffällig.
Du schreibst es ja selbst, das bringt nur etwas, wenn du im OS oder einer Anwendung Code Execution hast. Das ist nicht unmöglich, aber ein weiteres Hindernis. Und dann musst du in dem Exploid auch noch wissen, wo welche Daten im Speicher abgelegt sind und wie du das manipulieren musst, um dann auch wirklich Zugriff auf Daten des Betriebssystems zu bekommen.
Eine Backdoor in einer Anwendung oder einem Betriebsystem wäre da die um Längen einfachere Variante.
Was mir Sorgen macht ist, dass man bei modernen PCs dauernd Board Updates machen muss. Und da lässt sich sehr einfach sehr viel mit anstellen. Vor allem weil die meisten Benutzer einfach nach dem Update File googeln und nicht wissen wo man das direkt vom Hersteller bekommt und vor allem nicht wie man feststellen kann ob das eine manipulierte Version ist.
Ihr habt ja bei einer Sache recht. Das Risiko so einer Backdoor wäre enorm, wenn das außer Kontrolle gerät gibts einen riesen Schaden, gerade auch für die Sicherheit der eigenen Nation. Das ist das beste Argument dagegen und für Backdoors auf weniger kritischen Ebenen, die sich notfalls einfacher mitigierern lassen.
Aber, wenn ihr denkt Code Execution wäre das große Problem, warum lassen wir denn nicht alles auf root laufen? Wofür SE Linux, AppArmor, Container, oder VMs nutzen.
Wenn ihr denkt, so eine Backdoor würde sofort auffliegen, warum wurden in den letzten Jahren so viele Hardware (oder Microcode) Bugs gefunden, die schon Jahre unmitigiert rum lagen?
Es ist ja nicht so, dass ihr ein komplettes Programm in der CPU verstecken müsst, viel mehr, dass ihr durch so eine Backdoor eurer Payload die Rechte geben könnt die Daten auszulesen die ihr braucht. Also die Argumente verplüffen mich schon :D
Mittlerweile gibt es zumindest Hersteller, die die Updates signieren, wo die Vorversion der Software vor der Installation des Updates die Signatur prüft.
Aber auch das Problem ist bei Software-Updates für Anwendungen / OS größer, allerdings werden dort mittlerweile fast immer Signaturen geprüft.
Wenn ihr denkt, so eine Backdoor würde sofort auffliegen, warum wurden in den letzten Jahren so viele Hardware (oder Microcode) Bugs gefunden, die schon Jahre unmitigiert rum lagen?
Weil diese Bugs nur kleinere Störungen verursachen und alles sozusagen in 99,999% aller Fälle reibungslos funktioniert. Warum da einen Bug suchen?
Der in SSH bei Linux eingeschmuggelte Code ist aufgeflogen weil die Performance vom SSH Dienst plötzlich deutlich schlechter wurde. Also hat da dann einer nachgeguckt was da los ist und die Hintertür entdeckt.
Bei einem Bug der nur ein mal im Jahr auftritt, da merkt ja keiner was und wenn ist beim Nachschauen ja alles in Ordnung bis der Bug nach vielen monaten wieder zuschlägt.
Das mit dem Intel Microcode zur Überhitzung ist kein Bug des Microcodes, das ist ein Designfehler der CPU selber. Und über die Microcodes wurde das dann gepatcht in dem die CPU in bestimmten Situationen künstlich gebremst wird.
Ich rede schon von Security kritischen Bugs und keiner Überhitzung.
Moderne Backdoors, zumindest wie solche von denen wir hier reden, werden als bewusste Bugs designed.
In einer CPU kannst du nicht mal eben nachschauen. Wie in meiner Antwort erwähnt, es gibt unddokumentierte Instructions die von normalen Programmen gar nicht genutzt werden. Wie möchtest du als normaler Konsument da einen Bug finden?
Aber, wenn ihr denkt Code Execution wäre das große Problem, warum lassen wir denn nicht alles auf root laufen? Wofür SE Linux, AppArmor, Container, oder VMs nutzen.
Weil genau das Code Execution Lücken bzw. die Auswirkungen davon auf mehreren Ebenen verhindern soll, indem es den Zugriff auf Ressourcen, Dateien, etc. verbietet. Eine Anwendung darf halt kein /dev/mem oder /dev/sda lesen, root schon. Durch eine Backdoor in der CPU wäre dieser Schutz dahin, weil das OS das nicht mitbekommt.
Wenn dann müsste das im betriebssystem sein cpu macht nur verarbeitung und berrechnung
Das würde nicht funktionieren, weil die Hintertür in einer CPU nichts bringt, solange die NSA nicht auch eine Hintertür im Betriebssystem und/oder Anwendungen hat.
Ja klar. Wer würde das denn wollen.
Eine Sache verstehe ich aber nicht. Wenn ich mehr Rechte als Ring 0 habe, wofür brauche ich dann eine Lücke im OS? Kannst du mir das noch mal erklären?
Du musst erstmal dahin kommen, da Code einzubringen. Und eine CPU hat nunmal keinen eigenen Netzwerkstack, daher wird es schwierig, ohne das OS / eine Anwendung da Code hinzubekommen. Mal IPMI / Netzwerkboot ausgenommen (sofern aktivier t und üebrhaupt von außen erreichbar, beides gleichzeitig dürfte eher selten sein), aber in dem Fall hast du dann keinen Zugriff auf die abgelegten Daten des Betriebssystems, so dass dir das auch nicht viel bringt. Du willst ja als NSA / Angreifer wahrscheinlich gezielt Daten aus dem laufenden System, und dazu musst du erstmal die Möglichkeit haben, das Programm zur CPU zu bringen.
Dazu müssen die Daten, die über Netzwerk kommen, aber erstmal als Code ausgeführt werden. Und dass erfordert eben eine Code Execution Lücke in der Anwendung oder dem OS. Wenn du da Code Execution hast, kannst du dann klar jede weitere Sicherheitsschranke mit einer Lücke in der CPU umgehen.
Klar, wäre aber nicht das erste Mal, aber da war eben die Lücke im Hypervisor und nicht in der CPU.
Nein, das ist Quatsch.
Mit der richtigen Backdoor in der CPU kannst du jede Zugangskontrrolle des OS umgehen.
Du könnstest Code Execution in irgendeinem isolierten Context haben und Zugriff auf die komplette Hardware erlangen, ohne Lücke im OS. Selbst wenn dein Code in einem Container oder Hardware Virtualisierung läuft.
Richtig schlechte Hintertür.