データを回復できないようにサムドライブの内容を安全に削除する方法。

データを回復できないようにサムドライブの内容を安全に削除する方法。

データを回復できないように端末からUSBフラッシュドライブを削除する方法(可能な場合)を知りたいです。

ベストアンサー1

TL/DR: デバイス名が正しいことを確認し、マウントされていないことを確認し、できるだけ多くのランダムカバレッジを実行します。新しいディストリビューションを使用している場合は、フラッシュハードウェア用に設計された削除コマンドを後で実行できます。これらのチェックでは、常にドライブ(たとえば/ dev / sd)を使用してください。時間)の代わりにパーティション名( /dev/sdh1)

# dmesg|grep sdXX
[3600.000001] sd 6:0:0:0: [sdXX] 125106176 512-byte logical blocks: (64.0 GB/59.6 GiB)
# blkid|grep sdXX
/dev/sdXX1: PARTUUID="88a03bb2-ced8-4bb2-9883-0a51b4d460a8"
# df|grep /dev/sdXX
# shred -vzn8 /dev/sdXX
shred: /dev/sdXX: pass 1/9 (random)...
shred: /dev/sdXX: pass 1/9 (random)...46MiB/3.8GiB 1%
...
shred: /dev/sdXX: pass 9/9 (000000)...3.8GiB/3.8GiB 100%
# blkdiscard -s /dev/sdXX
blkdiscard: /dev/sdXX: BLKSECDISCARD ioctl failed: Operation not supported
# blkdiscard /dev/sdXX
blkdiscard: /dev/sdXX: BLKDISCARD ioctl failed: Operation not supported
#

理論的にはゼロで覆うことをお勧めしddます。ただし、フラッシュドライブが内部的に構成されているために単一の上書きを使用している場合は、残りの情報を保存している実際のブロックの後ろに隠された複数のデータレイヤがある可能性があります。

フラッシュストレージの一部が製造中に失敗し、フラグが立てられることがよくあります。無効になる可能性がある他のビット(変更不可、設定不可、またはキャンセル不可)があり、これらの部品も寿命中に不良とマークする必要があります。この情報は、お客様のデータと同じチップの予約済みスペースに保存されます。これは、4GBのサムドライブが2 ^ 32バイトの容量を表示しない理由の1つです。

フラッシュストレージは内部的に大きなブロックで構成され、時にはドライブで動作するファイルシステムよりもはるかに大きいです。一般的なファイルシステムブロックサイズは4 KBで、一度に消去できるフラッシュセグメントは64 KBから数メガバイトまでさまざまです。これらの大きなブロックは完全に消去するだけで、すべてのブロックが既知の状態(すべて1またはすべて0)にリセットされます。その後、データ書き込みはどのビットでも変更できます(必要に応じてデフォルトは1から0に、デフォルトは0から1に)一度。少しでも変えてください後ろにデフォルト状態に入った後、すべてのセグメントを再度クリアする必要があります!

したがって、4 KBのブロックを変更する場合(ファイルシステムがファイルの中央にある単一の文字を変更する必要がある場合)、フラッシュコントローラは前のデータの64 KBをすべて読み込み、バッファリングしてから、すべてのデータを削除して書き込む必要があります。新しいコンテンツをもう一度回してください。これは非常に遅いです。セグメントをクリアする作業は最も遅い作業です。さらに、セグメントは限られた回数(通常は数万回)しか消去できないため、単一のファイルを変更しすぎるとドライブが急速に破損する可能性があります。

しかしそれは真実ではない。スマートフラッシュコントローラは、単に4KBの新しいデータを他の場所に書き込んで、前のブロックの途中で読み出しをリダイレクトする4KBのデータを記録する。より多くのスペースが必要ですが、リダイレクトに関する情報を保存するスペースを表示できません。また、データを保存するためにアクセス可能なすべてのセグメントを通過しようとします。これを呼び出します。ウェアレベリング

これは一般的に古いデータはまだドライブに残ります。どこかに!アクセス可能なすべてのブロックを消去したばかりの場合、すべての隠されたブロックはまだ最新バージョンのデータを保持します。攻撃者からデータを保護したいのですが、これは別の問題です。

