本サービスには一部、Googleの支援により翻訳されたコンテンツが含まれます。Googleは、明示または黙示を問わず、市場性、特定目的への適合性、ならびに非侵害の黙示的保証を含む、翻訳の精度、信頼性、正確性に関連するあらゆる点において保証しません。

Kaspersky Labの本Webサイトは、便宜上、Google Translateを搭載した翻訳ソフトウェアを利用して翻訳されています。正確な翻訳となるよう合理的な努力を払ってはおりますが、自動翻訳の正確性は完全ではなく、翻訳者(人間)による翻訳に代わるものとして意図されているものでもありません。翻訳はKaspersky Labの本Webサイトをご利用の皆様の利便性を図るためのものであり、「翻訳結果をそのまま」ご提供するものです。英語からその他言語への翻訳における精度、信頼性、正確性に関しては、明示または黙示を問わず、いかなる保証もなされません。翻訳ソフトウェアのため、コンテンツの一部(画像、動画、フラッシュ等)は正しく翻訳されない場合があります。

Virus.DOS.Vacsina

クラス Virus
プラットフォーム DOS
説明

技術的な詳細

「Vaccina」(「VACCINA」ではなく)および「Yankee」ファミリーは、40を超える非メモリー常駐の良性寄生虫ウイルスで構成されています。それらのそれぞれは、3バイトからなるラベルを本体に持っています:F4h、7Ah、NNh。 3番目のバイトNNhは、ファミリ内のウイルス数(ウイルスバージョン数)とみなされ、以後、ウイルス名(「Vacsina.NN」および「Yankee.NN」)で満たされます。起動後、このファミリのウィルスは、00F:00、00:00C6、0000:00C7というアドレスのメモリにバイト7Fh、39h、およびNNhを書き込みます。ファミリのウイルスは、そのファミリの以前のバージョンのウイルスに感染したファイルを回復して再感染させるために区別されます。ウイルス「Vacsina.NN」には、身体に「VACSINA」という単語が含まれています。

このウイルスは、実行されたCOMおよびEXEファイル(最大26時間バージョンのウイルス)またはメモリ(バージョン26時間以上のウイルス)に感染します。ウイルスはCOMファイルを標準的な方法で感染させます。バージョン9までのウイルスは感染しているCOMファイルの最初のバイトをチェックします。このバイトがE9h(JMP)と等しくない場合、ファイルは感染しません。より高いバージョンのウイルスは、最初のバイトで.COMファイルを独立して感染させます。これとは別に、 "VACSINA"ウィルスは、感染ファイルの長さを段落まで増加させます。バージョン2Ah以上では、感染後にファイルに4バイト追加されます。

以前のバージョンのウイルス(最大23h)は、EXEファイルを特別な方法で感染させます。ファイルはCOMファイル形式に変換されます。この目的のために、ファイルには、実行のためにファイルをメモリにロードする際にアドレステーブルに従ってアドレスを調整するウイルスコードの小さな断片(132バイト)が付加されています。ファイルの最初の3バイト(フラグメントへのJMP)も変更されます。ファイルに追加された132バイトはウイルスを拡散しません。それらの機能は、実行時にプログラムアドレスを調整することだけです。このように処理されたファイルは、オペレーティングシステムによって実行され、多くのウイルスにCOMファイルとして感染します。したがって、EXEファイルが実行され、制御はアドレス再配置フラグメントに転送され、ファイル再配置フラグメントはファイルヘッダのアドレステーブルをチェックし、ロードされたプログラムを修正します。その後、制御はファイルヘッダーに記されている開始アドレスに転送されます。

ウイルスは割り込みベクトル21hをフックします。 「ヤンキー」ファミリーのメンバーの中には、INT 1、3、9、1Chがあります。

ウイルスは効果があります:ファイルが "VACSINA"ウイルスに感染すると、音声信号(BELL)が生成されます。 「ヤンキー」ウィルスは、いくつかの前提条件(ALT-Ctrl-Delを同時に押すか、午後5時)に応じて、「ヤンキー・ドゥードル・ダンディー」のメロディーを演奏します。状況によっては、 "Vacsina.06"ウイルスが "Az sum vasta lelja"という文字列を解読して表示します。

