セキュリティ技術に対する回避技術
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/07/30 23:21 UTC 版)
「マルウェア」の記事における「セキュリティ技術に対する回避技術」の解説
不正行為を実行するために、攻撃者はマルウェアを作成するが、その不正な試みが検出されてしまっては、その目的を達成することはできない。セキュリティベンダがセキュリティ技術を進化させると、それに合わせて攻撃者も技術を進化させる。セキュリティベンダと攻撃者の間では、いたちごっこが繰り返されている。回避技術は、検出、分析、把握を回避するためにマルウェアが使用する手段の総称である。 セキュリティ技術に対する回避技術は次の3つに分類できる。 セキュリティ対策の回避: マルウェア対策エンジン、ファイアウォール、アプリケーション隔離などの保護ツールによる検出を回避するために使用される。 サンドボックスの回避: 自動分析を検出し、マルウェアの挙動を報告するエンジンを回避するために使用される。仮想環境に関連するレジストリキー、ファイル、プロセスを検出することで、サンドボックス内で実行されているかどうかをマルウェアに通知する。 分析の回避: マルウェア分析を検出して欺くために使用される。たとえば、Process ExplorerやWiresharkなどの監視ツールを検出するだけでなく、リバースエンジニアリングを回避するために圧縮や難読化などを行う。 高度なマルウェアの中には、このような技術を組み合わせて利用しているものもある。たとえば、RunPE(メモリー内で自身のプロセスをもう1つ実行する)などの技術を使用して、マルウェア対策ソフトウェアやサンドボックス、分析を回避している。また、仮想環境に関連する特定のレジストリキーを検出し、サンドボックスでの自動分析や仮想マシン上での動的分析を回避するマルウェアもある。 ウイルスをはじめとしたマルウェアはセキュリティソフトに発見されないよう、下記のようなツールや手法を用いていることがほとんどである。また、サイバーセキュリティの回避技術で、よく使われる用語がある。ここで、攻撃者が使用するツール、手法や用語をいくつか紹介する。 Crypter(クリプター): マルウェアの実行時に、マルウェア対策エンジンや静的分析による検出を回避するため、マルウェアの暗号化と復号を行う。クリプターは、攻撃対象に合わせて作成されることが多く、闇市場で購入することもできる。クリプターをカスタマイズすることで、復号や逆コンパイルがさらに困難になる。既知の高度なクリプターとしては、Aegisクリプター・Armadillo・RDG Tejon などがある。 Packer(パッカー): クリプターと似ているが、マルウェアファイルの暗号化ではなく圧縮を行う。UPXが代表的なパッカーである。 Binder(バインダー): 複数のマルウェアファイルを1つに結合する。マルウェアの実行ファイルの拡張子を変更せず、JPGファイルに結合できる。マルウェア作成者は、正規のEXEファイルにマルウェアファイルを結合しようとする。 Pumper(ポンパー): ファイル サイズを増やす。これにより、マルウェア対策エンジンによる検出を回避できる場合がある。 FUD: マルウェアの販売者がツールの説明やアピールに使用するもので、あらゆるマルウェア対策ソフトで完全に検出不可 (FUD; Fully UnDetectable) であることを表す。有効なFUDプログラムは、スキャンタイムとランタイムの両方を組み合わせ、100%検出不可を実現する。既知のFUDとして、次の2種類が知られている。FUD scantime: マルウェアファイルの実行前に、マルウェア対策エンジンで検出されないように保護する。 FUD runtime: マルウェアファイルの実行中に、マルウェア対策エンジンで検出されないように保護する。 Unique stub generator(ユニークスタブ ジェネレーター): 実行中の各インスタンスに固有のスタブを作成し、検出と分析を困難にする。(スタブとは、通常、元のマルウェアファイルのメモリへの読み込み(復号または解凍)に使用するルーチンが含まれる。) ファイルレス マルウェア: ディスクにファイルを書き込むことはせず、自身をメモリに挿入することでシステムに感染する。 難読化: マルウェアのコードを簡単に人が理解できないようにする。プレーンテキストの文字列をエンコード (XOR, Base64など) し、マルウェアファイルに挿入したり、ジャンク関数をファイルに追加する。 ジャンクコード: 無駄なコードや偽の命令をバイナリに追加し、逆アセンブルを欺いたり、簡単に分析されないようにする。 アンチ: 保護ツールや監視ツールの回避、無効化、終了に使用するすべての手法を指す。地下フォーラムや闇市場で使用される。 Virtual machine packer(仮想マシン パッカー): 仮想マシンの概念を取り入れた高度なパッカーである。マルウェアの EXE ファイルが圧縮されると、元のコードが仮想マシンのバイトコードに変換され、プロセッサの動作をエミュレートする。既知のものではVMProtect、CodeVirtualizerでこの手法が利用されている。 最も一般的な回避技術は次のとおりである。 難読化: データ・変数・ネットワーク通信を保護する。変数または関数の名前をランダム化する。XORなどのエンコーディング方法を使用する。 環境のチェック: 仮想環境に関連するツールやアーティファクトを検出し、セキュリティソフトやベンダ等の分析を回避する。 サンドボックスの検出: サンドボックス関連のファイルやプロセスを検出するためにディスクをチェックする。
※この「セキュリティ技術に対する回避技術」の解説は、「マルウェア」の解説の一部です。
「セキュリティ技術に対する回避技術」を含む「マルウェア」の記事については、「マルウェア」の概要を参照ください。
- セキュリティ技術に対する回避技術のページへのリンク