セキュリティ
このページでは、Go 開発者がプロジェクトのセキュリティを向上させるためのリソースを提供します。
(関連項目: Go 開発者のためのセキュリティのベストプラクティス)
既知の脆弱性を発見し修正する
Go の脆弱性検出は、開発者がプロジェクトに影響を与える可能性のある既知の脆弱性について、ノイズの少ない信頼性の高いツールを提供することを目的としています。概要については、Go の脆弱性管理アーキテクチャに関するこの概要と FAQ ページから始めてください。応用的なアプローチについては、以下のツールをご覧ください。
govulncheck でコードの脆弱性をスキャンする
開発者は govulncheck ツールを使用して、既知の脆弱性がコードに影響を与えているかどうかを判断し、実際に呼び出されている脆弱な関数やメソッドに基づいて次のステップの優先順位を付けることができます。
エディタから脆弱性を検出する
VS Code Go 拡張機能は、サードパーティの依存関係をチェックし、関連する脆弱性を表示します。
基盤となる Go モジュールを見つける
Pkg.go.dev は、Go パッケージとモジュールを発見、評価、詳細を学習するためのウェブサイトです。pkg.go.dev でパッケージを発見、評価する際に、そのバージョンに脆弱性がある場合、ページの上部にバナーが表示されます。さらに、バージョン履歴ページで、パッケージの各バージョンに影響を与える脆弱性を確認できます。
脆弱性データベースを閲覧する
Go 脆弱性データベースは、Go パッケージのメンテナーから直接データ収集を行うだけでなく、MITRE や GitHub などの外部ソースからもデータを収集します。レポートは Go セキュリティチームによって厳選されます。
Go プロジェクトのセキュリティバグを報告する
セキュリティポリシー
Go プロジェクトの脆弱性を報告する方法については、セキュリティポリシーを参照してください。このページでは、Go セキュリティチームによる問題の追跡と公開プロセスについても詳しく説明しています。過去のセキュリティ修正の詳細については、リリース履歴を参照してください。リリースポリシーに従い、Go の最新の 2 つのメジャーリリースに対してセキュリティ修正を発行しています。
ファジングで予期しない入力をテストする
Go のネイティブファジングは、プログラムへの入力を継続的に操作してバグを見つける自動テストの一種です。Go 1.18 から、Go は標準ツールチェーンでファジングをサポートしています。ネイティブ Go ファジングテストは、OSS-Fuzz によってサポートされています。
Go の暗号ライブラリでサービスを保護する
Go の暗号ライブラリは、開発者が安全なアプリケーションを構築するのに役立つことを目指しています。暗号パッケージおよびgolang.org/x/crypto/のドキュメントを参照してください。