特定のファイルをSDまたはマイクロSDカード(フラッシュメモリを使用するデバイス)から安全にワイプするためのコマンド、ツール、またはpythonライブラリがありますか?)
たとえば、通常の磁気ハードドライブでは、 ワイプコマンド を使用してファイルを安全に削除できます。
そのようなツールを見つけるのに苦労しています。
フラッシュストレージは、物理的および運用レベルで回転ディスクストレージと本質的に異なります。回転ディスクとは異なり、フラッシュストレージの書き込みサイクルには制限があります。メディアの寿命を、ストレージメーカーが思いついた使いやすいものに増やす解決策は、 ウェアレベリング と呼ばれます。基本的にこれが意味することは、ディスク上の論理ブロックに2回書き込むと、ストレージメディア内の2つの異なる物理ブロックに書き込む可能性が高いということです。
単にブロックに書き直すだけで十分だとする回答は、これを考慮に入れていません。 この答え に従ってSDカードに実装されているSDカードとそうでないSDカードについて具体的に質問しました。ですから、正直に答えることはそれほど簡単ではありません。
さらに、物理ブロックを再書き込みする前に、まず消去する必要があります。これには少し時間がかかり、パフォーマンスが低下します。さらに悪いことに、フラッシュデバイスは、どのブロックが使用中であり、それが指示されない限り使用されないのかわかりません。これが trim コマンドの使用目的です。簡単に言えば、解放できるブロックを基になるメディアに通知するため、ストレージメディアはアイドル時間中にバックグラウンドで消去操作を実行できます。 trimコマンドはATA/SCSIバスに固有のものであり、繰り返しになりますが、SDカードについて尋ねました。 SDカード市場に対応するコマンドがあるかどうかはわかりませんが、覚えておく必要のあることです。
その結果、フラッシュストレージでの消去は、回転しているHDDの消去ほど簡単ではありません。同じ物理セクターに書き込んでいることを保証できないという事実は、問題を非常に複雑にします。 SDカード上のファイルを消去するために期待できる最善の方法は、ドライブ上のすべてのセクターに書き込むことです。
これでも完璧ではありません。一部の製造元は、1つのセクターが新しいブロックにマッピングされた論理ブロックが使い果たされたときに使用できるスペアセクターを持っています。したがって、すべての論理セクターを上書きしても、すべての物理セクターが上書きされるわけではありません。 (ところで、同じことがディスクの回転にも当てはまります)。
SDカード(フラッシュメモリ)からファイルを安全に消去するためのコマンド、ツール、またはpythonライブラリはありますか?
「ブロックレベル」ディスク(つまり、「/ dev/sdX」ファイルなどを介してブロックレベルデバイスとしてオペレーティングシステムに公開されるディスク)からファイルを「安全に」ワイプできる多くのツールがあります。 。フォレンジック用語では、このタイプのワイピングは、SDカードの一般的な「物理的抽出」では、ファイルがディスク上にあったという証拠を示さないことを意味します。割り当てられたクラスターとディレクトリエントリ(ここでは、SDカードがFAT32であると想定しています)を安全に上書きするために使用できる1つのシンプルなツールは、Linuxの "dd"コマンドです。
また、あなたの質問は、SDカード上のデータが、通常、メモリコントローラーを介して制御されるフラッシュメモリチップに保存されるという事実を示唆しているようです。メモリコントローラーは、フラッシュメモリの一部を予約し、フラッシュメモリのさまざまな部分をブロックデバイスの同じ論理ブロック/セクターにマップできます。
したがって、誰かが通常のディスクレベルのフォレンジックイメージングを「超えて」行き、SDカードの「チップオフ」分析を実行した場合、「ディスクレベル」で完全に上書きされたように見えるファイルに実際にフラッシュレベルの残党。このタイプの「チップオフ」分析は、多くの場合、費用がかかり、エラーが発生しやすくなりますが、このタイプの分析でもフラッシュメモリチップからデータを回復できないようにしたい場合は、いくつかの方法を試すことができます。たとえば、メモリコントローラがフラッシュメモリのどの部分も「保存」しないことを期待して、「dd」を使用してSDカードを複数回上書きすることができます(ただし、これは、メモリコントローラが実際にどのように動作するかを知ることが条件です。多くの場合、独自仕様です)。