検査手法
この脆弱性の検査は、非常に簡単だ。脆弱性の原因によって若干方法は異なるが、いずれも問題となるURLに対してブラウザからアクセスできるかどうかを確認するだけでよい。データの保存場所に起因する場合は、ブラウザから直接保存場所にアクセスできるかどうかで確認する。
たとえば、検査対象ホスト名が「www.example.com」、データの保存場所がウェブサーバのドキュメントルート上のディレクトリ「/data/」であり、そのファイルが「user.csv」である場合、以下のようなURLに対してブラウザでアクセスし、閲覧可能かどうかで判断する。
http://www.example.com/data/user.csv
閲覧が可能な場合は、この脆弱性が存在する。
一方、セッション管理の問題に起因する場合は、ログインしていない状態で、ログイン後の画面にアクセスする。その結果、正常にアクセス可能であれば、この脆弱性が存在すると判断できる。
対策
データの保存場所に起因する場合の対策は、外部からアクセスできる場所であるウェブサーバのドキュメントルート上に機密情報を格納しないことだ。レンタルスペースなどで、ドキュメントルート上以外にファイルを保存できない場合、該当ファイルにブラウザでアクセスできないようにアクセス制御を行う。
たとえば、Apacheの場合、「.htaccess」ファイルにて設定を行うことで制御することが可能だ。
一時ファイルからシステム内部の情報が漏えいする危険性があるため、長期間保存する必要があるファイルだけでなく、一時ファイルの保存場所についても、外部からアクセスできない場所にしておく必要がある。
セッション管理の問題に起因する場合の対策では、ログインしているかどうか全てのページで確認を行い、ログインしていない場合、ログインを促すページに転送するなどを行う。
今回は、情報漏えいにつながる可能性の高い脆弱性について説明した。次回は、セッション管理に起因する脆弱性について紹介する。