情報セキュリティ

基本情報技術者試験脆弱性診断」の問題

情報セキュリティ情報セキュリティ難易度:hard
B社では開発中のWebアプリについて、まだ動作する環境を構築していない段階で、ソースコードに潜む脆弱性をできるだけ早期に洗い出したい。この目的に適した診断手法はどれか。
稼働中のアプリへ外部から擬似攻撃を送り、その応答から脆弱性を検出する。
プログラムを動かさずにコードの構造を解析し、危険な実装箇所を割り出す。
運用後の通信ログを長期間収集し、不審なアクセス傾向を統計的に分析する。
利用者から寄せられた不具合報告を集計し、再現性の高いものから調査する。
正解
プログラムを動かさずにコードの構造を解析し、危険な実装箇所を割り出す。

アプリを動かせない開発初期段階でコードの脆弱性を早期発見するには、プログラムを実行せずソースコードを解析するSAST(静的アプリケーションセキュリティテスト)が適する。コーディング中から適用でき、修正コストの低い早期に問題を指摘できる。

?選択肢ごとの解説

ア ×稼働中のアプリへ擬似攻撃を行うDAST(動的解析)は実行環境が前提であり、まだ環境がない本件の段階では実施できない。
イ ○アプリを動かせない開発初期段階でコードの脆弱性を早期発見するには、プログラムを実行せずソースコードを解析するSAST(静的アプリケーションセキュリティテスト)が適する。コーディング中から適用でき、修正コストの低い早期に問題を指摘できる。
ウ ×運用後の通信ログ分析は本番稼働を前提とする事後の監視手法で、開発初期のコード脆弱性の早期洗い出しには使えない。
エ ×利用者の不具合報告の集計はリリース後の対応であり、開発段階で先回りして脆弱性を検出する目的に合致しない。

くわしく

脆弱性診断は実行有無で大別される。SASTは非実行でコードを解析し早期・網羅的だが偽陽性が出やすい。DASTは実行中のアプリを外部から攻撃して実害を確認でき偽陽性が少ないが環境が要る。IASTは実行中の内部計装で両者の中間に位置する。段階と前提条件で選ぶ。

本番での押さえどころ

試験のコツ

環境なし・コードから早期検出=SAST(静的)。稼働中に外部から攻撃=DAST(動的)。前提条件で選び分ける。

覚え方

SASTは『設計図の点検(動かさない)』、DASTは『試運転で叩く(動かす)』。Sは静的、Dは動的。

よくある誤り

SASTとDASTを混同し、環境がない段階に動的診断を当ててしまう。『コードを見る=静的』『動かして攻める=動的』の区別を押さえる。

情報セキュリティの他の問題

この問題を、AIの8-ways解説つきで。

基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。

無料ではじめる →

ukamiru 過去問 · 基本情報技術者試験 · fe-b-sec-0110

【基本情報技術者試験】脆弱性診断の問題 — 解答・解説|ukamiru 過去問