
Snykを使ってみた
こんにちは、エンジニアの神山です。
某記事でどんでもないボールが飛んできたので書きます。笑
Snyk(スニーク)について
セキュリティツールは、セキュリティ部門の目線で作られていることが多いかと思いますが、Snykは開発者の目線でデベロッパーファーストで作られています。
Snykの特徴は大きく3つあります。
1. エンジニアが使いやすい!Gitや統合開発環境(IDE)、CI/CDパイプラインに直接組み込むことができるので、従来のワークフローを変更する必要なくエンジニアが簡単に使うことができます。また、脆弱性を見つけるだけでなく、優先順位をつけて修正することができるので、セキュリティの専門家でないエンジニアでも簡単にご利用いただけます。
2. クラウドネイティブな開発環境にマッチ!コードやオープンソースとその依存関係だけでなく、コンテナやIaC(Infrastructure as a Code) もカバーしています。モダンなアプリケーション開発における脆弱性をオールインワンで、一元管理できますし、レポート機能もあるのでセキュリティ部門も安心です。
3.脆弱性データベースが世界最高峰!世の中にさまざまなソリューションはありますが、Snykほどの品質の脆弱性データベースはありません。その証拠に、セキュリティ業界の著名なリーダー企業達が揃ってSnykの脆弱性データベースを利用しています。
https://qiita.com/advent-calendar/2022/snyk
ソースコードのセキュリティ(脆弱性)を診断してくれるツールになります。
とりあえずやってみる。
アカウント登録
以下のページからアカウントを作成します。
Githubと連携することになるので、私はGithubで登録を行いました。
Github連携
Github連携した時点で自分のリポジトリが出てきます。
Organizationsのリポジトリはオーナーの許可が必要なので、認証のリクエストを飛ばしてください。
診断したいリポジトリを選択してプロジェクトに追加すると、診断が開始されます。
(非常に簡単・・・)

診断結果

脆弱性のレベルについては以下のようになります。
レベル | 内容 |
Critical(C) | 攻撃者が機密データにアクセスしたり、アプリケーション上でコードを実行したりする可能性がある |
High(H) | 攻撃者はアプリケーション内の機密データにアクセスできる可能性 |
Medium(M) | 攻撃者がアプリケーション上の機密データにアクセスできる可能性がある |
Low(L) | 脆弱性のマッピングを可能にするいくつかのデータを公開するかもしれない |
対処すべき優先順位になると思います。
Snykは修正案も提案してくれ、Snyk上ですぐに修正のプルリクエストを作成することができます。
プルリクエストはこのような感じになります。
(めちゃくちゃ丁寧!)

まとめ
Snyk自体の導入はすごく簡単にできますし、リポジトリのスキャンも非常に速いです。
ほぼボタンをポチポチすれば完結します。
Github Actionsとも連携ができるので、プルリクエスト作成時にスキャンなどといったことも可能になります。
脆弱性があるかのチェックは非常に大変だと思うので、Snykはかなり便利なツールだと思いましたので、是非活用していこうと思います!
