コンテンツにスキップ

GitHub連携#

GitHub にはライブラリの脆弱性を検知する機能が標準で提供されています。

FutureVuls 上に指定した GitHub リポジトリから、次の 2 つを取り込み、FutureVuls 上で管理できます。

  • リポジトリが依存しているライブラリの一覧(GitHub の依存関係グラフ)。脆弱性の有無に関わらず、すべてのライブラリが取り込まれます。
  • Dependabot が検知した脆弱性(未対応のアラート)

ライブラリの一覧は、GitHub がリポジトリ内のマニフェストファイル(package-lock.json, pom.xml 等)を読み取って作成したものです。 そのため、脆弱性のないライブラリも EOL 管理やライセンス管理の対象になります。 取り込んだライブラリは、脆弱性の有無を問わず、GitHub Package としてソフトウェア一覧で確認できます(ソフトウェア種別)。

連携方法の手順は以下の通りです。

  1. GitHub Security Alerts を有効化する
  2. GitHub トークンを発行する
  3. グループ管理者が、グループ設定 > 外部連携より、グループに対して GitHub トークンを登録する
  4. サーバ・製品詳細より連携したい GitHub の オーナ/リポジトリ名 と、トークンを登録する

GitHub Security Alerts の有効化#

「GitHubのドキュメント」を参考に、GitHub Security Alerts の設定を有効化します。 ライブラリの一覧を取り込むため、依存関係グラフ(Dependency graph)も有効にしてください。

GitHubトークンの発行#

Personal access tokens (classic) から、GitHub のトークンを発行します。

Scope には repo(Full control of private repositories)が必要です(参考:GitHub「Personal access tokens」の設定方法)

Fine-grained personal access tokens を利用する場合

Fine-grained personal access tokens (Beta) を設定する場合は以下に注意してください。

  • Expiration: 期限が切れてないか
  • Resource owner: 対象のリポジトリの所有者(Organization)か
  • Repository access: 対象のリポジトリが含まれてるか
  • Repository permissions: 以下のスコープがread-only以上か
    • Contents
    • Dependabot alerts
    • Metadata

外部連携の設定#

グループ管理者権限ユーザが、グループ設定 > 外部連携より上記で登録したトークンをグループに対して登録します。

グループ設定>GitHub連携

「追加」ボタンから、トークンを登録します。 FutureVuls 上で管理するためのトークン名も併せて設定します。

追加後、トークンが一覧に表示されたらこの設定は完了です。

GitHubトークンの追加

サーバにGitHubリポジトリを登録#

サーバ・製品詳細より、連携したい GitHub リポジトリとトークンを選択します。

GitHubリポジトリの連携

登録に成功すると、一覧に登録したリポジトリの情報が表示されます。

設定の GitHub アイコンをクリックすると、GitHub の該当のリポジトリに移動できます。 また、編集でトークンの切り替えや、リポジトリの連携設定を解除できます。

GitHubリポジトリの連携

スキャン結果が反映されるタイミング

連携後、サーバ・製品詳細の「手動スキャン」を実行すると、スキャン結果が反映されます。 実サーバの場合は、次回のスキャン時でも反映されます。

スキャン後、サーバ > ソフトウェアに該当のライブラリが表示されます。