クラウドストライク2026年版グローバル脅威レポートエグゼクティブサマリー:AI時代に必読の脅威インテリジェンスレポート
ダウンロード

SASTとは

SAST(静的アプリケーションセキュリティテスト)は、コード実行前にソースコードを自動的にスキャンして脆弱性を検出する、プロアクティブなサイバーセキュリティにおける重要な手法です。SASTは、コードが本番環境に展開される前にセキュリティの脆弱性を検出することで、開発者がセキュリティリスクを修正し、コストのかかるエラーを回避し、コンプライアンスを適用するのに役立ちます。自動化ツールを使用してソースコード、バイトコード、場合によってはアプリケーションバイナリをスキャンし、潜在的なコードスメル、セキュリティリスク、コンプライアンスの問題を検出します。

SASTを使用すると、SDLC(ソフトウェア開発ライフサイクル)の早い段階でセキュリティ対策が組み込まれます。このように、SASTの採用により、シフトレフトセキュリティパラダイムがサポートされ、展開後に対処するのではなく、開発プロセスの早い段階でセキュリティに重点が置かれるようになります。

この記事では、SASTの仕組みと、SASTが自動的に検知できる脆弱性の種類について説明します。

2024-State-of-App-Security

2024年版アプリケーションセキュリティの現状レポート

クラウドストライク2024年版アプリケーションセキュリティの現状レポートをダウンロードして、アプリケーションセキュリティにおける最も重要な課題についてご確認ください。

今すぐダウンロード

SASTの仕組み

SASTツールはGitなどのソースコード管理ツールとシームレスに統合されることが多く、コード内で見つかったエラーや脆弱性に関するリアルタイムのフィードバックを提供します。そのため、開発者はより迅速かつ早期に対処できます。SASTはCI/CDパイプラインに統合されると、継続的かつ自動化されたセキュリティチェックを提供することでフィードバックループを縮小し、チームがセキュアコーディングプラクティスを実施できるようにします。

ソースコードの静的分析では、ソースコードを実行せずに検査します。SASTツールは、依存関係、設定ファイル、SQLクエリを含むコードベース全体をスキャンして、潜在的な脆弱性を検知できます。SASTの目的は、構文上の問題、潜在的なSQLインジェクションの脆弱性、XSS(クロスサイトスクリプティング)、その他の非標準または安全でないコーディング方法を特定することです。

DAST(動的アプリケーションセキュリティテスト)との違い

SASTはランタイム環境なしで動作するため、アプリケーションが環境に展開される前に、開発者がコード変更に関するフィードバックを早期に受け取るのに最適です。これは、ランタイム中にアプリケーションをテストして「OWASPトップ10」に記載されているような脆弱性を発見するDAST(動的アプリケーションセキュリティテスト)とは異なります。DASTツールはアプリケーションのソースコードにアクセスできず、代わりにシミュレートされた攻撃を利用してセキュリティの脆弱性を特定します。例えば、開発者がバッファオーバーフローにつながる可能性のあるコーディングエラーを導入した場合、SASTはコードが本番環境に到達する前にこの欠陥を検出できます。

SASTとDASTは相互補完的なアプリケーションセキュリティテスト手法であり、組み合わせることでSDLCのさまざまな段階にわたる包括的なカバレッジを実現します。両方のアプローチを組み合わせることで、開発チームは徹底したセキュリティテストを実施し、幅広い脆弱性を把握することができます。

SASTによって検出される脆弱性の種類

ソースコードの静的スキャンは、コードが実行される前に、さまざまなコード品質とセキュリティの問題を発見するのに役立ちます。SASTツールを使用すると、チームは次のことを検出できます。

コードベースの脆弱性

SASTは、字句分析と意味分析を使用してソースコード全体を解析し、AST(抽象構文木)を構築してコードベースを調べ、共通パターンを徹底的に特定します。字句エラーは、認識されないトークン、不適切な形式のキーワード、不正な文字など、コードの構造または形式に関するものです。これらのエラーにより、コードが正しくコンパイルまたは解析されません。 

意味エラーは、コードの意味またはロジックに関する問題です。例えば、プログラムがバッファに書き込むデータ量がバッファの容量を超える場合、それはメモリの管理における論理的な欠陥です。コードは正しく、コンパイルもできる可能性がありますが、このエラーによりランタイム時にバッファオーバーフローが発生することがあります。この分析により、SASTは、開発者がすぐには気づかないものの、クラッシュや安全でない逆シリアル化の問題を引き起こし、攻撃者が任意のコードを実行できる可能性があるコードレベルのセキュリティ上の脆弱性を検知できます。

SASTは、宣言されていない変数や一致しない変数、不正な関数呼び出し、互換性のないデータ型など、予期しない望ましくない振る舞いを引き起こす可能性のある構文エラーも識別します。

コード品質の問題

SASTツールは、次のようなコード品質の問題を検出するのに十分な機能を備えています。

  • 不適切なエラー処理
  • デッドコード
  • 重複の問題
  • 不適切なリソース管理

開発者にこれらの問題を警告することで、開発者はより安全で効率的なコードを作成できるようになります。

SASTツールは、パターンマッチングとルールベースの分析を使用して、攻撃者が簡単に悪用できるパスワードやAPIキーなどのハードコードされた認証情報も識別します。さらに、SASTは、セキュリティ上の脆弱性があることがわかっている古い依存関係の使用を警告表示できるため、チームは優先順位を付けて迅速に修正することができます。 

セキュリティ違反

SASTツールは、次のような一般的なセキュリティ脆弱性を確認し、開発者に通知できます。

  • XSS
  • SQLインジェクション
  • 入力のサニタイズ
  • セキュリティの設定ミス

ほとんどのSASTツールはカスタム設定もサポートしているため、組織は内部のセキュリティポリシーを適用し、すべてのコードベースにわたる一貫性を確保できます。 

クラウドストライク
2025年版
グローバル脅威
レポート

クラウドストライク
2025年版
グローバル脅威
レポート

必読の年次サイバーセキュリティレポートをご覧ください。

SDLCにおけるSAST

SASTの主な利点の1つは、SDLCの各ステップとシームレスに統合され、セキュリティが開発ワークフローの不可欠な部分となることです。これにより、開発者はコードの作成時に問題を特定して軽減することができ、シフトレフトセキュリティアプローチを促進します。SASTを開発ワークフローに組み込むことで、開発者は迅速に反復処理を行い、より自信を持ってコードをリリースできるようになり、最終的には開発コストを削減できます。  

SASTツールを既存のCI/CDパイプラインに統合することで、開発者はビルドとリリースプロセスで自動化された継続的なスキャンを実行できます。静的分析は通常、ランタイムテストツールよりも大幅に高速に実行されるため、より頻繁にチェックを実行できます。例えば、新しいコミットがブランチにプッシュされたときやプルリクエストが開かれるときに、チームはこれらのスキャンを実行できます。さらに、多くのSASTツールは、コードベース全体ではなく、プルリクエストの提案されたコード変更のみをスキャンするように設定できます。これにより、チームは即座にフィードバックを受け取り、問題をより迅速に解決できるようになります。

パイプラインのあらゆる段階でのCI/CD自動化により、セキュアコーディングプラクティスが促進され、セキュリティリスクが本番環境に及ぶのを防ぐことができます。 

SASTの課題と制限

SASTは、コードが本番環境に導入される前にアプリケーションのセキュリティ上の問題を特定するための、高速で費用対効果の高い方法です。ただし、いくつかの制限があります。

  • フォールスポジティブ:SASTツールが問題を識別するために使用する手法では、フォールスポジティブが発生する場合があります。チームは、特定された問題を確認して無効または対処不可能な問題を排除してから、実際の脆弱性を優先順位付けする必要があります。
  • 複雑な問題:SASTによって特定された問題の中には、根本原因を理解して解決策を決定するために、セキュリティ、インフラストラクチャ、またはアプリケーション開発チームの分野固有の専門知識が必要になるものもあります。例えば、SASTではMD5やSHA1などの安全性の低い暗号化アルゴリズムの使用が特定される場合がありますが、その問題に対処するには、セキュリティチームからのガイダンスを受けて代替ソリューションを特定する必要がある場合があります。
  • ランタイムの可視性の制限:SASTツールは環境固有の設定にアクセスできません。その結果、アプリケーションの実行中に発生する競合状態やセキュリティ設定ミスなどのランタイムの問題が見逃される可能性があります。多くの場合、これらの脆弱性は、DASTによる補完的なテストで検出できます。アプリケーションテスト以外では、多くの組織がFalcon ASPMなどのソリューションを利用して、展開されたアプリケーションに関連するリスクを完全に可視化しています。 
  • 依存関係の制限:SASTツールでは、オープンソースの依存関係を特定するのが難しい場合があります。組織はSCA(ソフトウェアコンポジション分析)を使用することでこの制限を克服できます。
cnapp-guide-temp

CNAPPの完全ガイド

クラウドストライクの『CNAPPの完全ガイド』をダウンロードして、クラウドネイティブアプリケーション保護プラットフォームが最新のクラウドセキュリティ戦略の重要な要素である理由、そしてそれらを開発ライフサイクルに統合する最適な方法をご確認ください。

今すぐダウンロード

包括的なカバレッジでアプリケーションセキュリティを強化

SASTツールは、ソースコードをスキャンして、コードがランタイム環境に展開される前に問題を検知します。SASTは、SDLCの早い段階でこれらの脆弱性を特定することにより、開発者がコードのリリース前にセキュリティ上の懸念に対処できるようにし、開発時間の短縮と本番環境への脆弱性持ち込みのリスクの軽減を可能にします。

SASTは特定の依存関係を評価したり、実行環境にアクセスしたりできないため、その機能には制限があります。したがって、ASTをSCA、DAST、およびASPMと併用して包括的なセキュリティカバレッジを提供し、静的コード関連の脆弱性、動的ランタイムの問題、本番環境のアプリケーションに対するリスクに対処する必要があります。 

アプリケーションセキュリティを強化する準備はできていますか?CrowdStrike Falcon ASPMがSASTツールと連携して、包括的なセキュリティカバレッジを提供し、リスクを軽減し、開発ワークフローを強化する方法をご覧ください。

ジェイミー・ゲイル(Jamie Gale)は、クラウドとアプリケーションセキュリティの専門知識を持つプロダクトマーケティングマネージャーです。Bionicの買収によりクラウドストライクに入社する前は、複数のスタートアップ企業や大規模な国際機関でテクニカルコンテンツやエグゼクティブコミュニケーションに関する活動を主導していました。同氏は、ワシントンD.C.に在住しており、メアリーワシントン大学を卒業しています。