5周年を迎えたGitHubセキュリティ報奨金プログラム
GitHubは以前から、研究者と連携するための方法を考えてきました( https://github.blog/2018-03-14-Four-years-of-bug-bounty )。2018年に実施した研究者への助成金( https://github.blog/2018-03-14-Four-years-of-bug-bounty/#researcher-grants )、プライベートバグ報奨金プログラム( https://github.blog/2018-03-14-Four-years-of-bug-bounty/#private-bug-bounty )、そしてライブハッキングイベントを通して、セキュリティに関して才能ある個人と、より多く関係を築くことができました。これらの異なるコミュニティ活動は、2018年の大きなマイルストーンとなり、1年を通して合計25万USドルに上る報奨金を研究者に支給しました。
2019年はこれらのプログラムに3つの大きな変更が加えられ、研究者に対する完全な法的保護が提供され、より広範囲でGitHubを報奨金の対象とし、さらに報奨金を増額します。
2018年の主な出来事
---------------------------------------------------------------
GraphQLおよびAPI認証の研究者への補助金
2017年の研究者補助金プログラム開始以来、GitHubは当社製品の特定の機能に関する専門性をもつ研究者を常に募集しています。2018年半ばには、GitHubのREST APIとGraphQL API認証のロジックにおける深い専門知識を持つ@kamilhism氏( https://github.com/kamilhism )が、公開報奨金プログラムにおいて一連の脆弱性を発見しました。この発見を受け、GitHubはKamil氏の今後の研究を支援するため、GitHub API承認ロジックの体系的監査実施に向けて定額の補助金を支給することを決定しました。Kamil氏の監査は大変優れており、GitHub APIの認証プロセスにおいてさらに7つの問題点を明らかにしました。GitHubがこうした不備を修正することができたのは、ひとえにKamil氏の功績です。
H1-702
GitHubは、8月にラスベガスで開催されたHackerOneのH1-702( https://www.hackerone.com/blog/H1-702-2018-makes-history-over-500K-bounties-paid )ライブハッキングイベントに参加しました。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氏( https://github.com/not-an-aardvark )と@ngaloggc氏( https://github.com/ngalongc )の2名が、各自のサブミッション内容について概略を述べ、どのようにアプローチしたかについて詳しく説明しました。
ワークフローの改善
GitHubでは2017年からバグ報奨金ワークフロー( https://githubengineering.com/githubs-bug-bounty-workflow )に関する情報を公開、改善を行ってきました。例えば、日々寄せられる報奨金プログラムのサブミッションに対応するための担当者を決定しました。さらに、アプリケーションセキュリティチームの全メンバーで週次のステータスミーティングを行い、サブミットされた案件のステータスを確認しています。このミーティングを行うことで、サブミットされた案件が未対応になることを防ぎ、その重大度に応じてエンジニアリングチームが適切に優先順位を付け、サブミットした研究者に最新情報が速やかに通知されるよう、確実な運用を行っています。また、サブミッション時に利用できるChatOpsベースのツールにおいては、プロセスを合理化するためのより多くの方法が実装され、この1年でも進化を続けています。
重要なことは、いかに素早くサブミットされた案件を検証し、その情報に優先順位を付け、修正作業を開始するために該当するエンジニアリングチームに共有できるかです。ワークフローの改善が功を奏し、2017年には4日間を費やしていた優先順位付けの平均時間が19時間にまで短縮されました。同様に、解決までの平均時間も、16日間から6日間に短縮されました。なお、ここで言うサブミッションに対する「解決」とは、問題が修正されたか、あるいは適切に優先順位が付けられて、担当するエンジニアリングチームによって追跡されていることを指します。
これらの運用体制の改善により、研究者は平均で24時間以内に返答することが可能になりました。さらに、研究者にとって最も重要な点である報奨金支給までの平均時間も、2017年の17日間から11日間に短縮されています。研究者がこのプログラムに費やしている労力には大変感謝しています。来年はこの時間をさらに短縮することを目指していきます。
2019年の取り組み
---------------------------------------------------------------
GitHubは過去5年間にわたってプログラムを適切に運用することに努めてきましたが、改善点は常にあるということも理解しています。研究者からのフィードバックに耳を傾け、2019年は、プログラムに3つの大きな変更を行うことになりました。
法的セーフハーバー
報奨金プログラムの参加者をセキュリティ研究の法的リスクから保護することは、GitHubにとって最も優先すべき課題の1つです。研究者の安全をできる限り確保するために、一連の強固な法的セーフハーバー条項を、当社のサイトポリシーに追加しました。新しいポリシーは、GitHubのアソシエイト法人カウンセルである@F-Jennings氏( https://github.com/F-Jennings )によるCC0ライセンステンプレート( https://github.com/F-Jennings/legal-bug-bounty )をベースにしています。このテンプレートは、EdOverflow氏( https://github.com/EdOverflow/ )の法的バグ報奨金 (Legal Bug Bounty) レポート( https://github.com/EdOverflow/legal-bug-bounty )を基にしたもので、セキュリティ研究者との幅広い意見交換や、Amit Elazari氏によるこの分野の一般研究( https://amitelazari.com/%23legalbugbounty-hof )に基づいて大幅に修正されています。このテンプレートはBugcrowdのdisclose.io( https://disclose.io/ )プロジェクトや、Dropboxの最新の脆弱性開示ポリシー( https://blogs.dropbox.com/tech/2018/03/protecting-security-researchers/ )などの、他のベストプラクティスのセーフハーバーの例などからももヒントを得ています。
この条項は、3つの主な法的リスクに対応しています。
- 研究者の研究活動が、報奨金プログラムの範囲を偶発的に逸脱した場合でも保護されるようになりました。参加者の報奨金プログラム研究活動 に対する民法または刑法上のリスクを追求しないこと、ならびに他社による起訴または民事訴訟を支援しないことの確約が、GitHubのセーフハーバーに追加されました。研究者が報奨金ポリシーの信義則に違反した場合でもこれに従います。
- GitHubでは、同レベルのセーフハーバー保護を確約していないサードパーティから研究者を保護するために、最善を尽くします。GitHubのセーフハーバー条項では、次の2つの方法で、サードパーティとのレポートの共有を制限するようになりました。第1に、GitHubは、第三者から研究者に対して法的措置をとらないという誓約を書面で受け取った後に限り、非識別情報のみを第三者と共有します。第2に、研究者から書面による許可を得ない限り、識別情報を第三者に共有することはありません。
- 研究者は、研究活動を目的とする限り、GitHubのサイト記載の条項に違反することはありません。たとえば、対象となる研究でリバースエンジニアリングが必要となる場合、GitHub Enterprise契約 (GitHub Enterprise Agreement) のリバースエンジニアリングに関する制限事項( https://help.github.com/en/articles/github-enterprise-agreement#3-license-restrictions )を無視することができます。GitHubのセーフハーバーには、本来であれば研究者が必要とするリバースエンジニアリングや難読化の逆変換などの行為を禁止する、DMCA回避禁止規則や他の契約条件による法的リスクから研究者を保護するため、他のサイトの条項やポリシーの一部に対する制限付きの権利放棄が定められました。
報奨金対象範囲の拡大
GitHubは過去5年間にわたり、報奨の対象となるGitHub製品の範囲を着実に広げてきました。このたび、脆弱性報奨金の対象範囲を、当社のgithub.com( https://github.com/ )ドメインにホストされたすべてのファーストパーティサービスへと拡大することになりました。これには、GitHub Education( https://education.github.com/ )、GitHub Learning Lab( https://lab.github.com/ )、GitHub Jobs( https://jobs.github.com/ )が含まれます。また、GitHub Desktop( https://desktop.github.com/ )アプリケーションに関するサブミッションにも報奨を支給しています。GitHub Enterprise Serverは2016年以降、報奨の対象となってきましたが、GitHubのユーザー企業のセキュリティをさらに向上させるため、現在は、GitHub Enterprise Cloud( https://github.com/enterprise )にも対象を拡大しています。
セキュリティ管理において重要なのは、ユーザー向けのシステムだけではありません。ユーザーデータの安全性は、従業員のセキュリティや社内システムのセキュリティによっても左右されます。そのため、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年間は、すばらしい経験となりました。報奨金プログラムは引き続き、GitHubのセキュリティ対応の中核を担っていきます。現在も研究者の皆さまから多くのことを学んでいます。新たな取り組みも増え、今こそ参加する絶好のタイミングです。GitHubのセーフハーバー、対象範囲の拡大、報奨金の増額に関する詳細な情報は、GitHub Bug Bounty のサイト( https://bounty.github.com/#scope )で確認できます。皆さまの参加をお待ちしています。
GitHub Blog (英語オリジナル)
https://github.blog/2019-02-19-five-years-of-the-github-bug-bounty-program/
GitHub Blog (日本語)
https://github.blog/jp/2019-02-25-five-years-of-the-github-bug-bounty-program/
Blog: (英語) https://github.blog/ (日本語) https://github.blog/jp/
Twitter:(英語) @github( https://twitter.com/github )
(日本語) @GitHubJapan( https://twitter.com/githubjapan )
【ギットハブについて】https://github.co.jp
GitHubは世界で2,700万人にのぼる開発者および180万の組織に利用される開発プラットフォームです。プログラミング環境にオープンな会話と協調を重んじるコミュニケーションによって、コラボレーションを促進する開発環境を提供しています。これらの開発を実現するワークフローで必要となるコードレビュー、プロジェクトおよびチームマネージメント、ソーシャルコーディング、ドキュメント管理などに、これまで以上の効率性と透明性をもたらし、より高速かつ品質の高いソフトウェア開発を支援しています。
GitHubは多様なユースケースに適した開発プラットフォームを用意しており、オープンソースジェクトから企業における機密性の高いソフトウェア開発までに対応できます。無料で利用できるパブリックリポジトリはオープンソースプロジェクトにて多く利用されていますが、プライベートリポジトリが利用できる有償サービス、GitHub EnterpriseやBusiness on GitHub.comなども提供しています。
2008年に米国サンフランシスコで創業したGitHub, Inc.は、初の海外支社として、2015年に日本支社を開設しました。