Jak mogę się upewnić, że katalog lub plik został rzeczywiście usunięty?


14

Wiem, że większość plików po usunięciu nie jest faktycznie usuwana z dysku i można je później odzyskać.

Jak mogę się upewnić, że katalog, który usunąłem, zostanie faktycznie usunięty z dysku? Czy są na to narzędzia?

Używam Debian Linux.


5
Krótka odpowiedź: nie możesz! Długa odpowiedź: albo fizycznie zniszcz dysk, albo sformułuj ponownie pytanie: ile wysiłku wymagałoby odzyskanie danych i jaki byłby powodzenie takiej próby?
Marco

Odpowiedzi:


11

Zaszyfruj dane przed ich zapisaniem. Aby usunąć dane, wyczyść klucz.

Jeśli dane zostały już zapisane w postaci zwykłego tekstu, jest już za późno, aby je wyczyścić w prosty sposób. W różnych miejscach może znajdować się wiele kopii danych:

  • w systemie plików, jeśli plik został zapisany wiele razy (nadpisany lub zastąpiony);
  • w systemie plików, jeśli został on przestawiony w ramach defragmentacji;
  • w czasopiśmie (prawdopodobnie zniknie dość szybko po ostatnim zapisaniu danych);
  • w kopiach zapasowych;
  • w sektorach niepełnosprawnych (szczególnie na dyskach SSD).

Aby pozbyć się kopii danych w systemie plików, prymitywną metodą jest wypełnienie wolnego miejsca ( cat /dev/zero >somefilei poczekanie, aż się zatrzyma, ponieważ system plików jest pełny). Spowoduje to zastąpienie wszystkich pełnych bloków.

Małe części danych mogą pozostać w niekompletnych blokach, które są częściowo używane przez inne pliki. Jest to szczególnie ważne w przypadku nazw plików, które mogą pozostać w blokach przechowujących zawartość katalogu. Aby pozbyć się wszystkiego, wykonaj kopię zapasową wszystkich plików, całkowicie zastąp urządzenie zawierające system plików, a następnie przywróć pliki.

Nośniki pamięci mogą przechowywać dane w blokach, które nie są już używane. Na dyskach twardych oznacza to złe bloki, które zostały przeniesione; jest to dość rzadkie zjawisko, dopóki dysk nie zaczyna się zużywać. Na dyskach SSD jest to częste zjawisko z powodu wyrównywania zużycia. W obu przypadkach zagrożenie jest bardzo niskie, ponieważ dostęp do tych danych wymaga nieco wyrafinowanego atakującego z umiarkowanie drogim sprzętem i czasem do stracenia. Jeśli zależy Ci na tych zagrożeniach, zaszyfruj dane i nie zostawiaj klucza w pobliżu.

Pamiętaj, że możesz zobaczyć porady na temat usuwania danych, wykonując wiele przejść lub używając losowych danych zamiast zer („czyszczenie Gutmanna”). Zapomnij o tym: dotyczy to tylko dysków twardych z lat osiemdziesiątych (i nawet wtedy dane nie są tak tanie do odtworzenia, a rekonstrukcja raczej niewiarygodna). Nadpisywanie zerami jest wystarczające; wykonywanie wielu losowych przejść jest przestarzałą radą lub olejem węża. Zobacz Dlaczego zapisywanie zer (lub danych losowych) na dysku twardym wiele razy jest lepsze niż jednorazowe zrobienie tego?


12

Istnieje bardzo popularne narzędzie o nazwie shred. Zastąpi każdy plik 25 razy, zanim zostanie usunięty. To może mnie to, czego szukasz.

Użycie niszczenia jest dość proste

$ shred secret_archive.tar.gz

Należy jednak pamiętać, że w nowoczesnych systemach shredmoże być nieefektywne lub bezużyteczne, jeśli:

  • Twoje programy tworzą pliki tymczasowe, których nie znasz (podobnie jak wiele aplikacji GUI)
  • Twój FS jest oparty na Copy-On-Write (jak ZFS lub Btrfs)
  • Twój FS jest oparty na logach (jak NILFS)
  • Twój FS używa kronikowania danych (w niektórych konfiguracjach jak JFS, ReiserFS, XFS, ext3 lub ext4)
  • Twój FS używa kompresji
  • Twój FS przydziela nowe wersje plików w różnych lokalizacjach
  • Masz migawki lub kopie zapasowe
  • Jesteś w sieci FS
  • Używasz dysku SSD z algorytmami wyrównywania zużycia

Inne i potencjalnie bezpieczniejsze opcje to:

  • Szyfrowanie krytycznych danych
  • Nadpisywanie całej partycji lub urządzenia pamięci masowej
  • Fizyczne zniszczenie urządzenia

1
Według mojej strony man shreddziała nawet z ext3 (i chyba też ext4) przy użyciu trybów data = uporządkowany (domyślnie) i data = zapis . Ponadto istnieje prosta alternatywa: po prostu stwórz ogromny plik zajmujący całą pozostałą przestrzeń systemu plików, aby usunięty plik został nadpisany.
scai

Dzięki. Właśnie to naprawiłem. journaling -> data jornaling
taffer

@ scai, ogromna metoda pliku niekoniecznie będzie działać, ponieważ bloki pliku mogły być już przeniesione i jeszcze nie zapisane (jak fałszywe dane, ostatni blok plików lub katalogi ...)
Stéphane Chazelas

3
shredjest olejem wężowym: nie jest lepszy niż head -c $(wc -c secret_archive.tar.gz)>! secret_archive.tar.gz`. Używanie niszczenia jest zawsze bezcelowe, chyba że używasz dysku twardego z lat 80. lub wczesnych 90.
Gilles „SO- przestań być zły”

3
shred / bcwipe / itp. są olejkami wężowymi na poziomie systemu plików. Dla dowolnego systemu plików. Ze względu na sposób pracy z plikami: za każdym razem, gdy klikniesz Zapisz, stary plik jest usuwany (pozostaje w wolnej przestrzeni) i tworzony jest nowy plik. Nie możesz go zniszczyć, jeśli system plików już o nim zapomniał. - Różni się na poziomie urządzenia lub zastępuje poziom wolnego miejsca. Shred jest jednym z niewielu szybkich losowych źródeł danych dostępnych w systemie Linux / Unix. / dev / (u) random jest zbyt cholernie wolny, aby nadawał się do nadpisywania dużych ilości danych. - Tak więc pojedyncze przejście na niszczenie jest w porządku dla urządzenia lub wolnego miejsca, tylko nie dla pojedynczego pliku
frostschutz
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.