Skip to content

Find repository vulnerabilities #4

@github-learning-lab

Description

@github-learning-lab

脆弱な依存関係を見つける

セキュリティの脆弱性によって、プロジェクトやそのプロジェクトを使っている人に様々な問題を引き起こします。脆弱性によってプロジェクトの機密性、完全性、可用性が損なわれる可能性があります。あなたのプロジェクトのコード自体には脆弱性がなかったとしても、プロジェクトの依存関係の中に脆弱性があるかもしれないのです。そのため、常に最新のバージョンを使用することが、プロジェクトを安全に保つ上で大切です。

このリポジトリの依存関係には、セキュアに保つためにアップデートが必要なものがいくつかあります。

依存関係を特定し、それらが脆弱かどうかをどうやって把握するか?

このリポジトリはNPMを使ったNode.jsのプロジェクトです。そのため、package.jsonファイルにリポジトリの依存関係が定義されています。今回はこのJavaScriptの依存関係を扱います。他のプログラミング言語では他の依存関係を定義したファイルがあります。実際のプロジェクトでは、GemfileGemfile.lock*.gemspecrequirements.txtpipfile.lockといったファイルを使っているかもしれません。

これらの依存関係が安全であるとどのように確かめるのが良いでしょうか?それは簡単なことではありませんが、GitHubであればこの問題を解決することが出来ます。

脆弱な依存関係に対するGitHubのセキュリティアラート

このリポジトリに対してGitHubから警告が来ている事にお気づきかもしれません。メールで通知を受け取っているかもしれませんし、もしくはpackage.jsonファイルに黄色のバーが表示されているのを見つけたかもしれません。

依存関係の脆弱性アラート

GitHubは公になっているRuby gems、NPM、Python、Java、.NETのパッケージの脆弱性情報を追跡しています。

GitHubは新しく公開された脆弱性の通知を受け取り、その依存関係の脆弱性が含まれているバージョンを使っているリポジトリを探します。そして、その影響のあるリポジトリに関連する方々にセキュリティアラートを送信します。リポジトリのオーナーに対してはデフォルトで通知が送られます。しかし、この重要な通知を他のチームやメンバーが受け取るように設定することも可能です。

GitHubはどのようなリポジトリにおいても、そのリポジトリにおける脆弱性の情報を公開することは致しません。

ステップ2:このリポジトリの脆弱な依存関係を見つけよう

GitHubのセキュリティアラートを使って、脆弱なNPMの依存関係を見つけてみましょう。

⌨️ やってみよう:バージョンアップの提案を見つけよう

  1. リポジトリのInsightsタブをクリック
  2. 画面左のナビゲーションバーからDependency graphをクリック
  3. 黄色くハイライトされたdebugという名前の依存関係までスクロールダウンし、黄色のdebugの右側をクリック
  4. 提示されているバージョンを確認
  5. このイシューに提示されているバージョンをコメントで記載

GitHub Enterprise Serverのみ: GitHub Enterprise ServerではGitHub Connectを使うことで脆弱性アラートを使うことが出来ます。アラートが投げられるまでは1時間ほどかかることがあります。一定時間以上待ってもDependency Graphに黄色のバーが表示されない場合は、管理者に確認してみてください。問題が解決するまでの間、コースを進めるためにヒントを差し上げましょう - 推奨されたアップグレードバージョンは 2.6.9です。

このコースの手順はQuick Reference Guideにもまとまっています。


完了したら、次のコメントをこのイシューに書きます。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions