Aikido
アプリケーション・セキュリティ用語集

SAST & DAST

SASTはアプリが実行される前にコードの脆弱性をチェックし、DASTはアプリの実行中にテストしてリアルタイムで発生する問題を発見します。

両方を併用することで、開発開始からデプロイメントまでのセキュリティ問題を捕捉しやすくなり、アプリケーションの安全性を確保します。詳しく見ていきましょう。

SAST & DAST:知っておくべきこと

SASTとDASTを探している、あるいはSASTとDASTツールが何であるかを理解しようとしているのですね。

静的アプリケーションセキュリティテスト(SAST)と動的アプリケーションセキュリティテスト(DAST)は、ソフトウェアの脆弱性を特定するのに役立つアプリケーションセキュリティにおける2つの重要な手法です。 

主な違いは何でしょうか?それらをどのように併用するのでしょうか?それらは必要でしょうか?その疑問をお持ちでしたら、まさにここが最適な場所です。詳しく見ていきましょう。


しかしその前に、要約: 

TL;DR: SAST (Static Application Security Testing) は、アプリケーションが実行される前にコードの脆弱性をチェックします。一方、DAST (Dynamic Application Security Testing) は、アプリケーションの実行中にテストを行い、リアルタイムで発生する問題を発見します。

SASTは専門の開発者がコードをレビューするようなもので、DASTはハッカーが侵入を試みるようなものです。

両方を併用することで、開発開始からデプロイメントまでのセキュリティ問題を捕捉し、アプリケーションの安全性を確保します。宣伝ですが、SASTとDASTをお探しでしたら、ぜひ当社にご相談ください。お客様をサポートし、開発に専念できるようお手伝いします。

SASTとは?

SAST(Static Application Security Testing)は、アプリケーションのソースコードを静的または非実行状態で分析するテスト手法です。これは「ホワイトボックス」テスト手法です。


SASTは、コード開発やコードレビューの段階など、開発(SDLC)プロセスの早期に開発者が脆弱性を特定することを可能にします。SASTツールはCI/CDパイプラインやIDEに簡単に統合できるため、コードが書かれる際にセキュリティを確保し、リポジトリに変更をコミットする前にコードをスキャンできます。

SASTは、SQLインジェクション、クロスサイトスクリプティング(XSS)、ハードコードされた認証情報、およびその他のOWASP Top 10の脆弱性を検出できます。Aikido SASTのようなSASTツールは、コードをスキャンし、国家脆弱性データベース(NVD)のような既知のセキュリティ脆弱性データベースと比較します。

このように考えてみてください。SASTは、専門家がコードを詳細にレビューし、発見した問題について即座にフィードバックを提供するようなものです。

とはいえ、SASTには限界があり、設定エラーやランタイム依存関係のような、ランタイムまたは環境固有の脆弱性を検出するためには使用できません。コードをスキャンするには、使用するプログラミング言語をサポートするSASTツールを選択する必要があります。

なぜ重要なのか? この早期検出は、開発者がアプリケーションがデプロイされる前に問題に対処できるため、非常に重要です。これにより、問題を早期に修正することがより簡単になり、コストも削減されます。SASTはプロアクティブなセキュリティであり、将来的に多くの時間と手間を省くことができます。

DASTとは?

DAST、すなわちDynamic Application Security Testingは、アプリケーションが実行中に評価するテスト手法です。

SASTがソースコードの内部を可視化するのに対し、DASTはソースコードへのアクセスを必要としません。DASTは、アプリケーションのセキュリティテストに外部からのアプローチを採用します。DASTは、ハッカーが行うようにアプリケーションへの攻撃をシミュレートします。これは「ブラックボックス」手法です。

DASTはWebアプリの表面またはフロントエンドをテストするため、「サーフェスモニタリング」とも呼ばれます。DASTツールはユーザーインターフェースを介してアプリケーションと対話し、さまざまな入力をテストし、出力を監視することで、認証の問題、サーバーの誤設定、その他のランタイム脆弱性などの脆弱性を特定します。DASTはランタイムで動作するため、DASTテストが意味をなすためには動作するアプリケーションが必要であり、これは通常、プリプロダクションおよびプロダクションフェーズにあたります。

DASTは外部から機能し、HTTPのような標準プロトコルを使用してアプリに接続するため、SASTとは異なり、特定のプログラミング言語に縛られません。


なぜ重要なのでしょうか? この方法は、デプロイ前に検出できない問題を特定するために重要です。DASTは、さまざまなカテゴリのエラーに対応します。DASTは、アプリケーションが稼働中に発生するリスク、例えばサーバーやデータベースの設定ミス、不正アクセスを許す認証や暗号化の問題、またはアプリケーションが接続するウェブサービスからのリスクなどを特定します。

SASTとDASTの併用

SASTとDASTを併用することをお勧めします。SASTとDASTを組み合わせることで、ソフトウェア開発ライフサイクル全体にわたる広範なカバレッジが得られます。SASTで早期にカバーし、DASTで現実世界での回復力を確保しましょう。この組み合わせにより、チームは複数の段階で脆弱性に対処でき、最終的によりセキュアなアプリケーションにつながります。

無料で始める

△GitHub、GitLab、Bitbucket、または Azure DevOps アカウントを接続すると、無料でリポジトリのスキャンを開始できます。

無料で始める
お客様のデータは共有されません - 読み取り専用アクセス