LabHub

ブログ

静的解析 / SAST 2026 — Semgrep / CodeQL / Snyk / SonarQube / Aikido / Trivy 徹底比較

한국어English日本語

プロローグ — 「セキュリティツール一本で全部守れる時代は終わった」

2018年頃に「静的解析ツール、何を使う?」と聞けば、答えはたいてい二択だった。オープンソースなら SonarQube、エンタープライズなら Checkmarx か Veracode。これでだいたい全部。CI に SAST を一個つないで、四半期ごとに人間が偽陽性を仕分けて、運用担当者は PDF レポートを受け取り、開発者はそれをほとんど見ない。

2026年5月の現在、その絵は粉々になった。ある会社のセキュリティパイプラインを描いてみると、だいたいこうなる。

この記事は2026年時点で上記のツールがそれぞれどこに立ち、何が得意で何が苦手なのか、そして「自分のチームは何を選ぶべきか」を整理する。単なるリストではなく、Pro engine、reachability、AI autofix、EU CRA — 2024〜2026の間にこの市場を揺さぶった4つの潮流を一緒に見る。


1章 · 2026年コードセキュリティツール地図 — SAST / DAST / SCA / Secrets / Container

まず全体像。コードセキュリティツールは通常、次の5軸に分類される。

カテゴリ何を見るか代表ツール
SAST (Static App Security Testing)ソースコードの脆弱パターン、dataflowSemgrep, CodeQL, Snyk Code, SonarQube, Checkmarx, Veracode
DAST (Dynamic App Security Testing)実行中アプリの HTTP / 表面脆弱性OWASP ZAP, Burp Suite, Invicti
SCA (Software Composition Analysis)OSS 依存の既知 CVESnyk Open Source, Endor Labs, Socket.dev, Trivy, Dependabot
Secretsコード / git 履歴の API キー、トークンGitGuardian, TruffleHog, Cycode, Gitleaks
Container / IaCコンテナイメージ、Terraform、K8s manifestTrivy, Snyk Container, Aikido, Checkov

ここに2024〜2026の間で新しく入り込んできたカテゴリが2つある。

そして2026年のトレンドは明確だ。「複数のツールを一つのプラットフォームが束ねる」。Snyk は Code + Open Source + Container + IaC を一括で売り、Aikido は最初からオールインワン、Semgrep も Pro エンジンの上に Supply Chain・Secrets を乗せた。単一ポイントツールから出発して ASPM のようなプラットフォームになるか、最初からプラットフォームとして入ってくるかの二択になりつつある。


2章 · Semgrep — オープンソース SAST のデファクト + Pro engine

Semgrep は2020年頃に登場した静的解析ツールで、「AST 上のパターンマッチング」というシンプルなモデルを使う。grep のように見えるがコードの構文木を読む。このシンプルさが武器となり、2026年にはオープンソース SAST のデファクト標準になった。

コアコンセプト

強み

弱み

選ぶタイミング

# Semgrep ルールの例 — Flask の SQL injection パターン
rules:
  - id: flask-sql-injection
    pattern: |
      $CURSOR.execute("..." + $VAR + "...")
    message: SQL injection via string concatenation
    severity: ERROR
    languages: [python]
    metadata:
      cwe: CWE-89
      owasp: A03:2021-Injection
# ローカル実行
semgrep --config=auto .

# CI で
semgrep ci --config=p/owasp-top-ten

Semgrep Pro engine は単一関数内のフローを越えて関数間 dataflow を見て、クラスメンバを通じた taint 追跡も行う。無料 CE との最大の違いは「ユーザー入力が5段階の関数呼び出しを経て sink に到達」するケースを掴むか掴まないかだ。


3章 · CodeQL — GitHub Advanced Security の中核

CodeQL は Semmle が作り、2019年に GitHub が買収した静的解析エンジンだ。コードをデータベースに変換してその上にクエリを書くという独特のモデルを使う。SQL を書くように「この条件を満たすコードパスを探せ」と問い合わせる。

