私は、ReginマルウェアのSymantec&KasperskyLabs分析を読んでいます。
ノートンライフロックによると
[ステージ2]は、ステージ1の実行中のインスタンスを非表示にすることもできます。これが発生すると、はっきりと見えるコードアーティファクトは残りません。
私が理解しているように、ステージ1はWindowsドライバーとして実装されており、再起動せずにWindowsドライバーをアンロードする安全な方法はありません(たとえそうだとしても、ステージ2自体も別のカーネルドライバーです)。
同様に、私が知る限り、実行中のカーネルドライバーのリストを傍受して操作する方法はありません(また、合法的にあるべきではありません)。ルートキットがファイルシステム上のファイルに対して行う方法です。
では、ステージ2はステージ1の実行中のインスタンスをどのように非表示にするのでしょうか。このオンラインに関する情報はほとんどないようですか?
私はカーネルハッカーではありませんが、私が読んだところによると、この手法はユーザースペースの関数フックに似ています。
m何らかの方法でカーネルにロード/注入されます。これで、インフラストラクチャの一部に接続するなど、OSに対して必要なことをすべて実行できます。
mエントリを置き換えますtf関数への参照を保持するf、これはmの存在を明らかにするのに役立ちます。その代わりにm同様の関数への参照を配置しますf 'にtf、これはmの一部であり、fを使用しますが、結果をフィルタリングおよび/または変換して、mのトレースを非表示にします。
ユーザースペースプログラムが疑わしいカーネルモジュールを探しており、fを呼び出したいと考えています。システムコールを受信した後、カーネルはルックアップしますtf、それは期待するのでtffへの参照を保持します。代わりに、f 'を見つけて呼び出します。したがって、ユーザースペースプログラムはmによって制御される結果を受け取ります。