DEFCON 21. Passwörter allein reichen nicht aus, oder warum wird die Festplattenverschlüsselung unterbrochen und wie kann dies behoben werden? Teil 1

Vielen Dank an alle, die gekommen sind. Heute werden wir über die vollständige Festplattenverschlüsselung (FDE) sprechen, die nicht so sicher ist, wie Sie denken. Heben Sie Ihre Hände, die so die Festplatte Ihres Computers verschlüsseln. Erstaunlich! Willkommen bei DefCon!



Es scheint, dass 90% von Ihnen Open Source-Software verwenden, um Ihr Laufwerk zu verschlüsseln, um sie überwachen zu können. Lassen Sie nun diejenigen, die den Computer ausschalten, wenn sie ihn unbeaufsichtigt lassen, ihre Hände heben. Ich denke an 20% der Anwesenden. Sagen Sie mir, wer lässt Ihren Computer mehrere Stunden lang unbeaufsichtigt? Ist es wichtig, ob er ein- oder ausgeschaltet ist? Stellen Sie sich vor, ich stelle diese Fragen. Stellen Sie nur sicher, dass Sie keine Zombies sind und nicht schlafen. Ich denke, dass fast jeder seinen Computer für mindestens ein paar Minuten verlassen musste.

Warum verschlüsseln wir unsere Computer? Es ist schwierig, jemanden zu finden, der diese Frage stellt, daher denke ich, dass es wirklich wichtig ist, die Motivation für bestimmte Maßnahmen im Bereich der Sicherheit zu formulieren. Wenn wir dies nicht tun, werden wir nicht verstehen können, wie diese Arbeit zu organisieren ist.

Es gibt eine Menge Dokumentation für Festplattenverschlüsselungssoftware, die beschreibt, was die Software tut, welche Algorithmen sie verwendet, welche Passwörter usw., aber es ist fast nirgends zu sagen, warum dies getan wird.

Deshalb verschlüsseln wir unseren Computer, weil wir unsere Daten kontrollieren wollen, ihre Vertraulichkeit gewährleisten wollen und niemand sie ohne unser Wissen stehlen oder ändern kann. Wir wollen selbst entscheiden, was mit unseren Daten geschehen soll, und kontrollieren, was mit ihm passiert.

Es gibt Situationen, in denen Sie lediglich die Vertraulichkeit von Daten gewährleisten müssen, z. B. wenn Sie Anwalt oder Arzt mit vertraulichen Kundeninformationen sind. Gleiches gilt für Finanz- und Buchhaltungsunterlagen. Unternehmen müssen Kunden über das Auslaufen solcher Informationen informieren, beispielsweise wenn jemand einen ungeschützten Laptop in einem gestohlenen Auto zurückgelassen hat und diese vertraulichen Informationen nun möglicherweise im Internet frei verfügbar sind.

Darüber hinaus ist es erforderlich, den physischen Zugriff auf den Computer zu kontrollieren und seinen Schutz vor physischen Auswirkungen sicherzustellen, da FDE nicht hilft, wenn jemand physisch die Kontrolle über Ihren Computer übernimmt.

Wenn wir die Netzwerksicherheit gewährleisten möchten, müssen wir den Zugriff auf den Endbenutzercomputer steuern. Wir werden kein sicheres Internet aufbauen können, ohne die Sicherheit jedes Endbenutzers zu gewährleisten.



Also haben wir die theoretischen Aspekte der Notwendigkeit der Festplattenverschlüsselung herausgefunden. Wir wissen, wie man Zufallszahlen generiert, um die Schlüsselsicherheit zu gewährleisten, wie man die Blockverschlüsselungsmodi steuert, die zum vollständigen Verschlüsseln eines Laufwerks verwendet werden, wie man einen Schlüssel für Passwörter sicher erbt, damit wir davon ausgehen können, dass die „Mission abgeschlossen“ ist, wie Präsident Bush sagte an Bord eines Flugzeugträgers. Aber Sie wissen, dass dies nicht der Fall ist, und wir haben noch viel zu tun, um es zu vervollständigen.

Selbst wenn Sie eine fehlerfreie Kryptografie haben und wissen, dass es fast unmöglich ist, sie zu knacken, sollte sie auf jeden Fall auf einem echten Computer implementiert werden, auf dem Sie keine Analoga zuverlässiger "Black Boxes" haben. Ein Angreifer muss die Kryptografie nicht angreifen, wenn er versucht, die vollständige Festplattenverschlüsselung zu knacken. Dazu muss er nur den Computer selbst angreifen oder den Benutzer irgendwie dazu verleiten, ihn zu überzeugen, ein Passwort anzugeben, oder den Keylogger-Keylogger usw. verwenden.

