xexex schrieb:
Jedes lokal ausgeführte Programm, kann problemlos den gesamten Speicher deines PCs auslesen, OHNE das es dafür Spectre oder Meltdown braucht! Selbst Programme die "nur" mit Benutzerrechten ausgeführt werden, können den gesamten Userspace auslesen und somit alles was du in der Sitzung gestartet hast.
Echt? Quelle?
Ich dachte immer der Kernel weißt jedem Prozess einen eigenen virtuellen Adressraum zu, der unter Verwendung von ASLR sogar noch verwürfelt wird.
Unter Linux benötige ich zum Zugriff auf /dev/mem/ jedenfalls immer mindestens Root-Rechte.
Für eine Erklärung wie das anders geht, wäre ich dankbar.
Die neue Lücke ermöglicht es Scripten aus einer Sandbox heraus auf den Speicher zuzugreifen und macht eben "Angriffe" über Browser möglich.
Macht
unter anderem Zugriffe aus dem Browser möglich. JDownloader oder jedes andere Java-Applet kann selbstverständlich weiter missbraucht werden. Ebenso könnten zum Beispiel auch versteckte Makros oder ähnliches benutzt werden. Von Access-Dateien mal ganz zu schweigen.
Trotzdem bleiben die Angriffsmöglichkeiten lächerlich klein, damit es sich lohnt damit Hänschen Klein anzugreifen. Ich kann nur lesen, die meisten Daten sind Datenmüll, der Aufwand ist schlichtweg sehr groß.
Auch wenn Du es immer wiederholst, die 500 kb/s sind nicht mehr aktuell.
Herr Gruss sagte klipp und klar, 8GB in 2 Stunden Mit einem Kern wohlgemerkt. Macht 1,13 MB/Stunde.
Und die PoC sind nicht mal optimiert.
Der Aufwand spezielle Programme auszulesen ist ebenfalls eher sehr gering, wenn die Toolboxen installiert werden.
Schau Dir doch mal die Toolboxen unter Kali Linux und Konsorten an.
Da ziehst Du Ziel-Programme per Drag&Drop in dein Fenster, für den Virus den Du erstellen willst. Und das ist was die Vorredner sagten. In Zukunft ziehst Du dann Mozilla oder JDownloader oder Access Build <2018 in den Hauptfenster-Bereich und direkt ist eine Meltdown (und/oder Spectre-) Variante als mögliche Abprüfung mit enthalten. Inklusive den gängigen Wegen wie man die im memory identifiziert. Das wars.
Da brauchst Du kein aufwendiges Pointing oder sonstwas mehr in den Memory-Bereich selber coden. Reinziehen. Fertig.
Die CPU Operationen sind alles anderes als normal. Allerdings überwachen Virenscanner (derzeit) keine CPU Operationen sondern Systemzugriffe.
Sind wir jetzt nicht bei Spectre? Der Meltdown-Grundcode zu dem eventuell noch eine Schleife muss ist mit:
Code:
; rcx = kernel address
; rbx = probe array
retry:
movzx rax, byte [rcx] ; Lädt den Inhalt der auszulesenden Speicherstelle in Registers rax.
; Das führt zu einer Ausnahmebehandlung.
; Der folgende Code wird nur prozessorintern im Voraus ausgeführt.
shl rax, 12 ; Multipliziert den Inhalt des 64-bit Registers rax mit 4096,
; so dass es nun eine Seitenadresse enthält, die vom Inhalt der
; auszulesenden Speicherstelle abhängt.
jz retry ; Beginnt von vorn, wenn das Zero-Flag (und damit hier auch rax)
; gleich 0 ist (Auch bei [rcx]=0 keine Endlosschleife, da aufgrund
; der Ausnahmebehandlung die out-of-order Ausführung schließlich
; abgebrochen wird).
mov rbx, qword [rbx + rax] ; Greift auf eine Speicherstelle auf der Seite zu, deren Adresse in
; rax steht. Dies lädt eine Seite in den Cache, deren Adresse vom
; Inhalt der auszulesenden Speicherstelle abhängt.
in meinen Augen lächerlich unkompliziert und klein.
Der Ansatz von Trendmicro wird sein, in der Zukunft Leistungsindikatoren der CPU zu überwachen und bei entsprechenden Anzeichen Alarm zu schlagen. Derzeit beschränkt man sich darauf die diversen POCs zu erkennen und zu blocken.
Klar, Heuristiken waren ja schließlich in den letzten dreißig Jahren das absolute Sicherheitsfeature und total schwer mit Verzweigungen im Code zu täuschen!