mcpField
S
Snyk CLI

Snyk CLI

公式おすすめAgent-ready
docs.snyk.io開発ツール5.7ksnyk今日更新
リポジトリ公式サイト

Snyk CLI について

Snyk CLI はソースコード、依存関係、コンテナイメージ、インフラストラクチャ as Code 設定のセキュリティ脆弱性をスキャンします。開発者はローカル開発と CI/CD でセキュリティ問題を識別・修正でき、詳細なレポートが生成されます。

主な機能

  1. 01プロジェクト依存関係の既知セキュリティ脆弱性をスキャンする
  2. 02コンテナイメージの OS とライブラリ脆弱性を検査する
  3. 03インフラストラクチャ as Code 設定のセキュリティ問題を分析する

活用シーン

  1. 01CI/CD パイプラインにセキュリティ脆弱性スキャンを統合する
  2. 02開発中に依存関係とコンテナの脆弱性を検出・修正する

インストール

OS またはパッケージマネージャーを選び、コマンドをターミナルで実行します。

$
npm install -g snyk

インストール後にsnyk --versionを実行して確認します。

コマンド例

よく使うコマンドを使う順に並べています。

01
snyk auth
02
snyk test
03
snyk container test node:20

詳細

Snyk CLI を使い始める

Snyk CLI の概要

Snyk は、ソフトウェア開発プロジェクトをスキャンしてセキュリティ上の脆弱性を検出・監視する、開発者を第一に考えたクラウドネイティブなセキュリティツールです。Snyk は、複数のコンテンツタイプをスキャンしてセキュリティ上の問題を検出します。

  • Snyk Open Source:オープンソースの脆弱性を検出し、自動的に修正します
  • Snyk Code:アプリケーションコードの脆弱性をリアルタイムで検出して修正します
  • Snyk Container:コンテナイメージおよび Kubernetes アプリケーションの脆弱性を検出して修正します
  • Snyk IaC:Terraform および Kubernetes のコードにおける安全でない設定を検出して修正します

Snyk CLI を使うと、Snyk の機能を開発ワークフローに取り入れることができます。コマンドラインまたは IDE からローカルで CLI を実行できます。また、CI/CD パイプラインで実行することもできます。以下は、Snyk CLI のテストコマンドの出力例です。

README の画像

Snyk CLI のテストコマンドの出力例

Snyk CLI のスキャンは、さまざまな言語やツールに対応しています。詳細については、以下を参照してください。

このページでは、CLI のインストールと認証、および CLI を使ったスキャンの開始方法について説明します。Snyk には、これらの手順を案内するオンボーディングウィザードも用意されています。デモについては、Snyk を始める:CLI オンボーディングフローの概要をご覧ください。

Snyk CLI をインストールしてマシンを認証する

CLI を使用するには、インストールしてマシンを認証する必要があります。Snyk CLI のインストールまたは更新とアカウントを使った CLI の認証を参照してください。各リリースの変更点の概要は、リリースノートで確認できます。コードをスキャンする前に、Snyk CLI のコード実行に関する警告を確認してください。

{% hint style="info" %} CLI を使って Open Source のスキャンを行うには、事前にパッケージマネージャーをインストールする必要があります。Gradle や Maven などの必要なサードパーティツールが PATH に含まれている必要があります。 {% endhint %}

IDE または CI/CD 環境に CLI をインストールすることもできます。詳細については、各インテグレーションの手順が記載されたIDE および CI/CD のドキュメントを参照してください。

インストールをテストする

認証後、インストールをテストできます。簡単なテストを行うには、snyk --help を実行します。

または、たとえば snyk test ionic を実行して、公開されている npm パッケージを簡単にテストできます。

ターミナルで test コマンドのレポートを確認してください。このレポートには、Snyk がパッケージ内で検出した脆弱性が表示されます。検出された問題ごとに、Snyk は深刻度を報告し、詳細な説明へのリンク、脆弱なモジュールがシステムに取り込まれた経路、問題の修正方法を案内します。

開発プロジェクトをスキャンする

Snyk CLI を使用してオープンソースプロジェクトの脆弱性をテストする前に、限られた例外を除き、プロジェクトをビルドする必要があります。詳細については、テスト前にビルドが必要なオープンソースプロジェクトを参照してください。

また、オープンソースプロジェクトの言語によっては、Snyk CLI を使用する前に言語環境をセットアップする必要があります。詳細については、サポート対象の言語、パッケージマネージャー、フレームワークを参照してください。

