Wie ist es möglich, über grub2 secure in jeden Linux-Rechner einzudringen?

52

Wie ist die Fähigkeit einer Person, die physischen Zugriff auf Ihren Computer erlangt hat, durch diese Schritte in irgendeiner Weise sicher root zu werden?

  1. Wenn das Menü grub2 geöffnet wird, drücken Sie e , um die Linux- Startoptionen zu bearbeiten
  2. Veränderung:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro   quiet splash" 
    

    zu:

    "linux   /vmlinuz-2.6.35-23-generic root=UUID=e7f1e48d-0015-485f-be7d-836217a31312 ro init=/bin/bash"
    
  3. Jetzt hast du root-Zugriff, mache einfach:

    mount -o remount,rw /
    passwd user
    mount -o remount,ro / 
    sync
    
  4. Starten Sie den Computer neu und Sie gewinnen.

Meine Frage ist, wie es möglich ist, über grub2 secure in jeden Linux-Rechner einzudringen. Ich verstehe diese Tatsache über Linux nicht, danke für Ihre Antworten.

Clutchy
quelle
51
Wer hat gesagt, dass der physische Zugang unmöglich gemacht werden muss? Wenn jemand physischen Zugriff hat, sind -ALL- Wetten -OFF-. Der Besitzer einer Maschine sollte - IMMER - Zugang zu seiner Maschine haben, wenn er sich daneben befindet. Andernfalls wäre es möglich, es zu vermauern, ohne dass es wiederhergestellt werden könnte.
Rinzwind
7
und man kann sich darüber beschweren: aber wie wäre es, eine live dvd / usb in das system zu stecken? Oder nehmen Sie die Festplatte heraus, legen Sie sie in einen anderen Computer und legen Sie dddie Festplatte ein? Und "Linux"? Funktioniert auch auf anderen Systemen, die Grub verwenden ... Windows hingegen ... wenn Windows kaputt geht ... können Sie das System wahrscheinlich nur formatieren: P
Rinzwind
10
Um vollständig gesichert zu sein, benötigen Sie diese Lösung
Anwar
5
Oh keine Kameraden! @Clutchy hat unser Geheimnis entdeckt. Wir müssen jetzt alle die Cyanid-Kapseln nehmen.
Paulzag
3
@paulzag Verstanden, ich werde den Selbstzerstörungsmechanismus des Serverraums auslösen. Ruhm für RMS!
Kaz Wolfe

Antworten:

107

Wie ist die Fähigkeit einer Person, die physischen Zugang zu Ihrem Computer erlangt hat, [mit Grub / Bash] in irgendeiner Weise root zu werden, sicher?

Denn wenn Linux dies tun würde, würden Hacker einfach andere Sicherheitslücken ausnutzen. Die erste Sicherheitsregel lautet: Wenn ich physischen Zugriff auf Ihr System habe, ist das Spiel vorbei. Ich habe gewonnen.

Stellen Sie sich außerdem vor, Ihr X-Server ist kaputt und Sie haben keine GUI mehr. Sie müssen in eine Wiederherstellungskonsole booten, um das Problem zu beheben, können dies jedoch nicht, da dies unsicher ist. In diesem Fall haben Sie ein völlig kaputtes System, aber hey, zumindest ist es "sicher"!

Aber Kaz, wie ist das möglich? Ich habe ein Passwort für meinen Grub festgelegt, damit du meinen nicht initin Bash ändern kannst !

Oh, du hast es getan, oder? Interessant, denn das sieht aus wie dein Fotoalbum. GRUB hat überhaupt keinen inhärenten Sicherheitsfaktor. Es ist nur ein Bootloader , kein Schritt in einer sicheren Boot- und Authentifizierungskette. Das "Passwort", das Sie eingerichtet haben, ist in der Tat verdammt einfach zu umgehen.

Das, und welcher Sysadmin hat für Notfälle kein Boot-Laufwerk dabei?

Aber wie?! Du kennst mein Passwort nicht (was P@ssw0rdübrigens gar nicht so ist )

Ja, aber das hindert mich nicht daran, Ihren Computer zu öffnen und Ihre Festplatte herauszunehmen. Von dort aus sind es nur ein paar einfache Schritte, um Ihr Laufwerk auf meinem Computer zu mounten und mir Zugriff auf Ihr gesamtes System zu gewähren. Dies hat auch den Vorteil, dass Sie Ihr BIOS-Passwort umgehen können. Das, oder ich hätte einfach dein CMOS zurücksetzen können. Entweder oder.

