2014年にGitHubセキュリティ報奨金プログラムがスタートしてから、5年という月日が経過しました。この間、多くのセキュリティ研究者がGitHubやそのユーザーの安全を守るために行ってきた努力と創意工夫は賞賛すべきものです。GitHubは感謝の気持ちを報奨金プログラムを通して伝えてきました。2018年には報奨金として16万5千USドルが、研究者に支給されました。
GitHubは以前より研究者とより連携するための方法を考えてきました。 2018年に実施した研究者への助成金、プライベートバグ報奨金プログラム、そしてライブハッキングイベントを通して、より多くのセキュリティ研究者と関係を築くことができました。これらのコミュニティ活動は、2018年の大きなマイルストーンとなり、1年を通して合計25万USドルもの報奨金を研究者に支給しました。
2019年には、プログラムに3つの大きな変更を加えます。それらの変更とは、研究者に対する完全な法的保護を提供すること、より広範囲でGitHubを報奨金の対象とすること、および報奨金を増額することの3点です。
2018年の主な出来事
GraphQLおよびAPI認証の研究者への補助金
2017年に研究者補助金プログラムを開始して以来、GitHubは、GitHub製品の特定の機能に関する専門性をもつ研究者を常に募集しています。2018年半ばには、GitHubのREST APIとGraphQL API認証のロジックにおける深い専門知識を持つ@kamilhism氏が、公開報奨金プログラムにおいて一連の脆弱性を発見しました。この発見を受け、GitHubは、Kamil氏の今後の研究を支援するため、GitHub API承認ロジックの体系的監査実施に向けて定額の補助金を支給することを決定しました。Kamil氏の監査は大変優れており、GitHub APIの認証プロセスにおいてさらに7つの問題点を明らかにしました。GitHubがこうした問題点を修正することができたのは、ひとえにKamil氏の功績です。
H1-702
GitHubは8月にラスベガスで開催されたHackerOneのH1-702ライブハッキングイベントに参加しました。75人を超えるトップクラスの研究者がHackerOneのステージに一堂に会し、GitHub製品を中心のテーマとした一夜のライブハッキングが実施されました。このイベントでは、43件の脆弱性に対してGitHubから約7万5千ドルが支給され、GitHubはよりセキュアになりました。指摘されたバグの中には、GitHub Enterprise Serverの重大な脆弱性5件と、非常に重大な脆弱性1件も含まれていました。GitHubのセキュリティ向上について意見を得られただけでなく、研究者と直接会うことでGitHubのバグ報奨金プログラムを改善するための貴重なフィードバックを受けることができました。
GitHub Actionsに対する非公開バグ報奨金
2018年10月にGitHub Actionsの制限付き公開ベータをリリースしました。広範にわたる内部セキュリティ評価を補完するために、制限付きベータの一環として、非公開のバグ報奨金プログラムも実施しました。このプログラムへの招待状を送付した150名以上の研究者は、昨年の非公開プログラム参加者であるだけでなく、全員がH1-702の参加者で、その多くはGitHubの公開プログラムにも参加しているトップクラスの研究者です。この非公開の報奨金プログラムでは、GitHub Actionsで中リスクの脆弱性を1件、そして多くの低リスクの脆弱性を見つけることができました。
また、GitHubのセキュリティチームと研究者とが直接交流できる機会を設けるため、業務時間内のイベントも実施しました。他の研究者と直接交流することは、コミュニティを形成し、互いから学び合うための大切な手段であると考えています。イベントでは、@not-an-aardvark氏と@ngaloggc氏の2名が、各自の提言内容について概略を述べ、どのようにアプローチしたかを詳しく説明しました。
ワークフローの改善
GitHubでは2017年からバグ報奨金ワークフローに関する情報を公開し、改善してきました。例えば、日々寄せられる報奨金プログラムのサブミッションに対応するための担当を決めました。さらに、アプリケーションセキュリティチームの全メンバーで週次のステータスミーティングを行い、サブミットされた案件のステータスを確認しています。このミーティングを行うことで、サブミットされた案件が未対応になることを防ぎ、重大度に応じてエンジニアリングチームが適切に優先順位付けを行い、サブミットした研究者に最新情報が通知されるよう、確実に運用しています。また、サブミッション時に利用できるChatOpsベースのツールにおいては、プロセスを合理化するためのより多くの方法が実装され、この1年でも進化を続けています。
重要なのは、いかに素早くサブミットされた案件をを検証し、その情報に優先順位を付けて、修正作業を開始するために該当するエンジニアリングチームに共有できるかです。ワークフローの改善は功を奏し、2017年には4日間かかっていた優先順位付けの平均時間が、19時間にまで短縮されました。同様に、解決までの平均時間も、16日間から6日間に短縮されました。なお、ここで言うサブミッションに対する「解決」とは、問題が修正されたか、あるいは適切に優先順位が付けられて、担当するエンジニアリングチームによって追跡されていることを指します。
これらの運用体制の改善により、研究者は平均で24時間以内に返答することが可能になりました。さらに、研究者にとって最も重要な点である報奨金支給までの平均時間も、2017年の17日間から11日間に短縮されています。研究者がこのプログラムに費やしている労力には大変感謝しています。来年はこの時間をさらに短縮することを目指していきます。
2019年の取り組み
GitHubでは、過去5年間にわたって、プログラムを適切に運用するよう努めてきましたが、改善点は常にあるということも理解しています。研究者からのフィードバックに耳を傾け、2019年は、プログラムに3つの大きな変更を行うことになりました。
法的セーフハーバー
報奨金プログラムの参加者をセキュリティ研究の法的リスクから保護することは、GitHubにとって最も優先すべき課題の1つです。研究者の安全をできる限り確保するために、一連の強固な法的セーフハーバー条項を、当社のサイトポリシーに追加しました。新しいポリシーは、GitHubのアソシエイト・コーポレート弁護士である@F-Jennings氏によるCC0ライセンステンプレートをベースにしています。このテンプレートは、EdOverflow氏の法的バグ報奨金 (Legal Bug Bounty) レポートを基にしたもので、セキュリティ研究者との幅広い意見交換や、Amit Elazari氏によるこの分野の一般研究に基づいて大幅に修正されています。このテンプレートはBugcrowdのdisclose.ioプロジェクトや、Dropboxの最新の脆弱性開示ポリシーなどの、他のベストプラクティスのセーフハーバーの例などからももヒントを得ています。
この条項は、3つの主な法的リスクに対応しています。
- 研究者の研究活動が、報奨金プログラムの範囲を偶発的に逸脱した場合でも保護されるようになりました。参加者の報奨金プログラム研究活動 に対する民法または刑法上のリスクを追求しないこと、ならびに他社による起訴または民事訴訟を支援しないことの確約が、GitHubのセーフハーバーに追加されました。研究者が報奨金ポリシーの信義則に違反した場合でもこれに従います。
- GitHubでは、同レベルのセーフハーバー保護を確約していないサードパーティから研究者を保護するために、最善を尽くします。GitHubのセーフハーバー条項では、次の2つの方法で、サードパーティとのレポートの共有を制限するようになりました。第1に、GitHubは、第三者から研究者に対して法的措置をとらないという誓約を書面で受け取った後に限り、非識別情報のみを第三者と共有します。
第2に、研究者から書面による許可を得ない限り、識別情報を第三者に共有することはありません。 - 研究者は、研究活動を目的とする限り、GitHubのサイト記載の条項に違反することはありません。たとえば、対象となる研究でリバースエンジニアリングが必要となる場合、GitHub Enterprise契約 (GitHub Enterprise Agreement) のリバースエンジニアリングに関する制限事項を無視することができます。GitHubのセーフハーバーには、本来であれば研究者が必要とするリバースエンジニアリングや難読化の逆変換などの行為を禁止する、DMCA回避禁止規則や他の契約条件による法的リスクから研究者を保護するため、他のサイトの条項やポリシーの一部に対する制限付きの権利放棄が定められました。
他の組織はこの条項を、セーフハーバーの業界標準ベストプラクティスと捉えて、それぞれの報奨金プログラムに合わせて自由に採用、利用、変更してもらいたいと考えています。条項の策定にあたっては、現在のセーフハーバープログラムの標準を超えて、刑事訴訟、民事訴訟のリスクや、サードパーティによるリスクから研究者を保護することを目標としました。セキュリティ専門の研究者による監修を経て、何カ月にも及ぶ法的調査と、他の法的セーフハーバープログラムの検討を重ねた上で策定されています。MG氏、Mugwumpjones氏、および他数名の研究者の方々には、@F-Jennings氏が作成していたドラフト案において非常に有意義な情報を提供いただいたことを深く感謝します。
報奨金対象範囲の拡大
GitHubは過去5年間にわたり、報奨の対象となるGitHub製品の範囲を着実に広げてきました。このたび、脆弱性報奨金の対象範囲を、当社のgithub.comドメインにホストされたすべてのファーストパーティサービスに拡大することになりました。これには、GitHub Education、GitHub Learning Lab、GitHub Jobsが含まれます。また、GitHub Desktopアプリケーションに関するサブミッションにも報奨を支給しています。GitHub Enterprise Serverは、2016年以降報奨の対象となってきましたが、GitHubの企業のお客様のセキュリティをさらに向上させるため、現在は、GitHub Enterprise Cloudにも対象を拡大しています。
セキュリティ管理において重要なのは、ユーザー向けのシステムだけではありません。ユーザーデータの安全性は、従業員のセキュリティや社内システムのセキュリティによっても左右されます。そのため、GitHub社員が利用するgithubapp.comドメインとgithub.netドメインにホスティングされているファーストパーティサービスも対象に含めています。
報奨金の増額
報奨金の金額は、定期的に他社と比較しながら検討しています。また、GitHub製品で重大度の高い脆弱性を見つけることは、研究者にとってますます困難になっており、その労に報いる必要があることもGitHubは認識しています。これらを踏まえ、全レベルで報奨金の金額を増額しました。
- 重大度高 (Critical) :20,000~30,000USドル以上
- 重大 (High) :10,000~20,000USドル
- 中リスク (Medium) :4,000~10,000USドル
- 低リスク (Low) :617~2,000USドル
過去5年以上にわたり、様々なレベルの報奨金額で対応してきましたが、研究者の斬新な発想には、常々感銘を受けてきました。そのことに感謝の意を表して、非常に重大な脆弱性に対する報奨金の金額には、上限を設けないことにしました。非常に重大な脆弱性に対するガイドラインの金額として30,000USドルを提示していますが、本当に最先端の研究に対してはそれを大幅に上回る報奨金を支給します。
報奨金プログラムへの参加
コミュニティとともに活動したこの5年間は、すばらしい経験となりました。報奨金プログラムは引き続き、GitHubのセキュリティ対応の中核を担っていきます。現在も研究者のみなさんから多くのことを学んでいます。新たな取り組みも増え、今こそ参加する絶好のタイミングです。GitHubのセーフハーバー、対象範囲の拡大、報奨金の増額に関する詳細な情報は、GitHub セキュリティ報奨金サイトで確認できます。みなさんの参加をお待ちしています。