W jaki sposób zdolność osoby, która uzyskała fizyczny dostęp do twojego komputera, do rootowania [przy użyciu Grub / Bash] w jakikolwiek sposób jest bezpieczna?
Ponieważ jeśli Linux zdecyduje się to zrobić, hakerzy wykorzystają inne luki w zabezpieczeniach. Pierwszą zasadą bezpieczeństwa jest to, że jeśli mam fizyczny dostęp do twojego systemu, gra się kończy. Wygrałem.
Ponadto wyobraź sobie, że Twój serwer X zepsuł się i nie masz już GUI. Musisz uruchomić system w konsoli odzyskiwania, aby to naprawić, ale nie możesz, bo to nie jest bezpieczne. W tym przypadku masz całkowicie zepsuty system, ale hej, przynajmniej jest „bezpieczny!”
Ale Kaz, jak to możliwe? Ustawiłem hasło na Grub, abyś nie mógł zmienić mojego init
na Bash!
Och, zrobiłeś, prawda? Ciekawe, bo to wygląda na twój album ze zdjęciami. GRUB nie ma żadnego nieodłącznego współczynnika bezpieczeństwa. To tylko bootloader , a nie krok w bezpiecznym łańcuchu rozruchu i uwierzytelniania. „Hasło”, które ustawiłeś, jest naprawdę dość łatwe do ominięcia.
To i który sysadmin nie ma na sobie napędu rozruchowego na wypadek awarii?
Ale jak?! Nie znasz mojego hasła (które całkowicie nie jest P@ssw0rd
btw)
Tak, ale to nie powstrzymuje mnie przed otwarciem komputera i wyciągnięciem dysku twardego. Stamtąd jest kilka prostych kroków, aby zamontować dysk na moim komputerze, zapewniając mi dostęp do całego systemu. Ma to również niesamowitą zaletę obchodzenia hasła BIOS. To lub mógłbym właśnie zresetować CMOS. Albo / lub.
Więc ... jak mogę nie pozwolić ci uzyskać dostępu do moich danych?
Prosty. Trzymaj swój komputer z dala ode mnie. Jeśli mogę go dotknąć, uzyskać dostęp do klawiatury, włożyć własne dyski flash lub rozebrać na części, mogę wygrać.
Czy mogę po prostu umieścić komputer w centrum danych? Te są dość bezpieczne, prawda?
Tak, są. Ale zapominasz, że ludzie też można hakować, a mając wystarczająco dużo czasu i przygotowań, prawdopodobnie mógłbym dostać się do tego centrum danych i wyssać z komputera wszystkie te słodkie, słodkie dane. Ale dygresję. Mamy tutaj do czynienia z prawdziwymi rozwiązaniami.
Okej, więc nazwałeś mój blef. Nie mogę umieścić go w centrum danych. Czy mogę po prostu zaszyfrować mój folder domowy lub coś takiego?
Oczywiście że możesz! To twój komputer! Czy to pomoże mnie zatrzymać? Nie jest w najmniejszym stopniu. Mogę po prostu zastąpić coś ważnego, na przykład /usr/bin/firefox
własnym złośliwym programem. Następnym razem, gdy otworzysz Firefoksa, wszystkie twoje tajne dane zostaną przeniesione na jakiś tajny serwer gdzieś tajny. I nawet nie będziesz wiedzieć. Lub, jeśli mam częsty dostęp do twojego komputera, mogę po prostu skonfigurować folder domowy do kopiowania do /usr/share/nonsecrets/home/
dowolnej innej (niezaszyfrowanej) lokalizacji.
Dobra, a co z pełnym szyfrowaniem dysku?
To ... właściwie całkiem niezłe. Jednak nie jest jeszcze idealny! Zawsze mogę wykonać atak rozruchowy przy użyciu mojej zaufanej puszki sprężonego powietrza. Lub mogę po prostu podłączyć keylogger sprzętowy do twojego komputera. Jedno jest oczywiście łatwiejsze od drugiego, ale sposób nie ma znaczenia.
W zdecydowanej większości przypadków jest to dobre miejsce zatrzymania. Może sparujesz go z TPM (omówionym poniżej), a ty będziesz złoty. O ile nie rozgniewałeś trzyliterowej agencji lub bardzo zmotywowanego hakera, nikt nie przejdzie wysiłku wymaganego na tym etapie.
Oczywiście nadal mogę zmusić Cię do zainstalowania złośliwego oprogramowania / backdoorów, oferując PPA lub podobny, ale przechodzi to w bardzo mroczny obszar zaufania użytkowników.
Więc ... w jaki sposób iPhone'y są tak bezpieczne? Nawet przy fizycznym dostępie niewiele możesz zrobić.
Cóż, tak i nie. Chodzi mi o to, że gdybym był wystarczająco zmotywowany, mógłbym przeczytać układ flash i uzyskać wszystko, czego potrzebuję. Ale iPhone'y są zasadniczo różne, ponieważ są całkowicie zablokowaną platformą. Ale jednocześnie poświęcasz użyteczność i umiejętność powrotu do zdrowia po katastrofalnych awariach. GRUB (z wyjątkiem bardzo specjalnie zaprojektowanych) nie ma być łańcuchem w systemie bezpieczeństwa. W rzeczywistości większość systemów Linux ma swoje łańcuchy bezpieczeństwa uruchamiane po rozruchu, więc po zakończeniu pracy przez GRUBA.
Ponadto iPhone'y mają funkcję wymuszania podpisu kryptograficznego (omówioną również poniżej), co bardzo utrudnia złośliwemu oprogramowaniu przedostanie się do telefonu za pośrednictwem legalnych ścieżek.
Ale co z TPM / SmartCards / [wstaw tutaj technologię kryptograficzną]?
Cóż, teraz łączysz fizyczne bezpieczeństwo z równaniem, staje się jeszcze bardziej skomplikowane. Ale tak naprawdę nie jest to rozwiązanie, ponieważ moduły TPM są stosunkowo słabe i całe szyfrowanie nie odbywa się na chipie. Jeśli twój TPM jest (w jakiś sposób) wystarczająco silny, gdy szyfruje sam układ (niektóre bardzo fantazyjne dyski twarde mają coś takiego), klucz nigdy nie zostanie ujawniony, a takie ataki jak rozruch przy zimnym rozruchu są niemożliwe. Jednak klucze (lub nieprzetworzone dane) mogą nadal znajdować się w magistrali systemowej, co oznacza, że można je przechwycić.
Mimo to mój keylogger sprzętowy nadal może uzyskać twoje hasło i mogę łatwo załadować na twoje oprogramowanie złośliwe oprogramowanie, takie jak exploit Firefox, o którym wspominałem wcześniej. Wszystko, czego potrzebuję, to opuścić dom / komputer na może godzinę.
Teraz, jeśli weźmiesz ze sobą swoją kartę TPM / kartę inteligentną / cokolwiek, a całe szyfrowanie odbywa się na chipie (co oznacza, że twój klucz nie jest w ogóle przechowywany w pamięci RAM), praktycznie nie mogę się dostać do wszystko, chyba że (użytkownik) się poślizgnie i coś zapomni. To znaczy, chyba że znajdę jakiś sposób na odczytanie (niezaszyfrowanego) klucza z magistrali systemowej.
Ale co, jeśli mam jakąś formę wymuszania podpisu kryptograficznego / cyfrowego we wszystkich moich programach, aby upewnić się, że są one zgodne z prawem?
Jak pokazują różne firmy smartfonów, jest to bardzo dobry sposób radzenia sobie z bezpieczeństwem. Teraz unieważniłeś moją zdolność do wstrzykiwania kodu na twoją maszynę, aby robić niecne rzeczy, co jest plusem. W efekcie wyłączyłeś moją zdolność do zdalnego utrzymywania stałego dostępu do twojego komputera, co jest ogromnym plusem.
Jednak wciąż nie jest to idealna metoda! Wymuszanie podpisu cyfrowego nie zatrzyma na przykład keyloggera sprzętowego. Musi również być całkowicie wolny od błędów, co oznacza, że nie ma sposobu, aby znaleźć exploita, który pozwoli mi załadować własny certyfikat do magazynu certyfikatów twojego komputera. Ponadto oznacza to, że każdy plik wykonywalny w systemie musi być podpisany . O ile nie chcesz ręcznie przejść przez to wszystko, bardzo trudno będzie znaleźć pakiety Apt i tym podobne, które mają podpisy cyfrowe na wszystkim. W podobny sposób blokuje to uzasadnione wykorzystanie niepodpisanych plików wykonywalnych, a mianowicie odzyskiwanie. Co się stanie, jeśli złamiesz coś ważnego i nie masz (podpisanego) pliku wykonywalnego, aby to naprawić? Cóż, idzie twój system.
Tak czy inaczej, wysiłek, aby to zrobić w Linuksie, został praktycznie zaniechany i nie działa już w przypadku nowych jąder, więc musisz stworzyć własne.
Więc nie można trzymać cię z dala od mojego komputera?
Skutecznie tak, przepraszam. Jeśli mam fizyczny dostęp i wystarczającą motywację, zawsze można dostać się do systemu. Bez wyjątków.
W rzeczywistości jednak większość złych ludzi nie będzie próbować posuwać się tak daleko, tylko po zdjęcia kotów. Zwykle samo szyfrowanie całego dysku (lub nawet uruchamianie Linuksa!) Wystarcza, aby powstrzymać większość dzieciaków skryptowych od zdobycia dwóch sekund sławy.
TL; DR: Po prostu nie pozwól osobom, którym nie ufasz, w pobliżu twojego komputera. To zazwyczaj wystarcza.