コアコンセプト

強み

弱み

選ぶタイミング

// CodeQL の例 — Java SQL injection taint flow
import java
import semmle.code.java.dataflow.FlowSources
import semmle.code.java.dataflow.TaintTracking

module SqlInjectionConfig implements DataFlow::ConfigSig {
  predicate isSource(DataFlow::Node n) { n instanceof RemoteFlowSource }
  predicate isSink(DataFlow::Node n) {
    exists(MethodCall mc | mc.getMethod().hasName("executeQuery") |
      n.asExpr() = mc.getArgument(0))
  }
}

module SqlInjectionFlow = TaintTracking::Global<SqlInjectionConfig>;

from SqlInjectionFlow::PathNode source, SqlInjectionFlow::PathNode sink
where SqlInjectionFlow::flowPath(source, sink)
select sink, source, sink, "SQL injection from $@", source, "user input"

CodeQL の本当の価値は「一度書いたクエリが全 GitHub リポジトリに適用可能」という点だ。Log4Shell が起きたとき、GitHub は24時間以内にクエリを配布し、それが数十万のリポジトリに即時反映された。この規模感は他のツールが真似しづらい。


4章 · Snyk Code / Snyk Open Source — DeepCode 統合以後

Snyk はもともと SCA(依存スキャン)から始まった。2020年に DeepCode(チューリッヒ工科大スピンオフ、ML ベース SAST)を買収して SAST に拡大し、現在は Code + Open Source + Container + IaC を束ねた統合プラットフォームだ。

主要製品

強み

弱み

選ぶタイミング

# Snyk CLI の使用
snyk auth
snyk code test                  # SAST
snyk test                       # SCA (依存)
snyk container test alpine:3    # コンテナ
snyk iac test terraform/        # IaC

# CI 統合 (GitHub Actions)
- uses: snyk/actions/setup@master
- run: snyk test --severity-threshold=high

Snyk の大きな変化は2024年の DeepCode AI 統合加速。以前はパターンベースだった SAST が ML 学習 + LLM autofix に移った。実測で「偽陽性30〜40%減、autofix 採用率50%以上」という報告が出始めた。ただし ML ベースの弱みである「なぜこれが脆弱と判断したかの説明が弱い」という批判も同時に存在する。


5章 · SonarQube 11 — クラシックの進化

SonarQube は2008年からある静的解析のクラシック。元々はコード品質(重複、複雑度、テストカバレッジ)が中心だったが、2010年代後半からセキュリティルール (SonarSource Security) を強化して SAST 市場にも入った。

コアコンセプト

強み

弱み

選ぶタイミング

# SonarQube + Maven ビルド
sonar:
  image: sonarsource/sonar-scanner-cli
  command: >
    sonar-scanner
    -Dsonar.projectKey=my-app
    -Dsonar.host.url=$SONAR_HOST
    -Dsonar.login=$SONAR_TOKEN
    -Dsonar.qualitygate.wait=true

SonarQube 11(2024年リリース)のコアな変化は二つ。一つは Clean Code モデルの強化 — issue を単なる「重要度」ではなく attribute (Consistency, Intentionality, Adaptability, Responsibility) に分類する。もう一つは AI アシストコードルール — Copilot が生成したコードパターンを認識するルールセットが追加された。


6章 · Aikido Security — オールインワン新興

Aikido Security はベルギーのスタートアップで2023年創業、2024年にシリーズ A(1700万ドル)、2025年にシリーズ B(5000万ドル)を受け、急速に成長したオールインワン AppSec プラットフォームだ。

何が違うか

強み

弱み

選ぶタイミング

# Aikido CLI 統合
aikido scan --severity high

# GitHub App インストール後は
# - PR ごとに自動コメント
# - severity ベースのブロック
# - AI Autofix PR が自動生成

