expertenaustausch > linux.debian.user.german

Jochen van Geldern (02.05.2020, 13:40)
Wie sicher ist tmpfs?
1. Nach ein Neustart ist der Inhalt von tmpfs Unwiderruflich verloren,
oder?
2. Ohne Neustrart lassen sich gelöschte Dateien in tmpfs wieder
herstellen? Oder ist es besser sie zu shreddern?
Harald Weidner (02.05.2020, 14:20)
Hallo,

> Wie sicher ist tmpfs?
> 1. Nach ein Neustart ist der Inhalt von tmpfs Unwiderruflich verloren,
> oder?
> 2. Ohne Neustrart lassen sich gelöschte Dateien in tmpfs wieder
> herstellen? Oder ist es besser sie zu shreddern?


Ein tmpfs ist ein Dateisystem im RAM. Das RAM wird beim Neustart gelöscht,
die Dateien sind damit weg.

Bei einem harten Ausschalten bleiben RAM-Inhalte strenggenommen noch einige
Sekunden lesbar, was sich durch Kühlung auf einige Minuten ausdehnen lässt.
Professionellen Angreifern genügt das oft, um auf die Daten zuzugreifen.

Auch kann es sein, dass die Daten des tmpfs auf den Swap-Speicher ausgelagert
werden und damit auf der Festplatte/SSD landen. Dort können sie mit den
richtigen Werkzeugen ggf. wiederhergestellt werden.

Gegen beide Angriffe hilft allerdings kein shreddern, sondern nur
Verschlüsselung.

Gruß, Harald
Jochen van Geldern (02.05.2020, 15:20)
Am Sat, 2 May 2020 14:14:30 +0200
schrieb Harald Weidner <hweidner-lists>:

> Hallo,
> Ein tmpfs ist ein Dateisystem im RAM. Das RAM wird beim Neustart
> gelöscht, die Dateien sind damit weg. Gut wenn das passiert.
> Bei einem harten Ausschalten bleiben RAM-Inhalte strenggenommen noch
> einige Sekunden lesbar, was sich durch Kühlung auf einige Minuten
> ausdehnen lässt. Professionellen Angreifern genügt das oft, um auf
> die Daten zuzugreifen.

Aber dafür muss man Physisch Zugriff auf die Hardware habe.
Das kann man aber in mein Falle ausschließen.
> Auch kann es sein, dass die Daten des tmpfs auf den Swap-Speicher
> ausgelagert werden und damit auf der Festplatte/SSD landen. Dort
> können sie mit den richtigen Werkzeugen ggf. wiederhergestellt werden.

Da hilft das Verschlüsseln des swaps mit Zufälliger Schlüssel oder kein
swap benutzen.
> Gegen beide Angriffe hilft allerdings kein shreddern, sondern nur
> Verschlüsselung.

Warum hilft kein Schreddern, wenn die Daten nur kurzfristig (Maxmal 10
Minuten) nur in tmpfs gespeichert werden. Werden sie dort nicht nur
onplace gespeichert und dort überschrieben?
Bei Datenträger wie SSD's und auch viele Filesystem überschreibennicht
onplace oder bleiben Kopien der alten Daten auf einer andere Stelle
zurück?

Ich Dachte, bei tmpfs geht es um minimalen Overhead,Maximalen
performance und nicht um maximaler Datensicherheit.
Harald Weidner (03.05.2020, 15:50)
Hallo,

> Warum hilft kein Schreddern, wenn die Daten nur kurzfristig (Maxmal 10
> Minuten) nur in tmpfs gespeichert werden. Werden sie dort nicht nur
> onplace gespeichert und dort überschrieben?
> Bei Datenträger wie SSD's und auch viele Filesystem überschreiben nicht
> onplace oder bleiben Kopien der alten Daten auf einer andere Stelle
> zurück?


Ein tmpfs kein Filesystem im eigentlichen Sinne, sondern eine Datenstruktur
mit Zeigern auf Blöcke aus dem Linux VFS Cache Layer. Wenn neue Daten
geschrieben werden, dann werden die je nach Größe entweder in den
vorhandenen Block kopiert, oder der neue Block wird per Verzeigerung
eingebunden und der alte zurückgegeben. Das sind aber Implemtierungsdetails,
die sich in jeder neuen Kernelversion ändern können. Ich würde mich nicht
darauf verlassen, dass eine Datei im tmpfs phyisch überschreibbar ist.

