情報処理安全確保支援士 - SE娘の剣 -

左門至峰による情報処理安全確保支援士試験に合格するためのサイトです。 過去問を引用しながら、試験に出る基礎知識を体系的かつ詳細に整理します。

メールヘッダインジェクション攻撃

1.攻撃概要

具体的な攻撃事例を紹介します。たとえば、店舗が以下の問い合わせフォームを用意していたとします。利用者が名前やメールアドレス、タイトルなどを入れると、右のメールが店舗に自動送信されます。
ではここで、問い合わせフォームのタイトルに、改行コードである%0D%0Aを加え、「お買い得%0D%0ABcc:

メールヘッダ
MIME-Version: 1.0
Message-ID: <xxx@mail.gmail.com>
Subject: お買い得
**Bcc:<user1@ example.com>**
From: <malware@gmail.dom>
To: <support@shop.dom>
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: base64

名前:お買い得ショップ
問い合わせ:以下、お買い得情報をお知らせします。是非リンクをクリックしてね
      ・・・・・

攻撃者は、BCCにSPAMメール送りたい宛先を入れ、このようなフォームを踏み台にしてSPAMメールを送信できます。

2.対策

情報処理安全確保支援士の過去問(R3春午後1問1)をもとに整理します。

 参考までに、表1の「メールヘッダインジェクション」に関するその他の対策を解説します。
①メールヘッダを固定値にする
 メールヘッダを固定値にすれば、メールヘッダインジェクションにより、不正なコードを入力することができません。
②外部からの入力を適切に処理する
 メール送信用APIを使用するインジェクションを引き起こすような文字がないかをチェックする安全なAPI(=プログラム、と考えましょう!)を用意し,そのAPIを用いてメール送信処理を行います。
③外部からの入力の全てについて、改行コードを削除する
 改行コードを削除することで、攻撃者のよる不正な処理を防ぎます。具体的な攻撃例は先に述べたようなBccを自由に設定するような攻撃です。

ディレクトリトラバーサル

1.絶対パスと相対パス

過去問(H25年秋FE午後問11)では、絶対パスと相対パスに関して、以下の記載があります。
「パスは,木構造をもつファイルシステムにおいてディレクトリを特定するために利用される文字列であり,ディレクトリの名前を“/”で区切って並べて表す。“/”で始まるパスを絶対パスという。絶対パスはルートディレクトリを起点として表したパスである。“/”で始まらないパスを相対パスという。相対パスは任意のノードを起点として表したパスである。」

相対パスは、現在の場所を起点としてファイルの場所を示す書き方です。
たとえば、status.cgiの場所を示す絶対パスが以下とします。

http://192.168.0.1/images/status.cgi  

現在、imagesフォルダにいる場合、status.cgiの相対パスは以下です。

./status.cgi&nbsp;

1.ディレクトリトラバーサルとは

トラバーサル(traversal)とは「横断」という意味である。
横断歩道は、本来は車のために縦方向にある流れを歩行者のために横に断ち切る。ディレクトリトラバーサルも同様で、横断的にファイルにアクセスする。

具体例で見てみましょう。以下のディレクトリ構造を見てください。
例えば、htmlディレクトリは公開していいファイル、secretディレクトリは非公開のファイルが格納されているとします。
directory-traversal

また、現在のディレクトリが上記のhtmlだったとします。
ここで、相対パスとして「../../secret/secret.txt」を指定します。「../」は、上位のディレクトリを意味する文字列です。
こうすると、非公開のファイルであるsecret.txtファイルにアクセスすることができるのです(ただし、アクセス権が許可されている場合)。

過去問(H27秋AP)では、「入力文字列からアクセスするファイル名を組み立てるアプリケーションに対して,攻撃者が,上位のディレクトリを意味する文字列を入力して,非公開のファイルにアクセスする。」とあります。
情報セキュリティスペシャリスト試験を目指す女性SE


「入力文字列からアクセスするファイル名を組み立てるアプリケーションに対して」ってどういう意味ですか?

IPAの以下の資料の「ディレクトリトラバーサル攻撃 」の部分が参考になります。https://www.ipa.go.jp/security/awareness/vendor/programmingv1/b07_07.html

以下のサイトがかなり重要。他にもたくさん大切なページがある
http://www.ipa.go.jp/security/vuln/vuln_contents/dt.html

では、過去問を見てみよう。

過去問(H24FE春 午前問45)
問45 ディレクトリトラバーサル攻撃に該当するものはどれか。
ア Webアプリケーションの入力データとしてデータベースへの命令文を構成するデータを入力し,想定外のSQL文を実行させる。
イ Webサイトに利用者を誘導した上で,Webサイトの入力データ処理の欠陥を悪用し,利用者のブラウザで悪意のあるスクリプトを実行させる。
ウ 管理者が意図していないパスでサーバ内のファイルを指定することによって,本来は許されないファイルを不正に閲覧する。
エ セッションIDによってセッションが管理されるとき,ログイン中の利用者のセッションIDを不正に取得し,その利用者になりすましてサーバにアクセスする。






正解はウである。
もう一問。これの正解は「ディレクトリトラバーサル」であるが、以下を見ると、どのように不正な操作をするのかが分かると思う。

過去問(H22SC春午後Ⅱ問2設問3(1))
[ ]に入れる適切な字句を15字以内で答えよ
20231007010151
 図5 5021番の脅威と判定したパケットに含まれていた文字列

パケットに含まれる文字列からすると、CGIプログラムに含まれる[  ]の脆弱性を利用して、パスワードファイルを取得することをねらったもののようです。

有名な事件として、2003年に、某協会のホームページから個人情報1184人分が流出した。
http://www.itmedia.co.jp/enterprise/0401/23/epn14.html

原因は、サイト側の脆弱性ではあったが、そこをついて情報を公開した大学の研究者は、不正アクセス禁止法で逮捕されることになった様子。