Skip to main content

Go modulesを簡単かつ正確にセキュアに

著者
Headshot of Ariel Ornstein

Ariel Ornstein

Go Blog feature

2019年8月7日

0 分で読めます

本日より、modulesを使用するGoプロジェクトのオープンソースの脆弱性を開発者がテスト・監視し、パッケージ単位で正確なアラートを受け取れるようになりました。

開発者がオープンソースコードを安全に利用できるよう支援することに取り組み、エコシステムを拡大し、対応する言語やパッケージマネージャーを継続的に増やすために尽力しています。これまでSnykは、パッケージマネージャーとしてdepまたはGo vendorを使用するGoプロジェクトに対応していました。同様に、人気が高まっているGo modulesも、安全かつ高精度に利用でき、開発の妨げにならないことを確認したいと考えていました。

Go modulesプロジェクトの脆弱性をパッケージ単位で通知

今回の対応により、Snyk CLI(snyk test)を使ってGoプロジェクトをスキャンし、脆弱性を検出できるようになりました。

Snykは、使用されているmoduleだけでなく、パッケージ単位の粒度で、プロジェクトの依存関係ツリーを構造化して算出します。これにより、脆弱性が確認された特定のパッケージだけを検出し、その脆弱なパッケージが実際に使用されている場合にのみアラートを通知します。その結果、Snykのアラートはより正確になり、誤検知や不要な通知を減らせます。

次の画像は、Go moduleプロジェクトの依存関係ツリーを示しています

OpenCensus、Jaeger、Apache Thrift、HashiCorp Goパッケージなど、Goモジュールとバージョン付きパッケージパスを示す依存関係ツリー。

依存関係ツリーを、Goに特化した包括的なデータを提供する独自の脆弱性データベースと照合します。脆弱なパッケージが見つかった場合は、データベース内の該当パッケージを特定し、そのパッケージと脆弱性の詳細をご案内します。

プロジェクトを監視して安全を維持

Go modulesプロジェクトを継続的に監視し、新たに関連する脆弱性が公開された際に通知することで、プロジェクトの安全を守ります。その場合は、脆弱なパッケージを特定してお知らせします。当社のセキュリティチームは新たな脆弱性を調査・発見し、データベースに追加しています。多くの場合、公開データベースに掲載される前に発見します。

利用を開始するには

Snykは、開発者がセキュリティツールを手軽に利用できるようにすることに取り組んでいます。

Go modulesプロジェクトの利用を開始してスキャンするのは簡単です。CLIをインストールし、go.modファイルがあるフォルダーに移動して、snyk testまたは_snyk monitor._を実行するだけです。

CLIの詳細はこちら、Goへの対応についてはこちらをご覧ください。

安全な開発を!

Capture the Flagを始めよう

オンデマンドのバーチャル入門ワークショップを見て、Capture the Flagの課題の解き方を学びましょう。