Skip to main content

Snyk for .NET、Go、PHPを発表

著者
Headshot of Aner Mazur

Aner Mazur

2017年12月21日

0 分で読めます

ホリデーシーズンが近づいてきました。Snykの成長を続けるコミュニティに、ささやかな贈り物をしてみてはいかがでしょうか。

Snykはこれまで、セキュリティを損なうことなくオープンソースコードを簡単に利用できるよう取り組んできました。そして本日、新たな一歩として、.NET、Go、PHP向けのCLIサポートを開始します。

CLIを使えば、アプリケーションを手動でテストしたり、CIプロセスの重要なステップでテストしたりできます。依存関係ツリーを調べて、使用中の各依存関係とそのバージョンを特定し、すべてをテストします。ソースコード管理とのインテグレーションも近日中に提供予定です。

さっそく数分だけ(本当にすぐ終わります)、アプリを安全に保ちましょう。

クイックスタート

まず、Snykを最新バージョンにインストールまたはアップグレードし、認証します。

npm install -g snyk 
snyk auth

Snykはローカルにインストールされているモジュールを参照してすべての依存関係を解決するため、モジュールがすでに利用可能であることを確認してください。

.NETの場合は、Visual Studioまたはdotnet restoreを使って、packages/(.NET)またはobj/(.NET Core)フォルダーにファイルが配置されていることを確認してください。

Golangの場合は、dep ensureまたはgovendor syncを使ってvendor/にファイルが配置されていることを確認してください。また、GOPATH環境変数が正しく設定されている必要があります。

PHPの場合は、composer installによってcomposer.lockファイルが作成されていることを確認してください。

次に、プロジェクトのフォルダーに移動して、脆弱性をテストします。

snyk test

次のように、検出されたすべての脆弱性が表示されます。

$ ✗ snyk test
✗ Medium severity vulnerability found on Microsoft.AspNetCore.All@2.0.0
- desc: Open Redirect
- info: https://snyk.io/vuln/SNYK-DOTNET-MICROSOFTASPNETCOREALL-600122
- from: dotnetcore@1.0.0 > Microsoft.AspNetCore.All@2.0.0

✗ Medium severity vulnerability found on Microsoft.AspNetCore.Server.HttpSys@2.0.0
- desc: Denial of Service (DoS)
- info: https://snyk.io/vuln/SNYK-DOTNET-MICROSOFTASPNETCORESERVERHTTPSYS-600125
- from: dotnetcore@1.0.0 > Microsoft.AspNetCore.All@2.0.0 > Microsoft.AspNetCore.Server.HttpSys@2.0.0

✗ High severity vulnerability found on System.Net.Http@4.3.0
- desc: Privilege Escalation
- info: https://snyk.io/vuln/SNYK-DOTNET-SYSTEMNETHTTP-60047
- from: dotnetcore@1.0.0 > System.Net.Http@4.3.0

SnykのUIでプロジェクトを追跡し、新たに公開された脆弱性を確認するには、monitorコマンドを使います。CI環境でsnyk testとsnyk monitorの両方を使うことで、デプロイパイプラインにセキュリティを組み込めます。

snyk monitor
Zend Frameworkの任意コード実行の問題が表示された、脆弱なcomposer.lockファイルのセキュリティダッシュボード。

Goのセキュリティ対策

Goエコシステムには驚くほど多くのパッケージマネージャーがありますが、「公式実験版」パッケージマネージャーのdepに集約され始めており、採用するプロジェクトも増えています。それでも、Goのアルファ版に参加してくださったお客様のうち、かなりの割合の方からgovendorのサポートもご要望いただきました。そのため、Snyk CLIはここで紹介した両方のパッケージマネージャーをサポートしています。

Snyk CLIは直接依存関係と間接依存関係の両方のインポートを調べ、Gopkg.lockまたはvendor/vendor.jsonに保存されたロック済みバージョンと照合します。

今後、Golangに関する記事をいくつか公開し、Goパッケージエコシステムについて学んだことや、SnykでGoサポートを開発する際に直面したさまざまな課題をご紹介する予定です。ぜひご期待ください。

.NETのセキュリティ対策

.NETおよび.NET Coreのプロジェクトをスキャンし、NuGetの依存関係に既知の脆弱性がないか調べます。.NETプロジェクトではpackages.configファイルを、.NET Coreプロジェクトではobj/project.assets.jsonファイルを処理します。

また、.slnファイルもサポートしているため、ソリューション内のすべてのプロジェクトのオープンソースセキュリティを自動化できます。

興味深いことに、.NETのサポートを開発する中で、オープンソースの脆弱性を検査することが.NETで非常に重要だと分かり、驚きました。既定の.NET Core v2アプリケーションはMicrosoft.AspNetCore.All/2.0.0に依存しており、これだけで10件を超える脆弱性が持ち込まれるのです。ぜひ今日、プロジェクトを確認してみてください。

PHPのセキュリティ対策

Snykは、依存関係をcomposerで管理しているPHPプロジェクトのテストと監視をサポートしています。

PHPプロジェクトはcomposer.lockファイルを調べ、プロジェクト内の直接依存関係と深い依存関係すべての特定のバージョンを、Composer脆弱性データベースと照合してスキャンします。

ぜひお試しください。

このリリースに向けて、アルファ版ユーザーからフィードバックを集め、改良を重ねながら懸命に取り組んできました。ついに、すべての方にCLIを公開できることをうれしく思います。

いつもどおり、Snykはオープンソースでの利用なら、プロジェクト数にかかわらず無料です。オープンソースは開発に大きな恩恵をもたらします。できる限り安全に利用できるよう、私たちも貢献できることをうれしく思います。

ご意見やご感想がありましたら、ぜひお聞かせください。Snykをさらに良くするため、皆さんの声をいつでもお待ちしています。また、Snykでサポートしてほしい言語やパッケージマネージャーがあれば、ぜひお知らせください。優先順位を決める参考になるだけでなく、テストやフィードバックに意欲的な開発者の皆さんに、早期アクセスを提供できるのも楽しみです。

続きを読む

feature insights context
Blog

自律型攻撃はすでに始まっている。防御もそのスピードに追いつかなければならない。

自律型攻撃者によって、防御に使える時間は短くなっています。継続的な検出、修復、検証、予防で、セキュリティチームが攻撃に歩調を合わせる方法をご紹介します。

feature insights context
Blog

予防は、本質的に解決済みの問題なのでしょうか?

エージェントが生成するコードの予防策はアーキテクチャ上解決されていますが、開発を遅らせることなくセキュリティを守る制御を選ぶことが、依然として課題です。

Live Stream

修正エージェントをわかりやすく解説:見つけるより直すことが重要な理由

SnykのRemediation Agentが、セキュリティインテリジェンス、破壊可能性分析、検証を活用して、脆弱性をマージ可能なプルリクエストに変える仕組みをご覧ください。