Die tatsächliche Verwendung der Verschlüsselung entspricht nicht dem FDE-Sicherheitsmodell. Wenn Sie sich Software ansehen, die für die vollständige Festplattenverschlüsselung entwickelt wurde, können Sie feststellen, dass die Entwickler den theoretischen Aspekten der Verschlüsselung große Aufmerksamkeit geschenkt haben. Ich werde einen Auszug aus der technischen Dokumentation der TrueCrypt-Website zitieren: „Unser Programm schützt keine Daten auf dem Computer, wenn der Angreifer vor dem Start oder während TrueCrypt physischen Zugriff auf den Computer hat.“



Im Prinzip sieht ihr gesamtes Sicherheitsmodell folgendermaßen aus: "Wenn unser Programm die Festplatte korrekt verschlüsselt und die Festplatte korrekt entschlüsselt, haben wir unsere Arbeit erledigt." Ich entschuldige mich für den Text, der auf der nächsten Folie gezeigt wird. Wenn Sie Schwierigkeiten haben, ihn zu lesen, werde ich ihn selbst machen. Dies sind Auszüge aus der Korrespondenz zwischen TrueCrypt-Entwicklern und der Sicherheitsforscherin Joanna Rutkovskaya über die Angriffe des „Reinigers“.

TrueCrypt: „Wir ziehen niemals die Möglichkeit von Hardware-Angriffen in Betracht, wir nehmen nur das Schlimmste an. Nachdem der Angreifer auf Ihrem Computer "gearbeitet" hat, müssen Sie ihn nur noch nicht mehr zum Speichern vertraulicher Informationen verwenden. Der TPM-Kryptoprozessor kann Hardwareangriffe beispielsweise mit Keyloggern nicht verhindern.

Joanna Rutkovskaya fragte sie: "Wie kann ich feststellen, ob ein Angreifer auf Ihrem Computer" funktioniert "hat oder nicht, weil Sie nicht immer einen Laptop bei sich haben?", Worauf die Entwickler antworteten: "Es ist uns egal, wie der Benutzer Sicherheit und Schutz gewährleistet Ihr Computer. Ein Benutzer könnte beispielsweise ein Schloss verwenden oder einen Laptop platzieren, während er sich in einem abschließbaren Schrank oder Safe befindet. “ Joanna antwortete ihnen sehr richtig: "Wenn ich ein Schloss oder einen Safe benutzen werde, warum brauche ich überhaupt Ihre Verschlüsselung?"



Das Ignorieren der Möglichkeit eines solchen Angriffs ist also ein Scherz, das können wir nicht! Wir leben in der realen Welt, in der diese Systeme existieren, mit denen wir interagieren und die wir verwenden. Es gibt keine Möglichkeit, 10 Minuten eines Angriffs, der nur mit Software, beispielsweise von einem Flash-Laufwerk, ausgeführt wird, mit etwas zu vergleichen, das Sie ausführen können, indem Sie das System ausschließlich mit Hardware manipulieren.
Unabhängig davon, was sie sagen, hängt die physische Sicherheit und Widerstandsfähigkeit gegenüber physischen Angriffen von der FDE ab. Es spielt keine Rolle, was Sie an Ihrem Sicherheitsmodell aufgeben, und zumindest wenn sie keine Verantwortung übernehmen möchten, sollten sie dem Benutzer sehr klar und ehrlich erklären, wie leicht der von ihnen angebotene Schutz gehackt werden kann.

Die folgende Folie zeigt das abstrakte FDE-Startdiagramm, das von den meisten modernen Computern verwendet wird.



Wie wir wissen, wird der Bootloader über das BIOS von der SSD / HDD geladen und über den Datenübertragungspfad Storage Controller - PCI Bus - Platform Controller Hub in den Hauptspeicher kopiert. Der Bootloader fragt den Benutzer dann nach Authentifizierungsinformationen, z. B. einem Kennwort oder einem Smartcard-Schlüssel. Anschließend wird das Kennwort von der Tastatur an den Prozessor übergeben. Anschließend übernimmt der Bootloader die Kontrolle, während beide Komponenten - das Betriebssystem und der Schlüssel - im Speicher verbleiben, um die Transparenz des Ver- und Entschlüsselungsprozesses der Festplatte zu gewährleisten. Dies ist eine idealisierte Ansicht des Prozesses, die darauf hindeutet, dass niemand versuchen wird, in irgendeiner Weise einzugreifen. Ich denke, dass Sie sich verschiedener Möglichkeiten bewusst sind, dies zu hacken. Lassen Sie uns also Dinge auflisten, die schief gehen könnten, wenn jemand versucht, Sie anzugreifen. Ich teile Angriffe in 3 Ebenen ein.

