静的アプリケーションセキュリティテスト(SAST)は、DevSecOpsワークフローにおける代表的なセキュリティテスト手法です。ソースコードや設定ファイルを実行前に解析し、開発工程の早い段階で脆弱性を検出できます。
SASTツールはコードベースのセキュリティ向上に役立ちますが、対応言語やワークフローとの相性には違いがあります。オープンソースツールを活用することで、自社環境に適した構成を評価しやすくなります。併せて、セキュアコーディングのベストプラクティスも確認しておくとよいでしょう。
本記事では、SASTを活用したコードセキュリティ対策の考え方を整理し、主要なオープンソースSASTツールの特徴(言語サポート、統合機能、レポート機能など)を紹介します。
SASTとは
静的アプリケーションセキュリティテスト(SAST)は、ソースコードや設定ファイルを実行前に解析し、セキュリティ上の問題を検出するテスト手法です。SASTツールはIDEやCI/CDパイプラインへ組み込みやすく、開発工程の早い段階で脆弱性を検出できます。コードの文脈を把握している段階で対応しやすい点も特徴です。
SASTでは、コードの実行やコンパイルを行わずに解析できるツールも多く、IDE上で開発中のコードをそのままスキャンできる場合があります。実行前に脆弱性を検出できるため、開発初期からセキュリティ対策を進めやすくなります。
重要なのは、「問題の発見が遅れるほど、修正コストが高くなりやすい」という点です。SASTは、脆弱性を早期に把握するための有効な手段として広く利用されています。
Catch code risks before you deploy
Learn how Wiz Code scans IaC, containers, and pipelines to stop misconfigurations and vulnerabilities before they hit your cloud.

SASTとDASTの違い
SASTとDASTは、どちらもアプリケーションの脆弱性を検出するための手法ですが、検査対象や実施タイミングが異なります。
動的アプリケーションセキュリティテスト(DAST)は、実行中のアプリケーションに対して疑似的な攻撃リクエストを送信し、挙動を検査します。一方、SASTはソースコードを解析するため、一般的には開発工程の早い段階で実施できます。
また、DASTはブラックボックステストとして実施されることが多く、アプリケーションの内部構造を前提としません。そのため、特定のプログラミング言語への依存が比較的小さい点も特徴です。
一方、SASTはソースコードを直接解析するため、利用する言語やフレームワークへの対応状況が重要になります。ツールによっては、対応言語が限定される場合もあります。
SASTツールの主要機能とは
SASTツールを選定する際は、検出精度だけでなく、開発ワークフローとの統合性や運用負荷も重要です。以下では、SASTツールを評価する際に確認しておきたい主な機能を紹介します。
言語・フレームワークのサポート
言語互換性は、SASTツール選定時の重要なポイントです。ツールが対象のプログラミング言語やフレームワークを解析できなければ、脆弱性を適切に検出できません。
特に、ニッチな言語や新しい言語は対応が限定される場合があります。一方、Java、C#、JavaScript、Pythonなどの主要言語には、多くの選択肢があります。
IDEおよびCI/CDパイプラインとの統合機能
SASTツールは、既存の開発ワークフローへ組み込みやすいことも重要です。多くのツールは、Visual Studio、VS Code、JetBrains製IDEなどの主要な開発環境に対応しています。
また、CLIを提供しているツールであれば、CI/CDパイプラインとの統合も比較的容易です。ただし、独自性の高い開発環境では、互換性の確認が必要になる場合があります。
精度と効率
SASTツールの検出精度や処理効率は、脆弱性データベースの品質や解析性能に左右されます。
脆弱性データベースのカバレッジが不十分な場合、既知の問題を検出できない可能性があります。また、解析処理に時間がかかるツールは、CI/CDパイプラインや開発効率へ影響を与えることがあります。
カスタマイズ性
長期間運用されているプロジェクトでは、独自ルールや既存ワークフローへの対応が求められることがあります。そのため、SASTツールが必要な設定変更やカスタマイズに対応できるかを確認しておくことが重要です。
レポートと分析
レポート機能は、脆弱性の傾向や改善状況を把握するうえで重要です。検出結果を継続的に追跡できるツールであれば、セキュリティ対策の効果を評価しやすくなります。
コンプライアンス対応
多くの企業では、業界標準や法規制への対応が求められます。SASTツールは、セキュア開発プロセスの維持や、コンプライアンス違反につながる可能性のある問題の検出を支援します。
スケーラビリティ
コードベースが拡大すると、解析対象も増加します。大規模なコードベースを扱う場合は、スキャン時間やパフォーマンスへの影響も考慮する必要があります。
オープン標準のサポート
オープン標準に対応したツールは、将来的な移行や他ツールとの連携を行いやすい点がメリットです。特定ベンダーへの依存を避けやすく、柔軟な運用につながります。
Get the Application Security Best Practices [Cheat Sheet]
This 6-page guide goes beyond basics — it’s a deep dive into advanced, practical AppSec strategies for developers, security engineers, and DevOps teams.

