Was passiert, wenn Sie mlock (2) Speicher bereits ausgetauscht haben?

291
Awn

Einfache Frage, aber ich konnte keine Antwort finden.

Wenn sich eine Seite im Speicher befindet, die bereits vom Kernel auf die Festplatte ausgelagert wurde, und der Prozess des Besitzers mlock (2) oder VirtualLock auf dieser Seite im Speicher aufruft, was passiert dann?

Ist es sofort wieder in den physischen Speicher zurückgeschaltet? Wurde es von der Festplatte gelöscht? Wenn man das Schreiben von vertraulichen Informationen auf eine Seite bis nach dem Aufruf von mlock (2) verzögert, würde dies garantieren, dass sie nicht auf die Festplatte geschrieben werden?

Was würden Sie als geringfügige Anschlussfrage tun, um eine solche Eventualität zu mildern?

1

1 Antwort auf die Frage

1
Austin Hemmelgarn

Bei einer aktuellen Upstream-Version des Linux-Kernels werden die Seiten erneut in den Fehlerzustand versetzt, die Kopien werden jedoch anscheinend unverändert gelassen.

Ich glaube, die meisten BSD-Systeme und andere UNIX-Systeme verhalten sich ähnlich, sind sich aber nicht sicher über Windows.

Wenn Sie etwas schreiben, bis nach dem Aufruf von mlock () etwas verzögert wird, wird verhindert, dass die Daten ausgelagert werden. Es kann jedoch nicht garantiert werden, dass die Daten nicht auf die Festplatte geschrieben werden, es sei denn, eine durch ACPI S4 und das Betriebssystem vermittelte Ruhezustand ist nicht möglich und Sie befinden sich nicht in einer VM (Wenn Sie sich in einer VM befinden, befinden Sie sich möglicherweise unter einem Typ 1-Hypervisor und unterliegen daher den Einschränkungen des virtuellen Speichers des Hostsystems, auf die Sie keinen Einfluss haben.)

Zu einer angemessenen Minderung gehört daher Folgendes:

  • Behandlung auf Anwendungsebene, um zu verhindern, dass vertrauliche Daten länger im RAM verbleiben, als es erforderlich ist, selbst wenn die Region gesperrt ist.
  • Handhabung auf Systemebene zum Deaktivieren von ACPI S4 (normalerweise nur bei OEM-Systemen erforderlich), Verhinderung des vom Betriebssystem ausgehenden Ruhezustands und Sicherstellung des Vertrauens in das Hostsystem bei Ausführung in einer VM.
Haben Sie irgendwelche Hinweise, wo ich etwas über die Politik von Windows erfahren könnte? Awn vor 6 Jahren 0
Nicht aus meinem Kopf. Ich habe unter Linux mit einem einfachen Testprogramm und einigen kreativen Skripts mit Kontrollgruppen überprüft, um das Auslagern von Daten im Programm zu erzwingen. Die Aussage zu * BSD basiert meistens auf der Tatsache, dass sich Linux bei BSD-Systemen in der Regel sehr ähnlich verhält, wenn Sie sich mit solchen Dingen befassen, daher sollten Sie das auch noch einmal überprüfen. Austin Hemmelgarn vor 6 Jahren 1