web-dev-qa-db-ja.com

広範なマルウェアはなぜXOR難読化を使用するのですか?

タイトル通り...

マルウェアは、一般的な既知のXORテクニックを使用して難読化されていれば、簡単に難読化解除できます。マルウェアの作成者が、自動的に難読化を解除して特定するのをはるかに困難にする他の方法を使用しないのはなぜですか?悪意のある埋め込みコード?

私の考え:マルウェアの作成者は実際には他の暗号化方法を使用します、アルゴリズムの実装の単純さ、コードのサイズ制限、事前にパックされたオプション(メタスプロイト)はこれらの技術を提供します-必要はありません-XORテクニックはほとんどの検出メカニズムをすでにバイパスしています

それでも、マルウェアはすでに信じられないほど複雑ですが、なぜ難読化も常に複雑ではないのですか?

3
user2089851

より複雑な難読化手法があります。たとえば、変成および多態マルウェア。

これがどのように機能するかを詳述しているマーガレット・ローズの検索セキュリティに関する 記事 があります:

メタモーフィックマルウェアとポリモーフィックマルウェアは、コードが広がるにつれてコードを変更する機能を持つ悪意のあるソフトウェアプログラム(マルウェア)の2つのカテゴリです。

メタモルフィックマルウェアは反復ごとに書き直されるため、後続の各バージョンのコードは前のバージョンとは異なります。コードの変更により、署名ベースのウイルス対策ソフトウェアプログラムは、異なるイテレーションが同じ悪意のあるプログラムであることを認識しにくくなります。

コードへの永続的な変更にもかかわらず、変成マルウェアの各反復は同じ方法で機能します。マルウェアがコンピューターに長く留まるほど、生成されるイテレーションは多くなり、イテレーションはより洗練され、アンチウイルスアプリケーションによる検出、検疫、および駆除がますます困難になります。

ポリモーフィック型マルウェアは、検出を回避するためにコードを変更します。 2つの部分がありますが、反復のたびに1つの部分は同じであり、マルウェアの識別が少し容易になります。

たとえば、ポリモーフィックウイルスには、ウイルス復号ルーチン(VDR)と暗号化されたウイルスプログラム本体(EVB)があります。感染したアプリケーションが起動すると、VDRは暗号化されたウイルス本体を元の形式に復号化し、ウイルスが目的の機能を実行できるようにします。実行されると、ウイルスは再暗号化され、別の脆弱なホストアプリケーションに追加されます。ウイルス本体は変更されないため、高度なウイルス対策プログラムで検出できる一種の複雑なシグネチャを提供します。

別の例では、暗号化されたウイルス本体の外観を変更するために、コピーごとに新しいキーがランダムに生成される可能性がありますが、ウイルス復号ルーチンは一定のままです。どちらのシナリオでも、ウイルス対策プログラムがマルウェアの存在を識別できるようにするのは、コードの静的な部分です。

メタモーフィックマルウェアは、ポリモーフィックマルウェアよりも作成が難しいと考えられています。著者は、レジスタの名前変更、コードの並べ替え、コードの拡張、コードの縮小、ガベージコードの挿入など、複数の変換手法を使用できます。したがって、検出には、一般的な復号化スキャン、否定的なヒューリスティック分析、エミュレーション、仮想化テクノロジーへのアクセスなどの高度な技術が必要です。

さて、物事を小さくしようとするなら、XORはウイルスを書く優れた方法です。XORはプロセッサが理解する命令なので、これはXORエンコーダーを実装するには、上記のいずれかを実装する場合、膨大な量のコードではなく、数行のアセンブリコード(アセンブリでウイルスを作成している場合)が必要になります)言及されたテクニック。

5
Lucas Kauffman