新しいファイルの書き込みからフラッシュドライブを保護する

フラッシュドライブをウイルスから保護するトピックの開発を続けています(以前にAUTOSTOPの資料-フラッシュドライブを自動実行ウイルスPanda USBおよびAutoRunワクチン から保護するスクリプト-フラッシュドライブでの自動実行ウイルス の治療法 -書き込みからフラッシュドライブを保護することに主に焦点を当てていました)悪意のあるファイル(autorun.inf)。 このトピックは、コンピューター上のウイルスのクリーニングが調査との戦いであり、ウイルスからフラッシュドライブを保護することが原因の除去を目的とした手段であるという点で興味深いものです。



フラッシュドライブは、 fsutilユーティリティを使用して、空き領域を特定し、その後、完全にいっぱいにすることにより、新しいファイルの書き込みから保護されます。 この方法は、たとえば、同じ名前のAUTORUN.INFディレクトリを作成することでは保護できないブート可能なフラッシュドライブ(autorun.infファイルを持つ)を保護するのに最適です。



画像

以下は、メソッドの説明、その分析、および完全自動化の方法です。



このメソッドは私によって発明されたのではなく、ユーザーcookによって提案され、後にいくつかの専門的なソースで発見されました。 私はそれを使用する便利な自動化された方法を開発し、(その強さと脆弱性の両方の分析に基づいて)より正確な名前、つまり「新しいファイルの書き込み保護」(他のソースのより正確でない名前、「保護」記録から」、これは方法の本質を完全に反映していない)。



方法



オリジナルでは、そのようなファイルを作成するには、次のコマンドを使用します。



fsutil file createnew <filename> <length>







Fsutilはコマンドラインユーティリティです。 fsutilを使用するには、管理者アカウントまたは管理者グループのメンバーでログオンする必要があります。



テストの結果判明したこのメソッドには、2つのマイナス点があります。

  1. FAT32にはファイルサイズの制限があります(2 ^ 32バイト、つまり4ギガバイト)。 したがって、サイズが8ギガバイトのフラッシュドライブは情報で一杯ではなく(このようなフラッシュドライブは今日ではそれほど珍しくありません)、この方法で保護することはできません
  2. 大きなファイルの作成には数分かかります。 保護ファイルを削除する必要がある場合は、USBフラッシュドライブに何かを追加してから、保護を再度設定しますか? 繰り返しますが、大きなファイルを作成するのに時間がかかります




私の自動化バージョンでは、以下のコードが使用されます(batファイルの形式で発行され、USBフラッシュドライブにコピーされ、そこから実行される必要があります)。



@echo off

setlocal enabledelayedexpansion

set /a sizofile=1024 * 1024 * 1024

for /l %%K in (1,1,256) do (

for /f "tokens=3" %%J in ('dir %~d0 /-C') do (set freespace=%%J)

if !freespace! EQU 0 goto ready

if !freespace! GTR !sizofile! (

call :getime

fsutil file createnew "%~d0\[ 1024 Mb ] !randtime!" !sizofile!

) else (

for /l %%K in (1,1,5) do (

for /f "tokens=3" %%J in ('dir %~d0 /-C') do (set freespace=%%J)

set /a sizofilemb=!sizofile! / 1024 /1024 / 2

set /a sizofile=!sizofile! / 2

if !freespace! GEQ 67108864 (

if !freespace! GEQ !sizofile! (

call :getime

fsutil file createnew "%~d0\[ !sizofilemb! Mb ] !randtime!" !sizofile!

)

) else (

if !freespace! EQU 0 goto ready

call :getime

fsutil file createnew "%~d0\[ 1-63 Mb ] !randtime!" !freespace!

goto :EOF

)

)

)

)



:getime

set randtime=!time:~-10!

set randtime=!randtime::=!

set randtime=!randtime:,=!

exit /b









コードのロジックは次のとおりです。





その結果、次のファイル構造がUSBフラッシュドライブ上に作成され、すべての空き領域がいっぱいになります(同じ名前のファイルを作成するエラーを回避するには、各ファイルの名前の末尾に7桁の一意のコードが必要です)。



[1-63 Mb] 7344296

[64 Mb] 7343581

[256 Mb] 6050959

[512 Mb] 6043075

[1024 Mb] 2341570

[1024 Mb] 2353157





USBフラッシュドライブにこのような保護をインストールした後は、そのドライブから何も削除できません(前述のbatファイルを含む)。そうしないと、保護が無効になります。 新しいファイルの書き込み保護を解除するには(たとえば、必要に応じてUSBフラッシュドライブに何かを書き込みます)、この方法で作成された1つ以上のファイルを必要最小限のサイズで削除し、データを書き留める必要があります。 この後、保護を復元するには最小限の時間がかかります。



分析



厳密に言えば、この方法は、一部のタイプのフラッシュドライブで使用可能なハードウェア読み取り専用スイッチの完全な類似物とは見なせません。 記載されている方法でフラッシュドライブが新しい​​ファイルの書き込みから保護されている場合でも、ウイルスはフラッシュドライブにautorun.infファイルを作成できますが、このファイルには何も書き込むことができません。



また、ファイルの保存に割り当てられた残りの空き領域(クラスタリングによる)により、ウイルスは既にフラッシュドライブにある潜在的に脆弱なファイルに感染する能力があることに注意する必要があります。 しかし、ウイルス機能の開発の傾向から、今日のウイルスは個々のファイルにますます感染していると言えるようになり、Windowsオペレーティングシステムの脆弱性をますます使用しています。



したがって、USBフラッシュドライブに空ではない新しいファイルを作成できないという状況でのみ、このような方法を書き込み保護と見なすことができます。 ただし、実践が示すように、これは自動実行ウイルスに対する深刻な保護対策です。 上記のように、この方法は、同じ名前のAUTORUN.INFディレクトリを作成することで保護できないブート可能なフラッシュドライブ(autorun.infファイルを持つ)を保護するのに最適です。また、他の人のコンピューターに接続する必要なソフトウェアの個人セットを持つフラッシュドライブにも最適です。



ハードウェアの読み取り専用スイッチによって提供される、 悪名高い保護の信頼性について、少し言いたいと思います。 そのような場合がありました。



妻のカメラ(Canon A610)には、バッテリーインジケーターを表示する方法がありません。 この機能を備えた代替ファームウェアを見つけまし 。 メモリカードに書き込みました。 ファームウェアの指示では、ファームウェアを自動的にロードするには(カメラの電源をオンにした後、手動で起動しないように)、メモリカードのスイッチを「ロック」位置に切り替える必要があります。 このアイテムを何度も読み直しましたが、本当に間違っていましたか? いいえ-そうです。 スイッチを「ロック」位置に入れて、カードをカメラにロードします。今では彼は記録の不可能性について呪いをかけています。そして、何も起こりません。 独自の結論を導き出します。




具体的な実装



batファイルを自分で作成するためのコードを上に示します。 しかし、 AUTOSTOPスクリプトの新しいバージョン2.4を使用するのが最も便利です



画像

彼女は、各ファイルの作成が完了した後、システムスピーカーから短い音声信号を生成できるため、数秒ごとに別のファイルが作成されているかどうかを確認する必要がなくなります(結局のところ、「見ているやかんが沸騰しない」)。保護が完了すると、長いビープ音が鳴ります。



PS-NTFS権利メソッドを使用してフラッシュドライブの保護をキャンセルした人はいないことを思い出しますが、何らかの理由でその使用が望ましくない場合があります。



PPS-コードの作成を手伝ってくれたElroirに感謝します。



All Articles