3月5日に、フラッシュドライブを自動実行ウイルスから保護する
AUTOSTOPスクリプトに関する記事を書きました。 そしてちょうど今日、私はリソースの1つとして、スクリプトの議論に捧げられた
トピックで 、代替の(より信頼性の高い)方法に関する新しい記事を書くつもりでした、私は説明したい方法に従って正確に動作する
Panda USBおよびAutoRun Vaccineプログラムによって促されました。 そして、
見事に動作します! USBフラッシュドライブで作成された
autorun.infファイル(ウイルスによるこのようなファイルの作成を防ぐため)は、削除も名前の変更(スクリプトの弱点)も変更も、開くこともできません。
プログラムをもっとよく知り、その機能と仕事の原理が基づいている方法を考えてみましょう。
方法
まず、方法についてお話します。
記事を公開してから数日後、ユーザーLJ
__x_tra彼が思いついた自動実行ウイルスからフラッシュドライブ
を保護する別の
方法について、LiveJournalで登録を解除しました:AUTORUN.INFというファイルまたはディレクトリがフラッシュドライブに作成され、WinHexを使用してこのファイルまたはディレクトリに無効な属性が設定されます。
FAT32ファイルシステム仕様 (FATGENとしてよく知られている)に従って、ここで思い出させてください(ここではFATによるフラッシュドライブの保護を検討しています)。
File attributes:
ATTR_READ_ONLY 0x01
ATTR_HIDDEN 0x02
ATTR_SYSTEM 0x04
ATTR_VOLUME_ID 0x08
ATTR_DIRECTORY 0x10
ATTR_ARCHIVE 0x20
ATTR_LONG_NAME ATTR_READ_ONLY | ATTR_HIDDEN | ATTR_SYSTEM | ATTR_VOLUME_ID
The upper two bits of the attribute byte are reserved and should always be set to 0 when a file is created and never modified or looked at after that.
__x_traによって考案されたバリアント
では 、2つの上位ビットを0ではなく1に配置する
ことが提案されました。属性バイトは次のようになりました。 0xC7、0xD7、0xE7の形式で可能なオプションも提供されました。 私はメソッドをテストしました-それは働いていることが判明しました! この方法で割り当てられた属性を持つAUTORUN.INFは、開いたり、名前を変更したり、変更したりできませんでした。 私は2つの要因だけで混乱していました。
- この方法の正しさ:ファイルシステムのパフォーマンスにどのように影響するか。
- メソッドの再現性:単純なユーザーにWinHexが何であり、どのように使用されるかを説明する方法。
プログラム
Panda USBとAutoRun Vaccineプログラムに戻りましょう。
「パンダUSBワクチンは現在、FATおよびFAT32 USBドライブでのみ動作します」ということを思い出させてください。 小さなファイルサイズ(393Kbのみ)とSpartanインターフェイス-すべてが考え抜かれ、それ以上はありません。 プログラムが無料であることを追加します。
「Vaccinate USB」ボタンから始めます。 事前にフラッシュドライブにRAHS属性を持つautorun.infファイルを意図的に作成しました。これは、ボタンをクリックして同じ名前のファイルで上書きすることでプログラムを妨げることはありませんでした。記事の冒頭で述べたように、「削除または名前の変更はできません(で私のスクリプトの弱点は何でしたか)、変更もオープンもしません。」 WinHexでUSBフラッシュドライブを開き、autorun.infファイルの属性を確認します。 そして、私たちは何を見ます:
__x_traメソッドと同様に、ファイル属性が変更されることが
わかります:
0x40 。
FAT12、FAT16、およびFAT32 Windowsファイルシステムの記事では、FATGENにない復号化が見つかりました。
0x40 Device (internal use only, never found on disk)
0x80 Unused
つまり 属性0x40はそれほど「不正」ではありません-「仕様内」です。 正直なところ、ユーザーがWinHexに頼らなくても、ボタンを1つ押すだけで、Panda Softwareのスタッフが小さなプログラムでこのメソッドを実装できたことを非常に嬉しく思います。
プログラムを使用してフラッシュドライブの予防接種をキャンセルすることは不可能です。 USBフラッシュドライブにautorun.infを作成する必要がある場合(たとえば、起動可能にするため)-WinHexが支援または再フォーマットできます(この目的のために、HP USBディスクストレージフォーマットツールを使用することをお勧めします)。
2番目のボタンは
、ワクチン接種プログラムです。 彼女が何をするかを確認してください:
これは私にとって馴染みのあるものです(AUTOSTOPスクリプトを作成する前でも、この方法を使用していました)Nick Brownによって発明された方法:
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\Autorun.inf]
@="@SYS:DoesNotExist"
SYS :DoesNotExistは、Autorun.infファイルから起動パラメーターを読み取らず、存在しないHKEY_LOCAL_MACHINE \ SOFTWARE \ DoesNotExistレジストリブランチから読み取るようにエクスプローラーに指示します。 その結果、外部メディアにAutorun.infファイルが含まれている場合、メディアがコンピューターに接続されていると、Autorun.infは起動しません。 さらに、Windowsエクスプローラーでこのメディアのドライブ文字をダブルクリックしても起動しません。
この方法は優れています(プログラムにはこのアクションをキャンセルする機能があります。ユーザーがボタンをもう一度押すことで自動実行が必要な場合は、
「ワクチンを削除」と表示されます)。ただし、自動起動を追加する必要がありますさらに3つのレジストリキー(引用した構文では、batファイルを介して追加されます):
- REG ADD "HKLM \ソフトウェア\ Microsoft \ Windows \ CurrentVersion \ Explorer \ AutoplayHandlers \ CancelAutoplay \ Files" / v "*。*" / D "" / f
CancelAutoplay \ Filesには、ファイルの名前を含むテキストパラメーターがあり、組み込みのAutoRunがメディア上で起動せず、autorun.infを介してメディアを起動できるようにします。 次のコンテンツの文字列パラメーターを追加します:*。*(すべてのファイル)。 - REG ADD "HKLM \ソフトウェア\ Microsoft \ Windows \ CurrentVersion \ポリシー\エクスプローラー" / v NoDriveTypeAutoRun / t REG_DWORD / d 255 / f
NoDriveAutoRunは、文字の指定によって特定のドライブからの起動を禁止し、NoDriveTypeAutoRunはタイプによって特定のドライブからの起動を禁止します。 autoranはまったく必要ないので、2番目のものを使用します。 - REG ADD "HKLM \ SYSTEM \ CurrentControlSet \ Services \ Cdrom" / v AutoRun / t REG_DWORD / d 0 / f
CDROM-自動実行CDのサポートを完全に無効にします(手動でも)。
プログラムの追加機能のうち、次の点に注意してください。キーを使用してプログラムを実行する場合(このキー以外にも、さらにいくつかあります-
プログラムのページを参照して
ください )
USBVaccine.exe /resident
その後、常駐してハングアップし、新しいフラッシュドライブを接続すると、予防接種を提供します。
結論
FATを使用したフラッシュドライブを自動実行ウイルスから保護するために今日知られている方法の中で、これは
最も信頼性の高い方法です。 Panda Softwareのプログラムがそのようなことを行うことができるので、遅かれ早かれウイルス作成者もこれを学ぶことができることは明らかです。
* Panda USB Vaccine 1.0.0.19ベータプログラムが、AUTOSTOPスクリプトに関する私の記事が書かれた3月5日にリリースされたことは興味深いことです。 おそらく将来的には、3月5日は自動実行ウイルスに対する国際デーと呼ばれるでしょう:)----------------------------------------
UPD:
コメントでは、「Panda USB and AutoRun Vaccine」によって作成された保護された「autorun.inf」ファイルを非表示にすることが論理的であるという考えが表明されました(ユーザーの目に留まらず、フラッシュドライブを再フォーマットして保護を破壊しないようにするため)。
Inskinは、一般的には表面にあるエレガントなソリューションを見つけました。ファイル属性はビット単位です。 0x40(01000000)+ 0x01(00000001)+ 0x02(00000010)+ 0x04(00000100)を追加すると、0x47(01000111)が得られ
、RHS属性を持つ
保護されたファイルがあります 。 上の図では、WinHex行のフラグメントは、その下にFARウィンドウの一部です。
__x_traに
連絡しましたが、彼は親切に協力してくれました。
ファイル属性0x47を公開する修正版(ご自身の責任で使用してください):
USBVaccine_47.zip (USBVaccine_47.exe、サイズ-1 182 464バイト、サイズは元のバージョンよりも大きくなります。元のファイルはUPX、MD5:5e3eb34bb09b1dda31dae0dfd8cd3521)。