甘めな技術。

セキュリティ多めの甘めな技術ブログ

NVIDIAドライバになりますマルウェアについて

はじめに

でもどうせ変身するならさあ やっぱりムサいじいさんよりこういうかわいい方がいいよね/エンヴィー

ということで鋼の錬金術師のアニメを見ていました。

傑作として名高い作品ですがアニメの話数も結構あるので躊躇していたんです。しかし先日友達から「絶対見た方がいい」と説得され1週間ほどかけて見終わりました。ほんと見てよかったです。

大佐と中尉のコンビいいっすねぇ。この二人以外も皆キャラが立っていてすんごい好きです。はい。リレーブログです。

前回はこちら。次回はあちら

今回のテーマはNVIDIAドライバになりすますマルウェアです。

冒頭の台詞はエンヴィーという敵キャラの物なのですが彼には変身能力があり、その力で色々と悪さをします。

今回のマルウェアはまるでエンヴィーみたいですね!(無理やり絡めていく)

アニメの話ばっかりしてしまいましたがそういえば先週はセキュリティキャンプフォーラムがありました。

このリレーブログについての発表もありました。

こんだけグループワークが続いているのも珍しいみたいですね。

色々と脱線してしまいましたが、ここからは真面目にNVIDIAドライバになりすますマルウェアについてまとめていきます!

NVIDIAドライバになりすますマルウェアとは

そもそもこれはどのようなマルウェアなのでしょうか。

前回の方が参考に記事のリンクを張ってくれたのでそちらをみてみましょう。

www.bleepingcomputer.com

要約

まず、Lapsus$という攻撃グループがNVIDIAからデータを盗み「マイニング性能制限の撤回」「身代金」といったものを要求しました。

ですがNVIDIAは当然これを拒否。そしてLapsus$は盗んだデータをオンライン上で公開しました。

この盗まれて公開されたデータの中に2つのコードサイニング証明書が含まれており、これを使って電子署名を行ったマルウェアが出回っているとのことです。

ちなみに証明書の有効期限は切れているそうですが、Windowsでは有効と判断されるらしいです。

コードサイニング証明書とは

コードサイニング証明書についても簡単に書いておきましょう。

コードサイニング証明書とはソフトウェアにデジタル署名を行う証明書のことです。

署名(ソフトウェア配布)側は
  1. コードサイニング証明書を取得

  2. 配布するプログラムのハッシュ値を生成

  3. 上で生成したハッシュ値をコードサイニング証明書の秘密鍵で暗号化(デジタル署名)

  4. プログラム、デジタル署名、コードサイニング証明書をパッケージ化して配布

そして検証(ソフトウェア受信)側は
  1. パッケージを受信

  2. 証明書の有効性を検証

  3. 証明書の公開鍵を取得しハッシュ値を復号

  4. プログラムのハッシュ値を生成

  5. 上で生成したハッシュ値と復号したハッシュ値を比較

という流れで認証が行われます。

今回はこのコードサイニング証明書(の秘密鍵)が漏えいしたことで、NVIDIAでなくてもNVIDIAのソフトウェアと偽るように署名ができてしまうというお話でした。

対策

肝心の対策ですが、WDAC(Windows Defender Application Control)ポリシーを作成することで一応対応が可能らしいですね。

docs.microsoft.com

ただこの操作は難易度が高く、一般的な利用者はこれらの証明書がMicrosoftの失効リストに載るのを待つしかないとの意見もあります。

まとめ

流出した証明書で署名されたマルウェアっていうのはなかなか手強いですね。

Microsoftのドキュメントをざっと読んでみましたが、WDACはWindowsに相当理解のある人でないと上手く設定するのは難しそうです……。

月並みですが、怪しいサイトからソフトウェアをダウンロードしない事が一番現実的な対策なのでしょうね。

参考文献

Malware now using NVIDIA's stolen code signing certificates

NVIDIAから署名付き証明書データが流出しNVIDIA製ドライバーになりすましたマルウェアが複数登場 - GIGAZINE

コードサイニング証明書とは?|GMOグローバルサイン【公式】

アプリケーションWindows Defender (WDAC) ポリシー ルールとファイル ルールについて (Windows) - Windows security | Microsoft Docs