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

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

Virus.Win32.Crypto

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

技術的な詳細

このテキストは、GeCAD SoftwareのAdrian Marinescuの助けを借りて書かれました。

これは約20Kの長さの非常に危険な記憶型寄生虫多型Win32ウイルスです。 KERNEL32.DLLファイルとPE EXEファイルに感染します。コードの最後にコードを書き込み、PEヘッダーの必要なフィールドを変更して、感染ファイルの実行時に制御を取得します。ウイルスはまた、さまざまなタイプのアーカイブ(ACE、RAR、ZIP、CAB、ARJ)といくつかのタイプの自己解凍型パッケージ(SFX ACEおよびRARファイル)にその「droppers」を追加します。

このウイルスはPE EXEファイルとアーカイブにのみ感染し、KERNEL32.DLLファイルには暗号化されていないウイルスイメージを残します。

このウイルスはアンチ・デバッグ・トリックを使用し、ウイルス対策オンアクセス・スキャナ(Avast、AVP、AVG、Amon)を無効にし、アンチウイルス・データ・ファイル(AVP.CRC、IVP.NTZ、ANTI-VIR.DAT、CHKLIST.MS 、CHKLIST.CPS、SMARTCHK.MS、SMARTCHK.CPS、AGUARD.DAT、AVGQT.DAT)、LGUARD.VPSファイル(アンチウイルスデータベース?)をパッチし、多くのウイルス対策プログラムの感染を防ぎます:TB、F- DSA、IBM、INOC、ANTI、SCN、VSAF、VSWP、PANDA、DRWEB、FSAV、SPIDER、ADINF、SONIQUE、SQSTARTのような、

最も重要なウイルス機能の1つは、ロードされたときに「オンザフライ」Windowsライブラリ(DLLファイル)を暗号化/復号化するという事実です。ライブラリをロードするとウイルスはそれを解読し、アンロード時にウイルスを暗号化しますファイル本体。 DLLファイルを暗号化するために、このウイルスは強力な暗号化アルゴリズム(Windowsに含まれるCrypt APIによって提供される)を使用します。その結果、感染したシステムは、ウイルスコードがメモリに存在する場合にのみ動作し、この暗号化/復号化を実現します。システムが駆除された場合、DLLライブラリは暗号化されたままであり、システムはそれらをロードできません。このような技術を使用する最初のウイルスは、1990年代後半に「よく知られていたOnehalf multipartite」ウイルスでした。

このウイルスは、Win95およびWin98標準エディションなど、いくつかのWin32バージョンと互換性がありません。これらの条件下では、ウイルスはシステムにインストールされません(KERNEL32.DLLに感染しません)。また、PE EXE感染ファイルもありません。

システムへのインストール

感染したファイルがクリーンシステムで初めて実行されると、多形の暗号解読ループは制御を取得し、元のファイルコードをクリーンな形式で復元し、そこで制御を渡します。インストールルーチンは制御を取得し、いくつかのアンチデバッグおよびアンチウィルス対策手順を実行した後、ウィルスコピーをシステムにインストールします。

インストール中、ウイルスはKERNEL32.DLLファイルに感染し、次回の起動時にWindowsはKERNEL32ライブラリの一部としてウイルスコードを読み込みます。感染中、KERNEL32.DLL(CreateFile、OpenFile、__lopen、Cop​​yFile、MoveFile、MoveFileEx、LoadLibrary、LoadLibraryEx、FreeLibrary)からエクスポートされたいくつかのファイルアクセス関数を、次の読み込み時に傍受してフィルタリングするように、 – ANSIとUNICODEの両方の形式で)。

KERNEL32.DLLを感染させるには(このライブラリはウイルスが実行されるとメモリに読み込まれ、Windowsによって書き込みが保護されます)、KERNEL32.DLLファイルがWindowsフォルダにコピーされ、このコピーが感染してWindowsが強制的に次の起動時に古いファイルと感染したファイルを切り替えます。その結果、次回の再起動時にWindowsに感染したKERNEL32.DLLがロードされます。ウイルスはファイルアクセスイベントをフィルタ処理し、PE EXEおよびアーカイブ感染ルーチンを実行します。

