静的アプリケーション セキュリティ テスト (SAST) とは何ですか?
静的アプリケーション・セキュリティ・テスト(SAST)または 静的コード解析 アプリケーションのソースコード、バイトコード、またはバイナリをスキャンして、アプリケーションの脆弱性を検出します。 SASTは、アプリケーション内のコードパターン、制御フロー、データフローを分析することで、アプリケーションを実行することなく、さまざまな脆弱性を特定できます。
静的アプリケーション・セキュリティ・テスト(SAST)の仕組み
SASTは、アプリケーションのソースコード、バイナリコード、またはバイトコードを検査し、一般的な脆弱性を示すコードパターンを探すことで機能します。 これは、アプリケーション、コード、およびデータ フローのモデルを作成することによって実現されます。 このモデルに基づいて、SASTソリューションは事前定義されたルールを実行して、既知のタイプの脆弱性を特定できます。
SASTが重要なセキュリティ活動である理由
SASTソリューションにより、開発者はソフトウェア開発ライフサイクル(SDLC)の早い段階で脆弱性分析を実行することで、セキュリティを「シフトレフト」することができます。 これにより、開発者は脆弱性をより早く特定して修正できるため、修復のコストとその潜在的な影響を削減できます。
また、SASTにより、開発者はコードの品質に関するよりリアルタイムなフィードバックを受け取ることができます。 脆弱性は、リリース候補の準備が整った開発プロセスの最後にのみ特定および修正されるのではなく、コードの更新のたびにSASTスキャンを実行できます。 これにより、開発者は失敗から学び、将来、より安全なコードを開発することができます。
長所と短所
SASTスキャンソリューションは、一般的な脆弱性を特定するために非常に貴重です。 SASTの主な利点には、次のようなものがあります。
- SDLCへの早期登場: SASTは実行可能コードを必要としないため、SDLCの早い段階で実行できます。 これにより、特定された脆弱性を修正するためのコストと時間が削減されます。
- 一般的な脆弱性の検出: SASTソリューションは、OWASP Top 10やCommon Weakness Enumeration(CWE)のリストに記載されているような、一般的な脆弱性に関連するコードパターンを特定できます。
その利点にもかかわらず、SASTは完璧なソリューションではありません。 SAST スキャンには、次のような制限があります。
- 言語固有であること: SASTはアプリケーションのソースコードを読み取って分析するため、そのソースコードが記述されている言語を理解する必要があります。 これは、組織が多くの異なる言語やあまり一般的でない言語を使用している場合に問題になる可能性があります。
- すべての脆弱性を検出できない: SASTソリューションは、実行中のアプリケーションではなく、ソースコードを分析するように設計されています。 これにより、構成エラーやランタイムの脆弱性が見えなくなります。
- 高い偽陽性率: SASTソリューションはランタイム分析を実行しないため、潜在的な脆弱性が実際の脅威なのか誤検知なのかを判断することはできません。 SASTの結果を分析して、実際のセキュリティリスクを表しているかどうかを判断する必要があります。
- 頻繁で時間のかかるテスト: SASTスキャンの実行には時間がかかり、レポートはコードのスナップショットを分析するため、すぐに古くなります。 つまり、SASTスキャンを頻繁に実行して最新の状態に保つ必要があります。
SASTとDASTの比較
動的アプリケーション・セキュリティ・テスト(DAST)は、さまざまなタイプの入力をアプリケーションに送信することで、実行中のアプリケーションの潜在的な脆弱性を分析します。 DASTはSASTを補完するものであり、2つのアプローチの主な違いには次のようなものがあります。
- ホワイトボックステストとブラックボックステスト: SASTソリューションは、アプリケーションのソースコードを完全に可視化します。 DASTソリューションは、実行中のアプリケーションのセキュリティをテストしますが、内部操作は可視化されません。
- アプリケーションの成熟度: SASTスキャンはソースコードまたはバイナリに対して実行され、アプリケーションを実行する必要はありません。 DASTソリューションでは、アプリケーションが実行に十分な完成度を備えている必要があります。
- SDLCのフェーズ: SASTはソースコードを使用するため、実行可能プログラムへのアクセスを必要とするDASTよりも早くSDLCで実行できます。
- 修復の費用: SASTはSDLCの早い段階で存在しているため、DASTよりも安価に脆弱性を修正することができます。 SDLCで脆弱性が発見されるのが遅いほど、修正が必要なコードが多くなり、修正にかかる時間が短くなります。
- 検出された脆弱性: SASTソリューションは実行中のコードを分析しないため、ランタイムの脆弱性や構成の問題を特定することはできません。 DASTソリューションは、実行中のアプリケーションをテストし、これらのタイプのエラーを見つけることができます。
- 脆弱性の場所の検出: SASTは、脆弱性がどこにあるかを正確に特定できます。 DASTは、アプリケーション内に特定の脆弱性が存在することのみを報告できます。
- 偽陽性率: SASTソリューションは、アプリケーションを実行するのではなく、アプリケーションのモデルに基づいて動作するため、誤検知が発生しやすくなります。 DASTソリューションは、特定の脆弱性が実際に存在するかどうかを知ることができます。
SASTによるアプリケーションセキュリティの向上
SASTは、 アプリケーション セキュリティ, and, complemented with DAST, can enable an organization to identify and remediate vulnerabilities in their applications before they are exploited by an attacker. Check Point AppSec provides a third vital component, protecting applications in production cloud environments. By monitoring requests to an application in context, AppSec can learn to identify what is legitimate traffic to an application and block attempted attacks.
詳細については、以下を参照してください。 チェック・ポイント AppSec クラウドベースのワークロードの保護にどのように役立つかについては、こちらをご覧ください この電子ブック. Then, see the capabilities of Check Point for yourself by signing up for a free demo.
