提案されたコンセプトについてはコメントしません- アンチウイルスのメーカーはこのタスクにうまく対処します。 重要な点は異なります。アンチウイルス保護のバイパスは、概念的なアプローチを必要とするミサイルの科学ではなく、ごくありふれた現象です。 この事実を説明するために、私は人生からいくつかの技術的な例を挙げます。
例は、最近話題になっているお気に入りの動物、TDSSボットルートキットから抽出されます。 驚くことではありません。これは、最も一般的で技術的に高度で、積極的に開発されているボットの1つです。
左側の図は、TDSS 感染と同時にユーザーのコンピューターにインストールされたアンチウイルス保護に関する統計を示しています。
図の注記:
- 初期データ-2010年第1四半期のTDSS Removerユーティリティのユーザーからの統計
- 合計で、約1,000台の感染したマシンが処理されました
- これらのうち、12%に既知のアンチウイルスが装備されていました。
- この図には 、処理に失敗したウイルス対策ソフトウェアの統計は表示されませんが、ファイルをブロックまたは非表示にしません。 ファイルをブロックまたは非表示にするという事実は、ルートキット対策にとって重要な異常として統計に含まれます。
動物についてのいくつかの言葉
約2年前に登場したTDSSボットルートキット(Alureon、Tidserv、TDL / TDL2 / TDL3 +とも呼ばれます)は、驚くべき数に静かに、そして静かに増加しました。
すなわち:
- TDSSファミリー(ここでは-Alureon)は、2010年4月で3番目に感染したマシンです。
- TDSSボットネット(ここでは Tidserv) は 、世界でトップ10のボットネットに属し、米国だけで150万台のゾンビマシンの人口を表しています。
- 独自の調査によると、「150万」台の感染したマシンの数は非常に控えめです。
このように迅速かつ静かな勝利の基本的な要因は、 アンチウイルスと高度な技術を回避することに賭けていることです 。 この問題は、ボットの最初の日から今日まで正常に解決されました。アンチウイルスが更新されると、TDSSコードでそれらをバイパスする技術が更新され、常に研究者を喜ばせ、防衛開発者を革新の独創性で「喜ばせます」。
実際、TDSSの存在全体を通じて、最も一般的なウイルス対策ソフトやプロのルートキット対策キットなど、既存のすべての保護ツールでは継続的に達成できませんでした。 さらに、最近まで、ボットはウイルス対策メーカーが対処できない脅威を公表することは有益ではなかったため、その効果を装って静かに開発しました。
過去6か月で、状況はわずかに改善しました。 対立は続き、「大規模な」アンチウイルスはまだ対処できませんが、特殊なユーティリティ消毒剤(ノーマンTDSSクリーナー、カスペルスキーTDSSKiller)をリリースし始めました。
ウイルス対策バイパス:テクニカルヘルプ
生存の観点から、マルウェアには2つの重要なタスクがあります。
- インストール段階-動作保護バイパス(HIPS、予防的保護、サンドボックス)。
方法:保護の開発者によって提供されていない正当なシステムメカニズムの使用、および保護の「ホワイトリスト」。 あまり一般的ではないが、ウイルス対策またはオペレーティングシステムコードの脆弱性の悪用。
- 積極的な感染の段階で-独自のコードを検出および削除から保護します。
方法:ウイルス対策の更新の禁止やファイルへのアクセスのブロックから、ファイルの非表示(ルートキットテクノロジー)およびそれらの完全な不在(詳細は以下)。
セキュリティバイパステクニックの例
テクニックは、進化するTDSSで見つけた順にリストされています。 記載されているすべてのテクニックは、出現時ほど効果的ではありません。
例1 ダイナミックライブラリシステムキャッシュ
テクニックの本質:悪意のあるコードは、頻繁に使用されるライブラリ\ KnownDLLSのシステムキャッシュにあり、これらのライブラリのいずれかを使用するときに正当なシステムアプリケーションによって呼び出されます。
利益: 1石の2 羽の鳥が殺されました:行動保護のバイパスとパーソナルファイアウォールのバイパス。 後者は、悪意のあるコードがデフォルトで「信頼されている」システムプロセスのコンテキストで実行されるために可能です。
擬似コード:
// 1.
NtCreateSection(”\knowndlls\dll.dll”)
// 2. ,
// -
CopyFile(”msi.dll”, "patched_msi.dll")
WriteFile("patched_msi.dll", < dll.dll>)
// 3.
NtOpenSection(”\knowndlls\msi.dll”)
NtMakeTemporaryObject(...) // , ...
CloseHandle(...) //
NtCreateSection(”patched_msi.dll”)
// 4. , msi.dll => dll.dll
StartService (”Windows Installer (msiexec.exe)”)
例2 プリントマネージャー
この手法の本質は、前の例と同じです-システムプロセスでの受動的な実装。 メカニズムは多少異なります。悪意のあるコードは、サービスライブラリを装ってプリントマネージャーサービスによってスリップされます。
擬似コード:
//1.
GetPrintProcessorDirectory(...)
GetTempFileName(...)
CopyFile(<self>,<tempname>)
// 2.
StartService("spooler")
// 3.
AddPrintProcessor(<tempname>)
例3 合法的なドライバー感染
前の例は、行動保護の回避を示しています。 次に、TDSSによる検出と処理の回避方法を検討します。
アプローチの本質:システムへの変更を最小限に抑え、残りの「テール」の強力な低レベルマスキング。
昨年末以来、TDSSには実際には独自のファイルも、自動実行リストにもリンクがありません。 「テール」のマスキング力は、ルートキットフィルターがすべての既存のルートキット対策テクノロジーの下にあるという事実によって保証されます。
- ミニポートドライバーのマイクロドライバーが実装されています(IDEディスクの場合はatapi.sys、他のユーザーの場合はiastor.sys)。 ドライバーのサイズは変わらず、感染コードは最小限であり、ルートキットの本体のロードのみを提供します。
利益:ミニポートドライバーを使用したスタートアップ。 - ルートキットのコードと設定ファイルは、ディスクの最後のセクターの独自のファイルシステムに保存されます。
利益:ルートキットファイルはオペレーティングシステム用に「存在しません」が、それらへの秘密のパスを知っているアプリケーションで利用可能のままです。 - システムドライバーとディスクの最後のセクターの感染は、ミニポートレベルでデータをフィルター処理することによりマスクされます。
利益:既存のすべての保護メカニズムに対する不可視性(図を参照)。
例番号4。 オドノシャゴフカ
4月下旬、ボットは再び更新されました。
version= 3.273
builddate= 20.4.2010 16:17:53
今回は、既存の兵器庫の技術を最小限に変更するだけで、防御を回避するタスクが解決されます。 すなわち:
- 保護の監視下にあるAtapi.sys / iastor.sysファイル? -新しいバージョンでは、ランダムなドライバーが感染しています。
- 行動防御は、 AddPrintProcessor関数の呼び出しに気付くことを学びました。これは、同様のAddPrintProvidor関数の呼び出しに置き換えられました。 (!)
- 一部の駆除ユーティリティは、 SCSIパススルーインターフェイスを介してディスク上のルートキットの保護領域に到達しました。ルートキットの新しいバージョンでは、このメカニズムに対応するIRPがフィルタリングされます。
最後の例のように、大規模な悪意のあるプログラムのすべてのステップで基本的なワンステップ保護バイパススキームに遭遇するのは、まさにそのようなものです。 このソリューションは、開発者の特別な天才も保護の特別な脆弱性も必要とせず、非常に短い寿命が特徴です。
複雑な(例No. 3のように)テクニックまたはトリッキー(例No. 1および2)のテクニックは、資金の豊富なターゲットルートキットの特徴です。 TDSSチームが最高の開発者を失ったのか、それとも資金のかなりの部分を占めているのか、という疑問は未解決のままです。