디렉토리 나 파일이 실제로 삭제되었는지 어떻게 확인할 수 있습니까? 않으며 나중에 복구

삭제 된 대부분의 파일은 실제로 디스크에서 제거되지 않으며 나중에 복구 할 수 있습니다.

삭제 한 디렉토리가 실제로 디스크에서 제거되도록하려면 어떻게해야합니까? 유틸리티가 있습니까?

데비안 리눅스를 사용하고 있습니다.



답변

저장하기 전에 데이터를 암호화하십시오. 데이터를 지우려면 키를 닦으십시오.

이미 일반 텍스트로 데이터를 작성했다면 간단한 방법으로 데이터를 지우기가 너무 늦습니다. 여러 곳에 데이터 사본이 여러 개있을 수 있습니다.

  • 파일이 여러 번 쓰여진 경우 (덮어 쓰기 또는 교체 된 경우) 파일 시스템에서;
  • 파일 시스템이 조각 모음의 일부로 재 배열 된 경우
  • 저널에서 (이것은 데이터가 마지막으로 작성된 후 꽤 빨리 사라질 것입니다);
  • 백업에서;
  • 비활성화 된 섹터 (특히 SSD).

파일 시스템에서 데이터 사본을 제거하려면 사용 가능한 공간을 채우고 cat /dev/zero >somefile파일 시스템이 가득 차서 중지 될 때까지 기다리는 것이 방법입니다 . 전체 블록을 모두 덮어 씁니다.

데이터의 작은 부분은 다른 파일에서 부분적으로 사용되는 불완전한 블록에 남아있을 수 있습니다. 이것은 특히 디렉토리 이름을 저장하는 블록에 남아있을 수있는 파일 이름과 관련이 있습니다. 모든 것을 제거하려면 모든 파일을 백업하고 파일 시스템을 포함하는 장치를 완전히 덮어 쓴 다음 파일을 복원하십시오.

저장 매체는 더 이상 사용하지 않는 블록에 데이터를 보유 할 수 있습니다. 하드 디스크에서 이는 재 할당 된 불량 블록을 의미합니다. 이것은 디스크가 마모되기 시작할 때까지 매우 드문 일입니다. SSD에서 이는 마모 레벨링으로 인해 일반적으로 발생합니다. 두 경우 모두 해당 데이터에 액세스하려면 약간 비싼 하드웨어와 낭비 시간이있는 다소 정교한 공격자가 필요하기 때문에 위협이 매우 낮습니다. 이러한 위협에 관심이 있다면 데이터를 암호화하고 키를 두지 마십시오.

다중 패스를 수행하거나 0 대신 임의의 데이터를 사용하여 데이터를 지우는 방법에 대한 조언을 볼 수 있습니다 ( “Gutmann wipe”). 잊어 버리십시오 : 이것은 1980 년대 하드 디스크에만 적용됩니다 (그리고 심지어 데이터가 재구성하기에 저렴하지 않고 재구성이 다소 신뢰할 수 없음). 0으로 덮어 쓰는 것으로 충분합니다. 여러 랜덤 패스를하는 것은 구식 조언이나 뱀 오일입니다. 하드 드라이브에 0 (또는 임의의 데이터)을 한 번만 쓰는 것보다 여러 번 쓰는 것이 더 좋은 이유는 무엇입니까?를 참조하십시오 .


답변

이라는 매우 인기있는 도구가 shred있습니다. 삭제되기 전에 모든 파일을 25 번 덮어 씁니다. 그것은 당신이 찾고있는 것입니다.

파쇄의 사용법은 매우 간단합니다

$ shred secret_archive.tar.gz

그러나 현대 시스템에서는 다음과 같은 경우 비효율적 이거나 쓸모가 없을shred 수 있습니다 .

  • 당신의 프로그램은 당신이 모르는 임시 파일을 생성합니다 (많은 GUI 어플리케이션처럼)
  • FS는 Copy-On-Write 기반 (ZFS 또는 Btrfs와 유사)
  • FS는 로그 기반 (NILFS와 유사)
  • FS는 데이터 저널링을 사용합니다 (일부 구성에서는 JFS, ReiserFS, XFS, ext3 또는 ext4와 유사)
  • FS는 압축을 사용합니다
  • FS는 다른 위치에 새로운 버전의 파일을 할당합니다
  • 스냅 샷 또는 백업이 있습니다
  • 네트워크 FS에 있습니다
  • 마모 레벨링 알고리즘이있는 SSD를 사용하고 있습니다

다른 잠재적으로 더 안전한 옵션은 다음과 같습니다.

  • 중요한 데이터 암호화
  • 전체 파티션 또는 저장 장치 덮어 쓰기
  • 장치의 물리적 파괴