Windows証明書、予想以上に偽造されていたと発覚

「Stuxnet的なコード署名、予想外の拡散」

arstechnica.com

イラン核開発に遅れをもたらしたStuxnetは、感染をスムーズに進めるため、正規のWindowsのコード署名がなされていました(コード署名されていないプログラムやドライバはインストールがしづらくなっています)。この方法は2010年の発見当時としては画期的な方法とされていました。

しかし、先日発表された研究によれば、この手法は遅くとも2003年には使われており、今ではかなり使われる手法になっていることが分かりました。しかも悪いことに、多くのアンチウイルスプログラムは、コード署名があるだけで見過ごす傾向があることもわかりました。

これは米メリーランド大のTudor Dumitra教授などがACMのコンピュータと通信セキュリティ学会で発表したものです。

論文PDF

  • マルウェアへのコード署名は2003年から始まり、2010年までにその利用が激増した。
  • マルウェアへのコード署名は過去、2006年、2008年、2010年、2013年に激増した(論文Figure 3)。
  • 筆者たちが調査した325の署名つきマルウェアの場合、4割強は署名自体がエラーだった(ハッシュが実際のバイナリと一致しないなど。署名領域をそのまま既存マルウェアにつなげていると考えられる)(論文7)。
  • マルウェアの署名の由来は、今回調査された111個のハッシュが整合するもの(前述のエラーを除外する)の場合、次の通り(論文7)。
  • 34種類のアンチウイルスプログラムに対して、一般的に検出可能なランサムウェア5種に、期限切れかつマルウェア利用実績がある署名を、単純につけた(ハッシュは当然不整合)結果、検出率が平均で2割、製品によっては8割落ちた(論文4.3)。

筆者たちが挙げる対策は次のようなものです(論文5)。

  • 署名時に、書名ツールが、明らかな発行元に対して、署名発行のタイミングや対象などを通知するようにする。
  • 署名時に、ログを取得し、それを第三者が検証できるようにする。