ソフトウェアの脆弱性を狙う攻撃から、ソフトウェアを守るためには、テストによって潜在的な脆弱性を検証することが不可欠だ。ソフトウェア開発におけるテストにはさまざまなアプローチがあるが、主要な手法として「SAST(静的アプリケーションセキュリティテスト)」と「DAST(動的アプリケーションセキュリティテスト)」がある。
SASTは自動的に解析を行うため実施にかかる手間が少ない上、プログラム全体を網羅的にテストできる。また、開発の初期段階から実施できる点も大きなメリットだ。一方、DASTは、SASTでは難しいフローも検証でき、また、偽陽性を考慮する必要もない。それぞれの手法にはデメリットもあり、違いを理解して両方を適切に活用することが重要になる。
また近年は、DASTでもSASTのように網羅的な検証が行えるテスト手法として、「ファジング」が注目されている。本資料では、SASTとDASTのメリット・デメリットを比較するとともに、ファジングについて解説する。