これらのウィルスにはいくつかの「脆弱性」があります:バージョン18h以上では、21h割り込みベクタ(DOSの割り込みハンドラのアドレス)の初期値が決まります。ファイルに組み込むと、その値に割り込みが発生します。このようにして、ウイルスはメモリ常駐のウイルス対策モニタをバイパスします。割り込みハンドラのアドレスを決定するには、以下のアルゴリズムが使用されます。

  • 割り込みベクタの真の値を決定するサブルーチンに01h割り込み(トレース時エントリ、この割り込みはプロセッサが命令を実行した後にデバッグモードと呼ばれます)を設定します。
  • トレースモードをオンにします。
  • 関数21h(メモリ常駐型アンチウィルスの観点から)の「無害」割り込みを呼び出します。
INT21hの「無害」機能を実行すると、割り込みベクトル21hを変更したすべてのプログラムの命令が順次実行され、この割り込みを処理するオペレーティングシステムコマンドが実行される。実行されたコマンドが実行されるたびに、制御がウイルスサブルーチンに渡され、割り込みベクトルの初期値が決定されます。最後に実行されたコマンドのアドレスを確認し、このアドレスがオペレーティングシステムに属するメモリ領域を指している場合、デバッグモードをオフにし、このコマンドのアドレスを21h割り込みベクタの初期値として扱います。

00000�…�
+ —————-
�操作�
+ ——————>�システム
�+ —————-
��COMMAND.COM
�INT 21h + —————-
+ ——————-�ユーザー�——-変更されたプログラム
+ ——————>�プログラム��割り込みベクトル21h
�+ —————-��
��…��
�INT 21h + —————-�
+ ——————-�ユーザー�— +
+ ——————>�プログラム
�+ —————-
��…�
�+ —————-
��ウイルス�
�INT 21h�————-
+ ——————-�電話をかける
�割り込み21h
^��————-
�+ ————>�プログラム�
��の決定
+ —————-�ベクトル�
+ —————-
FFFFF�…
バージョン21h以降では、デバッガの動作をフックし、ウイルスの本体がデバッグされている状態で、デバッグ処理を停止します。デバッガの下に感染したファイルをダンプしようとすると、ファイルは "それ自身を治す"。

21h以上のバージョンは、線形ブロックコードでコード化し、本体のバイトをチェックし続けます。ウイルスは定期的に変更の有無を確認し、可能であれば修正します。

バージョン2Ch以降では、「PingPong」ウィルスのメモリ常駐部分を無効にします。バージョン2Eh以降では、「カスケード」ウィルスに対する対策がいくつか行われています。

"VACSINA"と "Yankee"の変更

「VACSINA」と「Yankee」のウイルスはかなり人気があります。数十種類の「元の」ウイルスとは別に、突然変異がオリジナルから幾分巧みにコピーされています。したがって、イルクーツク(ロシア)では、「ヤンキー53」と呼ばれる権利に挑戦するウイルス(「ヤンキー1905」)が発見されている。しかし、その数(53h)には耐えられず、INT 21hをトレースするのは1つだけです。

"Yankee.1049,1150,1202" – 無害なメモリ常駐ファイルウイルスです。実行時にCOMおよびEXEファイルに感染します(INT 21h、 "Yankee.1049" – ax = 4B00h、 "Yankee.1202,1150" – ah = 4Bh)。ウイルスはファイルの最初の32バイトを変更し、その終わりに、そして多くの点で、「ヤンキー」ウイルスと一致するように自身を添付します。 21hベクトルが使用されます。

"Yankee.3045"には、 "LOGIN.EXE SUPERVISOR。HESLO。"という文字列が含まれています。

"Yankee.Flip.2167":システム日付に応じて、INT 8,9、および10hをフックして画面を「反転」します。

Yankee.2189

"ヤンキー"家族。このウイルスは暗号化されており、時には '/'、 ''、 ' – '、 '|'という記号を巻くこともあります。

ヤンキー。エストニア.1716

"ヤンキー"家族。実行されるCOMMAND.COMを除いて、COMおよびEXEファイルに感染します。 COMフ​​ァイルに4つの制御バイトを追加します。月曜日の午後2時に、画面の中央に「Independent Estonia presents」メッセージが復号化されて表示され、その後、曲が再生され、コンピュータが再起動されます。


オリジナルへのリンク