DevSecOpsの武器庫:ゼロからヒーローへ
リアルに言えば、trivy imageを実行することはDevSecOpsではありません。ただのノイズ生成です。
真のセキュリティエンジニアリングは信号対ノイズ比に関するものです。それは、開発者が回避するのではなく、尊重するパイプラインを構築することです。このガイドでは、ビジネスを止めずに脆弱性を止めるための17の業界標準ツールの「プロダクショングレード」設定を提供します。
フェーズ1: プリコミット & ローカル (Shift Left or Go Home)
CIで問題をキャッチするのはすでに遅すぎます。コンピュートクレジットと開発者のコンテキストスイッチング時間を無駄にしました。彼らのラップトップでキャッチしましょう。
1. Gitleaks (秘密の守護者)
AWSキーをGitHubに漏らす会社にならないでください。
ほとんどの人はGitleaksを盲目的に実行します。プロはベースラインを使用します。
--baseline-path: ゴールデンチケット。新しいスキャンを実行し、出力を保存します。これでGitleaksは新しい秘密のみを警告します。--redact: 発見された秘密を出力ログでマスクします(パーセンテージ0-100)。二重漏洩を防ぎます。--enable-rule: IDによって特定の秘密タイプ(例: AWSキーのみ)に焦点を当てます。--follow-symlinks: シンボリックリンクの背後に秘密を隠させないでください。--ignore-gitleaks-allow: インラインの「スキップ」コメントの使用を禁止します。ルールを強制します。--max-target-megabytes: 大規模なバイナリブロブのスキャンを避けます。
2. Trufflehog (検証者)
キーのように見える文字列を見つけることは一つのことです。それが機能するかどうかを確認することは別のことです。
Trufflehogは、プロバイダーに対して資格情報を検証することで際立っています。
--no-verification: より高速なモード。静的解析のみを行いたい場合は「ライブチェック」をスキップします。--results: 出力をverified(本当の危険)またはunknownでフィルタリングします。--filter-entropy: 正規表現に一致しなくても、高エントロピーの文字列(パスワードの可能性が高い)を見つけます。3.0から始めます。--detector-timeout: CIのハングを防ぐために、検出器ごとの実行時間を制限します。--archive-max-depth: ネストされたzip爆弾に巻き込まれないようにします。
3. Opengrep (高速静的解析)
Grepは死んだ。構造検索万歳。
Semgrep互換エンジンは、コードパターンを使用してバグを見つけるためのもので、単なる文字列ではありません。
--baseline-commit: 重要。 特定のコミット以降に変更されたコードのみをスキャンします(デルタスキャン)。--config: YAML制限またはレジストリからカスタムルールをロードします。--dataflow-traces: データがソースからシンクに移動する完全な経路を表示します。--exclude-minified-files:.min.jsやその他の密集した、人間が読み取りにくいファイルをスキップします。--strict: 設定が無効である場合やWARNレベルのエラーが発生した場合にビルドを失敗させます。
4. Bandit (Pythonセキュリティ)
Python AST解析の標準。
-t/--tests: 特定のテストID(許可リスト)のみを実行します。-s/--skips: 特定のテストID(拒否リスト)をスキップします。--severity-level:low、medium、またはhigh以上の結果のみを表示します。--confidence-level: 「推測」をフィルタリングし、高信頼度の発見のみを表示します。--ignore-nosec: 開発者が# nosecを使用して回避しようとしているものを確認します。
5. Dustilock (依存関係の混乱)
攻撃者が悪意のあるプライベートパッケージを注入するのを防ぎます。
-a: 監査のみ。パイプラインを停止せずにパッケージ名のハイジャックに対して脆弱かどうかを確認します。
6. Hadolint (Docker インテリジェンス)
あなたの Dockerfile はひどいものです。Hadolint はその理由を知っています。
--trusted-registry: サプライチェーンセキュリティ。internal.ecr.awsからのイメージのみを許可します。--strict-labels: メタデータ標準を強制します(例:maintainer,cost-center)。--ignore: ビルドに適用されないルールを無視します。--error/--warning: ルールの重大度をポリシーに合わせて再マップします。--require-label: 特定のラベル形式を強制します(正規表現)。
7. TFLint (Terraform ロジック)
terraform validate は構文チェックです。TFLint はロジックチェックです。
--enable-plugin: プロバイダー固有のルール(例: AWS, Azure)をロードして API スペックに対してチェックします。--minimum-failure-severity: ビルドブレークの閾値を制御します(エラー、警告、通知)。--call-module-type:all,local,noneモジュールをスキャンします。--var-file: 条件付きロジックを正確に評価するために変数を注入します。
フェーズ 2: CI ゲートキーパー (信頼するが、検証する)
これは戦略室です。ビルドプロセス中の詳細な分析。
8. Trivy (ヘビーヒッター)
スイスアーミーナイフ。
--ignore-unfixed: 必須。 パッチがない場合、ビルドを失敗させずに監視します。--ignore-status: 特定のステータスを持つ脆弱性をフィルタリングします。--pkg-types:osパッケージまたはlibrary依存関係にスキャンを集中します。--offline-scan: エアギャップ環境で実行します。--include-dev-deps:devDependenciesを無視しない—ビルド環境を妥協させる可能性があります。--list-all-pkgs: すべてを出力します。完全なSBOMを生成するために不可欠です。
9. Syft (SBOMジェネレーター)
持っていることを知らないものは保護できません。
--enrich: より豊かな使用コンテキストのためにオンラインメタデータを追加します(Golang、Javaなど)。-s/--scope: すべてのレイヤー(all-layers)または最終イメージ(squashed)のみをスキャンします。--select-catalogers: 特定のパッケージマネージャー(npm、pip、apk)をターゲットにします。--platform: 特定のアーキテクチャ(例:arm64)をターゲットにします。
10. Grype (SBOMスキャナー)
Syftからバトンを受け取ります。
-f/--fail-on: 深刻度がmedium、high以上の場合、ビルドを中断します。--only-fixed: 対処可能な脆弱性のみを報告します。--by-cve: CVE IDごとに出力を整理して追跡します。--ignore-states: 一般的な「wontfix」または「not-affected」ステータスを無視します。
11. Checkov (IaCガバナンス)
クラウドの誤設定を防ぎ、コストを抑えます。
-s/--soft-fail: 警告を出すが、停止しない。「観察モード」に最適。--check/--skip-check: 特定のチェックをホワイトリストまたはブラックリストに登録する (CKV_AWS_1)。--skip-framework: フレームワーク全体を無視する (例: TerraformをスキャンするがCloudFormationはスキップ)。--enable-secret-scan-all-files: 標準の設定ファイルを超えて秘密のスキャンを拡張する。--block-list-secret-scan: 秘密スキャナーから特定のファイルを除外する。
12. KICS (Keeping IaC Secure)
広範なIaCカバレッジのための代替手段。
--exclude-queries: 特定のクエリIDをフィルタリングしてノイズを除去する。--exclude-categories: セキュリティドメインによって発見をフィルタリングする。--fail-on: 非ゼロの終了コードを返す重大度レベルを定義する。--minimal-ui: ログをきれいにするための簡素化されたCLI出力。--disable-secrets: 内部の秘密スキャンをオフにする (代わりにGitleaksを使用)。
13. Terrascan (Policy-as-Code)
マルチクラウドポリシーの強制に特化。
-i/--iac-type: プラットフォームを指定して最適化する (k8s, helm, terraform)。-t/--policy-type: プロバイダーによってポリシーをフィルタリングする (aws, azure, gcp)。--severity: 報告する最低重大度を定義する。--non-recursive: 現在のディレクトリのみをスキャンする。
14. OWASP Dependency-Check (Legacy & Compliance)
Javaと.NET SCAのための重役。
--failOnCVSS: 任意のライブラリがCVSSスコア(例:7.0)を超えた場合、ビルドを中断します。--suppression: 安全とされる既知の脆弱性を「ミュート」するためにXMLファイルを使用します(VEX-lite)。--enableExperimental: あまり一般的でない言語のために新しいアナライザーを使用します。
15. DevSkim (Polyglot Hygiene)
開発者中心のIDEおよびCIチェック。
--rule-ids: 特定のルールに分析を限定します。--ignore-globs: 標準的なグロブパターンを使用してノイズの多いファイルをスキップします。--skip-git-ignored-files:.gitignoreと自動的に同期します。--skip-excerpts: コードサンプルを削除してレポートを小さく保ちます。
Phase 3: Runtime & Artifacts (The Final Line)
最終アーティファクトまたはライブ環境をスキャンします。
16. Clamscan (Malware Defense)
S3バケットにウイルスをアップロードする人がいることもあるため。
--exclude/--exclude-dir: 時間を節約するためにファイル/ディレクトリパターンをスキップします。--detect-pua: 「潜在的に不要なアプリケーション」(アドウェア、マイナー)を探します。--detect-structured: クレジットカード/SSNなどの機密データパターンをスキャンします。--scan-pdf/--scan-html: ドキュメントタイプの深い検査を有効にします。--cross-fs: 異なるファイルシステム間でのスキャンを許可します(注意して使用してください)。
17. Nuclei (The Hacker’s Knife)
違法に感じるテンプレート化されたスキャン。
-t/--templates: 特定のテンプレートファイルまたはディレクトリを実行します。-tags: 技術に基づいてスキャンをターゲットにします(例:wordpress、cve)。-s/--severity: 影響レベルでテンプレートをフィルタリングします。-fr/--follow-redirects: HTTP 301/302 リダイレクトを追跡してペイロードを見つけます。-passive: 新しい「攻撃」を送信せずに既存のヘッダー/レスポンスを見てスキャンします。-etags fuzz: 本番環境でのファジングテンプレートを除外します。
要約: “完璧な” パイプライン
- ローカル:
pre-commitが Gitleaks(ベースライン)、Trufflehog(検証済み)、および Hadolint を実行します。 - ビルド: Trivy が依存関係をスキャンします(
--ignore-unfixed)。Syft が SBOM を生成します。Dependency-Check がコンプライアンスを確認します。 - テスト: Checkov と KICS が Terraform プランをスキャンします。Opengrep がコードパターンをチェックします。
- アーティファクト: Clamscan が最終バイナリ/アセットをチェックします。
- デプロイ: Nuclei がライブエンドポイントを正常性チェックします。
ツールを調整しなければ、ツールがあなたを調整してしまいます。
Plexicus がそれをより簡単にしました
統一されたダッシュボードとすべてのツール統合へのアクセスにより、数クリックで完了します Plexicus


