【セキュリティ】ディレクトリ・トラバーサルとは

セキュリティ

みなさんこんにちは。ちょいまけです。
今回は「ディレクトリ・トラバーサル」について説明します。

ディレクトリ・トラバーサルという用語、聞いたことありますか?

僕は正直あんまり無いです。普段の生活でも開発中でも、ほとんど意識したことはなかったと思います。

ただこのディレクトリ・トラバーサル、発生するとかなり恐ろしい被害が発生します。

せっかくなので、この機会にディレクトリ・トラバーサルがどんな脆弱性なのか、さっくり勉強しましょう。

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

ディレクトリ・トラバーサルとは、Webアプリが本来表示することを想定していないファイルやディレクトリを不正に閲覧、改竄、削除する攻撃または脆弱性のことです。

この攻撃を許すと

  • Webサーバー上のファイルから重要情報の流出
  • アプリのコンテンツ改竄によるデマ
  • スクリプト改竄によるサービスの停止

などの被害が発生します。

ディレクトリ・トラバーサルの事案例

トレンドマイクロ

2019年4月4日にトレンドマイクロからディレクトリ・トラバーサルによる脆弱性が発表されています。

トレンドマイクロ: ディレクトリトラバーサルの脆弱性(CVE-2019-9489)についてより

ディレクトリ・トラバーサル脆弱性によりサーバー上の任意のファイルが変更される可能性がありました。

開発者としてはこの危険性を理解し、早急な修正プログラムの適応をする必要があるでしょう。

対策

外部から異なるディレクトリを指定できることに対する対策が必要になります。

外部からファイル名を指定できる仕様にしない

外部からアクセスできるファイルを固定にするなどして、他のファイルにはアクセスできないようにするとディレクトリ・トラバーサルは発生しません。

外部から渡されるファイル名にディレクトリ名を含めないようにする

ディレクトリ・トラバーサルは\などの記号を利用して、サーバー内のファイルへのアクセスを試みます。そのアクセス方法をプログラム側で弾いてしまえばディレクトリ・トラバーサルを回避できます。

外部から指定できるファイル名を英数字に限定する

\の記号の使用を回避できれば良いので、ファイル名の指定を英数字限定にすることでディレクトリ・トラバーサルを防ぐことができます。

さいごに: 開発者的にうっかりしがち

今どきのフレームワークを使ってれば基本発生しない脆弱性のような気もしますが、あのトレンドマイクロが何回か発生させてる脆弱性なので完全に知らないままではいけないですね。

うっかりこんな脆弱性を作らないようにしましょう。

今回は以上です。
最後まで読んでいただきまして、ありがとうございました。

コメント

タイトルとURLをコピーしました