コード署名証明書は、ソフトウェアの配布における信頼の仕組みの一部だ。利用者やOS、セキュリティ製品が、ファイルの発行元や改ざんの有無を判断する材料になる。DigiCertは、ブラウザやOSから信頼される主要な認証局、つまりCAの一つであり、同社のコード署名証明書はソフトウェア開発者に広く使われている 。
EVはExtended Validationの略で、通常より厳格な実在確認を伴う区分を指す。だからこそ攻撃者にとっては価値がある。問題は、サポートシステムへの侵入そのものだけではない。EVコード署名が持つ「信頼されやすさ」を、攻撃者が逆手に取った点にある。
ThreatNoirは、取得されたコード署名証明書の一部がマルウェアの署名に使われたと報じている 。CyberInsiderも、内部サポートシステムと証明書発行データが悪用され、有効なEVコード署名証明書の取得につながり、その一部が後にマルウェア署名に使われたと説明している
。
これは防御側にとって厄介だ。署名付きファイルは、見た目には正規ソフトウェアらしく振る舞える。Vectraは一般論として、攻撃者がEV証明書で悪意あるファイルに署名し、EV署名アプリケーションへの高い信頼を悪用する可能性を指摘している。署名ベースの信頼だけに依存する組織は、そのぶん脆弱になり得る 。
ここは切り分けが重要だ。現時点で示されている資料が説明しているのは、サポート端末の侵害、内部サポート機能の悪用、証明書の初期化コードへのアクセスである 。DigiCertのルートキーやCA鍵が侵害されたとする根拠は、これらの報告からは確認できない。
もちろん、それで事案が軽くなるわけではない。だが、既知の情報に基づけば、この攻撃は認証局そのものの完全な乗っ取りではなく、コード署名証明書のサポート・発行プロセスを悪用した限定的な侵害として理解するのが適切だ 。
公開情報の数字は、完全にはそろっていない。理由は、各報道が数えている対象が異なるためだ。
このため、単に数字だけを横並びにするのは危うい。入手された証明書なのか、実際に悪用された証明書なのか、あるいは予防的に失効された証明書なのかを分けて読む必要がある。報道上の範囲は限定的だが、数が少なくても影響は小さいとは限らない。正規に見えるコード署名証明書が数件あるだけでも、攻撃者はマルウェアを信頼されやすく見せることができるからだ 。
BleepingComputerによれば、DigiCertは特定された証明書を発見から24時間以内に失効し、失効日を発行日に設定した 。また、影響が疑われる期間の保留中注文は予防措置としてキャンセルされた
。ThreatNoirも、影響を受けた証明書が24時間以内に失効され、該当期間の未処理注文が取り消されたと報じている
。
失効は、さらなる悪用を抑えるための重要な措置だ。ただし、防御側の仕事はそこで終わらない。セキュリティチームは、署名の有無だけでなく、証明書情報、ファイルハッシュ、挙動、脅威インテリジェンス上の文脈を合わせて評価する必要がある。EV署名そのものが、攻撃者にとって信頼を装う道具になり得るためだ 。
この事案の周辺では、Microsoft Defenderによる誤検知も混乱を招いた。BleepingComputerは、Microsoft DefenderがDigiCertの証明書をTrojan:Win32/Cerdigent.A!dhaとして誤って検出したと報じている 。
daily.devのまとめによると、Defenderは4月30日のシグネチャ更新後、正規のDigiCertルート証明書を誤って検出し、一部のシステムではWindowsの信頼ストアから証明書が削除された。その後Microsoftは、Security Intelligence update 1.449.430.0で修正し、削除された証明書も復元したとされる 。
今回の教訓は、コード署名が無意味だという話ではない。むしろ逆で、コード署名は重要だからこそ、攻撃者にも狙われる。大切なのは、署名を最終判断ではなく、複数ある判断材料の一つとして扱うことだ。
DigiCertの事案が重いのは、攻撃者がEVコード署名証明書の信頼効果を、防御側に対して利用できたからだ。公開されている報告は、サポートシステム、初期化コード、悪用された証明書をめぐる限定的な侵害を示しており、ルートキーやCA鍵の侵害を示すものではない 。
それでも結論ははっきりしている。現代のマルウェア防御において、デジタル署名は重要な証拠の一つであって、最後の答えではない。