sast-configuration について
Semgrep、SonarQube、CodeQLで静的アプリケーションセキュリティテストを設定するチーム向けのガイドです。カスタムルール、CI/CD連携、スキャン調整、ポリシーゲートを扱います。
主な機能
- 01Semgrep、SonarQube、CodeQLの設定
- 02カスタムセキュリティルールの作成
- 03スキャンのCI/CDへの組み込み
- 04誤検知とスキャン性能の調整
- 05品質ゲートとコンプライアンスポリシーの設定
活用シーン
- 01CI/CDパイプラインへのSASTスキャン追加
- 02コードベース固有のセキュリティルール作成
- 03コンプライアンスに沿ったスキャンポリシー設定
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill sast-configurationインストール後、Claude Code で/sast-configurationを入力して読み込まれたか確認します。
詳細
SAST の設定
複数のプログラミング言語を対象に、包括的なセキュリティスキャンを実施するための静的アプリケーションセキュリティテスト(SAST)ツールのセットアップ、設定、カスタムルールの作成について説明します。
このスキルを使用する場面
- CI/CD パイプラインに SAST スキャンをセットアップする
- コードベース向けのカスタムセキュリティルールを作成する
- 品質ゲートとコンプライアンスポリシーを設定する
- スキャンのパフォーマンスを最適化し、誤検知を減らす
- 多層防御のために複数の SAST ツールを統合する
このスキルを使用しない場面
- DAST または手動のペネトレーションテストに関するガイダンスだけが必要な場合
- ソースコードまたは CI/CD パイプラインにアクセスできない場合
- ツールのセットアップではなく、組織のポリシーに関する判断が必要な場合
手順
- 言語、リポジトリ、コンプライアンス要件を特定します。
- ツールを選定し、ベースラインポリシーを定義します。
- しきい値によるゲート設定を行い、スキャンを CI/CD に統合します。
- 誤検知に基づいてルールと抑制設定を調整します。
- 修正状況を追跡し、修正を検証します。
安全性
- 承認を得ずに、機密性の高いリポジトリをサードパーティサービスでスキャンしないでください。
- スキャン成果物やログからシークレットが漏えいしないようにしてください。
概要
このスキルでは、Semgrep、SonarQube、CodeQL などの SAST ツールのセットアップと設定について、包括的なガイダンスを提供します。
主な機能
1. Semgrep の設定
- パターンマッチングによるカスタムルールの作成
- 言語固有のセキュリティルール(Python、JavaScript、Go、Java など)
- CI/CD との統合(GitHub Actions、GitLab CI、Jenkins)
- 誤検知の調整とルールの最適化
- 組織のポリシーの適用
2. SonarQube のセットアップ
- 品質ゲートの設定
- セキュリティホットスポットの分析
- コードカバレッジと技術的負債の追跡
- 言語向けのカスタム品質プロファイル
- LDAP/SAML によるエンタープライズ統合
3. CodeQL の分析
- GitHub Advanced Security との統合
- カスタムクエリの開発
- 脆弱性バリアントの分析
- セキュリティ研究のワークフロー
- SARIF 結果の処理
クイックスタート
初期評価
- コードベースで主に使用されているプログラミング言語を特定します
- コンプライアンス要件を確認します(PCI-DSS、SOC 2 など)
- 言語のサポート状況と統合のニーズに基づいて SAST ツールを選択します
- ベースラインスキャンを確認し、現在のセキュリティ状況を把握します
基本的なセットアップ
# Semgrep quick start
pip install semgrep
semgrep --config=auto --error
# SonarQube with Docker
docker run -d --name sonarqube -p 127.0.0.1:9000:9000 sonarqube:REPLACE_WITH_REVIEWED_VERSION
# CodeQL CLI setup
gh extension install github/gh-codeql
codeql database create mydb --language=python
リファレンスドキュメント
- Semgrep ルールの作成 - パターンベースのセキュリティルールの開発
- SonarQube の設定 - 品質ゲートとプロファイル
- CodeQL セットアップガイド - クエリの開発とワークフロー
テンプレートとアセット
以下のテンプレート、スクリプト、参照先の Semgrep ルールは、このツリーには含まれていません。依存するコマンドを使用する前に、実際の上流素材を入手して確認してください。このカタログに基づいて実行したと主張しないでください。以下に記載されている過去のアクション参照とツールバージョンには、保守されている不変の代替品が必要です。
- semgrep-config.yml - 本番環境向け Semgrep 設定
- sonarqube-settings.xml - SonarQube 品質プロファイルのテンプレート
- run-sast.sh - SAST 自動実行スクリプト
統合パターン
CI/CD パイプラインとの統合
# GitHub Actions example
- name: Run Semgrep
uses: returntocorp/semgrep-action@v1
with:
config: >-
p/security-audit
p/owasp-top-ten
コミット前フック
# .pre-commit-config.yaml
- repo: https://github.com/returntocorp/semgrep
rev: v1.45.0
hooks:
- id: semgrep
args: ['--config=auto', '--error']
ベストプラクティス
-
ベースラインから始める
- 初回スキャンを実行し、セキュリティのベースラインを確立します
- 重大および高深刻度の検出結果を優先します
- 修正のロードマップを作成します
-
段階的な導入
- セキュリティ重視のルールから始めます
- コード品質ルールを段階的に追加します
- 重大な問題に限り、ビルドをブロックするようにします
-
誤検知の管理
- 正当な抑制設定を文書化します
- 既知の安全なパターンに対する許可リストを作成します
- 抑制された検出結果を定期的に確認します
-
パフォーマンスの最適化
- テストファイルと生成コードを除外します
- 大規模なコードベースでは増分スキャンを使用します
- CI/CD でスキャン結果をキャッシュします
-
チームの支援
- 開発者向けにセキュリティトレーニングを提供します
- 一般的なパターンに関する内部ドキュメントを作成します
- セキュリティチャンピオンプログラムを設けます
一般的なユースケース
新規プロジェクトのセットアップ
./scripts/run-sast.sh --setup --language python --tools semgrep,sonarqube
カスタムルールの開発
# See references/semgrep-rules.md for detailed examples
rules:
- id: hardcoded-jwt-secret
pattern: jwt.encode($DATA, "...", ...)
message: JWT secret should not be hardcoded
severity: ERROR
languages: [python]
コンプライアンススキャン
# PCI-DSS focused scan
semgrep --config p/pci-dss --json -o pci-scan-results.json
トラブルシューティング
誤検知率が高い場合
- ルールの感度を見直して調整します
- パステキストを追加して、テストファイルを除外します
- 証拠に基づく誤検知に限り、文書化されたルール/パスの除外のみを使用し、理由と有効期限を記録します
- 組織固有のルール例外を作成します
パフォーマンスの問題
- 増分スキャンを有効にします
- モジュール間でスキャンを並列化します
- 効率性を高めるためにルールパターンを最適化します
- 依存関係とスキャン結果をキャッシュします
統合の失敗
- API トークンと認証情報を確認します
- ネットワーク接続とプロキシ設定を確認します
- SARIF 出力形式との互換性を確認します
- CI/CD ランナーの権限を検証します
関連スキル
- OWASP Top 10 チェックリスト
- コンテナーセキュリティ
- 依存関係のスキャン
ツールの比較
| ツール | 最適な用途 | 言語のサポート | コスト | 統合 |
|---|---|---|---|---|
| Semgrep | カスタムルール、高速スキャン | 30 以上の言語 | 無料/Enterprise | 優秀 |
| SonarQube | コード品質とセキュリティ | 25 以上の言語 | 無料/商用 | 良好 |
| CodeQL | 詳細な分析、研究 | 10 以上の言語 | 無料(OSS) | GitHub ネイティブ |
次のステップ
- SAST ツールの初期セットアップを完了します
- ベースラインのセキュリティスキャンを実行します
- 組織固有のパターンに対応するカスタムルールを作成します
- CI/CD パイプラインに統合します
- セキュリティゲートのポリシーを確立します
- 調査結果と修正方法について開発チームをトレーニングします
制限事項
- 上記で説明した範囲にタスクが明確に一致する場合にのみ、このスキルを使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中止して確認を求めてください。
コメント
Markdown 対応