Ukaru.資格試験オンライン講座

攻撃手法の詳細(Webアプリ攻撃・DNS攻撃・APT)

Web攻撃はSQLインジェクション対策のプレースホルダ,XSS対策のエスケープとHttpOnly,CSRF対策のトークンを核とし,DNSはDNSSEC,APTはサイバーキルチェーンに沿った入口・出口・内部の多層防御を体系で押さえることが合格の鍵である。

Webアプリケーションへの攻撃のうち本試験で頻出なのがSQLインジェクションである。これは利用者入力をSQL文に連結する際,入力値中のシングルクォートやセミコロン等のメタ文字が構文の一部として解釈されることを悪用し,認証回避やデータベースの不正操作,情報の窃取を行う攻撃である。IPA「安全なウェブサイトの作り方」では,根本的解決策としてプレースホルダ(バインド機構)を用いたSQL文の組立てを推奨しており,静的プレースホルダではバインド位置に値を渡すため入力値が構文に影響しない。文字列連結でSQL文を組み立てる場合はエスケープ処理が必要となるが,これは保険的対策に位置づけられる。あわせてエラーメッセージの詳細な表示の抑止,データベースアカウントの権限最小化も併用すべき対策である。

クロスサイトスクリプティング(XSS)は,攻撃者が用意したスクリプトを脆弱なサイトを介して被害者のブラウザ上で実行させる攻撃で,Cookieの窃取やなりすましを招く。反射型(Reflected),格納型(Stored/持続型),DOM Based XSSの3類型があり,DOM Based XSSはサーバを経由せずクライアント側スクリプトがDOMを操作する過程で発現する点が特徴である。対策はHTMLエスケープ(サニタイジング)が基本であり,CookieにHttpOnly属性を付与すればスクリプトからの読取りを防げる。一方クロスサイトリクエストフォージェリ(CSRF)は,ログイン済み利用者に意図しないリクエストを送信させる攻撃であり,対策としてはリクエストごとの秘密情報(トークン)の埋込み,Refererの確認,CookieへのSameSite属性の付与が有効である。両者は混同されやすいが,前者はスクリプト実行,後者はセッションの悪用である点で本質が異なる。

そのほかのWebアプリ攻撃として,ディレクトリトラバーサル(パストラバーサル)は「../」等の相対パス指定でWeb公開領域外のファイルを不正に参照する攻撃であり,ファイル名の外部からの直接指定を避けることが根本対策となる。OSコマンドインジェクションはシェルを起動する関数へ利用者入力を渡すことでOSコマンドを実行させる攻撃で,シェル呼出し機能のある関数の使用回避が推奨される。近年はサーバサイドリクエストフォージェリ(SSRF)が重要度を増しており,これはサーバに任意の宛先へリクエストを送らせ,クラウドのインスタンスメタデータサービスや内部ネットワークの機器へ到達させる攻撃で,OWASP Top 10 2021ではA10に位置づけられた。またセッションIDを固定させるセッションフィクセーション,推測・窃取したIDでなりすますセッションハイジャックも押さえるべき論点である。

DNSに対する攻撃の代表がDNSキャッシュポイズニングである。これはキャッシュDNSサーバ(フルサービスリゾルバ)に偽の応答を注入し,誤ったIPアドレスを利用者へ返させる攻撃で,フィッシングサイトへの誘導等に悪用される。特にKaminsky型攻撃は,存在しないサブドメインを大量に問い合わせつつ偽応答を送り付け,16ビットのトランザクションIDを推測して汚染成功率を高める手法として知られる。対策としては送信元ポート番号のランダム化(ソースポートランダマイゼーション)がまず挙げられるが,より根本的な対策はDNSSEC(RFC 4033〜4035)である。DNSSECは公開鍵暗号を用いてリソースレコードにディジタル署名(RRSIG)を付与し,権威サーバの正当性と応答データの完全性を検証可能にする仕組みで,データ出所認証とデータ完全性を提供する。ただし通信の暗号化(機密性)は提供しない。