Also ... wie kann ich nicht zulassen, dass Sie auf meine Daten zugreifen?

Einfach. Halten Sie Ihren Computer von mir fern. Wenn ich es berühren, auf eine Tastatur zugreifen, meine eigenen Flash-Laufwerke einstecken oder es auseinander nehmen kann, kann ich gewinnen.

Kann ich meinen Computer einfach gerne in ein Rechenzentrum stellen oder so? Die sind ziemlich sicher, oder?

Ja sie sind. Aber Sie vergessen, dass Menschen auch hackbar sind, und wenn ich genügend Zeit und Vorbereitung habe, könnte ich wahrscheinlich in dieses Rechenzentrum gelangen und all diese süßen, süßen Daten von Ihrem Computer entfernen. Aber ich schweife ab. Hier geht es um echte Lösungen.

Okay, du hast meinen Bluff gerufen. Ich kann es nicht in ein Rechenzentrum stellen. Kann ich einfach meinen privaten Ordner verschlüsseln oder so?

Sicher kannst du! Es ist dein Computer! Wird es mir helfen, mich aufzuhalten? Nicht im Geringsten. Ich kann einfach etwas Wichtiges ersetzen, zum Beispiel /usr/bin/firefoxdurch mein eigenes Schadprogramm. Wenn Sie Firefox das nächste Mal öffnen, werden alle Ihre geheimen Daten auf einen geheimen Server übertragen, der sich an einem geheimen Ort befindet. Und du wirst es nicht einmal wissen. Wenn ich häufig auf Ihr Gerät zugreifen kann, kann ich einfach Ihren privaten Ordner so einrichten, dass er an /usr/share/nonsecrets/home/einen ähnlichen (nicht verschlüsselten) Speicherort kopiert wird .

Okay, was ist mit der vollständigen Festplattenverschlüsselung?

Das ist ... eigentlich ziemlich gut. Es ist jedoch noch nicht perfekt! Ich kann einen Kaltstart-Angriff immer mit meiner zuverlässigen Druckluftdose durchführen. Oder ich kann einfach einen Hardware-Keylogger an Ihren Computer anschließen. Eins ist offensichtlich einfacher als das andere, aber der Weg ist eigentlich egal.

In den allermeisten Fällen ist dies ein guter Zwischenstopp. Koppeln Sie es vielleicht mit TPM (siehe unten), und Sie sind goldrichtig. Wenn Sie nicht eine Drei-Buchstaben-Agentur oder einen sehr motivierten Hacker verärgert haben , wird niemand die Anstrengungen ausführen, die nach dieser Phase erforderlich sind.

Natürlich kann ich Sie immer noch dazu bringen, Malware / Backdoors zu installieren, indem Sie einen PPA oder ähnliches anbieten, aber dies führt zu einem sehr düsteren Bereich des Nutzervertrauens.

Also ... wie sind iPhones so sicher? Selbst mit physischem Zugang können Sie nicht viel tun.

Ja und nein Ich meine, wenn ich genug motiviert wäre, könnte ich den Flash-Chip lesen und alles bekommen, was ich brauche. IPhones unterscheiden sich jedoch grundlegend, da es sich um eine vollständig gesperrte Plattform handelt. Gleichzeitig opfern Sie jedoch die Benutzerfreundlichkeit und die Fähigkeit, sich von katastrophalen Ausfällen zu erholen. GRUB (außer wenn es sehr speziell entworfen wurde) ist nicht dazu gedacht, eine Kette in einem Sicherheitssystem zu sein. Tatsächlich haben die meisten Linux-Systeme ihre Sicherheitsketten nach dem Booten gestartet, also nachdem GRUB damit fertig ist.

Darüber hinaus verfügen iPhones über die Durchsetzung kryptografischer Signaturen (siehe auch unten), wodurch es für Malware sehr schwierig ist, sich auf legitimen Wegen auf Ihr Telefon einzuschleichen.

Aber was ist mit TPM / SmartCards / [Crypto Tech hier einfügen]?

