ネットワークエンジニアの備忘録

トラブルや気になった点をメモしておきます。

デジタル署名付きマルウェア

過去にイラクの核プログラムを標的としたマルウェアが合法的なデジタル署名付き(コードサイニング)のマルウェアだったことは有名だと思います。この手法は年々増加しており、近年のマルウェアは正規の証明書で署名されているものが徐々に一般的となっています。

本来のコードサイニングとは実行ファイルの開発元を証明することおよび、実行ファイルが改ざんされていないことを証明します。攻撃者がマルウェアにコードサイニングを実施する主な理由としては、まずユーザにファイルを信頼させるためです。また、多くのセキュリティ対策ソフトでは署名している実行ファイルを検査せず、振る舞いをチェックしない(ホワイトリスト扱いにしている)ものが多いためです。これはスキャンする際のホストOSの負荷を下げるために実装されている場合があります。

検証として複数のマルウェアに署名をつけた状態とつけていない状態でマルウェア対策ソフトを実行したところ、TrendMicroやKaspersky Labなどメジャーな製品でも一部検知できなくなることが確認されています。検証の結果、平均して2割、製品によっては8割ほど検出率が低下したそうです。

arstechnica.com

使用されている正規の証明書は正規の会社と結託したり、架空の会社をでっち上げて正規の手順で認証局から証明書を発行してもらう場合もありますが、企業などから盗み出されている場合もあります、そして盗まれた企業はその事実を知ることは難しいのが現状です。さらに攻撃者は複数の証明書でデジタル署名するなど、今まで以上に検出されない工夫を行ってきています。

証明書の管理を徹底するのはもちろんですが、デジタル署名されているから安心という認識は改めたほうが良さそうです。