Die erste ist nicht invasiv und erfordert keine Erfassung Ihres Computers, da sie mit einem Flash-Laufwerk mit Malware ausgeführt wird. Sie müssen das System nicht „zerlegen“, wenn Sie problemlos Hardwarekomponenten wie PCI-Karten, ExpressCards oder Thunderbolt daran anschließen können - den neuesten Apple-Adapter, der offenen Zugang zum PCI-Bus bietet.

Für einen Angriff der zweiten Ebene ist ein Schraubendreher erforderlich, da Sie möglicherweise vorübergehend eine Komponente des Systems entfernen müssen, um in Ihrer eigenen kleinen Umgebung damit fertig zu werden. Die dritte Stufe oder „Lötkolbenangriff“ ist die schwierigste. Hier können Sie Systemkomponenten wie Chips physisch hinzufügen oder ändern, um zu versuchen, sie zu knacken.

Eine Art von First-Level-Angriff ist ein kompromittierter Bootloader, auch als "Evil Maid" -Angriff bekannt, bei dem Sie im Rahmen des Systemstartvorgangs unverschlüsselten Code ausführen müssen, den Sie mithilfe Ihrer persönlichen Daten selbst herunterladen können Greifen Sie auf die restlichen Daten zu, die auf Ihrer Festplatte verschlüsselt sind. Es gibt verschiedene Möglichkeiten, dies zu tun. Sie können den Bootloader im Speichersystem physisch ändern. Sie können das BIOS kompromittieren oder ein schädliches BIOS laden, das die Kontrolle über den Tastaturadapter oder die Lesevorgänge übernimmt und diese so ändert, dass sie nicht mehr auf der Festplatte entfernt werden können. In jedem Fall können Sie das System so ändern, dass der Benutzer, wenn er sein Kennwort eingibt, unverschlüsselt auf die Festplatte schreibt oder etwas Ähnliches tut. Dies ist für den Hacker nicht schwierig.

Sie können auf Betriebssystemebene etwas Ähnliches tun. Dies gilt insbesondere dann, wenn Sie nicht die vollständige Festplattenverschlüsselung, sondern die Containerverschlüsselung verwenden.



Dies kann auch passieren, wenn das System von einem Exploit angegriffen wird, dank dessen der Angreifer Root-Rechte erhält und den Schlüssel aus dem Hauptspeicher lesen kann. Dies ist eine sehr häufige Angriffsmethode. Dieser Schlüssel kann auf der Festplatte als einfacher Text zur späteren Verwendung durch einen Angreifer gespeichert oder über das Netzwerk an das Command & Control-System gesendet werden.
Eine andere Möglichkeit ist ein Abfangen der Tastatur mit einem Keylogger, sei es Software, Hardware oder etwas Exotisches, wie eine Nadel-Augen-Kamera oder beispielsweise ein Mikrofon, das Geräusche aufzeichnet, die mit den Tastenanschlägen des Benutzers einhergehen, und versucht, herauszufinden, was es ist Schlüssel. Es ist schwierig, einen solchen Angriff zu verhindern, da er möglicherweise Komponenten enthält, die sich außerhalb des Systems befinden.



Ich möchte auch Datenwiederherstellungsangriffe erwähnen, besser bekannt als Kaltstartangriffe. Wenn Sie vor 5 Jahren sogar sehr Computer-versierte Leute nach den Sicherheitsmerkmalen des Hauptspeichers gefragt haben, würden sie sagen, dass die Daten beim Ausschalten sehr schnell verschwinden.

Im Jahr 2008 veröffentlichte Princeton jedoch eine hervorragende Studie, in der festgestellt wurde, dass selbst bei Raumtemperatur mehrere Sekunden lang nur ein sehr geringer Datenverlust im RAM-Speicher auftrat. Und wenn Sie das Modul auf kryogene Temperaturen abkühlen, können Sie einige Minuten Zeit haben, in denen nur eine geringfügige Verschlechterung der Daten im Hauptspeicher auftritt.



