Lokale Autorisierung ohne Passwort in Ubuntu

Bild

Heute werden wir darüber sprechen, wie wir in Ubuntu eine lokale Autorisierung ohne Passwort gefunden haben, die anscheinend niemals geschlossen wird. Wie alles passiert ist, lesen Sie unter dem Schnitt.

An einem schönen Sommerabend schloss der Autor des Artikels das Cover eines funktionierenden Laptops von Ubuntu 16.04 Desktop zu Unity und ging nach Hause. Der Abend war so schön, dass ich mich entschied, ein paar Tage frei zu nehmen, meinem Chef eine SMS zu schicken und er mich gehen ließ.

Wie sich herausstellte, hatten nicht alle meine Kollegen den gleichen wundervollen Abend. In c4n gebrochen Laptop, so bat er mich , ihn zu verleihen, aber mit seiner Festplatte. Natürlich habe ich erlaubt.

Damit begann unsere faszinierende Untersuchung.

Was ist passiert?


Am nächsten Morgen nahm c4n meinen Laptop auseinander und legte dort meine Festplatte ein. Er öffnete den Deckel und sah, anstatt sein Betriebssystem zu laden, das Anmeldefenster auf meinem System. Es war anklickbar und c4n begann, zufällige Passwörter einzugeben, jedoch ohne Erfolg. Frustriert drückte er den Ein- / Ausschalter und dann geschah ein Wunder .

Statt einen Neustart des Computers hatte einen erfolgreichen Einstieg in mein System gemacht, und wurden die letzten offenen meine Programme und Dokumente gezeigt. Es ist erwähnenswert, dass die Dokumente nicht nur gezeigt wurden, sie arbeiteten für sich selbst! Sie können durch Dokumente scrollen und die Browser-Registerkarten durchgehen. c4n hat mir sofort einen Screenshot gemacht.

Bild
Tatsächlich war der Screenshot anders. Wenn ich die Arbeit verlasse, lasse ich KeePass und die Unternehmenswebsite nicht offen.

Angesichts lokaler Autorisierung ohne Passwort!

Als ich aus dem Urlaub kam, fragte ich mich, was der Fehler dieses Phänomens war, ob es immer reproduziert wurde und ob es immer das gleiche reproduzierte, ob es auf allen Systemen reproduziert wurde.

Gründe


Wie sich herausstellte, war der Fehler dieses Phänomens, dass mein Laptop beim Schließen des Deckels nicht in den Ruhezustand ging, sondern in den Ruhezustand ging (dh den RAM eingeschaltet ließ), und nach dem Öffnen des Deckels blieben das geladene Betriebssystem und die neuesten Dateien im RAM mit mit denen ich gearbeitet habe. Das Betriebssystem weiß nicht, dass die Festplatte vom Computer entfernt wurde, und arbeitet weiter, bis Sie auf die Festplatte zugreifen müssen.

Warum es möglich ist, eine Genehmigung zu erteilen, bleibt uns ein Rätsel. Wir sündigen an der Arbeit von PAM- Modulen (Pluggable Authentication Modules), die sich höchstwahrscheinlich nicht im RAM befinden, und Ubuntu 16.04 verarbeitet ihre Abwesenheit falsch, aber dann haben wir erkannt, dass das Problem etwas anderes ist.

Wird es immer reproduziert und ist es immer dasselbe?


Unsere Experimente begannen mit Ubuntu 16.04. Die Aktionen waren wie folgt:

  1. Wir schicken den Computer in den Ruhemodus.
  2. Wir nehmen die Festplatte heraus.
  3. Wir wecken den Computer aus dem Ruhemodus.

Wie sich herausstellte, kann es außerdem mehrere Optionen für das Verhalten des Systems geben:

  1. Der Computer zeigt das Anmeldefenster an, geben Sie ein zufälliges Passwort ein => Wir sehen Benutzerfenster vor dem Zettel (alle Fenster funktionieren).
  2. Der Computer zeigt das Anmeldefenster an, geben Sie ein zufälliges Passwort ein => das System meldet, dass das Passwort falsch ist => drücken Sie einmal den Netzschalter => wir sehen die Benutzerfenster vor dem Beleg (alle Fenster funktionieren).
  3. Der Computer zeigt einen schwarzen Bildschirm an (der Cursor fährt darüber), drücken Sie zufällige Tasten und drücken Sie die Eingabetaste => Wir sehen Benutzerfenster vor dem Zettel (alle Fenster funktionieren).
  4. Der Computer zeigt einen schwarzen Bildschirm an (der Cursor fährt darüber), drücken Sie zufällige Tasten und drücken Sie die Eingabetaste => nichts passiert => drücken Sie einmal den Netzschalter => wir sehen die Benutzerfenster vor dem Beleg (alle Fenster funktionieren).

Höchstwahrscheinlich ähneln die Elemente 3-4 den Elementen 1-2, nur aus irgendeinem Grund zeichnet die Grafik kein Anmeldefenster.

Das Experiment wurde viele Male durchgeführt und es war immer möglich, auf die Fenster des Benutzers zuzugreifen, d.h. Die Reproduzierbarkeit beträgt 100%. Das ist sehr cool für so einen seltsamen Fehler. Es ist erwähnenswert, dass nur aktive Fenster verfügbar sind. Wir konnten nicht zu minimierten Fenstern wechseln. Außerdem verschwanden einige Fenster nach einer Weile, und manchmal wurde der Protokollierungseffekt beobachtet, aber eine der vier Eingabemethoden erlaubte die Rückgabe.

PoC


Wir haben ein kurzes Video gedreht, das den gesamten Angriffsprozess demonstriert.


Spielt es auf allen Systemen?


