DigiCertが、現実の問題を解決するために、デジタルトラストの確立、管理、拡大をどのように支援しているかをご覧ください。
世界のIT・情報セキュリティリーダーたちが、デジタル技術の信頼性を欠いたセキュリティはセキュリティではないと考えている理由とは?
2023年8月15日よりCertCentralのサインインではユーザ名とパスワードのほかにワンタイムパスワード(OTP)もしくはクライアント証明書の二要素認証による提示が必要となりました。 設定等についてはこちらのKnowledgeを参照ください。
概要
Webアプリケーションの中には、外部からファイル名を指定して、そのファイルに対する閲覧や書き込みをする実装になっているものがあります。この際、ファイル名を巧妙に細工して指定することにより、本来読み書きを許可していないファイルを指定されてしまう場合があります。このような攻撃をディレクトリトラバーサル攻撃と言います。ディレクトリトラバーサル攻撃の結果、プログラムのソースファイルや個人情報ファイルの閲覧、ファイルの改ざん、不正なプログラムの設置による任意コードの実行などの可能性があります。
ディレクトリトラバーサル攻撃は、通常アクセスできないはずのサーバー内部のファイルを閲覧できるため不正アクセス禁止法に抵触する可能性が高いものです。このため、予め許可を得ている場合を除き、外部のサーバーでディレクトリトラバーサル攻撃を試すと、犯罪となる可能性が高く注意が必要です。攻撃のイメージと影響
以下のプログラム(PHP言語)断片は、tmplというクエリ文字列を指定して、テンプレートファイルを表示しています。<?php readfile('/var/data/' . $_GET['tmpl']); ?>
正常系の動作は、例えばtmpl=spring.htmlというクエリ文字列に対して、/var/data/spring.htmlというテンプレートファイルが表示されます。 一方、攻撃者がtmpl=../../../etc/passwdというクエリ文字列を指定した場合、このプログラムは、/var/data/../../../etc/passwdというファイルを表示しようとしますが、../は親ディレクトリを示すため、このファイル名を正規化した結果/etc/passwdというUnix/Linuxのユーザ情報を表示することになります。このようにして、攻撃者はWebサーバー上の非公開ファイルを閲覧し、場合によっては変更することができます。脆弱性による影響
この脆弱性による影響の例として下記があります。ディレクトリトラバーサル脆弱性の影響は、脆弱性のあるページに関係なく、Webサーバー上の任意のファイルに影響します。脆弱性の有無の確認方法
プログラムのソースコード上で、外部からファイル名を指定している箇所を調べて、適切な対策がとられているかを確認する方法が有効です。 ソースコードを確認できない場合、手動診断で脆弱性の有無を検証することもできます。この場合、独立行政法人情報処理推進機構(IPA)が公開している「安全なウェブサイトの作り方」別冊の「ウェブ健康診断仕様」に診断の方法が説明されており、参考になります。対策
ディレクトリトラバーサル脆弱性は、外部からファイル名を指定でき、かつそのファイル名に対するアクセス権限の確認をしていないことが原因です。このため、ファイル名を外部から指定できないようにするか、指定されたファイル名からディレクトリ名を取り除くことで対策できます。ディレクトリ名を取り除く処理はOSにより変わるため、自作せずに言語等に用意された標準的な関数(例えばPHPのbasename関数)を使うことをお勧めします。 なお、デジサートの「クラウド型WAF」では、ディレクトリトラバーサル攻撃からWebサイトが攻撃を受けるのを防ぐことができます。参考文献
安全なウェブサイトの作り方、ウェブ健康診断仕様(独立行政法人情報処理推進機構) https://www.ipa.go.jp/security/vuln/websecurity.html修正の上再掲しました。
© 2024 DigiCert, Inc. All rights reserved.
リーガルリポジトリ Webtrust 監査 利用条件 プライバシーポリシー アクセシビリティ Cookie 設定 プライバシーリクエストフォーム