こちらの記事は、セキュリティ専門家の松野によるニュース解説ラジオ「今日の10分セキュリティラジオ」の放送内容を文字に起こしご紹介しています。
独立行政法人情報処理推進機構(IPA)および一般社団法人JPCERT コーディネーションセンター(JPCERT/CC)は8月5日、muhttpdにおけるディレクトリトラバーサルの脆弱性について「Japan Vulnerability Notes(JVN)」で発表した。(記事はこちら)
【お届けするニュースはサイバーセキュリティ専門ニュースサイト「ScanNetSecurity」の提供でお送りしています。】ルータなどで使われているプログラムに脆弱性があり、機器に保存されている機密情報が漏洩する可能性があるということです。発見された脆弱性の内容と、その対策について説明します。
ホームルータなどで採用されているWebサーバmuhttpdに、ディレクトリトラバーサルの脆弱性が発見されました。CVE番号は「CVE-2022-31793」です。脆弱性が存在するのは、バージョン1.1.5およびそれ以前のmuhttpdです。脆弱なバージョンのmuhttpdが動作する機器にアクセス可能な第三者から特別に細工されたHTTPリクエストを送信されることで、機器内の任意のファイルを窃取される可能性があります。また、当該機器がリモート管理可能な状態となっている場合、本脆弱性は遠隔からの攻撃が可能になるということです。
JVNは、当該機器のベンダが提供する情報を注視し、最新のファームウェアバージョンにアップデートするよう呼びかけています。
ディレクトリトラバーサルとは、攻撃者が特定の文字列を挿入することにより、意図しないシステム内のファイルが閲覧できてしまう脆弱性です。Webサイトでディレクトリトラバーサルが発生した場合、公開コンテンツではないシステム情報が閲覧されてしまう可能性があります。
例えば、Aさんが2階建ての家に住んでいたとします。1階は来客用のリビングルームですが、2階はAさんの寝室なので、自分しか入れないようドアに鍵をかけていました。しかし、1階の勝手口には非常階段があり、そこからベランダを経由して、Aさんの寝室に入ることができたとします。本来であれば、ベランダの窓に鍵をかける必要がありましたが、Aさんが鍵をかけ忘れていたため、寝室にあるプライベートな情報が誰でも見られる状態になってしまいました。
この、非常階段からベランダに上がり、窓に鍵がかかっておらず、Aさんのプライベート情報が見えてしまう状態が、ディレクトリトラバーサルの脆弱性と言えます。どういうことかというと、システムでは公開していい情報を、通常はディレクトリ単位でまとめて管理しています。ディレクトリは先ほどのたとえで言う部屋のようなもので、プログラムが正しく書かれていれば、非公開のディレクトリにアクセスすることはできません。
しかし、ディレクトリトラバーサルの脆弱性があった場合に、公開ディレクトリを経由して、非公開ディレクトリのファイルへアクセスできてしまうことがあります。
ディレクトリトラバーサルの対策として、外部から任意のファイルを指定できないように、プログラムで対策する必要があります。いくつかの方法がありますので、できるだけわかりやすく説明します。
先ほどのたとえ話で言うと、Aさんの家には2つの脆弱性がありました。1つは非常階段で、もう1つはベランダの窓です。ディレクトリトラバーサルでも同様で、それぞれの問題に対策することが必要です。
公開ディレクトリから非公開ディレクトリへアクセスできないようにする対策として、外部から特定のファイル名を指定する実装を避けることが挙げられます。Webアプリケーションで特定のファイルへアクセスさせる際に、URLのパラメタなどで外部からファイル名を指定させる実装が本当に必要か、精査することが必要です。先ほどの例では、非常階段をなくす対策に該当します。
もし、ファイル名を外部から指定させる必要がある場合は、ディレクトリ名が含まれる際に削除することが挙げられます。公開ディレクトリに対して、一つ上位のディレクトリを指定する記号や、別のディレクトリを指定するために必要な記号に対して、削除してエラーとするか、ファイル名だけを抽出する関数を利用することが必要です。先ほどの例では、ベランダの窓に鍵をかける対策に該当します。
今回は、ディレクトリトラバーサルの内容と、その対策についてお届けしました。
今日の10分セキュリティラジオにて毎週月・水・金にセキュリティの最新ニュースを取り上げ解説を行っています。隙間の時間の情報収集にぜひお役立てください!
お見積り・ご相談など、お気軽にご相談ください
サイトTOPへ