バッファオーバーフローとディレクトリトラバーサル
前パートまでは、おもにエンドユーザーに対する攻撃を紹介してきた。後半は、こうしたエンドユーザーに対する攻撃の原因ともなるWebサーバやアプリケーションに対する攻撃を見ていこう。
まず「バッファオーバーフロー攻撃」は、攻撃者が脆弱性のあるWebページのフォームに長大な文字列などのデータを送信し、意図的にプログラムの動作を停止させたり、管理者権限を奪う攻撃方法である。「バッファオーバーラン」ともいう。
あらかじめプログラムで確保しているメモリ領域(バッファ)のサイズを超えてデータが入力されると、その領域だけではデータが格納できなくなりあふれ出てしまう。これがバッファオーバーフローである。バッファオーバーフローが発生すると、そのプログラムのアクセス権限でWebサーバを操作することができてしまう。
たいていの場合、Webサーバのプログラムは管理者権限で動作している。そのため、管理者権限を攻撃者に奪われてしまう可能性がある。
一方、「ディレクトリトラバーサル」は、相対パス記法を利用して、管理者やユーザーの想定しているのとは別のディレクトリのファイルを指定するソフトウェアの攻撃方法である。こちらは「パストラバーサル」ともいう。
通常、パスを移動させるためには「絶対パス記法」と「相対パス記法」※5とがある。しかし、攻撃者が脆弱性の残ったWebページの入力フィールドに相対パス記法の上位ディレクトリを表わす「../」を含んだデータを入力すると、意図しないファイルを読み出したり、書き込んだりすることが可能になってしまう(図5)。
※5:絶対パス記法と相対パス記法 絶対パス記法の場合、カレントドライブからの指定となるので「/root/b/v」。相対パス記法ではカレントパスからになるので、上位ディレクトリを表わす「..//」を用いて、「../../b/v」とする。
こうしたWebサーバやOSの防御としては、ベンダーが提供しているセキュリティパッチを確実に当てることが挙げられる。加えてバッファオーバーフロー対策としてはプログラム内のメモリ領域管理を見直す。ディレクトリトラバーサル対策としては、入力値に上位ディレクトリを表わす「../」やパス名が含まれているかどうかチェックし、アクセス制限をかける。
データベースを狙うSQLインジェクション
ここまで紹介してきたのは、おもにWebサーバの設定ミスやOSの脆弱性を突く攻撃であった。しかし、昨今はWebアプリケーションやその背後で動作するデータベースの脆弱性を狙った攻撃が増えている。
SQLインジェクションは、攻撃者がWebページのフォームの入力フィールドにSQLで特別な意味を持つ記号や単語を埋め込み、開発者が意図していない命令をデータベースサーバに実行させる攻撃方法である(図6)。インジェクションとは「注入」を意味し、SQLに不正なSQLを注入することを表わしている。これによりデータベースの情報を参照され、機密情報や個人情報が漏えいしてしまう。また、データベース情報の消去・改ざんにより、データの完全性が失われたり、データベースが停止し、最悪サービスが提供できなくなる危険性もある。
SQLインジェクションの手法として、攻撃者がWebページのフォームの入力フィールドに故意にデータベースサーバにエラーを発生させるように入力を行ない、そのエラーメッセージの内容から機密情報を盗み出す手口もある。攻撃者がデータベースサーバにエラーを発生させるため、HTTPリクエストとともにSQLクエリをWebサーバに送信する。この結果、出力されたエラーメッセージから、たとえば「user1@test.jp」などのメールアドレスが取得できるわけだ。さらに大量のHTTPリクエストを送信するツールを使用すれば、データを短期間に大量に不正取得することが可能になる。
同様の手口として、Webサーバに対して不正なOSコマンドを発行させる「OSコマンドインジェクション」という手法もある。
(次ページ、「クロスサイトスクリプティング」に続く)

この連載の記事
-
第11回
TECH
正規のユーザーやPCを判断する認証製品 -
第10回
TECH
社内の安全を守るセキュリティ製品の進化を知ろう -
第9回
TECH
検疫からシンクライアントまで!情報漏えいを防ぐ製品 -
第8回
TECH
ITでどこまで実現する?情報漏えい対策の基礎 -
第7回
TECH
インターネットで構築するVPNの仕組み -
第6回
TECH
通信サービスを安価にしたVPNの秘密 -
第5回
TECH
メールソフトのセキュリティとメールの認証 -
第4回
TECH
メールが抱える根本的な弱点とスパム対策 -
第2回
TECH
巧妙化する不正プログラムを防ぐには? -
第1回
TECH
不正アクセスを防ぐファイアウォールの仕組み - この連載の一覧へ