Nun, jetzt, wo Sie physische Sicherheit in die Gleichung einbinden, wird es noch komplizierter. Dies ist jedoch keine wirkliche Lösung, da TPMs relativ schwach sind und die gesamte Verschlüsselung nicht auf dem Chip stattfindet. Wenn Ihr TPM (irgendwie) stark genug ist, um auf dem Chip selbst zu verschlüsseln (einige sehr ausgefallene Festplatten haben so etwas), wird der Schlüssel nie preisgegeben und Dinge wie Kaltstart-Angriffe sind unmöglich. Möglicherweise sind die Schlüssel (oder die Rohdaten) jedoch noch im Systembus vorhanden, sodass sie abgefangen werden können.

Trotzdem kann mein Hardware-Keylogger immer noch Ihr Passwort erhalten, und ich kann problemlos Malware auf Ihren Computer laden, und zwar nach dem Firefox-Exploit, den ich zuvor erwähnt habe. Ich brauche nur, dass Sie Ihr Haus / Ihren Computer für eine Stunde verlassen.

Wenn Sie nun Ihr TPM / Ihre Smartcard / was auch immer mitnehmen und die gesamte Verschlüsselung tatsächlich auf dem Chip erfolgt (was bedeutet, dass Ihr Schlüssel überhaupt nicht im RAM gespeichert ist), ist es für mich so gut wie unmöglich, darauf zuzugreifen alles, es sei denn, Sie (der Benutzer) rutschen aus und vergessen etwas. Das heißt, es sei denn, ich finde eine Möglichkeit, den (unverschlüsselten) Schlüssel vom Systembus zu lesen.

Aber was ist, wenn ich für alle meine Programme eine Form der Durchsetzung von kryptografischen / digitalen Signaturen verwende, um sicherzustellen, dass sie echt sind?

Wie verschiedene Smartphone-Unternehmen demonstrieren, ist dies eine sehr gute Möglichkeit, mit Sicherheit umzugehen. Sie haben jetzt meine Fähigkeit aufgehoben, Code in Ihren Computer einzufügen, um schändliche Dinge zu tun, was ein Plus ist. Tatsächlich haben Sie meine Fähigkeit deaktiviert, den dauerhaften Zugriff auf Ihren Computer aus der Ferne beizubehalten, was ein großes Plus ist.

Dies ist jedoch immer noch keine perfekte Methode! Die Durchsetzung digitaler Signaturen kann einen Hardware-Keylogger nicht stoppen. Es muss außerdem vollständig fehlerfrei sein. Das bedeutet, dass ich auf keinen Fall einen Exploit finden kann, mit dem ich mein eigenes Zertifikat in den Zertifikatspeicher Ihres Computers laden kann. Darüber hinaus muss jede ausführbare Datei auf Ihrem System signiert werden . Wenn Sie dies nicht manuell durchführen möchten, wird es sehr schwierig sein, Apt-Pakete und ähnliches zu finden, die digitale Signaturen für alles haben. In ähnlicher Weise blockiert dies legitime Verwendungen für nicht signierte ausführbare Dateien, nämlich die Wiederherstellung. Was ist, wenn Sie etwas Wichtiges kaputt machen und nicht die (signierte) ausführbare Datei haben, um es zu reparieren? Nun, da geht Ihr System.

In beiden Fällen wurde der Versuch, dies unter Linux zu tun , so gut wie aufgegeben und funktioniert nicht mehr für neue Kernel. Sie müssen also Ihre eigenen Kernel erstellen.

Also ist es unmöglich, dich von meinem Computer fernzuhalten?

Eigentlich ja, tut mir leid. Wenn ich physischen Zugang und genügend Motivation habe, ist es immer möglich, in ein System einzusteigen. Keine Ausnahmen.

In Wirklichkeit werden die meisten bösen Menschen jedoch nicht versuchen, nur für ein paar Katzenbilder so weit zu kommen. Normalerweise reicht eine vollständige Festplattenverschlüsselung (oder sogar die Ausführung von Linux!) Aus, um die meisten Skriptkinder davon abzuhalten, zwei Sekunden Ruhm zu haben.

TL; DR: Lass nur keine Menschen, denen du nicht vertraust, in die Nähe deines Computers. Das ist normalerweise gut genug.

