Skip to main content

ゼロからセキュリティヒーローへ:GitHubプロジェクトに既知の脆弱性がないかテストする

prioritize vulns

2020年11月12日

0 分で読めます

プロジェクトにGitHubを使っていますか?素晴らしいですね!では、オープンソースの依存関係に脆弱性がないことを、どのように確認していますか?

この記事では、無料のSnykアカウントを作成し、最初のGitHubプロジェクトをSnykにインポートして、オープンソースの依存関係に既知の脆弱性がないかテストする方法をご紹介します。ご希望であれば、同じリポジトリとアプリを使って一緒に進められます。

動画で見たい方のために、この記事と同じ手順で新しいSnykアカウントを作成し、GitHubからプロジェクトをインポートして、初めてテストする様子を紹介する90秒の動画をご用意しました。

Getting Started with Snyk: Import and Test a GitHub Repository

それでは、最初から始めましょう!

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

GitHubまたはGoogleでの無料登録に加え、SSO、Bitbucket、Azure AD、Docker IDのオプションを案内するサインアップ画面。

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

以下のように、脆弱性をテストするプロジェクトをSnykにインポートする方法が一覧で表示されます。

コードのホスティング先を尋ねる画面のスクリーンショット。プロジェクトの依存関係をテストするための選択肢として、GitHubとBitbucket Cloudが表示されています。

お使いの環境に最適なソースを選択してください。手順はどれもほぼ同じです。

今回はテストしたいプロジェクトがGitHubにあるので、そのオプションを選択します。Snykがプロジェクトを定期的にスキャンし、リポジトリに修正用プルリクエストを自動作成できるようにしたいと思います。これにより、セキュリティ上の問題を自動で修正できます。そのためには追加の権限が必要なので、次のスクリーンショットのように、GitHubアカウントからデフォルトのオプションを承認します。もちろん、必要に応じて無効にできます。ただし、無効にすると、Snykのより高度で便利な修正用プルリクエスト機能を利用できなくなります。

パブリックおよびプライベートリポジトリ、またはパブリックリポジトリのみを選択できるGitHubリポジトリアクセス画面。Snykのセキュリティオプションと[続行]ボタンが表示されています。

次に、GitHubリポジトリの一覧からgoofプロジェクトを選択し、Snykアカウントにプロジェクトとして追加します。一緒に試す場合は、Snykのgoofプロジェクトをフォークしてください。フォークしたら、以下の手順で自分のリポジトリ一覧からこのプロジェクトを選択します。次の画像では、SnykがGitHubユーザーアカウント内で見つけた一覧からgoofプロジェクトを選択しています。画面右上の選択したリポジトリを追加をクリックして、Snykにインポートします。

goofが選択されたsimonsnyk組織と、go-sampleおよびexploit-workshopが表示されたSnykのGitHubリポジトリ選択画面。

goofプロジェクトはNode.jsプロジェクトなので、Snykはそのpackage.jsonマニフェストファイルを読み取り、依存関係グラフを作成します。これには、goofプロジェクトが直接取り込む依存関係だけでなく、それらの直接依存関係が利用する推移的依存関係も含まれます。

完全な依存関係グラフを作成するため、必要に応じてさらに深く解析が続きます。Snykはこれらの依存関係をSnyk Vulnerability Databaseと照合してテストし、詳細なレポートを作成します。ダッシュボードを見るだけでも、重大度「高」の脆弱性31件を含む、合計60件のセキュリティ上の問題が見つかったことがわかります。

便利そうですよね?ぜひ今すぐお試しください!

次回は、この脆弱性一覧を詳しく見ていき、修正用プルリクエストを自動作成して問題を修正する方法をご紹介します。

CTFを始めよう

オンデマンドのバーチャル入門ワークショップで、CTFチャレンジの解き方を学びましょう。

続きを読む

feature insights context
Blog

自律型攻撃はすでに始まっている。防御もそのスピードに追いつかなければならない。

自律型攻撃者によって、防御に使える時間は短くなっています。継続的な検出、修復、検証、予防で、セキュリティチームが攻撃に歩調を合わせる方法をご紹介します。

feature insights context
Blog

予防は、本質的に解決済みの問題なのでしょうか?

エージェントが生成するコードの予防策はアーキテクチャ上解決されていますが、開発を遅らせることなくセキュリティを守る制御を選ぶことが、依然として課題です。

Live Stream

修正エージェントをわかりやすく解説:見つけるより直すことが重要な理由

SnykのRemediation Agentが、セキュリティインテリジェンス、破壊可能性分析、検証を活用して、脆弱性をマージ可能なプルリクエストに変える仕組みをご覧ください。