海の向こうの“セキュリティ”
米連邦政府機関に策定と公表が義務付けられた脆弱性開示ポリシーとは
日本の企業・組織も参考になるポイントをピックアップ
2020年10月8日 06:00
米国土安全保障省のCISA(Cybersecurity and Infrastructure Security Agency)は、米連邦政府機関に対し、脆弱性開示ポリシー(vulnerability disclosure policy、以降VDP)を策定して公表することを義務付けるとともに、VDPのテンプレートを公開しました。
このVDPの策定と公表は、自組織で運営しているウェブサイトなどのインターネットアクセス可能なシステムやサービスの脆弱性について、外部からの報告(指摘)を受け付け、適切に対応することで悪用されるのを防ぐことを目的としたもので、その内容は自社製品の脆弱性に対応するベンダー(のPSIRT:Product Security Incident Response Team)に求められるものと基本的な考え方は同じです。
なお、今回の対象となるのは米連邦政府機関ですが、「国家安全保障システム」や国防総省または諜報機関が運営する特定のシステムには適用されません。
ところで、今回のVDPの件は米連邦政府機関を対象としたものですので、日本の、それも民間企業には全く関係のないものと考える人は多いと思います。確かに日本の企業や組織に直接の関係はありません。それでも、自組織でウェブサイトなどのインターネットアクセス可能なシステムやサービスを運営している企業や組織にとっては、VDPの考え方やその内容には参考になるところは多くあるはずです。そこで今回は、CISAが公開した情報をもとに日本の組織にも参考となりうるポイントをいくつかピックアップして紹介します。
ちなみに日本では、2004年7月から運用されている「情報セキュリティ早期警戒パートナーシップ」において、ウェブアプリケーションに関する脆弱性関連情報は、IPA(情報処理推進機構)に届け出ると、IPAが当該ウェブサイト運営者に通知することになっています。
関連リンク:情報セキュリティ早期警戒パートナーシップガイドライン
そもそもCISAが米連邦政府機関にVDPの策定と公表を義務付けた背景には次の3点があります。このうち1点目と3点目は、脆弱性の存在が運営側に知らされずに放置されてしまう危険性があること、また、2点目は脆弱性が修正される前にその存在が公になってしまう危険性があることを意味しています。
- 報告者はどのように報告すべきかを判断できない
連邦政府機関は、報告がどこに送られるべきかを常に明確にしているわけではない。正式な開示チャネル(多くの場合、ウェブページまたは「security@agency.gov」形式の電子メールアドレス)が見つからなければ、報告者は自身のソーシャルネットワークを頼ったり、セキュリティスタッフの業務用または個人用の連絡先情報をインターネット上で探したりすることがある。あるいは、その作業があまりにも負担が大きいと思われる場合には、報告することが時間や労力に見合わないと判断することもある。
- 報告者は脆弱性が修正されているとの確信を持てない
報告者が機関から何の回答も得られなかったり、役に立たないと見なされる回答を得たりした場合、機関は脆弱性を修正するつもりがないと報告者は決めてかかる可能性がある。このような場合、報告者は修正を促し、かつユーザーを保護するために、調整なしでの情報公開に訴えることになるかもしれず、さらに将来的にはそのようなアプローチをデフォルトとするかもしれない。
- 報告者は法的措置を恐れている
情報セキュリティコミュニティの多くの人々にとって、連邦政府は外部のセキュリティ研究者に対処する際に自己防衛過剰であったり、訴訟好きだったりするとの評判がある。これに加えて、多くの政府の情報システムには、無許可での使用を警告する強い言葉で書かれた過度に法律尊重主義的な声明が添えられている。誠実なセキュリティ調査は歓迎され、許可されているとの明確で温かい保証がなければ、研究者は法的な報復を恐れ、中には全く報告しないことを選択する人もいるかもしれない。
上記3点はいずれも日本の組織にも当てはまる部分があるでしょう。3点目は政府機関だからと明記していますが、ある民間企業が、外部からの脆弱性報告を不正アクセスに基づいた一種の恐喝と見なし、法的対応を取ろうとしてこじれた事例も実際にあり、必ずしも政府機関に限った懸念ではありません。とにかく、自組織でVDPを策定・公表すべき理由として、上記3点はうまく使えるのではないかと思います。
このような背景を踏まえ、CISAはまず30日以内に「.gov」ドメインのレジストラで以下の2点を更新するように指示しています。
1. 登録された各「.gov」ドメインのセキュリティ連絡先フィールド。セキュリティの連絡先として定義された電子メールアドレスは定期的に監視され(monitored)なければならず、その管理者はドメイン全体に対する未承諾の(unsolicited)セキュリティ報告をトリアージできなければならない。
2. 登録された各「.gov」ドメインの「組織(Organization)」フィールド。このフィールドは、ドメインで提供されるインターネットアクセス可能なサービスを担当する機関の構成要素を特定しなければならない。ドメインが一般的または機関全体の目的のためのものである場合、最も適切な記述子を使用する。この値は通常「機関(Agency)」フィールドの値とは異なるものでなければならない。
上記のうち1点目は、民間企業においても自組織の所有するドメインに対して同じように速やかに対応すべきでしょう。
次に、180日以内に対応すべきものとして以下を挙げています。
3. 脆弱性開示ポリシーを機関の主要な「.gov」ウェブサイトの「/vulnerability-disclosure-policy」のパスでプレーンテキストまたはHTMLで公開する。
なお、上記項目1.の連絡先情報や3.のVDPの場所(URL)などの脆弱性の報告に関する情報を、各ウェブサイトの「/.well-known/security.txt」のパスでプレーンテキストで記述することを標準化しようとの動きもあるようです。
関連リンク:security.txt: Proposed standard for defining security policies
VDPの公開後に対応すべきものとして以下を挙げています。
4. 新たに運営開始された全てのインターネットアクセス可能なシステムまたはサービスは、ポリシーの範囲に含まれていなければならない。ポリシーの範囲に新しいシステムまたはサービスが暗黙的に含まれていない場合は、新しいシステムまたはサービスを明示的に含むようにポリシーを更新しなければならない。
他にも、ポリシーの範囲の拡張(項目5.と6.)や脆弱性開示処理手順(項目7.)、CISAなどへの報告(項目8.と9.)、CISAからのアクションなどが示されていますが、ここでは割愛します。詳細は原文を参照してください。
メインとなるVDPの内容については上記項目3.の中で具体的に記載されています。まずVDPに含めなければならない(must)内容は以下の6点。
i. どのシステムが適用範囲内にあるか。VDPの公表時点で、少なくとも1つのインターネットアクセス可能な生産システムまたはサービスが適用範囲に含まれている必要がある。
ii. 許可されている(あるいは特に承認されていない)テストの種類、および(テスト等で)見つかった個人を特定できる情報の第三者への開示を禁止する声明。
iii. 脆弱性報告の提出方法に含まれなければならない(must)項目
1)報告の送付先(例:ウェブフォーム、電子メールアドレスなど)。
2)脆弱性の発見と分析に必要な情報の要求(例:脆弱性の説明、その場所と潜在的な影響、再現に必要な技術情報、概念実証コードなど)。
3)報告者が匿名で報告を提出することができる旨の明確な声明。
iv. ポリシーに従うための誠意ある努力を表していると機関が判断したセキュリティ調査活動については、誰に対しても法的措置を推奨したり、追求したりしないことを約束し、その活動を承認されたものとみなすこと。
v. 報告者(判明している場合)が自分の報告に対する受領確認をもらえる時期についての期待値を設定し、かつ、機関が(当該脆弱性の)修正プロセス中にどのようなステップを踏んでいるのかについて可能な限り透明性を保つことを約束する声明。
vi. 発行日。
また、含めてはいけない(must not)内容として以下の4点を挙げています。
i. 個人を特定できる情報の提出を要求すること。※機関は報告者に対して自発的に連絡先情報を提供するよう要求することはできる(may)。
ii. 検査を「審査済み(vetted)」の登録者または米国市民のみに限定すること。※ポリシーは一般市民に権限を与えなければならない(must)。
iii. 合理的な期間限定の回答を求める場合を除き、報告者が発見された脆弱性を他者に開示する能力(ability)を制限しようとすること。
iv. 開示された脆弱性を脆弱性公平性プロセス(Vulnerabilities Equities Process)または類似のプロセスに提出すること。
ここで、iv.にある「Vulnerabilities Equities Process」とは、米政府が未公開の脆弱性をレビューしてから脆弱性情報を公開するプロセスで、場合によっては諜報活動のために非公開とすることもあるというものです。
今回のVDPは、バグバウンティではなく、報奨金は支払われないことが前提となっていることから、VDPに「報告者は報償金を受け取らず、いかなる請求権も放棄する」と明記することを検討すべき(should)としており、また、別のバグバウンティプログラムを紹介してもよい(may)としています。この点は、民間企業の場合、報奨金を支払うか否かを含め、独自に検討すべきでしょう。
政府機関だからこその項目もありますが、少なくとも今回紹介した項目の多くは、民間企業を含め、どのような組織にも適用できるものでしょう。ウェブサイトなどのインターネットアクセス可能なシステムやサービスを運営している組織は、これを参考にVDPを作成し、公表することを検討してみてください。VDPそのものについてはテンプレートも公開されていますので、それも大いに参考になるでしょう。
また、当然のことではありますが、VDPに記述された通りに対応できる(脆弱性の修正を含む)体制を整備することも忘れてはいけません。
VDPに関しては、国際標準であるISO 29147(Vulnerability disclosure)やISO 30111(Vulnerability handling processes)も大いに参考になるでしょう。さらに調整された脆弱性情報の開示については米カーネギーメロン大学の「The CERT Guide to Coordinated Vulnerability Disclosure」をご覧ください。
また、英国でもNCSC(National Cyber Security Centre)が脆弱性情報開示プロセスに関するガイドライン「Vulnerability Disclosure Toolkit」を公開しています。こちらもあわせて確認してみてください。
URL
- 米国土安全保障省(2020年09月2日)
Binding Operational Directive 20-01 - https://cyber.dhs.gov/bod/20-01/
- Cybersecurity and Infrastructure Security Agency プレスリリース (2020年9月2日)
CISA Issues Final Vulnerability Disclosure Policy Directive for Federal Agencies - https://www.cisa.gov/news/2020/09/02/cisa-issues-final-vulnerability-disclosure-policy-directive-federal-agencies
- Cybersecurity and Infrastructure Security Agency ブログ (2020年9月2日)
Improving Vulnerability Disclosure Together(Officially) - https://www.cisa.gov/blog/2020/09/02/improving-vulnerability-disclosure-together-officially
- ISO/IEC 29147:2018
Information technology ― Security techniques ― Vulnerability disclosure - https://www.iso.org/standard/72311.html
- ISO/IEC 30111:2019
Information technology ― Security techniques ― Vulnerability handling processes - https://www.iso.org/standard/69725.html
- The CERT Guide to Coordinated Vulnerability Disclosure
- https://vuls.cert.org/confluence/display/CVD
- National Cyber Security Centre
Vulnerability Disclosure Toolkit - https://www.ncsc.gov.uk/files/NCSC_Vulnerability_Toolkit.pdf
- Security Affairs (2020年9月15日)
UK NCSC releases the Vulnerability Disclosure Toolkit - https://securityaffairs.co/wordpress/108308/laws-and-regulations/vulnerability-disclosure-toolkit.html