ゼロからセキュリティヒーローへ:GitHubプロジェクトに既知の脆弱性がないかテストする
2020年11月12日
0 分で読めますプロジェクトにGitHubを使っていますか?素晴らしいですね!では、オープンソースの依存関係に脆弱性がないことを、どのように確認していますか?
この記事では、無料のSnykアカウントを作成し、最初のGitHubプロジェクトをSnykにインポートして、オープンソースの依存関係に既知の脆弱性がないかテストする方法をご紹介します。ご希望であれば、同じリポジトリとアプリを使って一緒に進められます。
動画で見たい方のために、この記事と同じ手順で新しいSnykアカウントを作成し、GitHubからプロジェクトをインポートして、初めてテストする様子を紹介する90秒の動画をご用意しました。

それでは、最初から始めましょう!
新しいアカウントを作成するため、Snyk.ioサイトにアクセスし、このページ右上のメニューバーにあるログインをクリックします。次に、以下のように選択肢からGitHubアカウントを選び、フェデレーションログインを行います。

アカウント作成の際、SnykがGitHubアカウントに登録されたメールアドレスを読み取れるよう、アクセスを許可する必要があります。インポートしたプロジェクトのセキュリティ通知やレポートなど、関連情報がこのメールアドレスに届きます。
以下のように、脆弱性をテストするプロジェクトをSnykにインポートする方法が一覧で表示されます。

お使いの環境に最適なソースを選択してください。手順はどれもほぼ同じです。
今回はテストしたいプロジェクトがGitHubにあるので、そのオプションを選択します。Snykがプロジェクトを定期的にスキャンし、リポジトリに修正用プルリクエストを自動作成できるようにしたいと思います。これにより、セキュリティ上の問題を自動で修正できます。そのためには追加の権限が必要なので、次のスクリーンショットのように、GitHubアカウントからデフォルトのオプションを承認します。もちろん、必要に応じて無効にできます。ただし、無効にすると、Snykのより高度で便利な修正用プルリクエスト機能を利用できなくなります。
![パブリックおよびプライベートリポジトリ、またはパブリックリポジトリのみを選択できるGitHubリポジトリアクセス画面。Snykのセキュリティオプションと[続行]ボタンが表示されています。](https://res.cloudinary.com/snyk/image/upload/f_auto,w_2560,q_auto/v1633960236/wordpress-sync/blog-test-github-access.jpg)
次に、GitHubリポジトリの一覧からgoofプロジェクトを選択し、Snykアカウントにプロジェクトとして追加します。一緒に試す場合は、Snykのgoofプロジェクトをフォークしてください。フォークしたら、以下の手順で自分のリポジトリ一覧からこのプロジェクトを選択します。次の画像では、SnykがGitHubユーザーアカウント内で見つけた一覧からgoofプロジェクトを選択しています。画面右上の選択したリポジトリを追加をクリックして、Snykにインポートします。

goofプロジェクトはNode.jsプロジェクトなので、Snykはそのpackage.jsonマニフェストファイルを読み取り、依存関係グラフを作成します。これには、goofプロジェクトが直接取り込む依存関係だけでなく、それらの直接依存関係が利用する推移的依存関係も含まれます。
完全な依存関係グラフを作成するため、必要に応じてさらに深く解析が続きます。Snykはこれらの依存関係をSnyk Vulnerability Databaseと照合してテストし、詳細なレポートを作成します。ダッシュボードを見るだけでも、重大度「高」の脆弱性31件を含む、合計60件のセキュリティ上の問題が見つかったことがわかります。
便利そうですよね?ぜひ今すぐお試しください!
次回は、この脆弱性一覧を詳しく見ていき、修正用プルリクエストを自動作成して問題を修正する方法をご紹介します。
CTFを始めよう
オンデマンドのバーチャル入門ワークショップで、CTFチャレンジの解き方を学びましょう。


