Semmleの買収に伴って、GitHubは、メンテナや開発者による脆弱性の修正と保護を容易にすることを目的とした改善を数多く公開した。この中に、GitHub UIから直接セキュリティアドバイザリを生成し、CVE番号を割り当てる機能が含まれている。
同社のシニアバイスプレジデントであるShanku Niyogi氏の説明によれば、プロジェクトメンテナやリポジトリの管理権限所有者が脆弱性を発見した場合、ドラフトセキュリティアドバイザリを作成することが可能になり、その脆弱性に関する議論と修正のためのプラベート領域が割り当てられるようになった。セキュリティアドバイザリはリポジトリの公開あるいは非公開に関わらず、各リポジトリにプライベートで、アクセス可能なコラボレータを詳細にコントロールすることが可能になっている。
最も重要なのは、セキュリティアドバイザリによって、リポジトリの一時的なプライベートフォークを生成して、秘匿性の高い情報が他所に漏洩するリスクを回避しながら、フィックスを開発することが可能である点だ。このような状態を保証するために、一時的なプライベートフォークは、継続的インテグレーションのタスクやその他のインテグレーションからはアクセスできないようになっている。
上述した機能はすべてGitHub UIのSecurity
タブに集められていて、セキュリティアドバイザリの生成、一時的なプライベートフォークの作成、プルリクエストの生成、メインブランチへのマージなどを行うことができる。
GitHubが発表したワークフローの重要な改善としては、もうひとつ、GitHub上でオープンされたセキュリティアドバイザリに対するCVEの発行機能がある。これを可能にするためにGitHubは、オープンソースプロジェクトを対象とするCVE採番機関(CVE numbering authority)になった。Mitre Corporationの運用するCVEは、脆弱性に関するすべての議論や情報交換において、脆弱性をユニークに参照する手段を提供するものだ。CVEは、フィックス前の脆弱性であっても可能な限り早く情報を入手することのできる、極めて有効な方法だ。GitHubがこの機能をGitHub UIに直接組み入れて。開発者が容易に操作できるようにした理由も、まさにその点にある。
開発者が自身のコードをセキュアにするための手段となる機能をGitHubが導入したのは、今回が初めてではない。GitHubは数ヶ月前、Dependabotを使用した自動セキュリティPR(プルリクエスト)を導入した。プロジェクトのすべての依存関係をスキャンして、脆弱性のある依存関係をアップデートするPRを自動送信する、というものだ。これまでは脆弱性警告(vulnerability alerts)を使用して、プロジェクトの依存関係から発見された既知の脆弱性を開発者に警告する仕組みを使用していた。最後に、GitHubはトークンスキャニングもサポートしており、開発者が公開リポジトリにプッシュする場合に、トークンや暗号化キーを不用意に公開することを防止している。
GitHubのメンテナセキュリティアドバイザリは、現在は公開ベータテスト中である。