The Go Blog (Go ブログ)

Govulncheck v1.0.0 リリース!

Go セキュリティチーム、Julie Qiu
2023年7月13日

govulncheck v1.0.0 と、他のツールにスキャンを統合するための API の v1.0.0 がリリースされたことをお知らせします。

Go の脆弱性管理のサポートは、昨年 9 月に初めて発表されました。それ以来、いくつかの変更を加え、本日のリリースに至りました。

この投稿では、Go の更新された脆弱性ツールと、その使用方法について説明します。また、最近、Go プロジェクトのセキュリティを優先するためのセキュリティベストプラクティスガイドを公開しました。

Govulncheck

Govulncheck は、Go ユーザーがプロジェクトの依存関係にある既知の脆弱性を発見するのに役立つコマンドラインツールです。このツールは、コードベースとバイナリの両方を分析でき、コードが実際に呼び出している関数における脆弱性を優先することでノイズを低減します。

go installを使用して、govulncheck の最新バージョンをインストールできます。

go install golang.org/x/vuln/cmd/govulncheck@latest

次に、モジュール内で govulncheck を実行します

govulncheck ./...

ツールの使用方法の詳細については、govulncheck チュートリアルを参照してください。

このリリースでは、安定した API が利用可能になりました。これは、golang.org/x/vuln/scanに記載されています。この API は、govulncheck コマンドと同じ機能を提供し、開発者がセキュリティスキャナーやその他のツールを govulncheck と統合できるようにします。例として、osv-scanner と govulncheck の統合を参照してください。

データベース

Govulncheck は、Go 脆弱性データベースであるhttps://vuln.go.devによって強化されています。これは、公開されている Go モジュールの既知の脆弱性に関する包括的な情報源を提供します。データベースのエントリは、pkg.go.dev/vulnで参照できます。

最初のリリース以降、パフォーマンスを向上させ、長期的な拡張性を確保するために、データベース APIを更新しました。独自の脆弱性データベースインデックスを生成するための実験的なツールは、golang.org/x/vulndb/cmd/indexdbで提供されています。

Go パッケージのメンテナーの方は、プロジェクトの公開されている脆弱性に関する情報を提供することをお勧めします。

Go 脆弱性データベースの詳細については、go.dev/security/vuln/databaseを参照してください。

統合

脆弱性検出は、すでに多くの Go 開発者のワークフローの一部となっているツールスイートに統合されています。

Go 脆弱性データベースのデータは、pkg.go.dev/vulnで参照できます。脆弱性情報は、pkg.go.dev の検索ページとパッケージページにも表示されます。たとえば、golang.org/x/text/language のバージョンページには、古いバージョンのモジュールの脆弱性が表示されます。

Visual Studio Code 用の Go 拡張機能を使用して、エディターで直接 govulncheck を実行することもできます。チュートリアルを参照して開始してください。

最後に、多くの開発者が CI/CD システムの一部として govulncheck を実行したいと考えていることを知っています。出発点として、プロジェクトとの統合のためにgovulncheck 用の GitHub アクションを提供しました。

ビデオチュートリアル

上記の統合のデモに興味がある場合は、今年の Google I/O での講演「Go と Google でより安全なアプリを構築する」で、これらのツールのチュートリアルを紹介しました。

フィードバック

いつものように、皆様からのフィードバックをお待ちしております!貢献し、改善に役立つ方法の詳細をご覧ください。

Go の脆弱性管理サポートの最新リリースが役立ち、より安全で信頼性の高い Go エコシステムの構築にご協力いただければ幸いです。

次の記事:Go での開発に関するフィードバックを共有する
前の記事:Go 1.21 リリース候補
ブログインデックス