オープンソースSASTツールの代表例
オープンソースのSASTツールは、ライセンス費用を抑えながらコードセキュリティを強化できる選択肢として広く利用されています。
ここでは、代表的なオープンソースSASTツール9選を紹介します。
1. Mobile Security Framework
MobSFは、iOSおよびAndroid向けアプリケーションの解析に広く利用されているオープンソースツールです。モバイルプラットフォームに特化しており、Java、Kotlin、Objective-C、Swiftなどに対応しています。APK、IPA、APPXなどのバイナリやパッケージの解析にも対応しています。
また、MobSFにはDAST機能も含まれており、モバイルアプリケーションのセキュリティ評価ツールとして利用されています。
一方で、IDE連携には対応していません。
2. GolangCI-Lint
GolangCI-Lintは、複数のlinterを統合したGo向けのツールです。コード品質の問題や一部のセキュリティリスクを検出でき、GoツールチェーンやCI/CDパイプラインとの統合にも対応しています。設定項目も豊富で、大規模なコードベースでも利用しやすい点が特徴です。
より専門的なセキュリティチェックを行う場合は、gosecとの併用がよく利用されます。gosecでは、インジェクションリスク、脆弱な暗号利用、ハードコードされたシークレットなど、Goコードにおける代表的な脆弱性を検出できます。
両者を組み合わせることで、コード品質の確認とセキュリティ検査を補完的に実施できます。
3. PHPStan
PHPStanは、広く利用されているオープンソースのPHPコード解析ツールです。CLIツールとしてCI/CDパイプラインへ組み込みやすく、GitHub Actionsとの連携にも対応しています。
ルールの厳格度を段階的に設定できるため、既存コードベースへ段階的に導入しやすい点が特徴です。
また、PHPStan自体はPHP 7で動作しますが、古いPHPバージョン向けに書かれたコードの解析にも対応しています。
4. Semgrep
Semgrepは、複数のプログラミング言語やフレームワークに対応したオープンソースのコード解析ツールです。コミュニティルールやカスタムルールを利用することで、セキュリティ上の問題や危険なコードパターン、ポリシー違反などを検出できます。
CI/CDパイプラインや開発ワークフローとの統合にも対応しており、コードベースに合わせたルール調整も可能です。不要なアラートを抑えながら、プルリクエスト段階でコードチェックを実施できます。
5. Brakeman
Brakemanは、Ruby on Rails向けの静的解析ツールです。SQLインジェクションやクロスサイトスクリプティング(XSS)など、代表的な脆弱性を検出できます。設定ファイルの解析にも対応しており、脆弱性につながる可能性のある設定を検出できます。
CLIでは、JSON、XML、HTML形式のレポートを生成できます。CI/CDツールとの連携やブラウザでの確認にも対応しています。また、Docker環境で利用できるため、比較的導入しやすい点も特徴です。
PHPStanと同様に、警告レベルを段階的に設定できます。
6. Pyre
Pyreは、Meta(旧Facebook)が開発したPython向けの静的型チェッカーです。Pythonコードへ型情報を追加することで、大規模なコードベースにおける保守性や可読性の向上を支援します。
また、インクリメンタル解析に対応しており、プロジェクト規模が大きくなっても運用しやすい点が特徴です。
セキュリティ分析には、Pyre上に構築されたPysaとの併用が利用されます。Pysaではテイント解析を通じて、インジェクションや安全でないデシリアライゼーションなど、データフロー由来の脆弱性を検出できます。
両者を組み合わせることで、型チェックとセキュリティ分析を併用できます。
7. Bandit
Banditは、Python向けのコード解析ツールです。ハードコードされたパスワード、SQLインジェクション、安全でない関数利用など、代表的なセキュリティ上の問題を検出できます。
CLIでは詳細なレポートを生成でき、修正対応の確認にも利用できます。また、不要な検出結果を除外する設定にも対応しており、アラート疲労の軽減に役立ちます。
レポート形式はHTMLに加え、JSON、XML、CSVなどにも対応しています。そのため、CI/CDツールとの連携や自動処理にも利用しやすい点が特徴です。
8. Psalm
Psalmは、PHP向けの静的解析ツールです。IDEと連携することで、コーディング中にリアルタイムでフィードバックを提供できます。型エラー、到達不能コード、ロジック上の問題などを検出できる点が特徴です。
また、Psalmには、検出した問題の一部を自動修正できるPsalterも含まれています。同種の問題が繰り返し発生しやすい大規模コードベースで活用されています。
9. PMD
PMDは、多言語に対応した静的解析ツールです。コード品質やパフォーマンスに関する問題に加え、一部のセキュリティリスクを検出するルールも提供しています。Maven、Gradle、CI/CDパイプラインとの統合にも対応しています。
Java向けのセキュリティ分析を強化する場合は、SpotBugsとFindSecBugsプラグインとの併用がよく利用されます。これにより、インジェクション、安全でないデシリアライゼーション、脆弱な暗号利用など、OWASP関連のリスクを検出できます。
PMDと組み合わせることで、コード品質の確認とセキュリティ分析を補完的に実施できます。
CI/CD Pipeline Security Best Practices [Cheat Sheet]
In this 13 page cheat sheet we'll cover best practices in the following areas of the CI/CD pipeline: Infrastructure security, code security, secrets management, access and authentication, monitoring and response