Wenn sich Ihr Schlüssel im Hauptspeicher befindet und jemand die Module von Ihrem Computer entfernt hat, kann er Ihren Schlüssel angreifen, indem er im Klartext herausfindet, wo er sich im Hauptspeicher befindet. Es gibt bestimmte Methoden, um dem auf Hardwareebene entgegenzuwirken, z. B. das gewaltsame Löschen des Speicherinhalts beim Ausschalten oder Neustarten. Dies hilft jedoch nicht, wenn jemand das Modul einfach herauszieht und in einen anderen Computer oder in einen bestimmten Teil des Geräts legt, um den Inhalt seines Speichers zu extrahieren.
Schließlich besteht die Möglichkeit des direkten Zugriffs auf den Speicher. Jedes PCI-Gerät in Ihrem Computer kann im normalen Modus den Inhalt eines beliebigen Sektors im Hauptspeicher lesen und schreiben. Sie können alles machen.



Dies wurde entwickelt, selbst wenn Computer viel langsamer waren und wir nicht wollten, dass der Zentralprozessor jede Datenübertragung vom Hauptspeicher zum Gerät „babysittet“. Auf diese Weise erhalten Geräte direkten Zugriff auf den Speicher. Der Prozessor kann ihnen Anweisungen geben, die sie einfach ausführen können. Die Daten bleiben jedoch im Speicher, wann immer Sie sie benötigen.

Dies ist das Problem, da PCI-Geräte neu programmiert werden können. Viele dieser Dinge haben eine beschreibbare Firmware, die Sie einfach auf etwas Feindliches aktualisieren können. Dies kann die Sicherheit des gesamten Betriebssystems gefährden, da jede Form von Angriff möglich ist, selbst wenn das Betriebssystem selbst geändert oder der Schlüssel direkt extrahiert wird. In der Computerforensik gibt es Geräte, die für solche Dinge bei der Untersuchung von Verbrechen entwickelt wurden: Sie verbinden etwas mit Ihrem Computer und ziehen den Inhalt des Speichers heraus. Sie können dies mit FireWire, ExpressCard oder Thunderbolt tun. Tatsächlich sind alle diese externen Ports, die den Zugriff auf den internen Systembus ermöglichen.

Es wäre also schön, wenn es möglich wäre, den Schlüssel nicht im RAM zu speichern, da wir irgendwie gezeigt haben, dass der RAM aus Sicherheitsgründen nicht sehr zuverlässig ist. Gibt es einen speziellen Schlüsselspeicher oder spezielle kryptografische Geräte? Ja, das gibt es. Sie können kryptografische Beschleuniger für den Webserver verwenden, um mehr SSL-Transaktionen pro Sekunde zu verarbeiten. Sie sind beständig gegen unbefugte Eingriffe. CA-Zertifizierungsstellen haben Dinge, in denen ihre streng geheimen Schlüssel gespeichert sind, aber sie sind nicht wirklich für Hochleistungsvorgänge wie die Verwendung der Festplattenverschlüsselung ausgelegt. Gibt es noch andere Möglichkeiten?

Können wir den Prozessor als eine Art Pseudo-Hardware-Kryptomodul verwenden? Können wir so etwas wie einen symmetrischen AES-Blockverschlüsselungsalgorithmus in einer CPU berechnen, indem wir nur so etwas wie CPU-Register anstelle von RAM verwenden?



Intel und AMD haben den Prozessoren, die AES ausgeführt haben, großartige neue Anweisungen hinzugefügt, sodass Sie jetzt primitive Blockverschlüsselungsvorgänge mit nur einer einfachen Build-Anweisung ausführen können. Die Frage ist, können wir unseren Schlüssel im Speicher belassen oder können wir diesen Prozess ausführen, ohne uns auf den Hauptspeicher zu verlassen? Moderne x86-Prozessoren haben einen ziemlich großen Satz von Registern, und wenn einer von Ihnen wirklich versucht hat, alle darin enthaltenen Bits hinzuzufügen, erhalten Sie ungefähr 4 Kilobyte. Daher können wir tatsächlich einige CPUs verwenden, um Schlüssel zu speichern und Speicherplatz für Verschlüsselungsvorgänge zu schaffen.

Eine Möglichkeit besteht darin, Hardwareregister zum Debuggen von Haltepunkten zu verwenden. In einem typischen Intel-Prozessor gibt es 4 solcher Register, und im x64-System enthält jedes einen 64-Bit-Zeiger. Dies sind 256 Bit potenzieller Speicherplatz, den die meisten Benutzer niemals nutzen werden. Der Vorteil der Verwendung von Debug-Registern liegt natürlich in ihrem Privileg, da nur das Betriebssystem darauf zugreifen kann. Hier gibt es noch weitere nette Vorteile: Wenn Sie beispielsweise den Prozessor ausschalten, wenn Sie das System ausschalten oder in den Ruhemodus wechseln, verlieren Sie wirklich den gesamten Inhalt des Registers, sodass Sie keine Angst vor einem „Kaltstart“ haben können.

