はじめに
こちらの記事は「Snykを使って開発者セキュリティにまつわる記事を投稿しよう! by Snyk Advent Calendar 2022」の 6 日目の記事として投稿しています。
私(@changeworlds)からは、Snyk を使うことで、数 Steps で脆弱性対策をする具体的な方法についてご紹介いたします。
脆弱性対策というと企業に所属している人なら所属先のアプリケーション/サービス/プロダクトに対して、年次/Q 毎など定期的に脆弱性診断をしてもらっているかと思います。
しかし、本来問題というのは一定期間寝かせておいてから取り除くのではなく、気づいたときに取り除くものです。
とはいえ脆弱性診断を commit/push 毎にするというのは至難の業です。
そこで、登場するのが数 Steps で手軽に脆弱性対策を行える Snyk です。
https://go.snyk.io/jp.html にアクセス後、 [ログイン/無料トライアル] をクリックして、アカウントを登録し、GitHub リポジトリと連携する設定してみましょう。
なんとこれだけで以下のメリットを享受できます!!
登録した GitHub リポジトリに対して自動解析してくれる
便利ですね。
たったこれだけで、勝手に GitHub リポジトリのコードを読み込んで、勝手に解析し、勝手に修正のための Pull Request を出してくれます。また、連携した GitHub リポジトリに Pull Request を出すと、変更されたコードの中に脆弱性がないか勝手にチェックしてくれます。
勝手にチェックしてくれる脆弱性としては、ソースコードとライブラリがあります。
ソースコードの場合は、ソースコードで問題があったり、脆弱性があったりする書き方をしていると指摘をしてくれます。
指摘を無視(Ignore)することもできますし、指摘をしてくれる際は同時に他の人はどのように修正しているのか?といった sample を提示してくれるので、「どう直せばいいかわからないな…」といったときに助かるかと思います。
ライブラリの場合は、利用しているバージョンに脆弱性がある場合にその脆弱性を解消するためにどのバージョンまで上げないといけないかを指摘してくれます。というか、勝手に Pull Request を送ってくれます。
ここまでの機能は
- アカウントを作る
- GitHub リポジトリと連携する
だけで行える脆弱性対策ですが、ここからもう数 Steps 追加することで、さらに脆弱性対策をする方法をお伝えします。
- アカウントを作る
- GitHub リポジトリと連携する
だけでよいので、とても簡単な反面、この指摘をもらうためには、Pull Request なり、GitHub に push する必要があります。
でも、push や Pull Request を出す前にローカルで脆弱性があるかどうかわかった方がより品質を高められますよね?
それをできるようにするのが次にご紹介する Snyk Code Checker になります。
Snyk Code Checker は IDE のプラグインとして利用可能で、コードをスキャンし、問題点を検出するツールです。これを使うことで、コーディング中に脆弱性対策をしたコードに直接修正できるので品質とセキュリティの高いコーディングができるというわけです。
Snyk Code Checker
- アカウントを作る
- GitHub リポジトリと連携する
ほどではないですが、使い方は簡単です。
事前に Snyk のアカウントを作成していると思うので、Snyk の画面の下にある [Integration] > [IDE plugins] から利用している IDE を選択してください。
※ 本記事では Visual Studio Code を前提に説明します。
別ウィンドウ(本記事では Visual Studio Code の Marketplace)が開くので、[Install] をクリックします。
すると、先ほど選択した IDE(本記事では Visual Studio Code)のプラグインインストール画面が表示されるので Install をクリックします。
Visual Studio Code の場合、Snyk にログインするように表示されるので、Trust wordspace and connect ボタンをクリックします。
すると、ブラウザで認証画面が表示されるので、Authenticate をクリックします。
認証に成功すると Snyk のプラグインが IDE(本記事では Visual Studio Code)で自動的に実行されます。
デフォルト設定だと、ファイルを保存すると自動的にスキャンが実行されます。
- アカウントを作る[他手順で実行済]
- Snyk の画面の下にある [Integration] > [IDE plugins] から利用している IDE を選択する
- 別ウィンドウ(Visual Studio Code の Marketplace)が開くので、[Install] をクリック
- IDE で Install をクリック
- Visual Studio Code の場合、Snyk にログインするように表示されるので、ボタンをクリック
- ブラウザで認証画面が表示されるので、Authenticate をクリック
追加 5step でローカルで脆弱性対策を行ったコーディングができるようになります。
おわりに
今回 Snyk でコードの品質を向上させる流れを紹介しました。
Snyk は脆弱性以外にもコードの品質を向上させるためのツールとしても利用する事ができます。Snyk を利用することでコーディング段階からコードの品質、サービスの品質を向上させることができます。