web-dev-qa-db-ja.com

ライブOS:安全なファイル削除

ファイルシステムがRAMに保持されているライブOS(つまり、テイルス)の場合、ファイルの削除方法に違いはありますか?

検討された特定のケース:

  • 実行中のライブOSのファイル「1.jpg」と「2.jpg」
  • ファイル1は通常の方法で削除され、ファイル2は「shred」コマンドで削除されます
  • 誰かがいっぱいになるRAM直後にアクセス(root権限または物理的なRAMダンプ)
  • これらのファイルのコンテンツを回復できますか?

「安全な消去」方法を使用する必要があるかどうかを知りたい、もしそうなら、何が利用可能かを知りたい。

再起動/ RAM上書き/ RAM電源がオフのときのデータ損失は機能するが、考慮される唯一のケースは、 OSはまだ実行中です。

6
msec24

メモリ内のファイルに対してshredを実行しても意味がありません。ファイルからのデータは、アプリケーションメモリ、キャッシュなどにも存在する可能性があります。プロセスが終了したときにワイプされなかったプロセスに属していたメモリ:Linuxは、ほとんどのカーネルと同様に、プロセスに付与する前にメモリをワイプします。リリース時の方が速いので。

もちろん、ファイルが復元できる保証はありません。しかし、それができないという保証もありません。攻撃者のモデルがRAM=コンテンツを見ることができるというものである場合、注意が必要な点がたくさんあります。少なくとも、ワイプする必要がありますRAM =プロセスによってリリースされるとすぐにページが表示されます Grsecurity パッチをLinuxカーネルに適用できます。少なくとも PAX_MEMORY_SANITIZEオプション 。また、実行中のプロセスや、機密情報を格納する可能性のあるプロセスに注意する必要があります。また、カーネルにはRNG状態やディスク暗号化キーなどの機密情報も格納されることに注意してください。 Linuxカーネルへの TRESORパッチ は、通常の操作中にディスク暗号化キーを保護しますが、完全な防御策ではなく、RNG状態の同様のパッチについては知りません。

軽減しようとしている危険はファイルシステムジャーナルです。つまり、shredはジャーナルがあるファイルシステム(例:ext3、ext4、reiserfs)では効果がありません。

永続化にunionfsを使用していないと仮定すると(私は試したことはありませんが、Tailsで実行できるようです)、すべてがtmpfsに格納されます。

tmpfsに関するLinuxのドキュメント は、がジャーナリングを実行するかどうかを詳しく説明していません。ただし、tmpfsramfs に基づいており、initramfsで使用されているのと同じファイルシステムであり、そのファイルシステムにはジャーナルがありません。したがって、(多かれ少なかれ)tmpfsにもジャーナルがないと仮定しても安全です。

ジャーナルのないファイルシステムでは、shredはファイルの上書きを実行するため、分析ツールで回復するのは困難です(RAMダンプから回復するのはかなり不可能です)。すべてがメモリページで発生し、tmpfsのiノードは単にメモリページを指します。shredを使用すると、これらのメモリページに書き込むことができるため、はるかに優れています。


警告

上記は確かに TailsKnoppix でこのように機能します。 Kali Linux を含め、LiveCD上のほぼすべてのLinuxディストリビューションで同様の方法で動作する可能性があります警告があります

これはファイルで機能します!メモリにはアプリケーションメモリも含まれます。アプリケーションメモリに関する Gilles '回答を参照してください。真剣に、その答えを見てください、それは重要なポイントを開きます。

また、Ubuntu Linuxに基づくディストリビューション(前任者のBacktrackはUbuntuに基づいていたため、Kali Linux *が含まれる場合と含まれない場合があります)は 起動するマシンで見つかったスワップをマウントします はるかに悪い攻撃ベクトル!デバイス自体の永続的なデータ!

Kali Linuxのもう1つの注意点は、metasploitが付属し、postgresで使用するためにmetasploitデータベースを起動することです。 Postgresには独自のジャーナリング(ファイルベースではなくファイルベース)があり、これも細断処理す​​る必要があります(つまり、psqlを介してデータを削除するだけでなく、postgresファイルを細断処理します)。


* KaliはUbuntuに基づいていません。Debianに基づいていますが、Backtrackと呼ばれ、Ubuntuに基づいていたときからすべての構成スクリプトを削除したかどうか確信が持てません。

2
grochmal

"シュレッド"を使用すると、関連するiノードがゼロになるため、RAMに実際のデータはありません。これにより、コールドブート攻撃とオンラインDMA攻撃が防止されます。

0
John Keates