LoginSignup
4
6

More than 1 year has passed since last update.

The Big Fix「脆弱性を修正すると、限定Tシャツが全員に当たります」

Last updated at Posted at 2022-02-01

こんにちは。デベロッパーファーストのセキュリティプラットフォーム Snyk (スニーク) でソリューションエンジニアをしている @ToshiAizawa です!

#The Big Fix

Snyk では2月25日まで、The Big Fix (ザ・ビッグフィックス) というイベントをやっています。The Big Fix とは「みんなでアプリケーションの脆弱性を修正して、インターネットをもっと安全にしよう」という主旨のイベント。

オープンソースプロジェクトや、個人・会社のコードの中に隠れている脆弱性を見つけて、修正する。それを世界中の開発者、運用担当者、セキュリティ担当者と、いっしょにやりませんか?

最終日の2月25日 (金) には、24時間のライブストリーミングイベントを予定しています (日本時間 午前9時から翌日午前9時まで)。また、The Big Fix に「参加」いただいた方には、The Big Fix のイベント T シャツをプレゼント。

The Big Fix イベントは終了しました。ですが、以下の説明 (1. Snyk にサインアップ、3. Snyk を使って脆弱性スキャンを行い、脆弱性を見つける、4. 見つかった脆弱性を Snyk を使って修正) は、Snyk Open Source を使って脆弱性を検出・修正する方法の案内としてご活用いただけます。ぜひ試してみてくださいね。

参加方法

イベント特製の限定版 T シャツをゲットするためには、以下の4条件をクリアしてください!

  1. Snyk にサインアップ
  2. The Big Fix イベントに登録
  3. Snyk を使って脆弱性スキャンを行い、脆弱性を見つける
  4. 見つかった脆弱性を Snyk を使って修正

それぞれの具体的な方法を以下で説明しています!

Snyk にサインアップ

所要時間 1〜2分
(Snyk のアカウントをすでにお持ちの方は、もちろんスキップしてください)

Google や GitHub のアカウント等でサインアップ可能です。個人的には GitHub がオススメ!あらかじめ、そのアカウントにログインしておくとスムーズに進みます。以下では GitHub を選んだ場合の流れを説明します。(それ以外のアカウントを選んだ場合、その後の流れが多少、異なります)

image.png

  1. snyk.io に行って、画面右上の Sign up ボタンをクリック
  2. Google、GitHub など、サインアップに利用するサービスを選んでクリック
  3. Keep me informed on product updates というページでは Continue ボタンをクリック (Snyk からの情報提供に関する opt-in/out するページです)
  4. Where is the code you want to test? というページでは、連携するソースコード管理システムを選んでクリック (ここでも GitHub を選ぶとその後が簡単です)
  5. 連携対象のリポジトリの種類 (Public and private repos がデフォルトとして選択済み) を選び、Continue ボタンをクリック
  6. 初期スキャン対象のリポジトリにチェックを入れて、Import and scan ボタンをクリック
  7. これでサインアップは完了して、そのまま続いて指定したリポジトリのインポートとスキャンが実行されます

The Big Fix イベントに登録

所要時間 1分

The Big Fix のページから、名前とメールアドレスを送信すれば登録は完了します。
**【重要】**メールアドレスは、Snyk のサインアップ時に使ったものを入力してください。

image.png

  1. The Big Fix のページへアクセス
  2. 画面左の Register now ボタンをクリックする、または、ページをスクロールして登録フォーム (Sign up and fix) に進む
  3. (1) First Name (下の名前をアルファベットで入力)、(2) Last Name (名字をアルファベットで入力)、(3) Email (メールアドレスを入力) の計3項目 (すべて必須) を記入
  4. Submit ボタンをクリック

以上で登録は完了です。

なお、登録をもって、以下の4つの規約に同意したとみなされます。

Snyk を使って脆弱性スキャンを行い、脆弱性を見つける

所要時間 2分未満

Snyk にサインアップする際に、リポジトリの取り込みを済ませていれば、脆弱性はすでに見つかっている可能性が高いです。Snyk UI の画面上部にある Projects タブをクリックしてみてください。ここでの Project とは、脆弱性スキャンの対象それぞれを指します。また、並んで表示されている数字は、見つかった脆弱性の個数を示しています。

image.png
【画面キャプチャ】脆弱性が見つかったプロジェクト例 (pom.xml)

もし、リポジトリの取り込みがまだ、または、取り込んだリポジトリに脆弱性が存在しない場合。Projects タブをクリックすると画面右上に表示される Add project ボタンをクリックしましょう。対象のリポジトリ等を指定して取り込みが行えます。取り込むと同時に、脆弱性スキャンが実行されます。

image.png
【画面キャプチャ】Add project ボタンをクリックした画面

