sast-configuration について
開発・セキュリティチーム向けの SAST 設定スキルです。Semgrep、SonarQube、CodeQL の導入やカスタムルール作成、スキャン調整を支援します。
主な機能
- 01Semgrep、SonarQube、CodeQL の設定
- 02カスタムセキュリティルールの作成
- 03CI/CD とコミット前チェックの統合
- 04品質ゲートとコンプライアンスポリシーの管理
- 05誤検知とスキャン性能の調整
活用シーン
- 01新規プロジェクトでの SAST 導入
- 02CI/CD パイプラインへのスキャン追加
- 03組織固有のセキュリティルール開発
- 04PCI-DSS に沿ったスキャン
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ wshobson/ agents --skill sast-configurationインストール後、Claude Code で/sast-configurationを入力して読み込まれたか確認します。
詳細
SAST 設定
静的アプリケーションセキュリティテスト(SAST)ツールのセットアップ、設定、および複数のプログラミング言語にわたる包括的なセキュリティスキャンのためのカスタムルール作成。
概要
このスキルは、Semgrep、SonarQube、CodeQL などの SAST ツールをセットアップおよび設定するための包括的なガイダンスを提供します。次のような場合にこのスキルを使用してください:
- CI/CD パイプラインで SAST スキャンをセットアップする
- コードベース用のカスタムセキュリティルールを作成する
- 品質ゲートとコンプライアンスポリシーを設定する
- スキャンパフォーマンスを最適化し、誤検出を削減する
- 多層防御のために複数の 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 9000:9000 sonarqube:10.8-community
# CodeQL CLI setup
gh extension install github/gh-codeql
codeql database create mydb --language=python
統合パターン
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
コンプライアンススキャン
# PCI-DSS focused scan
semgrep --config p/pci-dss --json -o pci-scan-results.json
トラブルシューティング
誤検出率が高い
- ルールの感度をレビューして調整する
- テストファイルを除外するパスフィルターを追加する
- ノイズの多いパターンには nostmt メタデータを使用する
- 組織固有のルール例外を作成する
パフォーマンスの問題
- 増分スキャンを有効にする
- モジュール間でスキャンを並列化する
- 効率のためにルールパターンを最適化する
- 依存関係とスキャン結果をキャッシュする
統合の失敗
- API トークンと認証情報を確認する
- ネットワーク接続とプロキシ設定を確認する
- SARIF 出力形式の互換性をレビューする
- CI/CD ランナーの権限を検証する
関連スキル
ツールの比較
| ツール | 最適な用途 | 言語サポート | コスト | 統合 |
|---|---|---|---|---|
| Semgrep | カスタムルール、高速スキャン | 30 以上の言語 | 無料/エンタープライズ | 優れている |
| SonarQube | コード品質 + セキュリティ | 25 以上の言語 | 無料/商用 | 良好 |
| CodeQL | 深い分析、リサーチ | 10 以上の言語 | 無料(OSS) | GitHub ネイティブ |
次のステップ
- 初期 SAST ツールのセットアップを完了する
- ベースラインのセキュリティスキャンを実行する
- 組織固有のパターン向けにカスタムルールを作成する
- CI/CD パイプラインに統合する
- セキュリティゲートポリシーを策定する
- 検出結果と修復方法について開発チームをトレーニングする
コメント
Markdown 対応