セキュリティの脆弱性について
脆弱性とは、プロジェクトあるいはそのコードを利用する他のプロジェクトにおいて、秘密性、一貫性、可用性を損なうために悪用されうる、プロジェクトコードの問題です。 脆弱性の種類、重要度、攻撃の方法は様々です。
GitHub Advisory Database の脆弱性のいずれかがリポジトリが依存するパッケージに影響することが検出された場合、GitHub は Dependabotアラート を送信します。 詳しい情報については、「脆弱性のある依存関係に対するアラートについて」を参照してください。
GitHub Advisory Database について
GitHub Advisory Database には、GitHub の依存関係グラフによって追跡されるパッケージにマップされたセキュリティの脆弱性のキュレーションされたリストが含まれています。 脆弱性は、以下のソースからGitHub Advisory Databaseに追加されます。
- National Vulnerability Database
- GitHub上のパブリックなコミット内の脆弱性の検出に、機械学習と人間によるレビューの組み合わせ
- GitHubで報告されたセキュリティアドバイザリ
- npm Security advisoriesデータベース
各セキュリティアドバイザリには、説明、重要度、影響するパッケージ、パッケージエコシステム、影響するバージョンとパッチを適用したバージョン、影響、およびリファレンス、回避策、クレジットなどのオプション情報を含む、脆弱性に関する情報が含まれています。 さらに、National Vulnerability Database リストのアドバイザリには、CVE レコードへのリンクが含まれており、脆弱性、その CVSS スコア、その定性的な重要度レベルの詳細を確認できます。 詳しい情報については、アメリカ国立標準技術研究所の「National Vulnerability Database"」を参照してください。
重大度レベルは「Common Vulnerability Scoring System (CVSS), Section 5」で定義されている 4 つのレベルのいずれかです。
- Low
- Medium/Moderate
- High
- Critical
GitHub Advisory Database は、上記の CVSS レベルを使用します。 GitHub が CVE を取得した場合、GitHub Advisory Database は CVSS バージョン 3.1 を使用します。 CVE がインポートされた場合、GitHub Advisory Database は CVSS バージョン 3.0 と 3.1 の両方をサポートします。
GitHub Security Labに加わり、セキュリティ関連のトピックをブラウズし、セキュリティのツールやプロジェクトに貢献することもできます。
GitHub Advisory Database のアドバイザリにアクセスする
- Https://github.com/advisories にアクセスします。
- 必要に応じて、リストをフィルタするには、ドロップダウンメニューを使用します。

- アドバイザリをクリックして詳細を表示します。
データベースは、GraphQL API を使用してアクセスすることもできます。 詳しい情報については、「security_advisory webhook イベント」を参照してください。
GitHub Advisory Database を検索する
データベースを検索し、修飾子を使用して検索を絞り込むことができます。 たとえば、特定の日付、特定のエコシステム、または特定のライブラリで作成されたアドバイザリを検索できます。
日付の形式は ISO8601標準に従い、YYYY-MM-DD(年-月-日) とする必要があります。 オプションの時間情報のTHH:MM:SS+00:00を日付の後に付けて、時、分、秒で検索できるようにすることもできます。 これはTの後にHH:MM:SS(時-分-秒)、そしてUTCオフセット(+00:00)を続けたものです。
日付に対して検索を行う場合、結果をさらにフィルタリングするためにより大きい、より小さい、範囲の修飾子を利用できます。 詳しい情報については、「検索構文を理解する」を参照してください。
| 修飾子 | サンプル |
|---|---|
GHSA-ID | GHSA-49wp-qq6x-g2rf は、この GitHub Advisory Database ID でアドバイザリを表示します。 |
CVE-ID | CVE-2020-28482 は、この CVEID 番号でアドバイザリを表示します。 |
ecosystem:ECOSYSTEM | ecosystem:npm は、NPM パッケージに影響するアドバイザリのみを表示します。 |
severity:LEVEL | severity:high は、重大度レベルが高いアドバイザリのみを表示します。 |
affects:LIBRARY | affects:lodash は、lodash ライブラリに影響するアドバイザリのみを表示します。 |
cwe:ID | cwe:352 は、この CWE 番号のアドバイザリのみを表示します。 |
credit:USERNAME | credit:octocat は、「octocat」ユーザアカウントにクレジットされたアドバイザリのみを表示します。 |
sort:created-asc | sort:created-asc は、一番古いアドバイザリを最初にソートします。 |
sort:created-desc | sort:created-desc は、一番新しいアドバイザリを最初にソートします。 |
sort:updated-asc | sort:updated-asc は、最近で最も更新されていないものを最初にソートします。 |
sort:updated-desc | sort:updated-desc は、最も直近で更新されたものを最初にソートします。 |
is:withdrawn | is:withdrawn は、撤回されたアドバイザリのみを表示します。 |
created:YYYY-MM-DD | created:2021-01-13 は、この日に作成されたアドバイザリのみを表示します。 |
updated:YYYY-MM-DD | updated:2021-01-13 は、この日に更新されたアドバイザリのみを表示します。 |
脆弱性のあるリポジトリを表示する
GitHub Advisory Database の脆弱性については、どのリポジトリにその脆弱性に対する Dependabot アラートがあるかを確認できます。 脆弱性のあるリポジトリを確認するには、そのリポジトリの Dependabotアラート にアクセスできる必要があります。 詳しい情報については、「脆弱性のある依存関係に対するアラートについて」を参照してください。
- Https://github.com/advisories にアクセスします。
- アドバイザリをクリックします。
- アドバイザリページの上部にある [Dependabot alerts] をクリックします。

- 必要に応じて、リストをフィルタするには、検索バーまたはドロップダウンメニューを使用します。 [Organization] ドロップダウンメニューを使用すると、オーナー(Organization またはユーザ)ごとに Dependabotアラート をフィルタできます。

- 脆弱性の詳細、および脆弱性のあるリポジトリを修正する方法に関するアドバイスについては、リポジトリ名をクリックしてください。
参考リンク
- MITREの「脆弱性」の定義