Kaz Wolfe
quelle
Oder verschlüsseln Sie einfach Ihre Home-Partition.
user13161
5
@ user13161 Damit kann eine böswillige Entität immer noch so etwas wie /bin/bashein eigenes böses Skript ersetzen , das böse Dinge mit einem unverschlüsselten Basisordner bewerkstelligt .
Kaz Wolfe
Mit GRUB können Sie eine LUKS-verschlüsselte Startpartition verwenden. In diesem Fall kann das zu startende Kennwort nicht umgangen werden. Siehe wiki.archlinux.org/index.php/Dm-crypt/… .
v7d8dpo4
@ v7d8dpo4: Verschlüsselung /bootist eigentlich imo unbrauchbar. Es wird ein Startkennwort hinzugefügt, aber Sie müssen immer noch entschlüsseln, /um tatsächlich etwas Nützliches zu tun, sodass Sie nur einen zusätzlichen Aufwand für wenig bis keinen Nutzen hinzufügen. Außerdem kann ich einfach meine eigene Grub-Festplatte verwenden, um Ihren verschlüsselten Start zu umgehen, wenn nur dieser /boot geschützt ist. Oder ich kann das Laufwerk einfach wie gewohnt lesen.
Kaz Wolfe
2
iPhones (ab 6, glaube ich) verfügen nicht nur über eine vollständige "Festplatten" -Verschlüsselung, sondern sind auch mit dem PIN-Code / biometrischen Login verknüpft. Wenn Sie also möchten, dass Ihr Computer ohne Eingreifen nicht gestartet werden kann, können Sie auch die Festplattenverschlüsselung an ein Hardware-Token / Kennwort / TPM-Modul binden. Es ist nur ziemlich viel Arbeit.
pjc50
17

Wenn Sie es gebunden haben möchten, verwenden Sie ein Passwort . Über den Link:

GRUB 2-Kennwortschutzhinweise

Grub 2 kann Passwortanforderungen festlegen für:

  • Alle Menüeinträge
  • Spezifische Menüeinträge
  • Für bestimmte Benutzer: Beispielsweise kann Benutzer "Jane" auf Ubuntu zugreifen, jedoch nicht auf den Windows-Wiederherstellungsmodus, auf den nur "John", der Superuser, zugreifen kann.
  • Der Administrator muss den Kennwortschutz manuell aktivieren, indem er die GRUB 2-Systemdateien bearbeitet.

  • Benutzer und Kennwörter sollten in der /etc/grub.d/00_headeroder einer anderen GRUB 2-Skriptdatei angegeben werden.

  • Sofern nicht ein universeller Schutz aller Menüeinträge gewünscht ist, müssen die spezifischen Einträge identifiziert werden:

    • Manuell durch Bearbeiten der Grub 2- /etc/grub.d/Skripte wie 10_linuxund30_os-prober
    • Manuell durch Bearbeiten einer benutzerdefinierten Konfigurationsdatei, die vom Benutzer erstellt wurde.

    • Mit einer der oben genannten Methoden kann GRUB 2 die Kennwortanforderung automatisch zur Konfigurationsdatei (grub.cfg) hinzufügen, wenn update-grub ausgeführt wird.

    • Manuell durch Bearbeiten /boot/grub/grub.cfg. Änderungen an dieser Datei werden entfernt, wenn sie ausgeführt update-grubwird, und der Kennwortschutz geht verloren.

  • Wenn eine Form des GRUB 2-Kennwortschutzes aktiviert ist, sind der Name und das Kennwort des Superuser erforderlich, um Zugriff auf die GRUB 2-Befehlszeile und die Menübearbeitungsmodi zu erhalten.

  • Der Benutzername und / oder das Passwort müssen nicht mit dem Ubuntu-Anmeldenamen / Passwort übereinstimmen.
  • Sofern die Kennwortverschlüsselungsfunktion von GRUB 2 nicht verwendet wird, wird das Kennwort als einfacher Text in einer lesbaren Datei gespeichert. Informationen zur Verwendung dieser Funktion finden Sie im Abschnitt Kennwortverschlüsselung.

Standardmäßig (!) Hat in diesem Fall die Benutzerfreundlichkeit Vorrang vor der Sicherheit. Wenn Sie den Menschen in Ihrer Nähe nicht vertrauen können, behalten Sie die Maschine immer bei sich. Personen, die mehr Sicherheit benötigen, verschlüsseln in der Regel ihr gesamtes System, sodass ein Kennwort erforderlich ist.

