[初心者向け]0から始めるSnyk入門 @snykjp #Qiitaアドカレ

Snyk Advent Calendar 2022 の記事です。2年前くらいに作成したTerraformコードをスキャンしてみました。
2022.12.26

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは!コンサル部のinomaso(@inomasosan)です。

この記事はSnyk を使って開発者セキュリティにまつわる記事を投稿しよう! by Snyk Advent Calendar 2022の22日目として投稿しています。

Snykは以前から話を聞くことはあったものの、実際に手を動かしたことがなかったので、無料トライアルからスタートしてました。

Snykとは

以下、Snyk公式からの引用文です。

Snyk(スニーク)は、安全な開発を迅速に行うことを支援しています。コードやオープンソースとその依存関係、コンテナやIaC(Infrastructure as Code)における脆弱性を見つけるだけでなく、優先順位をつけて自動的に修正します。
Gitや統合開発環境(IDE)、CI/CDパイプラインに直接組み込むことができるので、デベロッパーが簡単に使うことができます。

無料トライアルの試しかた

具体的なサインアップ方法は、Snyk社のQiita記事を参考に実施できました。
画面等もほとんど一緒だったので、特に悩まず実施できると思います。

GitHubでスキャンを試してみる

GitHubのリポジトリに、何年か前に作成したTerraformがあったのでスキャンを試してみます。

リポジトリ追加

左ペインのProjectsを選択します。
追加したいリポジトリがなかったのでview all your repositoriesをクリックします。

スキャンしたいリポジトリにチェックを入れ、Add selected repositoriesをクリックします。

数秒待ったら以下のスキャン結果が表示されました。
リポジトリやファイル毎の重要度がひと目で把握できますね。

スキャン結果の確認

今回はRDSの記述をしている、aws_rds.tfの結果を確認してみます。
2件の脆弱性が検出されたことがわかります。

Show more detailsをクリックして詳細を確認していきます。

RDS IAM authentication is disabled

RDSのIAM認証が無効になっているので検出されています。
issueが問題、impactが影響、resolveが解決方法といったところでしょうか。
必要な情報がコンパクトにまとまっており見やすいですね。

Non-encrypted RDS instance at rest

DBインスタンスのストレージの暗号化が無効になっているので検出されています。
こちらは特に理由が無ければ、真っ先に対応した方が良いissueですね。

おまけ

issue毎の右下にあるFull detailsをクリックすると、コードの全体を表示することができます。
ファイル内のコード全量が簡単に確認できるのは素晴らしいですね。

参考

まとめ

思ったよりも簡単にSnykを使ったGitHubのリポジトリをスキャンすることができました。
今回は基本的なところを試してみましたが、VSCodeやCI/CDでもスキャンを実施できるらしいので、機会があれば試してみようと思います。

この記事が、どなたかのお役に立てば幸いです。それでは!