Ein Mann aus Deutschland, Tilo Muller, hat 2011 dieses ähnliche Ding namens TRESOR für Linux implementiert. Er testete die Leistung eines solchen Systems und kam zu dem Schluss, dass es nicht langsamer funktioniert als bei der regulären AES-Berechnung per Software.
Wie wäre es mit zwei 128-Bit-Schlüsseln anstelle eines Schlüssels? Dies führt uns zu einem größeren Kryptomodulraum. Wir können einen Hauptschlüssel speichern, der den Prozessor beim Booten nie verlässt, und dann die Schlüsselversionen laden und entladen, die wir benötigen, um zusätzliche Vorgänge auszuführen und zusätzliche Aufgaben zu lösen.

Das Problem ist, dass wir unseren Code oder unsere Schlüssel außerhalb des Hauptspeichers speichern können, die CPU den Inhalt des Speichers jedoch trotzdem verarbeitet. Durch die Verwendung von DMA, Direktspeicherzugriffstechnologie, Umgehung des Zentralprozessors oder anderen Manipulationen können Sie das Betriebssystem ändern und seinen Speicherauszug außerhalb der Hauptspeicherregister oder, falls exotischere Methoden verwendet werden, außerhalb der Debug-Register speichern.

Können wir mit einem DMA-Anstellwinkel etwas anfangen? Wie sich herausstellte, können wir das. In jüngster Zeit möchten Benutzer im Rahmen neuer Technologien zur Erhöhung der Servervirtualisierung aus Leistungsgründen beispielsweise einen Netzwerkadapter mit einem virtuellen Server verbinden, sodass dieser über einen Hypervisor verbunden werden muss.



Die IOMMU-Technologie wurde so konzipiert, dass Sie ein PCI-Gerät in Ihrer eigenen kleinen Speicherpartition isolieren können, von wo aus es nirgendwo im System willkürlich lesen und schreiben kann. Dies ist ideal: Wir können IOMMU-Berechtigungen konfigurieren, um unser Betriebssystem oder das, was wir zum Verarbeiten von Schlüsseln verwenden, zu schützen und sie vor wahlfreiem Zugriff zu schützen.

Wiederum hat unser Freund aus Deutschland, Tilo Muller, eine Version von TRESOR auf einem Mikrobit-Visier namens BitVisor implementiert, das dies tut. Auf diese Weise können Sie ein separates Betriebssystem ausführen und transparent auf die Festplattenverschlüsselung zugreifen. Das Tolle ist, dass Sie sich darüber keine Gedanken machen müssen oder nichts darüber wissen müssen. Der Festplattenzugriff ist für das Betriebssystem vollständig transparent, das Betriebssystem kann nicht auf Debug-Register zugreifen, und IOMMU ist so konfiguriert, dass der Hypervisor vollständig vor Manipulationen geschützt ist.



, , , , , . , – , .
, , . , RAM , , . , , , , SSH-, PGP-, « », .



: RAM? , , , , .



, , , – , ! 2010 RAM. — : “clear”, , , . 10-50 . , , , -, – 10% . , . , , ? , TPM , , , .

-, , . , , - CPU.

, . , , , . , , - . , ? , . ? , - , , , “ ” , .



, . , , . — Trusted Platform Module – , . , , , , TPM . , «» , . , , . , , .



? -. - , - «» , . , .

, – -, . , RSA/SHA1, , , - . - , . , .

23:10



DEFCON 21. , «» . Teil 2

Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung aufgeben oder Ihren Freunden empfehlen, einen Rabatt von 30% für Habr-Benutzer auf ein einzigartiges Analogon von Einstiegsservern, das wir für Sie erfunden haben: Die ganze Wahrheit über VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s von $ 20 oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).

VPS (KVM) E5-2650 v4 (6 Kerne) 10 GB DDR4 240 GB SSD 1 Gbit / s bis zum Frühjahr kostenlos, wenn Sie für einen Zeitraum von sechs Monaten bezahlen, können Sie hier bestellen.

Dell R730xd 2 mal günstiger? Nur wir haben 2 x Intel Dodeca-Core Xeon E5-2650v4 128 GB DDR4 6 x 480 GB SSD 1 Gbit / s 100 TV von 249 US-Dollar in den Niederlanden und den USA! Lesen Sie mehr über den Aufbau eines Infrastrukturgebäudes. Klasse mit Dell R730xd E5-2650 v4 Servern für 9.000 Euro für einen Cent?

Source: https://habr.com/ru/post/de435176/


All Articles