Aikido の本当の差別化点は「ノイズ管理」だ。普通の SAST ツールは大きな monorepo で数千の issue を吐き出し、セキュリティエンジニアが半分以上を偽陽性として close する。Aikido は ML で dedup + コンテキスト(どの環境、どのパス)で優先順位を付け、「今週本当に見るべき30個」だけを見せる。この UX の差が小規模チームで大きな価値になる。


7章 · Cycode / GitGuardian — secrets + supply chain

コードと git 履歴から漏洩したシークレット(API キー、トークン、証明書)を捕まえるカテゴリは2020年頃に GitGuardian が事実上作った。Cycode はそこに supply chain まで束ねてより広い ASPM に行った。

GitGuardian

Cycode

強み / 弱み比較

項目GitGuardianCycode
強みシークレット検出精度1位、無料 tier 寛大フルスタック ASPM、大規模組織可視性
弱みシークレット以外の領域は弱いシークレットだけ見れば GitGuardian より狭い
価格シークレットだけならコスパ最強enterprise 価格

選ぶタイミング

# GitGuardian ggshield pre-commit hook
repos:
  - repo: https://github.com/gitguardian/ggshield
    rev: v1.32.0
    hooks:
      - id: ggshield
        language_version: python3
        stages: [commit, push, manual]

シークレット検出の難しさは「正規表現だけでは不足」という点だ。AWS access key はパターンが明確だが、JWT トークンや Stripe restricted key のようなものは文脈(周辺の変数名、関数)と entropy を見なければならない。GitGuardian と Cycode はどちらも ML 分類器を追加して偽陽性を減らし、2025年頃から LLM ベースの「これが本物のシークレットか placeholder か判断」機能も入った。


8章 · Trivy (Aqua) — コンテナ + 依存 + IaC

Trivy は Aqua Security が作ったオープンソースのコンテナスキャナで、シンプルな CLI から出発して今や事実上の標準になった。コンテナイメージだけでなく、依存、IaC、K8s manifest、SBOM まで一つのバイナリで全部やる。

コア機能

強み

弱み

選ぶタイミング

# Trivy の使用例
trivy image alpine:3.20
trivy fs ./src
trivy repo https://github.com/user/repo
trivy config terraform/
trivy k8s --report summary cluster

# SBOM 生成
trivy image --format cyclonedx -o sbom.json alpine:3.20

Trivy の大きな強みは「一つのツールで5つを全部やる」点だ。小規模チームなら Trivy + Semgrep CE + GitGuardian 無料 tier の組み合わせだけで SAST + SCA + Container + IaC + Secrets をすべてカバーできる。OSS フレンドリーなチームのスタート地点としてほぼ常に登場する。


9章 · Checkmarx / Veracode — エンタープライズ陣営

Checkmarx(イスラエル、2006)、Veracode(米国、2006)は SAST 市場のクラシック両強だ。両方とも大企業 / 金融 / 政府を主顧客にした enterprise SAST プラットフォームだ。

Checkmarx

Veracode

強み

弱み

選ぶタイミング

# Checkmarx One CLI
cx scan create --project-name "my-app" \
  --branch main \
  --scan-types sast,sca,iac-security \
  -s ./source

# Veracode CLI
veracode static scan \
  --source-file my-app.jar \
  --app-name my-app

エンタープライズ陣営の変化はモダンツールの追撃。Snyk、Semgrep Pro、GHAS が enterprise 市場を侵食すると Checkmarx・Veracode も UX 改善と AI autofix(Checkmarx AI Security Champion など)導入を加速した。価格帯が同じならモダンツールが次第に有利な流れだ。


10章 · OWASP ZAP, Bearer, Endor Labs, Socket.dev — その他の強者

上の8章で扱いきれなかったが、2026年に外せないツールたち。

OWASP ZAP

Bearer

Endor Labs

Socket.dev

比較マトリックス

ツールカテゴリ強み弱み
ZAPDASTOSS、大きなコミュニティUI クラシック、偽陽性多い
BearerPrivacy SASTPII フロー追跡1位一般 SAST は弱い
Endor LabsSCA + Reachability優先順位決定に強い価格 enterprise
Socket.devnpm サプライチェーンリアルタイム supply chain シグナルnpm 外は弱い

