目次
はじめに
今回も、応用情報技術者試験の過去問を解いていきます。
今回のテーマは、WAF(Web Application Firewall)です。
セキュリティ対策には、WAF、ファイアウォール、DNSSEC、メールサーバのセキュリティ対策など、さまざまなものがあります。
名前だけを一つずつ暗記すると混乱しやすいので、今回は、
「どんなサービス・サーバを守るのか」
→「どんな攻撃を受けるのか」
→「何を使って防御するのか」
という関係を意識しながら整理していきます。
今回はその中でも、WAFが守る対象は何か をしっかり押さえていきましょう。
問題
問41
WAFによる防御が有効な攻撃として、最も適切なものはどれか。
| 選択肢 | 内容 |
|---|---|
| ア | DNSサーバに対するDNSキャッシュポイズニング |
| イ | REST APIサービスに対するAPIの脆弱性を狙った攻撃 |
| ウ | SMTPサーバの第三者不正中継の脆弱性を悪用したフィッシングメールの配信 |
| エ | 電子メールサービスに対する大量、かつ、サイズの大きな電子メールの配信 |
解答
イ
REST APIサービスに対するAPIの脆弱性を狙った攻撃
解説
この問題を解くポイントは、
「WAFは何を守る仕組みなのか」
を理解することです。
WAF(Web Application Firewall)は、その名前のとおり、主にWebアプリケーションを保護するための仕組みです。
Webアプリケーションに対するHTTP/HTTPS通信の内容を検査し、攻撃と判断した通信を遮断します。
代表的なものとして、
- SQLインジェクション
- クロスサイトスクリプティング(XSS)
- OSコマンドインジェクション
- ディレクトリトラバーサル
など、Webアプリケーションの脆弱性を悪用する攻撃への対策として利用されます。
WAFは脆弱性そのものを修正するものではなく、脆弱性を悪用しようとする攻撃通信を検知・遮断する防御策の一つと考えると分かりやすいでしょう。
REST APIとは
今回の問題で少し分かりにくいのが、選択肢イのREST APIです。
APIとは、簡単に言えば、
「プログラムから別のシステムの機能やデータを利用するための窓口」
です。
例えば、スマートフォンのアプリで商品情報を表示するとします。
スマートフォンアプリ
↓
REST API
↓
Webアプリケーション
↓
データベース
アプリから直接データベースを操作するのではなく、APIに対して、
「商品100番の情報をください」
と要求し、APIが結果を返す、といった使い方をします。
REST APIでは、一般にHTTP/HTTPSを利用し、
| HTTPメソッド | 主な意味 |
| GET | データを取得する |
| POST | データを登録する |
| PUT / PATCH | データを更新する |
| DELETE | データを削除する |
といった形で操作します。
つまりREST APIも、Webの仕組みを利用して提供されるAPIです。
そのため、REST APIへのHTTP/HTTPSリクエストに含まれる攻撃パターンなどをWAFで検査し、遮断することができます。
したがって、今回の正解はイとなります。
ただし、ここには注意点があります。
「REST APIなら、どんな攻撃でもWAFで防げる」という意味ではありません。
APIには認証・認可の不備やビジネスロジックの問題など、アプリケーション側で適切に対策しなければならない脆弱性も存在します。
例えばOWASP API Security Top 10では、他人のデータにアクセスできてしまう「Broken Object Level Authorization」などが主要なAPIリスクとして挙げられています。このような認可チェックは、基本的にアプリケーション側で適切に実装する必要があります。
したがって、
WAF=APIを完全に守ってくれるもの
ではなく、
WAF=WebアプリやAPIに対する攻撃通信を検知・遮断する防御策の一つ
と理解しておきましょう。
各選択肢の解説
ア:DNSサーバに対するDNSキャッシュポイズニング
不正解です。
DNSは、
example.com
↓
192.0.2.1
のように、ドメイン名とIPアドレスを対応付ける「名前解決」を行う仕組みです。
DNSキャッシュポイズニングは、DNSキャッシュサーバに偽のDNS情報を記憶させ、利用者を本来とは異なるサーバへ誘導する攻撃です。
これはWebアプリケーションへのHTTP通信を狙った攻撃ではないため、WAFの主な防御対象ではありません。
対策としては、DNS応答の出所やデータの完全性を電子署名によって検証するDNSSECや、DNSサーバの適切な設定・更新などがあります。
イ:REST APIサービスに対するAPIの脆弱性を狙った攻撃
正解です。
REST APIは一般にHTTP/HTTPSを利用するため、Webアプリケーションと同様にWAFによってリクエストを検査できます。
例えば、不正な入力値や既知の攻撃パターンを含むリクエストなどを検知・遮断する用途でWAFを利用できます。
ただし前述したとおり、APIの認証・認可などについてはWAFだけに頼ることはできません。
OWASPでも、認証の不備、オブジェクト単位・機能単位の認可不備、リソース消費など、APIにはさまざまなセキュリティリスクがあることが整理されています。
ウ:SMTPサーバの第三者不正中継の脆弱性を悪用したフィッシングメールの配信
不正解です。
SMTPは、電子メールを送信・転送するために使用されるプロトコルです。
第三者不正中継とは、本来許可されていない第三者にSMTPサーバを利用され、別の宛先へメールを中継されてしまう状態です。
これはWebアプリケーションではなく、メールサーバ側の問題です。
そのため、
- SMTP認証
- 中継を許可する利用者・送信元の制限
- メールサーバの適切な設定
などによって対策します。
WAFの主な防御対象ではありません。
エ:電子メールサービスに対する大量、かつ、サイズの大きな電子メールの配信
不正解です。
大量のメールや非常に大きなメールを送り付けることで、メールサーバの、
- ネットワーク帯域
- ストレージ
- CPUなどの処理能力
といった資源を消費させ、サービスを妨害する攻撃が考えられます。
いわゆるメール爆弾(メールボム)に相当する攻撃です。
対策としては、
- メールサイズの制限
- 接続数・配送数の制限
- メールボックス容量の制限
- 不審な送信元からのメールの制御
などが考えられます。
これもWebアプリケーションへの攻撃ではないため、WAFが中心となる対策ではありません。
問題の用語解説
WAF(Web Application Firewall)
WAFは、WebアプリケーションへのHTTP/HTTPS通信を検査し、攻撃通信を検知・遮断するための仕組みです。
通常のファイアウォールとの違いを簡単に整理すると、次のようになります。
| 項目 | 従来型ファイアウォール | WAF |
| 主な保護対象 | ネットワーク・サーバへの通信 | Webアプリケーション |
| 主に確認するもの | IPアドレス、ポート番号、プロトコルなど | HTTP/HTTPSのリクエストなど |
| 代表的な役割 | 不要な通信を遮断 | Webアプリへの攻撃通信を検知・遮断 |
| 攻撃例 | 許可していないポートへの通信など | SQLインジェクション、XSSなど |
※現在のファイアウォールにはアプリケーションレベルまで解析できる製品もあるため、上表は試験対策としての基本的な整理です。
イメージすると、
インターネット
│
▼
┌─────────────┐
│ ファイアウォール │
│ IP・ポートなど │
└─────────────┘
│
▼
┌─────────────┐
│ WAF │
│ HTTP通信を検査 │
└─────────────┘
│
▼
┌─────────────┐
│ Webアプリケーション│
└─────────────┘
という関係です。
サーバ・攻撃・防御の関係を整理する
今回の問題は、選択肢を個別に暗記するよりも、
「何を守るのか → 何に攻撃されるのか → どう守るのか」
という形で整理すると理解しやすくなります。
| 対象となるサービス・サーバ | 主な役割 | 今回登場した攻撃 | 主な対策 |
| Webアプリ・REST API | WebサービスやAPIを提供 | Web/APIの脆弱性を狙う攻撃 | WAF、安全なアプリケーション実装 |
| DNSサーバ | ドメイン名の名前解決 | DNSキャッシュポイズニング | DNSSEC、DNSサーバの適切な設定 |
| SMTPサーバ | メールの送信・転送 | 第三者不正中継 | SMTP認証、中継制限 |
| メールサービス | メールの送受信・保存 | 大量・大容量メールによる妨害 | サイズ制限、配送数制限など |
この表を、
Web・API
↓
Webへの攻撃
↓
WAF
DNS
↓
DNSキャッシュポイズニング
↓
DNSSECなど
メール送信
↓
第三者不正中継
↓
SMTP認証・中継制限
という形で覚えておくと、似た問題にも対応しやすくなります。
体系的位置づけ
今回の問題は、
テクノロジ系 → セキュリティ → 情報セキュリティ対策
に位置付けられる問題です。
関連する技術として、
- ファイアウォール
- WAF
- IDS / IPS
- UTM
- DNSSEC
- SMTP認証
- DoS / DDoS対策
などがあります。
これらを単独の用語として暗記するより、
守る対象
↓
想定される攻撃
↓
防御する仕組み
という関係で整理するのがおすすめです。
今回の問題の重要ポイント
今回最も重要なのは、
WAFの「W」はWebのW
という点です。
WAF
↓
Web Application Firewall
↓
Webアプリケーションを守る
↓
HTTP/HTTPS通信を検査する
ここまで結び付けられれば、今回の選択肢はかなり絞り込めます。
| 選択肢 | 攻撃対象 | WAFとの相性 | 判定 |
| ア | DNS | × | 不正解 |
| イ | REST API | ○ | 正解 |
| ウ | SMTP | × | 不正解 |
| エ | 電子メール | × | 不正解 |
つまり今回の問題では、
「どんな攻撃なのか」を細かく分析する前に、「何に対する攻撃なのか」を見る
ことがポイントです。
REST APIはHTTP/HTTPSを利用するWeb系のサービスである。
だから、4択の中ではWAFによる防御が最も適している。
この流れで判断できます。
まとめ
今回の正解は、
イ:REST APIサービスに対するAPIの脆弱性を狙った攻撃
です。
WAFは、WebアプリケーションやWeb APIへのHTTP/HTTPS通信を検査し、攻撃通信を検知・遮断するための仕組みです。
ただし、WAFを導入すればWebアプリケーションやAPIの脆弱性がなくなるわけではありません。
特にAPIでは、認証・認可などアプリケーション側で適切に実装しなければならないセキュリティ対策も重要です。OWASP API Security Top 10でも、認証・認可をはじめとする複数のAPI固有のリスクが整理されています。
試験対策としては、
「サーバ・サービス → 攻撃 → 防御策」
という3点セットで整理しておきましょう。
Web・REST API → Webへの攻撃 → WAF
DNS → キャッシュポイズニング → DNSSECなど
SMTP → 第三者不正中継 → SMTP認証・中継制限
メールサービス → メール爆弾 → サイズ・配送数などの制限
このように「どこが攻撃されているのか」を最初に確認すると、WAF以外のセキュリティ問題にも応用できます。

コメント