HTTPリクエストヘッダーから推測できる攻撃|情報処理安全確保支援士 令和4年 春期午前Ⅱ試験 問1
出典:令和4年春期 午前Ⅱ 問1
分野:セキュリティ / 情報セキュリティ
Webサーバのログを分析したところ,Webサーバへの攻撃と思われるHTTPリクエストヘッダーが記録されていた。次のHTTPリクエストヘッダーから推測できる,攻撃者が悪用しようとしていた可能性が高い脆弱性はどれか。ここで,HTTPリクエストヘッダー中の"%20"は空白を意味する。
〔HTTPリクエストヘッダーの一部〕
GET /cgi-bin/submit.cgi?user=;cat%20/etc/passwd HTTP/1.1
Accept: */*
Accept-Language: ja
UA-CPU: x86
Accept-Encoding: gzip,deflate
User-Agent: (省略)
Host: test.example.com
Connection: Keep-Alive
〔HTTPリクエストヘッダーの一部〕
GET /cgi-bin/submit.cgi?user=;cat%20/etc/passwd HTTP/1.1
Accept: */*
Accept-Language: ja
UA-CPU: x86
Accept-Encoding: gzip,deflate
User-Agent: (省略)
Host: test.example.com
Connection: Keep-Alive
- ア:HTTPヘッダーインジェクション(HTTP Response Splitting)
- イ:OSコマンドインジェクション
- ウ:SQLインジェクション
- エ:クロスサイトスクリプティング
TSUNAGARU-ADVICE
まず押さえたいこと
OSコマンドインジェクションは、Webアプリケーションに渡された入力値が、OSコマンドの一部として実行されてしまう脆弱性です。この例では、;cat /etc/passwdというOSコマンド実行を狙った文字列が含まれています。
迷ったときの判断軸
「;」はコマンドを区切るために使われることがあり、「cat /etc/passwd」はUNIX系OSでパスワード関連ファイルを表示しようとする典型的な攻撃例です。SQL文・HTMLスクリプト・HTTPヘッダーの改ざんではなく、OS上のコマンドを実行させようとしている点に注目すると判断できます。
科目Bにつなげるために
科目Bでは、攻撃文字列から脆弱性の種類を推定する問題が出ることがあります。入力値がSQLに渡されるならSQLインジェクション、画面に出力されるならXSS、OSコマンドに渡されるならOSコマンドインジェクションというように、入力値が最終的にどこで解釈されるかを確認しましょう。
投資利益率は、利益の増加額 ÷ 投資額で求めます。
利用期間は5年なので、運用費と削減される業務費は5年分で計算します。投資額は初期費用 + 5年分の運用費、利益の増加額は5年分の削減業務費 - 投資額です。
各案の投資利益率は、次のようになります。
A:投資額 = 30 + 4 × 5 = 50、利益の増加額 = 20 × 5 - 50 = 50、投資利益率 = 50 ÷ 50 = 1.00
B:投資額 = 20 + 6 × 5 = 50、利益の増加額 = 20 × 5 - 50 = 50、投資利益率 = 50 ÷ 50 = 1.00
C:投資額 = 20 + 4 × 5 = 40、利益の増加額 = 15 × 5 - 40 = 35、投資利益率 = 35 ÷ 40 = 0.875
D:投資額 = 15 + 5 × 5 = 40、利益の増加額 = 22 × 5 = 40 = 70、投資利益率 = 70 ÷ 40 = 1.75
最も投資利益率が高いのはDです。
したがって、エが適切です。
❌他選択肢が誤りの理由ア:A
⇒Aの投資利益率は1.00です。利益の増加額は50百万円ですが、Dの投資利益率1.75より低いため、最も高い案ではありません。
イ:B
⇒Bの投資利益率は1.00です。Aと同じ投資利益率ですが、Dより低いため、最も投資利益率が高い案ではありません。
ウ:C
⇒Cの投資利益率は0.875です。投資額は40百万円と比較的小さいものの、5年分の削減業務費が75百万円にとどまるため、Dより投資利益率は低くなります。