Obrona przed złą pokojówką, jak poradzić sobie z usunięciem partycji / boot


11

Kiedy korzystasz z pełnego szyfrowania dysku LUKS, jak zabrałbyś się za ochronę przed złymi pokojówkami ?

Atak złej pokojówki ma miejsce, gdy ktoś nie ma fizycznego dostępu do twojego komputera, gdy jesteś nieobecny, i naraża niezaszyfrowaną partycję rozruchową, aby przechwycić twoje hasło FDE przy następnym uruchomieniu komputera

Jednym z rozwiązań jest pozostawienie partycji / boot na pamięci USB, która jest zawsze przy Tobie (pokojówka nie może się do niej dostać), ale którego systemu plików powinienem użyć i jak skonfigurować mój system, aby z wdzięcznością poradził sobie z usuwaniem pamięci USB (a tym samym samej partycji / boot)?

Korzystam z CentOS, ale ogólne, distro-agnostyczne odpowiedzi są oczywiście mile widziane. Dzięki.

Odpowiedzi:


5

W końcu to rozgryzłem. Nadal wydaje się to bardzo hackerskie i brudne, ponieważ system nigdy nie jest świadomy, że /bootmoże nie zostać zamontowany i będziesz musiał ręcznie zamontować go, zanim zrobisz coś, co może do niego napisać (pomyśl o aktualizacjach systemu itp.), Ale poza tym działa idealnie .

  • przygotuj dysk flash z pojedynczą partycją z ustawioną flagą rozruchową. Możesz go uruchomić shred -n 1 -v /dev/sdX, aby go całkowicie usunąć, w tym wszystkie poprzednie sektory rozruchowe; po fdiskzakończeniu uruchom partycję i mkfswybrany na niej system plików.
  • zamontuj gdzieś dysk flash, /mnt/boota nawet /newbootda sobie radę.
  • przesuń wszystko od /bootdo dysku flash za pomocą mv /boot/* /newboot.
  • edytuj swój /etc/fstabi zmień identyfikator UUID oryginalnej partycji rozruchowej (lub utwórz wpis, jeśli go nie ma), aby pasował do dysku flash. Możesz uzyskać identyfikator UUID za pomocą lsblk -o name,uuid. Dodaj także noautoopcję, aby dysk nie był montowany automatycznie, aby móc go usunąć, gdy tylko system zacznie się uruchamiać (po załadowaniu jądra) bez ryzyka uszkodzenia na nim FS.
  • odmontuj oryginalną partycję rozruchową i napęd flash ( umount /boot && umount /newboot) i zamontuj napęd flash; jeśli twój wpis fstab jest poprawny, możesz po prostu uruchomić mount /booti automatycznie zamontuje go na podstawie identyfikatora UUID określonego w fstab.
  • ponownie wygeneruj konfigurację bootloadera, aby odzwierciedlić UUID nowej partycji i „fizyczną” pozycję, w przypadku GRUB-a dysk flash pojawi się jako pierwszy dysk twardy w komputerze ( hd0). Jeśli nie masz nic przeciwko użyciu domyślnych skryptów konfiguracyjnych GRUB dostarczonych przez większość dystrybucji, możesz uruchomić grub-mkconfig -o /path/to/grub.cfgi wygeneruje on plik zgodnie z aktualnie zamontowanymi partycjami i / lub fstab. Zwróć uwagę, że w CentOS 7 poprawność grub.cfgjest faktycznie zlokalizowana /boot/grub2/grub.cfg.

Wykonując dowolną operację, która może uzyskać dostęp do partycji rozruchowej, podłącz pamięć USB i uruchom mount /boot. Po zakończeniu możesz uruchomić umount /boot. Zauważ, że wykonanie drugiego polecenia może chwilę potrwać, ponieważ opróżnia bufory na dysk (sam dysk jest wolny, więc jądro buforuje niektóre operacje zapisu w celu przyspieszenia).


W ogóle nie jest brudny, to najbardziej oczywisty sposób na zrobienie tego. Dziękujemy za napisanie tego!
dbanet

0

Innym podejściem do tego konkretnego problemu jest użycie TPM do przechowywania klucza szyfrowania, ale obrona zależy od użytkownika, aby był skuteczny. Podstawowym rozwiązaniem opartym na RHEL7 jest tpm-luks ( https://github.com/GeisingerBTI/tpm-luks ).

Sposób działania polega na rozruchu, każdy krok procesu rozruchu mierzy następny i zapisuje ten pomiar w PCR na TPM. Po zakończeniu procesu rozruchu tpm-luks sprawdza status PCR pod kątem „znanej dobrej” konfiguracji. Jeśli w konfiguracji „znanej dobrej” TPM odblokuje klucz LUKS, a tpm-luks przekaże te dane, aby odblokować główną partycję LUKS.

Ponieważ wszystko, co ważne, mierzone jest za pomocą skrótu crpytograficznego, w zasadzie nie ma sposobu, aby zła służąca zastąpiła twoje GRUB / jądro / ramdysk, by niefrasobliwie zbierać twoje hasło FDE. Jako dodatkowy bonus, w ogóle nie potrzebujesz hasła FDE! Teoretycznie możesz całkowicie usunąć czytelne dla człowieka hasło i polegać całkowicie na tpm-luks, ale jeśli pójdziesz tą drogą, prawdopodobnie dobrym pomysłem jest przechowywanie nagłówka LUKS i zachowanie go jako kopii zapasowej.

Jak wspomniałem, wymaga to pewnej staranności wobec użytkownika. Jeśli zostawiłeś komputer bez nadzoru i pojawi się monit o hasło, prawdopodobnie złym pomysłem jest wpisanie go, dopóki nie przeprowadzisz dochodzenia. W tym momencie powinieneś uruchomić się w środowisku CD na żywo i sprawdzić, czy w tpm-luks jest błąd lub czy /bootpartycja została naprawdę zmieniona. Wciąż pozostawiasz /bootpartycję niezaszyfrowaną, ale jeśli coś ważnego zostanie zmienione, główny dysk nigdy nie zostanie odszyfrowany.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.