11章 · SBOM (SPDX / CycloneDX) — 標準の成熟

SBOM(Software Bill of Materials)は「このソフトウェアがどんなコンポーネントで作られたか」のリストだ。2021年の米国大統領令14028以後事実上義務化の流れが始まり、2024年の EU CRA で EU 市場でも強制化方向に固まった。

二つの標準

2026年現在、両方とも生き残り、ツールは通常両方の形式に対応する。CycloneDX がセキュリティツール (Trivy、Snyk、Anchore、Syft) 側で若干優勢な印象。

何を含むか

フィールド意味
Componentパッケージ名、バージョン、種類 (library, OS, container, ...)
Supplier誰が作ったか
Hash完全性検証用
Licenseライセンス (SPDX ID)
Relationshipdepends-on, contains のようなグラフ
Vulnerabilities(オプション) 既知 CVE リスト、VEX

生成ツール

# Syft でコンテナから SBOM 生成
syft alpine:3.20 -o cyclonedx-json > sbom.json
syft alpine:3.20 -o spdx-json > sbom.spdx.json

# Trivy で同様に
trivy image --format cyclonedx -o sbom.json alpine:3.20

# GitHub の SBOM API
gh api /repos/OWNER/REPO/dependency-graph/sbom > sbom.json

VEX (Vulnerability Exploitability eXchange)

SBOM とペアを成す標準。「このコンポーネントのこの CVE は私たちの製品で影響なし」のような vendor 応答を標準化する。2025年からツールが VEX 入力を受け取り始め、reachability analysis と結合して「本当に risky な CVE のみ」優先順位を付ける流れの中核インフラになった。


12章 · Reachability analysis — Endor, Snyk

「依存に CVE が100個ある」というレポートを受けたことがあれば、そのうち何個が本当に自分のアプリで呼ばれているか数えたこともあるだろう。Reachability analysis はこの問題を自動化する。

Reachability とは

業界の測定によると、第1段階で掴まれた CVE の70〜95%は第3〜4段階に行くと unreachable だ。つまりほとんどはパッチ不要か、優先度が低い。

主要プロバイダ

ツール深さ言語カバー備考
Endor Labs第4段階 (call-graph)Java、JS/TS、Python、Go、Rust などreachability 専門
Snyk Open Source第3段階 (symbol)Java、JS/TS、PythonUX が滑らか
Semgrep Supply Chain第3段階Java、JS/TS、Python、Ruby、GoSemgrep エンジン活用
Socket.dev第1段階 + 行動解析npm 特化別次元

効果

ある実測事例 — 大きなモノレポ (JS/TS、300K LOC、依存1500個) 基準。

この効果のため2024年以降 SCA ツールを選ぶ際 reachability は事実上必須機能になった。


13章 · LLM-powered SAST + Autofix

2023〜2026の間で最大の流れ。LLM が SAST の二つを変えた。

1. ルール作成 / dataflow

伝統的に SAST ルールは正規表現または dataflow グラフ上の明示的ルールだった。LLM は自然言語説明 → コードパターンをある程度一般化する。結果として「見たことのない新しい脆弱パターン」も捕まえる可能性。

2. Autofix

発見された脆弱点に対して LLM がパッチ PR を自動生成する。

実測の落とし穴

LLM autofix が自動 PR を作っても常に正しいとは限らない。

2026年のベストプラクティスは「LLM autofix は PR ドラフト + 人間レビュー必須、依存アップグレードのような単純ケースのみ自動マージ許可」だ。コードパッチはまだ人間が確認するべき。

# Autofix がよく間違えるパターンの例
# Before — SQL injection
query = f"SELECT * FROM users WHERE name = '{name}'"
cursor.execute(query)

# LLM autofix v1 (誤り) — escape のみ追加
query = f"SELECT * FROM users WHERE name = '{name.replace(chr(39), chr(39)+chr(39))}'"
cursor.execute(query)

