私たちはお互いに深くつながり合ったコミュニティの一員であり、私たちが開発するソフトウェアは他のメンバーの作業に基づいて開発されています。新規のソフトウェアプロジェクトの99%にオープンソースコードが使用されており、膨大な量のコードの再利用によって、かつて無いほどスピーディーにソフトウェアを開発できるようになっています。一方で、このような依存関係があるため、脆弱なソフトウェアが配布されてしまうと、私たち全員がリスクにさらされます。すべての開発者が、セキュリティに配慮する開発者になるという重要性が、これまで以上に高まっています。すなわち、誰もが脆弱性情報を開示し、パッチ処理を迅速に行う責任を負っています。
GitHubは、開発者が容易にソースコードの安全性を向上できるを新たなセキュリティ機能を発表しました。
- WhiteSourceのデータによるセキュリティ脆弱性アラート:GitHubは2017年にベータ版としてセキュリティアラート機能をローンチしました。ベータ版のリリース以来、.NET、Java、JavaScript、Python、およびRubyに関わる脆弱性が発見された依存関係に対して、約2,700万のセキュリティアラートを送信しています。WhiteSourceとの新たなパートナーシップによってそのデータを活用し、オープンソースプロジェクトにおける潜在的な脆弱性を発見する対象範囲が広がり、脆弱性修復のためのより詳しい情報提供が可能になりました。
- ディペンデンシー・インサイト:セキュリティの脆弱性が一般公開されると、企業はその依存関係を速やかに監査し、脆弱性の影響範囲を適切に把握するためのツールが必要となります。ディペンデンシー・インサイトを使うことで企業は脆弱性やオープンソースライセンスの詳細などの依存関係を完全に可視化できるようになります。
- トークン・スキャンニング:ベータ版としてリリースしていたトークン・スキャニングが正式版としてリリースされました。正式版では、誤ってチェックインしたことでデータ漏洩が生じないよう、Alibaba Cloud、Mailgun、Twilioを含む、より多くのトークンフォーマットをサポートしています。
Dependabotによるセキュリティパッチの自動化
脆弱性に関するアラートを通してセキュリティ保護に関する情報が提供されていても、業界データによると、70%の脆弱性は30日後になってもパッチ対応が行われず、その多くは1年以上経過してから対応されていると報告されています。こうした中で、GitHubは依存関係の脆弱性対応を容易にするために、Dependabotを買収しGitHubに統合しました。Dependabotの統合により、既知の脆弱性に関わる依存関係を監視し、脆弱性が発見された場合はPull Requestを自動的に作成して最低限必要なバージョンに更新できるようになります。GitHubは、今後数ヶ月のうちに、セキュリティアラートを有効にしているすべてのアカウントがこのような自動化されたPull Request機能を使えるように開発を進めます。
オープンソースのセキュリティ
バグが発生しないソフトウェアは存在しないと言ってもいいでしょう。特に、オープンソースソフトウェアの世界では何千ものプロジェクトが依存関係を持っているため、脆弱性が重大な影響を及ぼす恐れがあります。大手ベンダーには、セキュリティ問題への対処に詳しい専任のセキュリティチームがいることもありますが、ほとんどのオープンソースのプロジェクトでは、そのようなチームはいません。こうした中で、メンテナーがセキュリティの問題に非公開で対処し、責任を持って情報を開示できる新機能を発表します。
- メンテナー・セキュリティ・アドバイザリ(ベータ版):オープンソースのメンテナーがセキュリティの脆弱性に遭遇した場合、ユーザを保護するためにその問題に対処し、開示できる場が必要になります。GitHubは、メンテナーが話し合い、問題を修正し、セキュリティアドバイザリを発表できる非公開のワークスペースを用意しました。このスペースを活用すればハッカーに情報が漏れることはありません。
- セキュリティ・ポリシー:セキュリティは私たち全員の責務です。現在は、善意のユーザがパブリックスペースにissueを作成し、メンテナにセキュリティのバグの疑いを知らせることがよくあります。セキュリティ・ポリシーでは、セキュリティに関するissueが作成された場合、issueを作成したユーザーにコンタクトし、設定されたセキュリティポリシーに従うよう促すことができます。オーガナイゼーションでは、そのオーガナイゼーション配下のすべてのリポジトリに自動適用されるセキュリティポリシーを作成することもできます。
現在のソフトウェアが直面しているセキュリティの課題は、コミュニティの問題です。業界を牽引している開発者プラットフォームであるGitHubが保有するデータ量とユーザー数を考えると、私たちにはコミュニティを脅威から保護し、全員のセキュリティを強化する責任があります。今後も新機能への投資を継続し、様々なパートナーと協力して、GitHubのプラットフォームに業界のベストプラクティスをもたらします。