CLI をインストールしてマシンを認証したら、オープンソースプロジェクトをスキャンするには、cd /my/project/ を使用して、package.json、pom.xml、composer.lock などのサポート対象のパッケージマニフェストファイルが含まれるフォルダーに現在のディレクトリを変更します。次に、snyk test を実行します。特定されたすべての脆弱性が、そのパスと修正方法のガイダンスとともに一覧表示されます。

ソースコードをスキャンするには、snyk code test を実行します。

たとえば、次のようにタグを指定して Docker イメージをスキャンできます:snyk container test ubuntu:18.04。

Kubernetes(K8s)ファイルをスキャンするには、次のコマンドを実行します:
snyk iac test /path/to/kubernetes_file.yaml

各コンテンツタイプのスキャンに Snyk CLI を使用する方法については、以下を参照してください:

AI エージェントによるスキャン

AI コーディングエージェントの場合は、エージェントモードを使用します:snyk agent test --experimental。Open Source、Code、Secrets のスキャンを一度に実行し、エージェント向けに最適化された、簡潔でトークン効率の高い出力を返します。このコマンドは試験的な機能であり、変更される可能性があります。詳細については、snyk agent --help を実行してください。

Open Source または Container プロジェクトをモニタリングする

Snyk は、SCM と連携した Open Source または Container プロジェクトを定期的にモニタリングし、新たな脆弱性を検出すると通知できます。プロジェクトのモニタリングを設定するには、snyk monitor または snyk container monitor を実行します。

これにより、現在の依存関係のスナップショットが作成され、Snyk がコードを定期的にスキャンできるようになります。その後、脆弱性が新たに公開されたときや、以前は利用できなかったパッチまたはアップグレードの経路が作成されたときに、Snyk から通知を受け取れます。次のコードは、snyk monitor コマンドの出力例です。

> snyk monitor
Monitoring /project (project-name)...

Explore this snapshot at
https://app.snyk.io/org/my-org/project/29361c2c-9005-4692
-8df4-88f1c040fa7c/history/e1c994b3-de5d-482b-9281-eab4236c851e

Notifications about newly disclosed issues related to these
dependencies will be emailed to you.

Snyk アカウントにログインし、Projects ページに移動すると、最新のスナップショットとスキャン結果を確認できます:

README の画像

Snyk モニターのスナップショットとスキャン結果

詳細については、プロジェクトを定期的にモニタリングするを参照してください。

テストを使い切った場合

テスト上限はパブリックリポジトリには適用されません。プライベートリポジトリに関連するテスト上限が、パブリックリポジトリのテストで消費されていることに気付いた場合は、Snyk CLI でスキャンするリポジトリのパブリック URL を Snyk に伝えることで解決できます。これにより、パブリックリポジトリがテスト上限にカウントされなくなります。

オープンソースの Project でテストを使い切った場合は、次の手順に従ってください。

  • snyk monitor を実行します。
  • Snyk Web UI で、Project の 設定 に移動します。
  • Git リモート URL にオープンソースリポジトリの URL を入力します。

Snyk CLI に関する追加情報

snyk help を実行するか、CLI コマンドとオプションの概要をご覧ください。

短い動画トレーニングについては、コース Snyk CLI の紹介をご覧ください。

Snyk では、チートシート(ブログ記事)も提供しています。

特に、次の便利なオプションに関する情報をご覧ください。

  • --severity-threshold=low|medium|high|critical:指定したレベル以上の脆弱性のみを報告します。
  • --json:結果を JSON 形式で出力します。
  • --all-projects:作業ディレクトリ内のすべての Project を自動検出します。

CLI の詳細については、CLI ドキュメントをご覧ください。

Snyk CLI のサポートを受ける

Snyk サポートページのリソースを利用して、Snyk CLI または Snyk 全般の使い方に関するサポートをお探しください。Snyk サポートは、Snyk 開発プロジェクトの GitHub Issues を積極的に監視していない点にご注意ください。

Snyk CLI へのコントリビューションは終了しました

2024 年 7 月 22 日をもって、Snyk CLI は外部からのコントリビューションを受け付けなくなりました。

CLI は広く利用され、複雑なため、わずかな変更でも予期しない影響が生じる可能性があります。2024 年 4 月に CLI コードへリリースチャンネルを導入して以来、Snyk はリリースの安定化に注力してきました。Snyk は、このオープンソースかつコントリビューションを受け付けないモデルが、この目標の達成に最適だと考えています。

Snyk のお客様と CLI ユーザーに対する透明性を保つため、Snyk は今後も公開の場で開発を続けます。ただし、今後 Snyk CLI へのコントリビューションは受け付けません。

Snyk は Snyk コミュニティに感謝し、その貢献に謝意を表します。

セキュリティ

セキュリティ上の問題や懸念については、GitHub リポジトリ内の SECURITY.md ファイルをご覧ください。

コメント