W jaki sposób wywołać samozniszczenie systemu przy użyciu określonego hasła jest wprowadzony

46

Jak skonfigurować system do niszczenia wszystkich danych osobowych po wprowadzeniu określonego hasła? Motywacją tego są rzeczy NSA.

Wyobrażam sobie, że istnieją trzy podstawowe przypadki użycia.

  1. Przy logowaniu wprowadzenie z góry określonego hasła powoduje zniszczenie danych użytkownika.
  2. Podczas budzenia systemu. wprowadzenie z góry ustalonego hasła powoduje zniszczenie danych osobowych.
  3. Wprowadzenie dowolnego uprzywilejowanego polecenia za pomocą wcześniej ustalonego hasła powoduje zniszczenie danych osobowych.

Wiem, że coś takiego

dd if=/dev/urandom of=/dev/$HOME

Powinien być odpowiedni do niszczenia danych. Nie wiem jednak, jak je uruchomić za pomocą określonego hasła.

Punkty bonusowe, jeśli pozwala to na logowanie podczas usuwania danych.

Josh
źródło
9
jeśli naprawdę chcesz, aby to działało, powinieneś zaszyfrować dysk twardy. dzieje się tak, ponieważ bez szyfrowania będziesz musiał zastąpić cały dysk twardy, ale w przypadku szyfrowania wystarczy zastąpić nagłówek LUKS (lub cokolwiek innego).
strugee
1
Istnieje moduł pam_python, który prawdopodobnie ułatwiłby wdrożenie tego, co chcesz: ace-host.stuart.id.au/russell/files/pam_python
odtwórz
7
Jeśli martwisz się o NSA, dd if=/dev/urandom of=/dev/$HOMEnie zrobisz wiele dobrego. Nawet zakładając, że są wystarczająco głupi, aby używać systemu operacyjnego zamiast wyjmować dysk i czytać go bezpośrednio, istnieją firmy zajmujące się odzyskiwaniem danych, które mogą uzyskać dane z dysku, który został nadpisany i fizycznie spalony.
Stop Harming Monica
2
# 1. Jeśli NSA naprawdę cię ścigała, już po cichu wyekstrahowały twoje dane tygodnie temu. # 2. Szyfrowanie danych daje NSA z prawnego prawo zachować swoje dane na zawsze, albo na jak długo to trwa, aby je odszyfrować, co nastąpi wcześniej. # 3. Dowody na zniszczenie dowodów są często wystarczające, aby sąd mógł cię o coś przekonać. Te programy „bezpiecznego wymazywania”, które wypełniają Twój dysk zerami lub przypadkowym bełkotem, są dowodem na to, że coś zniszczyłeś, a to zostanie podniesione w sądzie.
Ryan Ries
3
Nie obejmuje wszystkich 3 przypadków, ale spójrz tutaj: kali.org/how-to/emergency-self-destruction-luks-kali
faker

Odpowiedzi:

26

Pomysł nr 1 - Ukryty system operacyjny

Jako alternatywną metodę możesz skorzystać z „ukrytego systemu operacyjnego” programu TrueCrypt . Umożliwia to dostęp do fałszywego alternatywnego systemu operacyjnego, gdy używane jest określone hasło, a nie podstawowy system operacyjny.

fragment

Jeśli twoja partycja systemowa lub dysk systemowy są szyfrowane przy użyciu TrueCrypt, musisz wprowadzić hasło uwierzytelniające przed uruchomieniem na ekranie programu ładującego TrueCrypt po włączeniu lub ponownym uruchomieniu komputera. Może się zdarzyć, że ktoś zmusi Cię do odszyfrowania systemu operacyjnego lub ujawnienia hasła uwierzytelniającego przed uruchomieniem. Istnieje wiele sytuacji, w których nie można odmówić (na przykład z powodu wymuszenia). TrueCrypt pozwala stworzyć ukryty system operacyjny, którego istnienie powinno być niemożliwe do udowodnienia (pod warunkiem przestrzegania określonych wytycznych - patrz poniżej). Dzięki temu nie będziesz musiał odszyfrowywać ani ujawniać hasła do ukrytego systemu operacyjnego.