# LLM autofix v2 (正解) — parameterized
cursor.execute("SELECT * FROM users WHERE name = ?", (name,))

14章 · EU CRA (2024) — ソフトウェア規制の始まり

EU Cyber Resilience Act は2024年10月に EU 議会通過、2024年11月に発効した規制だ。EU 市場に出される「デジタル要素を持つ製品」(ここにソフトウェア含む)にセキュリティ要件を強制する。

何を要求するか

スケジュール

韓国・日本の会社が影響を受ける場合

ツールへの影響

EU CRA は SBOM、脆弱点管理プロセス、24時間報告をすべて要求するため、ツール選択で次が重要になった。

  1. SBOM 生成 + 保存 + 外部公開機能。
  2. 24時間以内に発見 → 分類 → パッチ → 報告につながるワークフロー。
  3. 監査ログ — 誰がどんな決定をしたか5年間記録。

Cycode、Aikido、Snyk のような ASPM プラットフォームが EU CRA 対応機能を素早く追加し、GHAS も Security Advisory ワークフローを強化した。2026年に EU 市場進出を考慮する韓国・日本のチームなら SAST ツール選択時に CRA 対応機能を必ず確認すべきだ。


15章 · 韓国 / 日本の SAST 導入状況

韓国

韓国は情報通信網法、個人情報保護法、ISMS-P 認証によりセキュリティ点検が事実上義務的な市場だ。伝統的に次のツールが強かった。

2020年代中盤からモダンツールが侵食を始めた。

日本

日本の SAST 市場は保守的だが、2020年代に入りグローバルツールが急速に浸透中。

日本市場の特徴。

  1. セルフホスティング選好 — SonarQube on-prem が強い。
  2. コンサル + ツール結合モデルが一般的 — 単独 SaaS 導入は慎重。
  3. 政府・防衛は日本国内企業(FFRI など)優先。

結論 — 地域別推奨

シナリオ韓国推奨日本推奨
スタートアップ (10〜50人)Semgrep + Trivy + GitGuardianAikido または Snyk
中堅 (50〜500人)Snyk または GHAS + AikidoSnyk + Cycode
大企業 (500+)Checkmarx + Cycode + 自社Veracode + FFRI コンサル
金融分野Sparrow + Fortify + CheckmarxCheckmarx + GMO + セルフホスト SonarQube
EU 進出検討Cycode または Aikido (SBOM + CRA)Snyk または Aikido (SBOM + CRA)

おわりに — 「ツールを買うのではなく、ワークフローを買う」

2026年の SAST 市場は単一カテゴリではなく5軸のトーナメントだ。そして次の5つの流れが市場を揺さぶっている。

  1. オールインワンプラットフォーム統合 — Snyk、Aikido、Cycode が SAST/SCA/Secrets/Container を一括で。
  2. Reachability — 「この CVE 本当に危険か」を自動判断。
  3. LLM autofix — 発見からパッチ PR まで自動化。
  4. EU CRA — SBOM + 24時間報告 + 5年パッチ義務化。
  5. 開発者ファースト UX — IDE 統合、PR 即時フィードバック、偽陽性自動 dedup。

小規模チームの出発点はシンプルだ — Semgrep CE + Trivy + GitGuardian 無料 tier。ここから出発しチームが大きくなれば一つの ASPM (Aikido、Cycode、Snyk) に束ねるか、GitHub Enterprise を使うなら GHAS で統合すればいい。大組織は enterprise ツール (Checkmarx、Veracode) と ASPM (Cycode) の組み合わせが標準。

一つの真理 — 「ツールを買うのではなく、ワークフロー(発見 → 分類 → パッチ → 報告)を買う」。どのツールを選んでもこのワークフローが5分以内に動かなければ、1万個の issue がバックログに積まれるだけだ。ツール評価の最初の質問はいつも「PR が SAST で赤線を受けたら、1時間以内にマージ可能な状態に行けるか?」だ。


参考 / References

コメント

まだコメントはありません。

ログインするとコメントできます