Semgrepのフォークとして、semantic grepルールでセキュリティ上の問題やコードパターンを検出するオープンソースの静的解析エンジン。
securego/gosec
Goのソースコードをスキャンし、よくあるセキュリティ脆弱性や安全でないコーディングパターンを検出する静的解析ツール。
- スター
- 9,000
- フォーク
- 731
- 未解決の Issue
- 5
- 最終コミット
- 4 日前
これは何?
gosecはコードのASTおよびSSA表現をたどり、Goのソースコードに潜むセキュリティ上の問題を検査します。ハードコードされた認証情報、安全でないAPIの使用、脆弱な暗号方式やTLS設定、ファイルの権限とパスの処理、禁止対象のimportを検出するルール群を備えており、各ルールはCWE識別子に対応しています。
taint解析ルールは、ユーザー入力から機密性の高いシンクへのデータフローを追跡します。SQL、コマンド、テンプレート、SMTPの各インジェクションに加え、SSRF、パストラバーサル、XSS、オープンリダイレクト、安全でないデシリアライズも検出対象です。検出結果は、#nosecまたは//gosec:disableコメントでインライン抑制できるほか、ルール、パス、深刻度、信頼度で絞り込めます。
結果はテキスト、JSON、YAML、CSV、JUnit XML、HTML、SonarQube、golint、SARIF形式で出力できます。また、GitHub Actionとして実行したり、go installでインストールしたりできます。
主な機能
- 01ハードコードされた認証情報や脆弱な暗号方式など、よくあるGoのセキュリティ問題を検出するパターンベースのルール
- 02ユーザー入力からSQL、コマンド、パス、SSRF、XSSの各シンクへのデータフローを追跡するtaint解析
- 03#nosecまたは//gosec:disableによるインライン抑制と、任意で指定できる抑制理由の要件
- 04パスに基づくルールの除外と、深刻度および信頼度によるフィルター
- 05GitHub code scanning向けのSARIFを含む複数のレポート形式
ユースケース
- GitHub Actionを使い、CIパイプラインでGoコードのセキュリティチェックを実行する
- SARIFの結果をGitHub code scanningにアップロードし、プルリクエストのレビューに活用する
- リリース前にGoのコードベースを監査し、インジェクション、脆弱な暗号方式、安全でないTLS設定を確認する
クイックスタート
- 1
go install を使って gosec をインストールします(Go 1.25 以降が必要です)
go install github.com/securego/gosec/v2/cmd/gosec@latest - 2
現在のモジュール内のすべてのパッケージをスキャンします
gosec ./...
使う前に知っておきたいこと
- インストールとビルドには Go 1.25 以降が必要です。
収録されている特集
トピック
よくある質問
- gosec とは?
- Goのソースコードをスキャンし、よくあるセキュリティ脆弱性や安全でないコーディングパターンを検出する静的解析ツール。 gosecはコードのASTおよびSSA表現をたどり、Goのソースコードに潜むセキュリティ上の問題を検査します。ハードコードされた認証情報、安全でないAPIの使用、脆弱な暗号方式やTLS設定、ファイルの権限とパスの処理、禁止対象のimportを検出するルール群を備えており、各ルールはCWE識別子に対応しています。
- gosec は無料で使えますか?ライセンスは?
- gosec は Apache-2.0 ライセンスのオープンソースです。商用製品で使う前にライセンス条件を確認してください。
- gosec は今もメンテナンスされていますか?
- 活発にメンテナンス中。gosec の最終コミットは 2026年11月3日 です。
- gosec は何に使えますか?
- GitHub Actionを使い、CIパイプラインでGoコードのセキュリティチェックを実行する SARIFの結果をGitHub code scanningにアップロードし、プルリクエストのレビューに活用する リリース前にGoのコードベースを監査し、インジェクション、脆弱な暗号方式、安全でないTLS設定を確認する
- gosec のインストール方法は?
- go install を使って gosec をインストールします(Go 1.25 以降が必要です): go install github.com/securego/gosec/v2/cmd/gosec@latest 現在のモジュール内のすべてのパッケージをスキャンします: gosec ./...
- gosec はどこで入手できますか?
- ソースコードとインストール手順は GitHub にあります:https://github.com/securego/gosec
概要はプロジェクトの README をもとに AI が生成しています。GitHub の数値は毎日更新されます。
関連プロジェクト
Rust製のシークレットスキャナー。漏えいした認証情報を検出し、有効性やアクセス範囲を調べ、失効にも対応します。
LLMアプリ、MCPサーバー、チャットやシェル履歴に漏えいしたシークレット向けのルールを備えた、AIファーストのセキュリティスキャナー。
GitHub Actions、Dependabot、pre-commitなどのCI/CD設定に潜むセキュリティ問題を検出し、修正案を提示する静的解析ツールです。
正規表現やASTではなくコードに似たパターンでバグの発見やコーディング規約の徹底を支援する、高速なオープンソース静的解析CLI。
Claude Code、Codex、Cursor、Cline向けに、push前に別のレビュアーでエージェントの変更を確認するオープンソースのAIコードレビュー。