SAST(エスエーエスティー)
Static Application Security Testing・静的コード解析。Semgrep OSS・Snyk Code・GitHub CodeQL・SonarQube 11・Checkmarx One・Veracode・Fortify Static Code Analyzer・Bearer・GitGuardianが2026年代表、CI/CD統合(GitHub Actions/GitLab CI)+OWASP Top 10検知+LLM補助分析で精度向上。
概要
SAST(Static Application Security Testing)は、ソースコードやバイナリを実行せずに解析し、脆弱性を検出する手法です。2026年においては、CI/CDパイプラインに組み込むことで、開発サイクルの早期段階で欠陥を発見し、修正コストを大幅に削減できます。代表的なツールとしては、Semgrep OSS、Snyk Code、GitHub CodeQL、SonarQube 11、Checkmarx One、Veracode、Fortify Static Code Analyzer、Bearer、GitGuardian などがあります。
主な特徴・仕組み
- ソースコードを静的に解析し、実行時に起こる可能性のある脆弱性を検出
- OWASP Top 10 の項目をカバーし、SQLインジェクション、クロスサイトスクリプティング、バッファオーバーフローなどを検知
- LLM(Large Language Model)を補助に利用し、コードの意図を推測して誤検知を低減
- GitHub Actions や GitLab CI との統合が容易で、プルリクエスト時に自動レポート生成
- 解析対象は C/C++、Java、Python、JavaScript、Go、Rust など多言語に対応
- 解析速度は 1,000 行あたり 0.5 秒程度(例:Semgrep OSS)
- 解析結果は JSON 形式で出力し、Jenkins や Azure DevOps へ直接取り込める
- 解析時に使用するメモリは 2GB 程度で、デスクトップ PC でも実行可能
- 解析結果は脆弱性の深刻度別に色分けされ、ダッシュボードで一目で把握
- 解析に必要なハードウェアは 4 コア 3.5GHz、32GB DDR5-6000、PCIe 5.0 x16 の構成で最大 10Gbps のネットワーク帯域を想定
スペック/製品比較表
| ツール | 主な言語 | 解析速度 (1,000行/秒) | CI/CD統合 | OWASP Top 10 対応 | LLM補助 | 価格帯 (年間) |
|---|---|---|---|---|---|---|
| Semgrep OSS | Python, JavaScript, Go | 2.0 | GitHub Actions | 9/10 | あり | 無料 |
| Snyk Code | Java, C#, Python | 1.5 | GitLab CI | 10/10 | あり | 1,200USD |
| GitHub CodeQL | C/C++, Java, JavaScript | 1.8 | GitHub Actions | 10/10 | なし | 1,500USD |
| SonarQube 11 | Java, C#, Kotlin | 1.2 | Jenkins, Azure DevOps | 8/10 | あり | 2,000USD |
| Checkmarx One | C/C++, Java, JavaScript | 1.0 | GitHub Actions | 10/10 | あり | 3,000USD |
| Veracode | C/C++, Java, .NET | 0.9 | GitLab CI | 9/10 | なし | 4,500USD |
| Fortify Static Code Analyzer | Java, C/C++, .NET | 0.8 | Jenkins | 10/10 | あり | 5,500USD |
| Bearer | Python, Go | 1.6 | GitHub Actions | 8/10 | なし | 1,000USD |
| GitGuardian | Python, JavaScript | 1.4 | GitLab CI | 7/10 | あり | 1,200USD |
具体例・対応製品
- RTX 5090 を搭載した開発マシンで、Snyk Code を実行すると 5.7GHz のクロックで 32GB DDR5-6000 を使用し、解析時間は 1,200 秒で完了。
- Ryzen 9 9950X3D の 16 コア 5.0GHz で SonarQube 11 を走らせると、1,000 行あたり 1.2 秒で解析。
- Core Ultra 9 285K をベースにしたノートPCでも、GitHub CodeQL を 3.5GHz で実行し、10Gbps のネットワーク帯域を活用して結果をクラウドへ送信。
- DDR5-6000 の高速メモリを備えたサーバーで、Fortify Static Code Analyzer を 10Gbps の PCIe 5.0 x16 接続で実行すると、解析速度が 30% 向上。
- GitGuardian は、GitHub Actions で 400W の電力を消費しつつ、1,000 行あたり 1.4 秒で脆弱性を検出。
自作PCでの選び方・注意点
- CPU: 4 コア以上、3.5GHz 以上のクロックが推奨。
- メモリ: 32GB DDR5-6000 以上で、解析中のメモリ不足を防止。
- ストレージ: NVMe SSD 1TB 以上、読み書き速度 3,500MB/s 以上。
- ネットワーク: 10Gbps 以上の有線 LAN で、クラウドレポートのアップロードを高速化。
- 電源: 400W 以上の高効率 PSU。
- OS: Linux (Ubuntu 24.04 LTS) が最も安定。
- ツール選択: 解析対象言語とプロジェクト規模に合わせて、無料版と有料版を組み合わせる。
- CI/CD: GitHub Actions のワークフローで
runs-on: ubuntu-latestを指定し、必要に応じてmatrixで複数バージョンを同時に走らせる。 - LLM補助: 2025年にリリースされた LLM モデルを API 経由で呼び出し、コードの意図を解析に反映。
- 脆弱性管理: 解析結果を JIRA へ自動連携し、修正タスクをチームで共有。
関連用語との違い
- DAST (Dynamic Application Security Testing) は実行時に脆弱性を検出する手法で、SAST は実行前にコードを解析。
- IAST (Interactive Application Security Testing) は実行時にコードと実行データを結びつけて検出。SAST は実行環境に依存しない。
- SCA (Software Composition Analysis) は外部ライブラリの脆弱性を検出。SAST は自前コードの脆弱性を対象。
- SAST は静的解析により、実行環境に依存しないため、開発初期段階での検出が可能。
よくある質問
Q1: SAST は実行時に脆弱性を検出できないのですか?
A1: いいえ、SAST はコードを実行せずに解析するため、実行時に起こる可能性のある脆弱性を早期に検出します。
Q2: どのくらいのコストで導入できますか?
A2: 無料版(Semgrep OSS)から始め、プロジェクト規模に応じて Snyk Code など有料版へ移行。年間 1,000USD から 5,500USD 程度。
Q3: 既存の CI/CD に組み込む際の注意点は?
A3: ワークフローに runs-on: ubuntu-latest を設定し、解析ツールのインストールスクリプトをキャッシュ化。解析時間を短縮するため、matrix で複数バージョンを同時に走らせると効果的。
まとめ
SAST は開発サイクルの早期段階で脆弱性を検出し、修正コストを削減するための不可欠な手段です。2026年の最新トレンドとして、LLM 補助や CI/CD 統合が進化し、解析精度と速度が大幅に向上しています。自作PC での導入は、CPU 3.5GHz 以上、32GB DDR5-6000、NVMe SSD 1TB 以上の構成が推奨されます。複数の SAST ツールを組み合わせ、プロジェクトの規模と言語に合わせて最適化することで、セキュリティレベルを高めつつ開発効率を維持できます。