Voraussetzung für das Testen war das Vorhandensein der neuesten Updates auf dem System. Warum brauchen wir einen Fehler, der schon lange geschlossen ist?

Zunächst wurde entschieden, zu überprüfen, ob der Fehler auf normalen PCs (nicht auf Laptops) mit Ubuntu 16.04 mit Unity reproduziert wird. Es gab eine Theorie, dass die Fensteranzeige irgendwie mit einer Grafikkarte verbunden sein könnte. Daher wurde die Prüfung von einem PC mit integrierten und diskreten Grafikkarten aus durchgeführt. In allen Fällen war das Ergebnis das gleiche - es erfüllt den Fehler perfekt.

Als nächstes kam Ubuntu 16.04 mit GNOME. Und hier waren wir enttäuscht: Ich habe den Fehler nicht behoben. Manchmal zeigte das System beim Verlassen eines Belegs die letzten Fenster für eine halbe Sekunde an (es ist durchaus möglich, ein Video aufzunehmen). Die Forscher berichteten dies bereits 2011 und es wurde bisher noch nicht geschlossen.

Weiter haben wir Arch mit Wayland und Xorg genommen - Enttäuschung, funktioniert nicht. Debian 9 mit GNOME und erneut Enttäuschung. Auf dem neuen Ubuntu 18.04 funktionierte es auch nicht - nicht überraschend, da wir zu diesem Zeitpunkt bereits den Verdacht hatten, dass das Problem in Unity lag. Aus diesem Grund haben wir uns entschlossen, Ubuntu 14.04 für die neuesten Tests zu verwenden und zu sehen, was mit Ubuntu 18.04 passiert, wenn Sie den Fenstermanager von GNOME auf Unity ändern. Unter Ubuntu 14.04 funktionierte alles gut (obwohl die Fenster eine viel kürzere Lebensdauer hatten als am 16.04.). Unter Ubuntu 18.04 mit Unity stürzt das System nach dem Beenden des Slips sofort ab und es können keine weiteren Experimente durchgeführt werden.

Schlussfolgerung: Wir haben entschieden, dass Versionen von Ubuntu mit nativ installierter Unity anfällig sind, d. H. Version

  • 10.10
  • 11.04
  • 11.10
  • 12.04
  • 12.10
  • 04/13
  • 13.10
  • 14.04 (von uns getestet)
  • 14.10
  • 15.04
  • 15.10
  • 04.16 (von uns getestet)
  • 16.10 (von uns getestet)
  • 04.17 (von uns getestet)

Ziemlich beeindruckende Liste, nicht wahr? Wir haben weit von allem getestet. Wenn jemand die Möglichkeit hat, nach anderen Versionen zu suchen, die wir nicht getestet haben, fügen wir sie gerne dem Beitrag hinzu.

Warum finden wir das schlecht?


Die Sicherheitsanfälligkeit ermöglicht nur den lokalen Zugriff auf Daten und nicht auf alle, sondern nur auf diejenigen, die in Anwendungen geöffnet und bereitgestellt sind. Dies ist jedoch immer noch sehr kritisch, weil:

  1. Die verwendeten Daten werden möglicherweise nicht auf der Festplatte gespeichert (z. B. ein bearbeitbares Dokument).
  2. Daten können sich in einem verschlüsselten Ausgangsverzeichnis befinden (z. B. eine Datei mit Kennwörtern).
  3. Daten können sich auf einem verschlüsselten Flash-Laufwerk befinden.
  4. Daten erfordern möglicherweise eine zusätzliche Autorisierung (wie in unserem PoC mit KeePass).

Darüber hinaus kann in Unity jeder einen Computer einfach über den Anmeldebildschirm (ohne Genehmigung) an einen Beleg senden. Das heißt, Es ist eine echte Situation, dass eine Person den Bildschirm sperrt und zum Mittagessen geht. In diesem Moment schickt der Angreifer den Computer in einen Zettel, holt die Festplatte heraus und schaut sich an, was die Person vor dem Mittagessen getan hat. Nachdem der Computer bereits mit der Festplatte neu gestartet werden muss, ahnt die Person nicht, dass seine Daten kompromittiert werden könnten.

Skeptiker werden sagen, dass ein ähnliches Ergebnis leicht durch einen Kaltstartangriff erzielt werden kann und die Ergebnisse sogar noch besser sind. Aber wie oft trägt einer von Ihnen eine Thermoskanne mit ein paar Litern flüssigem Stickstoff?

Wir haben entschieden, dass das Problem kritisch ist und in Ubuntu geschrieben werden sollte.

Wie wir in Ubuntu schreiben


Um einen Fehler zu bekommen, mussten wir uns auf launchpad.net registrieren, dann eine Beschreibung des Fehlers erstellen und ein Video von PoC hinzufügen. Wir haben 406 Bewertungspunkte und ein Lagerfeuerabzeichen (was auch immer das bedeutet). Sie fingen an zu warten. Wir haben den Fehler am 18.06.2018 gestartet.

Nach einer langen Korrespondenz beendete Genosse Marc Deslauriers unsere Debatte mit einer Botschaft, die sich auf Folgendes beschränkte: „Wir werden nichts reparieren. Es ist dasselbe wie physischer Zugriff. "

Bild

Versuche zu überzeugen waren erfolglos. Wir wurden für eine Woche zum völligen Ignorieren geschickt. Danach erhielten wir die Erlaubnis, diese Studie zu veröffentlichen:

Bild

UPD: Am 9. Juli 2018, um 16 Uhr, haben wir beschlossen, den Fehler öffentlich zu machen (danke amarao ). In der Diskussion auf dem Launchpad wurde der Fehler für Mate 18.04 und nicht nur für Unity bestätigt. Die Community besteht auch darauf, dass der Fehler besteht und nicht ignoriert werden sollte.

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


All Articles