4 Steps to Getting CVEs Published
2022/04/19 SecurityBoulevard — あなたが、セキュリティ研究分野の新参者なら、最も苛立たしい問題の1つとして、脆弱性と CVE を公開するためのプロセスのナビゲーションがあるだろう。結局のところ、あなたは、新しく発見した脆弱性を世界と共有したいだけなのだが、それが厄介なのだ。
この業界を代表して申し上げると、私たちは皆、キャリアのどこかで、この困難な状況に直面したことがあるはずだと思う。研究者仲間を助けるリソースとして、私自身の個人的な経験 (そして正直なところ、多くの古き良き試行錯誤) に基づき、以下の CVE パブリッシング・ガイドをまとめてみた。このガイドにより、頭痛や推量が回避され、より簡単に CVE が公開されることを期待している。
Step 1:脆弱性が新しいものであることを確認する
おめでとうございます! 多くの苦労の末、あなたはゼロデイを発見しました! さて、何かをする前に、その脆弱性が他の誰にも発見/報告されていないことを確認しよう。また、Google/GitHub/ExploitDB/PacketStorm などの、インターネット上の脆弱性レポジトリを検索し、その脆弱性が以前に発見されていないことを確認しよう。
Step 2:ベンダへの連絡
ベンダーなどのプロダクト所有者に連絡を取り、責任を持って問題を開示するよう試みる。この時点で、次の2つのうちの1つが起こる:彼らが応答し、問題を解決するためにあなたと協力する:あなたがコミュニケーションを取ろうとすることに対して、何の応答もない。
可能な限り、あらゆるコミュニケーション手段 (郵便/電子メール/チャット/ソーシャルメディア/電話など) を使ってほしい。ここで重要なのは、スクリーンショットを撮り、ベンダーへの連絡に関連する、すべてのデジタルおよび物理的な記録を保存しておくことだ。そして、カレンダーに日付を書き込む。それが、時計が時を刻み始めるときになる。
Step 3 A:対応可能なベンダーとの調整
あなたの通知にベンダーが素早く反応し、脆弱性の緩和とパッチの発行に取り組みたいと考えているとする。この場合、重要なのは、協調的な情報公開を目指すことだ。理想的には、ベンダーがパッチをリリースした後に、あなたが脆弱性の詳細を公開することになる。MITRE は、どのように CVE 開示まで進めるかについて、文書を用意している。この情報は、協力的なベンダーと作業する際にとても役立つ。
Step 3 B:静寂と情報公開のマイナス面
多くの理由で、ベンダが無視することもある。このような場合のために、私が最高のアプローチと思っている方法を示す。しかし、ほとんどの研究者は、ベンダーに通知した後に、あるいは、通知しようとした後に、30日/60日/90日あるいは、最大で 120日間待ってから、脆弱性を一般に公開する。しかし、それ以上の行動を起こす前に、独立した請負業者として働いている場合には弁護士を雇い、企業で働いている場合は法務チームを編成して、警戒を怠らないようにしてほしい。
一連の身を守る対策が完了したら、MITRE の Web サイトにアクセスし、CVE リクエスト・フォームに必要事項を記入する。このプロセスはケースバイケースで異なる (たとえば、会社/所有者が CVE Numbering Authority: CNAである場合など)。
CNA のリストに、該当するベンダーが存在しない場合には、このフォームに記入する。個人的な経験では、CVE エントリーが受理されるまでに、平均して約30日かかるので、脆弱性が発見された時点でフォームを提出したい。CVE ID が取得されると (メールで通知される)、「reserved」状態になっていることに気づくと思う。それは、あなたの CVE は MITRE に受理されたが、まだ公開されていないことを意味する。つまり、あなたが有効な脆弱性を提出し、それに CVE 番号が割り当てられたことを MITRE は認めているが、公開を待っている状態であることを意味する。
脆弱性を発見し公開することは、業界にとって非常に有益なことですが、いくつか注意すべき点がある。脆弱性が公開されると、それを悪用する脅威アクターが行動にでる可能性が高いので、ベンダーと接触するあらゆる機会を利用しながら公開することが肝要となる。また、そのベンダーが運営するバグバウンティ・プログラムに参加している場合には、残念ながら、その開示ポリシーにより、発見した脆弱性を開示できない場合がある。
Step 4:待ち時間だが油断は禁物
MITRE からの返事を待っている間も、あなたの仕事は終わっていないことを知っておくことが重要だ。良い知らせは、ここまで来れば、半分以上進んだということだ。しかし、悪いニュースとしては、「待つ」というゲームも必要になるということだ。
一般的には、少なくとも月に1回は、アプリケーションの所有者/開発者と連絡を取り続けるのが良いだろう。あなたが納得できる期間を、または、アプリケーション所有者と合意した期間を、待つことができたら公開するときだ。
以下は、私が見つけた最良の公開方法であり、以下の3つの簡単なステップで構成される。
- PacketStorm Security/CX Security に PoC エクスプロイトを送信する。適切なヘッダーが、Exploit-DB により示されている。この2つのサイトに送信する際には、MITRE から入手した RESERVED CVE-ID を必ず含めるようにする。
- MITRE に送信する。エクスプロイトが公開されたら、公開された PoC エクスプロイトへのリンクを記載したメールを MITRE に送信する。通常、MITRE は、1日程度で作業を迅速に行う。MITRE から更新のメールが届くときもあるが、そうでない場合もある。一番良いのは、送られてきた元の CVE リンクをチェックして、ステータスが「reserved」から変わっていないか、CVE の詳細が表示されていないかを確認することだ。
- 数ヶ月が経っても、MITRE から返信がない場合は、「CVE Request」ではなく「Other」として新しいメールを作成し、以前の投稿に対する返信を待っていることを明記する必要があるかもしれない。そうすれば、24時間以内にCVE ID の返信があるはずだ。
Congrats! You have a published CVE!
オプションとして、exploit-db に対して、exploit/POC を送信してみることもできる。彼らは通常、公開するかどうかという、最新の情報を返信することはないが、試してみる価値はある。
Happy Hunting!
2021年1月8日の「脆弱性 2021 の最終結果:件数は前年比 10% のアップと5年連続の増加」では、2021年には NVD ベースで 20,061件の脆弱性が発生したことが伝えられています。また、2月17日の「Risk Based Security レポート:2021年は 28,695 件の脆弱性が公表された」では、タイトルにあるように、28,695件の脆弱性が発生したと伝えられています。その中で、オープンソースが占める割合はわかりませんが、かなりの比率になるはずです。CVE という、グローバルでオフィシャルな仕組みも、個人の存在を大切にしていることを示してくれる記事です。