Manche empfehlen stattdessen, eine RAM-Disk nutzen, also ein Device wie
/dev/ram0. Darauf kann man ein Filesystem mit der gewünschten Eigenschaft
anlegen, z.B. ext2. Aber auch hier würde ich mich nicht darauf verlassen,
dass die Kernelentwickler nicht eines Tages auf die Idee kommen, den
genutzten RAM physisch umzusortieren, etwa um größere Speicherblöckeam
Stück frei zu bekommen.

Wenn du Dateien (egal ob RAM oder HDD) zuverlässig löschbar machen willst,
ist es m.E. der einzige ganzbare Weg, die Daten zu verschlüsseln, den
genutzten Schlüssel im eigenen Prozessraum zu behalten und ihn nach
Gebrauch zu überschreiben.

Selbst hier hast du keine 100%ige Sicherheit, dass nicht zwischenzeitlich
der Schlüssel in fremde Hände gelangt ist, etwa durch Meltdown und andere
Seitenkanal-Angriffe. Da hat dann allerdings gar nichts mehr mit tmpfs zu
tun. ;-)

Gruß, Harald
Jochen van Geldern (03.05.2020, 16:20)
Am Sun, 3 May 2020 15:47:09 +0200
schrieb Harald Weidner <hweidner-lists>:

[..]
> durch Meltdown und andere Seitenkanal-Angriffe. Da hat dann
> allerdings gar nichts mehr mit tmpfs zu tun. ;-)
> Gruß, Harald


Frage:
Gibt es den schon fertige Explodes um auf gelöschte Dateien in tmpfs
zuzugreifen?
Jochen van Geldern (04.05.2020, 09:10)
Am Sun, 3 May 2020 15:47:09 +0200
schrieb Harald Weidner <hweidner-lists>:

> Hallo,
> Ein tmpfs kein Filesystem im eigentlichen Sinne, sondern eine
> Datenstruktur mit Zeigern auf Blöcke aus dem Linux VFS Cache Layer.


Das ist mir schon klar, da tmpfs kein Block-Gerät benutzt.

> Wenn neue Daten geschrieben werden, dann werden die je nach Größe
> entweder in den vorhandenen Block kopiert, oder der neue Block wird


Also in diesen Falle Onplace und die alten Daten werden überschrieben
und sind Unwiderruflich Verloren.

> per Verzeigerung eingebunden und der alte zurückgegeben. Das sind
> aber Implemtierungsdetails, die sich in jeder neuen Kernelversion
> ändern können. Ich würde mich nicht darauf verlassen, dasseine Datei
> im tmpfs phyisch überschreibbar ist.


In diesen Falle kann man die Sicherheit erhöhen, in den die alten
Blöcke vor der Rückgabe löscht. Sowas müsste leicht in Kernel-Code
patchen können.
> Manche empfehlen stattdessen, eine RAM-Disk nutzen, also ein Device
> wie /dev/ram0. Darauf kann man ein Filesystem mit der gewünschten
> Eigenschaft anlegen, z.B. ext2. Aber auch hier würde ich mich nicht


Da hat man aber wieder zusätzlich ein Filesystem in Soiel und man hat
die Möglichkeit direkt auf die Ram-Disk zuzugreifen. Das bietet doch
mehr Möglichkeiten für ein Angriff und das mit Bordmitteln.

> darauf verlassen, dass die Kernelentwickler nicht eines Tages auf die
> Idee kommen, den genutzten RAM physisch umzusortieren, etwa um
> größere Speicherblöcke am Stück frei zu bekommen.
> Wenn du Dateien (egal ob RAM oder HDD) zuverlässig löschbar machen
> willst, ist es m.E. der einzige ganzbare Weg, die Daten zu
> verschlüsseln, den genutzten Schlüssel im eigenen Prozessraum zu
> behalten und ihn nach Gebrauch zu überschreiben.

Wenn die Daten nur in ein Prozess bearbeitet würde, bräuchte man die
Daten erst gar nicht in einer Datei zu schreiben und nur in Prozessraum
zu halten. Aber leider müssen völlig verschiedene Anwendungen aufdiese
Daten zugreifen können.

> Selbst hier hast du keine 100%ige Sicherheit, dass nicht
> zwischenzeitlich der Schlüssel in fremde Hände gelangt ist, etwa
> durch Meltdown und andere Seitenkanal-Angriffe. Da hat dann
> allerdings gar nichts mehr mit tmpfs zu tun. ;-)
> Gruß, Harald

Ich weiss schon das es kein 100%igen Schutz geben kann.
Das ist aber auch nicht die Intension die ich erreichen will. Es geht
nur drum die Daten vor irgendwelche Script-Kittys zu schützen.
Hacker-Profis haben natürlich das bessere Wissen und die
Hilfmittelausstatung um irgendwie an die Daten zu kommen.
Ähnliche Themen