KERNEL32.DLLに感染した後、ウイルスはそのコードをメモリから消去し、制御をホストプログラムに戻します。

ウイルス拡散

Windowsに感染したKERNEL32.DLLがロードされると、ウイルスはKERNEL32.DLLのコンポーネントとしてメモリに残り、KERNEL32のエクスポートされた複数の関数をフックします。これらの機能を最初に呼び出すと、バックグラウンドで犠牲者ファイル(PE EXE)を検索し感染させる感染ルーチンを起動します。ウイルスは、CからZまでのすべてのドライブのファイルを検索します。

スキャンプロセスをあまり目立たないようにするために、ウイルスは最初に各ドライブスキャンの前に3秒待機します。

ファイルに感染すると、ウイルスは最後のファイルセクションを拡大し、そのコードのためのスペースを予約し、そこに多形の解読器と共に暗号化されたコードを書き込み、解読ルーチンにプログラムエントリポイントを設定する。

アーカイブの感染

このウイルスは、ZIP、CAB、ARJだけでなく、ACEおよびRAR(SFX自己解凍ファイルを含む)のアーカイブにドロッパーを追加することができます。アーカイブ内のウイルス駆除ツールは、亜種からランダムに選択された名前を取得します。

インストール、セットアップ、実行、サウンド、設定、ヘルプ、グラビティ、クラック、アップデート、README

「!」で始まりまたは/および終わりになります。 char。ファイル名の拡張子は.EXEです。

そのドロッパーをアーカイブに追加するために、ウイルスはディスクファイルとしてドロッパーを作成し、それぞれのアーカイブタイプを処理するために必要な外部プログラムを実行します。この方法を使用すると、ウイルスは、アーカイバプログラムに応じて、ランダムに選択された方法で圧縮されたドロッパーを追加することができます。

ライブラリの暗号化

ウイルスは、WindowsのCrypt APIを使用してウイルスのインストール部分に暗号化キーを作成します。キーが正常に作成された場合、ウイルスはアプリケーションによって使用されるDLLファイルのコードを暗号化することができます(必要に応じてWindowsによってロードされます)。これを実行するために、ウイルスはLoadLibraryとFreeLibraryフックを使用し、ライブラリの読み込みをインターセプトし、それらを即座に暗号化/復号化します。

SFC、MPR、OLE32、NTDLL、GDI32、RPCRT4、USER32、RSASIG、SHELL32、CRYPT32、RSABASE、PSTOREC、KERNEL32、ADVAPI32、RUNDLL32、SFCFILESのいずれかで始まる名前のDLLは除外されます。また、次の一覧に記載されているDLLは暗号化されていません。

 SystemCurrentControlSetControlSessionManagerKnownDLLs 
 SystemCurrentControlSetControlSessionManagerKnown16DLLs 

最も重要な側面は、暗号化キーと暗号化アルゴリズムが感染したシステムごとに一意であることです。 WinCryptはカスタム暗号化アルゴリズムをサポートしているため、Windows以外のシステムからの駆除は不可能です。 DLLの暗号化は多くの時間/ CPUリソースを消費します – ウイルスはレジストリから必要なキーを毎回読み込みます。

Windowsに含まれるCrypt APIを使用できるようにするには、コンテナ名を「Prizzy / 29A」に設定して、新しいキーを作成する必要があります。最初に、ウイルスはその存在をチェックし、キーが存在しない場合は、新しいAPIを作成するために専用のAPIが呼び出されます。その後、ウイルスは生成された鍵を保存する必要があります。そのためには、ウイルスはシステムレジストリを使用します。この時点で、このウイルスには制限があります.CryptAquireContext APIコールの後にキーSOFTWAREMicrosoftCryptographyUserKeysPrizzy / 29Aが作成されると想定します。ウイルスは新しく生成されたキーに 'Kiss Of Death'という値を設定します。


オリジナルへのリンク