レポジトリ取り込み操作の例:

  1. 画面右上の Add project ボタンをクリック
  2. GitHub をクリック
  3. リポジトリ一覧から取り込みたいリポジトリにチェックを入れる
  4. 画面右上の Add selected repositories ボタンをクリック

見つかった脆弱性を Snyk を使って修正

所要時間 2分前後

Snyk を使えば、脆弱性の修正も簡単です。以下では、Java のプロジェクトに存在するオープンソースパッケージの脆弱性を例に、修正の流れを説明します。なお、ここでは Snyk Open Source (アプリケーションが参照しているオープンソースパッケージの脆弱性に対応するための製品) を用います。

  1. 脆弱性の確認
  2. Fix PR (修正用プルリクエスト) の作成
  3. Fix PR のマージ

以上の3ステップで修正できます。それぞれのステップについては、この後に続く説明をご確認ください。

修正 Step 1: 脆弱性の確認

image.png
【画面キャプチャ】脆弱性が見つかったプロジェクト例 (pom.xml)

  1. Snyk UIDashboard タブをクリックして Vulnerable projects から、または、Projects タブをクリックして表示されるプロジェクトの中から、脆弱性が見つかっているものをクリックします。(上の例では Maven のマニフェストファイルである pom.xml をクリックしてください)
  2. プロジェクトの詳細ページが表示されます。脆弱性がそれぞれ表示されます。このページでは脆弱性の確認、修正を行うことができます。

image.png
【画面キャプチャ】プロジェクト (pom.xml) の詳細ページ

修正 Step 2: Fix PR (修正用プルリクエスト) の作成

修正の第一歩として、Snyk UI から Fix PR (修正用プルリクエスト) を作成します。オープンソースパッケージの脆弱性は、脆弱性を含むパッケージを、脆弱性を修正したバージョンへアップグレードすることで修正できます。Fix PR を通じてマニフェストファイルを書き換えることで、このバージョンアップを実装します。

image.png
【画面キャプチャ】Fix PR の作成前の確認ページ

  1. プロジェクト詳細ページにて、Fix these vulnerabilities ボタンをクリック (複数の脆弱性をまとめて修正する場合)、または、個々の脆弱性に対して表示されている Fix this vulnerability ボタンをクリック (特定の脆弱性のみ修正する場合) します。
  2. Fix PR の作成前の確認ページが表示されます。
  3. 修正可能な脆弱性を確認した上で、Open a Fix PR ボタンをクリックします。
  4. GitHub (または連携先のソースコード管理システム) 上でプルリクエストが作成されます。

image.png
【画面キャプチャ】GitHub 上に作成されたプルリクエスト (Fix PR)

Snyk を使えば、ボタンを2回クリックするだけで、オープンソースパッケージに由来する脆弱性を修正することができます。(修正をリポジトリに反映させるためには、この後、プルリクエストのマージが必要です)

修正 Step 3: Fix PR のマージ

あともう一歩!プルリクエストをマージすれば、脆弱性が修正されます。

image.png
【画面キャプチャ】GitHub: プルリクエスト (Fix PR) の Merge pull request ボタン

  1. Step 2 で作成したプルリクエスト (Fix PR) の Merge Pull Request をクリック、続いて Confirm merge をクリックします。これにより修正が反映されます。
  2. Snyk UI へ戻り、プロジェクトの詳細ページの上部より、Retest now をクリックします。(Retest now をクリックしなくても、GitHub → Snyk への Webhook により通常、自動実行されます)
  3. 再スキャンが実施され、脆弱性が修正されたことが確認できます。

image.png
【画面キャプチャ】GitHub: プルリクエスト (Fix PR) にてマージが完了

image.png
【画面キャプチャ】Snyk UI: プロジェクトの詳細ページ (Retest now のリンク)

image.png
【画面キャプチャ】Snyk UI: Retest 後のプロジェクト詳細ページ

プルリクエストをマージした後、再度テストを行えば安心!修正の適用が確認されました。つまり T シャツゲット!Congratulations 🎉🎉🎉

なお、発送はイベント終了後となります。その前に発送先の確認のため、Snyk より連絡を差し上げます。

Discord と #TheBigFix

The Big Fix の参加者が交流するためのチャンネルを Discord に開設しています。

Discord のコミュニティに参加する

脆弱性を修正したら、ぜひ Twitter でハッシュタグ #TheBigFix をつけてツイートしてください!

Tweets with #TheBigFix

24時間のライブストリーミングまではまだ時間がありますが、脆弱性の修正は今日でも OK!Develop Fast. Stay Secure.

P.S. 下のビデオは、1月28日に行ったストリーミングです。@DeveloperSteve といっしょに、The Big Fix を告知しました。

4
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
6