DNSは可用性への攻撃にも悪用される。DNSリフレクション攻撃は,送信元IPアドレスを被害者に詐称した問合せをオープンリゾルバへ送り,増幅された応答を被害者へ集中させるDDoS(DNS amp,アンプ攻撃)である。小さな問合せに対し大きな応答が返る増幅率の高さが悪用されるため,オープンリゾルバを外部に公開しない設定が対策となる。ランダムサブドメイン攻撃(DNS water torture)は,存在しないランダムなサブドメインへの問合せを大量発生させ,権威サーバとキャッシュサーバの負荷を高める攻撃である。さらにDNSトンネリングは,DNSクエリや応答のフィールドにデータを埋め込み,ファイアウォールで通過を許可されがちなDNS通信を通じて情報を持ち出したりC&C通信を秘匿したりする手法で,APTの一部としても用いられる。

APT(Advanced Persistent Threat,高度で持続的な脅威)は,特定の組織を標的に長期間にわたり執拗に侵入・潜伏を試みる標的型攻撃を指す。攻撃の流れを段階化したモデルがサイバーキルチェーン(Lockheed Martin社提唱)であり,偵察(Reconnaissance),武器化(Weaponization),配送(Delivery),攻撃(Exploitation),インストール(Installation),遠隔操作(Command and Control:C&C),目的の実行(Actions on Objectives)の7段階からなる。攻撃者の戦術・技法・手順(TTP)を体系化したナレッジベースとしてはMITRE ATT&CKが広く参照される。標的型攻撃メールでは,業務を装った文面と正規に見える添付ファイルやリンクで受信者を欺き,マルウェアに感染させる手口が典型である。

標的型攻撃の初期侵入手口には,標的が普段閲覧するWebサイトを改ざんして閲覧者を感染させる水飲み場型攻撃(Watering Hole)や,問合せを装って複数回やり取りし油断させてから攻撃するやり取り型攻撃がある。侵入後はC&Cサーバと通信して指令を受け,認証情報を窃取しながら組織内部の他端末・サーバへ侵入範囲を広げるラテラルムーブメント(横展開)を行い,最終的に機密情報を外部へ持ち出す。防御は境界での入口対策だけでなく,感染端末からの不正通信を検知・遮断する出口対策,および侵入を前提に内部拡散を抑える内部対策を組み合わせる多層防御が求められる。プロキシやDNSのログ監視,不審な外部通信先の検知,EDRによる端末の挙動監視が有効な手段である。

この章の問題から3問

DNSSECは,DNSの問合せと応答をTLSで暗号化することにより,通信経路上での盗聴を防止する仕組みである。

正解 ×(誤り)

誤り。DNSSEC(RFC 4033〜4035)はRRSIG等のディジタル署名によりリソースレコードのデータ出所認証と完全性を保証するが,通信の暗号化(機密性)は提供しない。DNS通信の暗号化はDNS over TLS(RFC 7858)やDNS over HTTPS(RFC 8484)が担う。

SQLインジェクションの根本的対策として最も適切なのは,入力値中のシングルクォートをエスケープすることではなく,プレースホルダ(バインド機構)を用いてSQL文を組み立てることである。

正解 ○(正しい)

正しい。IPA「安全なウェブサイトの作り方」では,SQLインジェクションの根本的解決策としてプレースホルダ(バインド機構)によるSQL文の組立てを挙げ,エスケープ処理は保険的対策と位置づけている。

クロスサイトリクエストフォージェリ(CSRF)の対策として最も有効なのは,CookieにHttpOnly属性を付与することである。

正解 ×(誤り)

誤り。HttpOnly属性はJavaScriptからのCookie読取りを防ぐXSS向けの対策であって,CSRF対策ではない。CSRFの主な対策はリクエストごとのトークン埋込み,SameSite属性の付与,Refererの確認である。属性名の混同を狙ったひっかけである。

この章の残り12問を解く

登録不要 ・ 採点と解説はその場 ・ 進捗は端末に保存

情報処理安全確保支援士(午前対策)の他の章

本ページの講義ノートと問題は、各試験の出題範囲に基づきAIが作成し、法令・基準に照らして別のAIレンズで敵対的に検証したものです(検証プロセス)。法改正等で誤りが見つかった場合は随時修正します。合格を保証するものではありません。