Rinzwind
quelle
Seien wir ehrlich, diese Passwörter können bei physischem Zugriff leicht umgangen werden. Sie schützen ein System vor Noobs, aber nicht vor Angreifern mit einigen Grundkenntnissen (Google ist möglicherweise bereits ausreichend) und physischem Zugriff.
Byte Commander
3

Dein absichtlicher Hack beginnt damit:

  1. Wenn das grub2-Menü geöffnet wird, drücke 'e', ​​um die Linux-Startoptionen zu bearbeiten

Sie können die eOption jedoch wie hier beschrieben mit einem Kennwort schützen : So fügen Sie den GRUB-Kennwortschutz zum Ladevorgang des Betriebssystems hinzu, anstatt die Startoptionen zu bearbeiten

Sie können den zusätzlichen Schritt zum Verschlüsseln des Grub-Passworts ausführen, wie im Link beschrieben. In der Tat ist es für Systemadministratoren eine gute Idee, sich gegen die eFunktion auf Produktionssystemen bei der Arbeit zu schützen, da vielleicht 3% der Bevölkerung Linux / Ubuntu zu Hause verwenden (wilde Vermutungen) . Ich stelle mir vor, wenn Ubuntu bei der Arbeit verwendet wird, würden 30 bis 40% es auch zu Hause verwenden, und vielleicht lernen 10% von ihnen, wie man das eauf ihren Heimsystemen macht.

Dank Ihrer Frage haben sie gerade mehr gelernt. Mit dem obigen Link haben Systemadministratoren jedoch eine weitere Aufgabe auf ihrer Aufgabenliste, um Produktionsumgebungen zu schützen.

WinEunuuchs2Unix
quelle
1
Seien wir ehrlich, diese Passwörter können bei physischem Zugriff leicht umgangen werden. Sie schützen ein System vor Noobs, aber nicht vor Angreifern mit einigen Grundkenntnissen (Google ist möglicherweise bereits ausreichend) und physischem Zugriff.
Byte Commander
@ByteCommander Es geht um den physischen Zugang. Das BIOS kann mit einem Administratorkennwort eingerichtet werden, sodass es niemals von USB oder DVD gebootet werden kann. Jemand kann das Gehäuse öffnen, zwei Stifte auf dem Motherboard kurzschließen und das Kennwort wird auf Leerzeichen zurückgesetzt (zum Ändern der BIOS-Startreihenfolge ist kein Kennwort erforderlich).
WinEunuuchs2Unix
0

Um Grub sicher zu machen, müssen Sie den Zugriff darauf schützen. Dies kann einfach mit einem Festplattenkennwort geschehen, und ich spreche hier von der Festplattensicherheit, in der sie in der Firmware der Festplatte selbst gespeichert ist. Die Festplatte kann nicht gelesen oder beschrieben werden. Somit ist grub nicht nur ohne das Passwort nicht erreichbar, sondern auch Ihre Daten.

Da das Kennwort auf der Festplatte selbst gespeichert ist, hilft es dem Hacker nicht, es in ein anderes System zu verschieben.

Es gibt Software, mit der das Kennwort von den Festplatten einiger Hersteller entfernt werden kann, die jedoch auch die Festplatte effektiv löscht. Ihre Daten sind also immer noch sicher.

Scooby-2
quelle
Später Kommentar, aber ich möchte darauf hinweisen, dass dies gelegentlich auf einfache Weise besiegt werden kann. Möglicherweise gibt es einen (dokumentierten) Herstellerbefehl, um ein Festplattenkennwort zu löschen, ohne ein Format auszulösen. In ähnlicher Weise kann ich die Festplattenplatten möglicherweise einfach "ausleihen" und in meinen eigenen Controller einfügen. Das Kennwort wird (normalerweise) im NVRAM des Controllers gespeichert, nicht auf den Platten.
Kaz Wolfe
@Kaz, Sie haben absolut Recht mit Ihrer Aussage, aber in Ihrem Satz muss das Wort "gelegentlich" hervorgehoben werden. "Dies kann gelegentlich auf einfache Weise besiegt werden." Da sich die Festplattentechnologie entgegen Ihren Aussagen weiter verbessert, speichern mittlerweile fast alle Hersteller ihre Firmware und Kennwörter auf den Platten, sodass ein Wechsel der Controllerkarte nicht mehr hilft. Es gibt Software, um Laufwerke zu entsperren, ohne die Daten zu löschen, aber sie funktioniert nur auf alten Laufwerken.
Scooby-2,