2/18(日) 気になったセキュリティ記事
サンドボックスやアンチウイルス製品に検知されることを回避するためにマルウェアが使用するテクニックを解説した記事。
例として挙げられているものとしては以下(一部)。
1.サンドボックス検知
(1) CPUのコア数を確認
サンドボックスに割り当てられているCPUのコア数は少ないことが多いため、CPUのコア数がある閾値より少ない場合はサンドボックスとして検知
(2) ユーザーの活動痕跡を確認
通常の端末であれば存在するであろう、ユーザのキーボード入力やマウスの動きがない場合はサンドボックスとして検知
2.難読化
(1) 使われないコードを挿入
マルウェア内部のシグネチャが変わるため、シグネチャベースでのアンチウイルス製品だと検知できなくなる可能性
(2) レジスタの配置転換
説明を見てもよく分からなかったが、おそらく通常のレジスタの役割を無視して使用するものと推定
(ex. ループのカウンタにはecxレジスタを本来使うべきだが、eaxレジスタで代行する等)
3.パッカー(自己解凍書庫)
ソフトウェアをそのまま実行できる形で保持しながら、中身だけを圧縮するツール。
本来は正規ツールであり、プログラムのサイズを小さくするために使われたりするが、マルウェアによって悪用されている。
マルウェア内に含まれる悪性コードはパッカーによって圧縮されるため、アンチウイルス製品のシグネチャでは検知できず、またリバースエンジニアリングも困難になる。
【著名なパッカーのリスト】
他にも様々なテクニックがあるかと思いますが、なかなか興味深いです。