最新のディストリビューションがあり、USBドライブがフラッシュドライブであることを示すようにプログラムされている場合は、上記のセグメント消去であるblkdiscard低レベルの操作を使用できます。TRIMまた、目に見えない隠しデータもハードウェアによって完全に消去されることを保証する追加のフラグがあります。

# blkdiscard -s /dev/myusbdevice

-s, --secure セキュリティ廃棄を実行します。安全な廃棄は、ガベージコレクションで作成された可能性がある廃棄ブロックのすべてのコピーも消去する必要があることを除いて、一般廃棄と同じです。これにはデバイスのサポートが必要です。

上記のように必ずしも動作するわけではありません。このメッセージが表示されたら、Operation not supportedカーネル、ユーティリティ、またはUSBゲートウェイチップ(フラッシュコントローラがUSB経由でドライブのように見えるようにすることができます)は、TRIMこのコマンド転送をサポートしていません。 (フラッシュコントローラは依然としてセグメントを消去できなければなりません。)ドライブベンダーがサポートする場合、最も安全な方法です。

安全性が低いもう1つのアプローチは、可能であれば、古いデータを任意の値で複数回上書きして、古いデータがどこかに残るようにすることです。

なぜランダムに尋ねるのですか? USBドライブがあまりにもスマートに実行して特定のセクタを消去したいことを検出し、ビットマップのみを変更した場合、そのセクタは空で後で消去する必要があります。これは、ゼロを書き込む速度が速くなり、ペンドライブが動作することを意味するためです。現れるより効率的ですか?あなたのドライブがこれを行うかどうかを言うのは難しいです。

最も極端な場合、ドライブは最初から削除したデータの量だけを記憶することができます。これには約4バイトの情報を保存する必要があり、削除したいデータはまったく削除されません。これらすべては本当に素早く見えるようにするために行われます。

予測不可能な任意の値でデータを上書きすると、この最適化は不可能です。したがって、ドライブはデータが最終的にフラッシュメモリチップに保存されることを保証する必要があります。ただし、以前に使用されていたセクタの中にはまだ古いデータの一部が残っていますが、ドライブには正常にアクセスできないため、まだ削除することは重要ではないと考えていることを除外することはできません。実際のTRIMコマンドだけがこれを保証できます。

shred任意の値で自動上書きするには、次のように使用することをお勧めします。

# shred -vzn88 /dev/myusbdrive

使用されたオプション:

  • -v 進行状況を表示します。
  • -z 最終ステップとして 0 に設定
  • -n8は8回のランダム上書きを実行します。

可能であれば両方を使用blkdiscardし、shredドライブがそれをサポートしている場合、これは最善の解決策ですが、blkdiscard -sファームウェアエラーを排除するために事前に実行することは悪くありません。shred

ああ、そして消したい機器をぜひもう一度確認してください! dmesgは最近接続されているデバイスが何であるかを確認するのに役立ちます。デバイス名とls -al消去に使用したいデバイスノード番号、および消去したいblkid使用できないパーティションを確認する出力も確認することをお勧めします。

引き続き使用する内部ドライブにはこのコマンドを使用しないでください。blkdiscardソリッドステートドライブでのみ動作しますが、データを失う価値はありません!

テクノロジーが進化するにつれて、データを安全に削除する方法は他にもあります。

言及されているもう1つの方法は、コマンドを介してSECURITY ERASE実行hdparmできるATAコマンドです。私の経験では、フラッシュドライブは実際にはそれをサポートしていません。これはエンタープライズハードドライブ用に設計されており、最も安価なストレージデバイスではその機能を常に使用できるわけではありません。

TRIM/タスクはDISCARDコマンドよりもはるかに新しいものであり、SECURITY ERASEフラッシュ機能に応答して作成されたため、安価なUSBドライブでも実装可能性は高くなりますが、それでも普遍的ではありません。 USBドングルからSD /マイクロでSDカードを削除しようとしてもblkdiscardそのカードがサポートされていないと報告されている場合は、別のドングル/カードリーダーを使用するか、直接SD / MMCスロットを搭載したシステムで試す必要があります。これを行います。

おすすめ記事