Wiz Native SAST:重要なリスクの優先順位付け
Wiz Codeには、開発工程の早い段階でコード上の問題を検出できるネイティブSASTスキャナが含まれています。特徴の1つは、クラウド環境のコンテキストを考慮してリスクを評価できる点です。
一般的なSASTツールは、ソースコードを解析してSQLインジェクションやクロスサイトスクリプティング(XSS)などの脆弱性を検出します。一方、Wizではcode-to-cloudコンテキストを活用し、実行環境やアクセス権限、インターネット公開状況なども踏まえてリスクを評価します。
そのため、脆弱性の有無だけでなく、実際の悪用可能性も考慮した優先順位付けを行いやすくなります。
CI/CDへのSAST統合は、チームに合わせて導入方法を選べる
Wizは、既存の開発環境や運用体制に合わせてSASTを導入できるよう設計されています。チームの技術スタックや成熟度に応じて、導入方法を選択できます。
クラウド環境を踏まえたリスク分析やAIによるトリアージ、修正支援を行う場合は、WizのネイティブSASTスキャナを利用できます。
既存のSASTやSCAツールを継続利用したい場合は、それらの検出結果を取り込んで活用できます。
どちらの方法もCI/CDパイプラインへ統合でき、開発ライフサイクル全体を通じたセキュリティチェックに対応しています。
Wizは、インジェクション脆弱性、安全でないAPI利用、コーディング上の問題などを検出し、クラウド環境のコンテキストを踏まえてリスクを評価します。開発者はIDEやプルリクエスト上で修正ガイダンスを確認できるため、問題への対応を進めやすくなります。
また、Wiz Codeは、設定ミス、ハードコードされたシークレット、IaC、Kubernetes、クラウド環境全体に関連するリスクの検出にも対応しています。
Wiz CodeのASPMプラットフォームとSAST機能を組み合わせることで、コード上の脆弱性だけでなく、実行環境を踏まえたリスク分析や修正支援も実施できます。そのため、開発から運用までを含めた継続的なセキュリティ対策につなげやすくなります。
Wiz Security Graphで動作するネイティブSAST+AIエージェント
Wizには、ネイティブSASTスキャナとAIエージェントが組み込まれており、両者を組み合わせることで、不要なアラートを抑えながらリスク分析や修正支援を行えます。
SASTスキャナがコード解析を実施し、AIエージェントは以下の処理を支援します。
根本原因にもとづいて検出結果を分類・整理する
サービス、言語、スキャナ間で重複する結果を統合する
リスク内容をわかりやすく説明する
公開状況や実行環境を踏まえ、コード側とクラウド側の両面から修正案を提示する
これらの情報はWiz Security Graphによって統合的に管理されます。Wiz Security Graphは、SAST、SCA、IaC、クラウド設定、アイデンティティ情報、実行環境シグナルなどを関連付け、統一されたコンテキストを提供します。
単一のコンテキストで検出結果を一元管理する
Wizでは、自社ツールと外部ツールのどちらから取得した検出結果も、一元的に分析できます。プラットフォームでは、以下のような処理を行います。
問題を自動的に分類・統合する
脆弱性を関連するクラウドリソースやアイデンティティ情報と関連付ける
攻撃経路やビジネス影響につながるリスクを優先的に可視化する
その結果、不要なアラートを減らしながら、重要なリスクへの対応を進めやすくなります。
Wiz SASTの動作を確認したい場合は、デモを通じて自社環境への適用イメージを確認できます。
関連ツールまとめ