The Go Blog
Govulncheck v1.0.0 がリリースされました!
Govulncheck v1.0.0 が、スキャン機能を他のツールに統合するための API の v1.0.0 とともにリリースされたことをお知らせいたします!
Go の脆弱性管理のサポートは、昨年9月に初めて発表されました。それ以来、いくつかの変更を加え、本日のリリースに至りました。
この記事では、Go の更新された脆弱性ツールと、その使用開始方法について説明します。また、Go プロジェクトでセキュリティを優先させるのに役立つセキュリティのベストプラクティスガイドも最近公開しました。
Govulncheck
Govulncheck は、Go ユーザーがプロジェクトの依存関係にある既知の脆弱性を見つけるのに役立つコマンドラインツールです。このツールは、コードベースとバイナリの両方を分析でき、コードが実際に呼び出している関数の脆弱性を優先することでノイズを減らします。
最新バージョンの govulncheck は、go install を使用してインストールできます。
go install golang.org/x/vuln/cmd/govulncheck@latest
次に、モジュール内で govulncheck を実行します。
govulncheck ./...
ツールの使用開始方法に関する追加情報は、govulncheck チュートリアルを参照してください。
今回のリリースより、golang.org/x/vuln/scan で説明されている安定した API が利用可能になりました。この API は govulncheck コマンドと同じ機能を提供し、開発者がセキュリティスキャナーやその他のツールを govulncheck と統合することを可能にします。例として、govulncheck との osv-scanner 統合を参照してください。
データベース
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 を直接実行することもできます。開始するには、チュートリアルを参照してください。
最後に、多くの開発者が govulncheck を CI/CD システムの一部として実行したいと考えていることを認識しています。出発点として、プロジェクトとの統合のためにgovulncheck 用の GitHub アクションを提供しています。
ビデオウォークスルー
上記で説明した統合のデモに興味がある場合は、今年の Google I/O で、「Go と Google でより安全なアプリを構築する」というトークで、これらのツールのウォークスルーを発表しました。
フィードバック
いつものように、皆様からのフィードバックをお待ちしております!貢献し、改善に協力する方法の詳細をご覧ください。
Go の脆弱性管理のサポートの最新リリースが役立つと感じていただき、より安全で信頼性の高い Go エコシステムを構築するために協力していただけることを願っています。