基本情報技術者試験「脆弱性診断」の問題
B社では開発中のWebアプリについて、まだ動作する環境を構築していない段階で、ソースコードに潜む脆弱性をできるだけ早期に洗い出したい。この目的に適した診断手法はどれか。
ア稼働中のアプリへ外部から擬似攻撃を送り、その応答から脆弱性を検出する。
イプログラムを動かさずにコードの構造を解析し、危険な実装箇所を割り出す。
ウ運用後の通信ログを長期間収集し、不審なアクセス傾向を統計的に分析する。
エ利用者から寄せられた不具合報告を集計し、再現性の高いものから調査する。
正解
イ.プログラムを動かさずにコードの構造を解析し、危険な実装箇所を割り出す。
アプリを動かせない開発初期段階でコードの脆弱性を早期発見するには、プログラムを実行せずソースコードを解析するSAST(静的アプリケーションセキュリティテスト)が適する。コーディング中から適用でき、修正コストの低い早期に問題を指摘できる。
?選択肢ごとの解説
ア ×稼働中のアプリへ擬似攻撃を行うDAST(動的解析)は実行環境が前提であり、まだ環境がない本件の段階では実施できない。
イ ○アプリを動かせない開発初期段階でコードの脆弱性を早期発見するには、プログラムを実行せずソースコードを解析するSAST(静的アプリケーションセキュリティテスト)が適する。コーディング中から適用でき、修正コストの低い早期に問題を指摘できる。
ウ ×運用後の通信ログ分析は本番稼働を前提とする事後の監視手法で、開発初期のコード脆弱性の早期洗い出しには使えない。
エ ×利用者の不具合報告の集計はリリース後の対応であり、開発段階で先回りして脆弱性を検出する目的に合致しない。
✎くわしく
脆弱性診断は実行有無で大別される。SASTは非実行でコードを解析し早期・網羅的だが偽陽性が出やすい。DASTは実行中のアプリを外部から攻撃して実害を確認でき偽陽性が少ないが環境が要る。IASTは実行中の内部計装で両者の中間に位置する。段階と前提条件で選ぶ。
✓本番での押さえどころ
試験のコツ
環境なし・コードから早期検出=SAST(静的)。稼働中に外部から攻撃=DAST(動的)。前提条件で選び分ける。
覚え方
SASTは『設計図の点検(動かさない)』、DASTは『試運転で叩く(動かす)』。Sは静的、Dは動的。
よくある誤り
SASTとDASTを混同し、環境がない段階に動的診断を当ててしまう。『コードを見る=静的』『動かして攻める=動的』の区別を押さえる。
情報セキュリティの他の問題
A社の経理担当者が、取引先を装ったメールに添付された請求書ファイルを業務PCで開いたところ、見慣れない画面が一瞬表示されて消…B社のWebサービスで、複数の利用者アカウントに対し正しいIDとパスワードの組合せによるログインが短時間に外部から成立する事…C社では、退職予定者や異動者のアカウント権限の見直しが滞り、業務上不要になった共有フォルダへのアクセス権が残り続けている。情…D社のファイルサーバがランサムウェアに感染し、業務ファイルが暗号化された。D社は日次でバックアップを取得しているが、バックア…E社の従業員に、取引先銀行を名乗る『口座情報の更新が必要』というメールが届いた。本文中のリンク先URLにアクセスすると、銀行…F社は社外の従業員が、カフェなどの公衆無線LANを利用して社内システムへアクセスしている。通信内容が経路上で第三者に盗聴・改…
この問題を、AIの8-ways解説つきで。
無料ではじめる →基本情報技術者試験の演習を、一問ごとに「なぜ」まで。まずは無料で。
ukamiru 過去問 · 基本情報技術者試験 · fe-b-sec-0110