条件に合う脆弱性検査手法
A 社は,B 社が開発した Web アプリケーションを導入する前に,XSS や SQL インジェクションなど,アプリケーション固有の実装に起因する脆弱性を自ら検査したい。ソースコードも実行モジュールも B 社から開示されず,稼働中のテスト環境に HTTP でアクセスすることだけが認められており,テスト環境のサーバにエージェントなどを導入することはできない。この条件で A 社が実施できる検査手法として,最も適切なものはどれか。
- アSAST:ソースコードやバイナリを実行せずに解析し,脆弱性につながるコードのパターンを検出する。
- イDAST:稼働中のアプリケーションに外部から疑似攻撃のリクエストを送り,その応答から脆弱性を検出する。
- ウIAST:アプリケーションの実行環境に組み込んだセンサで,テスト実行中の内部の処理を監視して脆弱性を検出する。
- エSCA:組み込まれた OSS などのコンポーネントとそのバージョンを特定し,既知の脆弱性情報と照合する。
正解と解説を見る
正解 イ
この問題の基礎知識
- SAST(静的解析)は,ソースコードやバイナリを実行せずに解析する手法であり,解析対象のコードを入手できることが前提となる。
- DAST(動的解析)は,稼働中のアプリケーションに外部からリクエストを送って応答を観察する手法である。IAST は,実行環境に組み込んだセンサ(エージェント)で内部の処理を監視する手法である。
- SCA(ソフトウェア構成分析)は,組み込まれた OSS などのコンポーネントとバージョンを特定して既知の脆弱性と照合する手法であり,独自に実装した部分の脆弱性は対象としない。
- 検査手法は,コードを入手できるか,稼働環境にどうアクセスできるか,エージェントを導入できるかといった前提条件によって,実施できるものが絞られる。
アSAST:ソースコードやバイナリを実行せずに解析し,脆弱性につながるコードのパターンを検出する。
SAST は解析対象のソースコードやバイナリを入手できることが前提である。この条件ではどちらも開示されないので実施できない。
イDAST:稼働中のアプリケーションに外部から疑似攻撃のリクエストを送り,その応答から脆弱性を検出する。正解
DAST は稼働中のソフトウェアを外部から検査する手法であり,ソースコードや実行環境への組込みを必要としない。HTTP でのアクセスだけが認められた条件でも,アプリケーション固有の脆弱性を検出できる。
ウIAST:アプリケーションの実行環境に組み込んだセンサで,テスト実行中の内部の処理を監視して脆弱性を検出する。
IAST は実行中のプログラムの内部の処理を監視するので,実行環境にエージェントなどを組み込む必要がある。サーバへの導入が認められていない条件では実施できない。
エSCA:組み込まれた OSS などのコンポーネントとそのバージョンを特定し,既知の脆弱性情報と照合する。
SCA が検出するのは,外部コンポーネントに含まれる既知の脆弱性である。B 社が実装した部分に起因する XSS や SQL インジェクションを検出する手法ではない。
検証用の出典出典照合済み
NIST IR 8397 Guidelines on Minimum Standards for Developer Verification of Software / NIST SP 800-218 Secure Software Development Framework (SSDF)照合の根拠(5 件)
- イ(正解): Web サービスには DAST(Web アプリケーションスキャナ)で脆弱性を検出する
If the software provides a web service, use a dynamic application security testing (DAST) tool, e.g., web application scanner, see Sec. 3.5, or Interactive Application Security Testing (IAST) tool to detect vulnerabilities.
NIST IR 8397 · Section 2.10(新しいタブで開きます) - イ(正解): DAST は稼働中のソフトウェアを検査する
DAST tools, such as web app scanners, test software in operation.
NIST IR 8397 · Section 3.5(新しいタブで開きます) - ウ(誤り): IAST はプログラムの実行を内部から監視するので,実行環境への組込みが必要
A hybrid or IAST tool may also monitor program exe- cution for internal faults.
NIST IR 8397 · Section 2.10(新しいタブで開きます) - ア(誤り): SAST(Static Application Security Testing)はソースコードかバイナリを解析するので,どちらも開示されない条件では実施できない
examine the code, either source or binary, to warn of possible weaknesses.
NIST IR 8397 · Section 3.6(新しいタブで開きます) - エ(誤り): SCA は組み込まれたコードの既知の脆弱性を調べるもので,独自実装の脆弱性検出ではない
Software Composition Analysis (SCA) and Origin Analyzer (OA) tools scan a code base to identify what code is included. They also check for any vulnerabilities that have been reported for the included code
NIST IR 8397 · Section 3.10(新しいタブで開きます)
条件はソースコード・実行モジュールの開示なし,HTTP アクセスのみ,サーバへのエージェント導入不可なので,外部から稼働中のアプリケーションを検査する DAST だけが実施できる。NIST IR 8397 は DAST・IAST を明記している(2.10,3.5)。