Bruce Schneier omawia skuteczność korzystania z nich ( Deniable File Systems , więc warto przyjrzeć się temu przed zanurzeniem.

Cały pomysł Deniable Encryption jest trochę puszką robaków, więc ostrożność podczas korzystania z niego w pewnych sytuacjach musi być dobrze przemyślana z wyprzedzeniem.

Pomysł nr 2 - Dodaj skrypt do / etc / passwd

Możesz wstawić alternatywne skrypty do pozycji użytkownika w /etc/passwdpliku.

Przykład

# /etc/passwd
tla:TcHypr3FOlhAg:237:20:Ted L. Abel:/u/tla:/usr/local/etc/sdshell

Możesz skonfigurować konto użytkownika tak, aby uruchamiał skrypt, /usr/local/etc/sdshellktóry sprawdzi, jakie hasło zostało podane. Jeśli jest to magiczne hasło, które uruchamia czyszczenie, może rozpocząć ten proces (nawet w tle) i albo spaść na powłokę, albo zrobić coś innego.

Jeśli podane hasło nie jest tym magicznym hasłem, kontynuuj na przykład normalne uruchamianie powłoki /bin/bash.

Źródło: 19.6.1 Integracja haseł jednorazowych z Uniksem

slm
źródło
2
Pomysł nr 2 nie zadziała. Powłoka zostanie wywołana dopiero po wprowadzeniu poprawnego hasła (zgodnie z konfiguracją w / etc / shadow). Nawet jeśli zadziała, skrypt nie będzie mógł sprawdzić, które hasło zostało wprowadzone podczas logowania.
faker
@faker - ta metoda pochodzi z jednorazowych haseł w unixie, więc wierzę, że zadziała. Może nie integrować się bezpośrednio z hasłem systemowym / etc / shadow, ale jest wykonalny.
slm
@slm ze strony, do której linkujesz: This puts two passwords on the account: the traditional account password followed by the one-time password.Możesz oczywiście w skrypcie sprawdzić hasło zniszczenia, ale dopiero po wprowadzeniu prawidłowego hasła do konta. Zasadniczo masz wtedy 3 hasła. Wspólne hasło do konta, prawidłowe hasło do drugiego kroku i hasło do samozniszczenia w drugim kroku. Niezbyt miły i bardzo podejrzliwy ...
oszust
@faker: slm ma rację - krok po kroku nie podążałbym za linkiem, ale działałby. Nadal byłby to tylko link do innej powłoki lub skryptu. Nie widzę powodu, dla którego jest niepoprawny.
Josh
@Josh to działa, jeśli uważasz, że musisz zapamiętać 3 hasła, aby być w porządku. W przeciwnym razie to nie działa.
oszust
16

Moje podejście polegałoby na wywołaniu samozniszczenia w module pam . Istnieją mechanizmy przechwytywania hasła za pomocą skryptu, sprawdzania, czy jest to „specjalne” i rozpoczynania procesu autodestrukcji.

Napisz linię /etc/pam.d/common-authjako pierwszą linię w ten sposób:

auth    optional        pam_exec.so debug expose_authtok /etc/security/suicide.sh

(lub na przykład, /etc/pam.d/gdmjeśli chcesz, aby działało ono z uwierzytelnianiem za pośrednictwem gdm) expose_authtokpowoduje, że pam_exec.somoduł dostarcza hasło przez stdin do skryptu logowania o nazwie /etc/security/suicide.sh. Ten skrypt byłby uruchamiany z uprawnieniami roota i wyglądałby na przykład tak:

#!/bin/bash
# read the users password from stdin (pam_exec.so gives the provided password 
# if invoked with expose_authtok)
read password

# if its an authentication and it's the user "user" and the special password
if [ "$PAM_TYPE" == "auth" ] && [ "$PAM_USER" == "user" ] && [ "$password" == "magic" ]; then
  # do whatever you want in the background and the authentication could continue
  # normally as though nothing had happened
  exit 0
else
  exit 0
fi

Działałoby to nawet po zmianie hasła „normalnego” użytkownika.

chaos
źródło
8

Tylko, żebyś wiedział, że jeśli ktoś z gov itp. Złapie twój komputer, pierwszą rzeczą, którą zrobią, jest skopiowanie bitu dysku na bit i wyłączenie kopiowania. To samo dzieje się za każdym razem, gdy ktoś wykonuje ekspertyzę komputerową, więc jeśli uszkodzisz podczas analizy dysku, tylko uszkodzisz kopię.

Powiedzmy więc, że duży zły NSA zabiera komputer i kciuki w wice, aby nakłonić cię do podania hasła. Jeśli podasz im nieprawidłowe hasło, skopiujesz je, a nie oryginał. Teraz wiedzą, że się z nimi mieszasz.

Dlatego każde użycie słowa „zabójstwo” byłoby skuteczne tylko wtedy, gdy uruchomiłeś je, zanim ktokolwiek przejmie kontrolę nad twoim systemem. Wszystko, co by to zrobiło, to skomplikowany sposób wykonania aliasu.

znak
źródło
6

Jeśli naprawdę chcesz zniszczyć swoje dane. Najpierw musisz się upewnić, że nikt nie tworzy kopii twoich danych (tj. Całego dysku) na początku. Ale nie jest to możliwe na poziomie systemu operacyjnego.

Jedynym sposobem, aby upewnić się, że Twoje dane nie wpadną w niepowołane ręce, jest użycie kryptografii. Szczególnie odmowne szyfrowanie byłoby właściwe w twoim przypadku: jeśli wpiszesz prawidłowe hasło, pojawią się twoje dane osobowe. Jeśli wpiszesz inne hasło, pojawią się nieszkodliwe dane.

michas
źródło
Najbardziej martwię się o scenariusz, w którym ktoś zmusza mnie do wprowadzenia hasła lub chwyta komputer po wprowadzeniu hasła.
Josh
3
Jeśli ktoś zmusi cię do wprowadzenia hasła, wystarczy wpisać „inne” hasło, które odblokuje nieszkodliwe dane. - Dlatego możliwe jest, aby zaprzeczyć istnieniu prawdziwych danych. - Jeśli poważnie podchodzę do twoich danych, nie pozwolę ci dotknąć twojego komputera, ale najpierw wykonaj kopię wszystkiego.
michas
6

Jeśli naprawdę chcesz być w stanie zniszczyć swoje dane, aby chronić je przed NSA, potrzebujesz czegoś z materiałami wybuchowymi i ognia, który stopi metal w talerzach dysków, i musisz być w stanie uruchomić je zdalnie.

Podejrzewam, że to nie jest praktyczne.

Bill White
źródło
0

Cóż, możesz mieć skrypt do usuwania katalogu głównego użytkownika / katalogu głównego (jak również / var, / tmp i wszędzie tam, gdzie masz dane tylko do oczu), jeśli zalogujesz się przy użyciu innej nazwy użytkownika ... skrypt zacznie się od zaloguj się, a następnie automatycznie załaduj coś, co oszuka obserwatora, robiąc coś potencjalnie przydatnego. Jeśli spowoduje to uszkodzenie twojego systemu bez oszukiwania obserwatora, mogą po prostu wyciągnąć wtyczkę, uniemożliwiając w ten sposób działanie twojego najlepszego planu. Pozwala to również na zalogowanie się, gdy jest w toku ... chociaż umieściłbym użytkownika TRASHME na innym dysku, ponieważ dysk, który ma zostać zniszczony, będzie raczej zajęty, a zatem pokey.

K7AAY
źródło
1
Nie mieści się w podanych ograniczeniach.
Josh
0

Bezpieczny dysk twardy lub dysk flash w tym przypadku jest oksymoronem. Jedynym sposobem zabezpieczenia informacji jest użycie wirtualnego systemu operacyjnego, który działa w pamięci i odparowuje po wyłączeniu zasilania, wraz z wszelkimi danymi, które należy zapisać na nośnikach zewnętrznych, które można ukryć, jeśli chcesz. Istnieje wiele „Live” dystrybucji Linuksa, które pozwalają ci to zrobić. Przy stosunkowo niewielkim wysiłku możesz zremasterować płytę CD lub DVD i dostosować ją do swoich potrzeb. Pamiętaj również, że większość twoich informacji o zachowaniu jest przekazywana przez twoją przeglądarkę, a do wszelkich wyszukiwań, które Twoim zdaniem stanowią zagrożenie, powinieneś używać bezpiecznej przeglądarki, takiej jak Tor.

użytkownik55950
źródło
Nie moja prośba. Wiem doskonale, że doskonałe bezpieczeństwo jest niepraktyczne. Nie proszę o idealne rozwiązanie.
Josh
0

Jeśli chcesz zachować bezpieczeństwo, zrozum, że nie ma czegoś takiego jak doskonałe bezpieczeństwo i że bezpieczeństwo to jedynie kompromis akceptowalnych po przeprowadzeniu dokładnej oceny ryzyka.

Po pierwsze, po co niszczyć wszystko. Pierwsze spojrzenie na malejącą łatwość dostępu. Stwórz szczelinę powietrzną. Kup pudełko Bcheaap na rzeczy on-line i wszystko, co chcesz wysłać ze swojego głównego pudełka, transport tam za pośrednictwem sneakernet. Używaj dobrego szyfrowania, takiego jak Scrypt. Truecrypt i inni mieli swój czcigodny dzień.

Istnieje wiele innych strategii, które możesz zastosować, z niewystarczającą ilością miejsca, aby je tutaj wdrożyć, i szczerze mówiąc, nie mam wystarczająco dużo czasu, aby się nimi zająć. Myślę, że odkryłeś zupełnie nową ścieżkę uczenia się.

David Crosswell
źródło
Nie w określonym kontekście.
Josh
0

Jak wskazano mi i zaprezentowane na Phoronix, Kali Linux również stworzył metodę tego. Przyglądając się niektórym kodom, istnieje słabość, która nadal pozwoli na pokonanie łaty, ale daleko do skutecznego hasła samozniszczenia. Należy zauważyć, że słabość ta polega na specyfice sprzętowej związanej z zerowaniem danych - narzędzia producenta mogą odzyskać zerowane dane, a nadpisywanie kluczowych lokalizacji na nośniku powinno być wykonywane kilkakrotnie za pomocą generatora liczb losowych, aby zapewnić szyfrowanie danych.

Link tutaj: http://www.kali.org/how-to/emergency-self-destruction-luks-kali/

Josh
źródło
0

Tak, musisz zniszczyć powierzchnię dysku. Zalecany jest granat termitowy (tego nas nauczyli). Możesz zrobić swój własny z rozrusznikiem ognia (blok magnezu) i źródłem zapłonu ... celem jest stworzenie ognia klasy D .... niemożliwego do zgaśnięcia .

Brian Winn
źródło
Nie sądzę, żeby OP mówił o fizycznym zniszczeniu ...
don_crissti