Zip Slipとは
Zip Slipの概要を見ていきましょう。
Zipファイルを用いた、プログラムにおける脆弱性のこと
Zip Slipとは、Zipファイルを始めとしたアーカイブファイルの脆弱性のことです。この脆弱性を利用すると、攻撃対象のファイルを勝手に書き換えたり置き換えたりできるようになります。
特に、アプリケーションやシステムファイルなど、実行される可能性の高いファイルを置き換えられると危険です。悪意あるファイルに置き換えられたことに気づかずに、コードを実行してしまう可能性もあります。
ただし、Zip Slip は Zip ファイルに問題があるのではありません。さまざまな言語やソフトウェアの脆弱性に直接の原因があります。たとえば、JavaScriptやRubyなどでもこの脆弱性が見つかっています。あまりに広範囲に普及してしまった脆弱性であるため、修正が困難です。
ディレクトリトラバーサルの一形態
ディレクトリトラバーサルとは、不正な手段でファイルにアクセスするサイバー攻撃です。トラバーサルは「横断」という意味で、ディレクトリを跨いでファイルを攻撃することからディレクトリトラバーサルと言われます。
ディレクトリ(フォルダ)を指定するには、絶対パスと相対パスの2種類の方法があります。このうち、ディレクトリトラバーサルで使われるのは相対パスです。
プログラムに相対パスでファイルを指定すると、プログラムは受けた指示を処理します。この相対パスの処理過程にZip Slipがあり、それを悪用してファイルにアクセスするのがディレクトリトラバーサルです。
Zip Slipを利用した攻撃の仕組み
では、Zip Slipを利用した攻撃の仕組みを見ていきましょう。
始めに、攻撃者はZipファイルの中に逸脱するファイルを格納します。ここでは、その逸脱するファイルをファイルXとしましょう。
ファイルXを格納したZipファイルを攻撃対象のディレクトリにアップロードし展開します。すると、ファイルXは本来の展開場所よりも上の階層に展開される(逸脱する)のです。こうすることで、ファイルXは別のファイルを上書き(攻撃)できます。
このとき、ファイルXには「../」というパスが使われます。これは相対パスに使うもので、現在の階層より1つ上の階層を示す記号です。この記号で、本来の抽出場所とは別の位置を指定できるのです。
攻撃したい場所が明確であればそれを指定できますが、そうでなくても大量に「../」を使えば総当たり的に攻撃することが可能です。
Zip Slipを利用した攻撃への対処法
Zip Slipの脅威を防ぐには、どのような対策をすればよいのでしょうか。
ソフトウェアアップデートを行う
Zip Slipは多くのソフトウェアの脆弱性として存在します。しかし、それらはソフトウェアのアップデートを行うことで解消します。
2018年6月5日にZip Slipの情報が公開されてから、Zip Slipの影響を受けるソフトウェアベンダーがアップデートを配布してきました。すでにほとんどのベンダーが対応を終えていると言います。
どのソフトウェアが影響を受け修正されたのかは、セキュリティ会社 Snykがリストを発表しているため、そちらを確認しましょう。
このように、Zip Slipはほかの脆弱性と同様、ソフトウェアアップデートで解消します。普段からセキュリティを意識し、こまめにアップデートを行っているのであれば、特別な心配は必要ありません。
脆弱性診断を行う
利用しているソフトウェアに脆弱性が残っていないか心配な場合は、脆弱性診断を行いましょう。
脆弱性診断はその名のとおり、ソフトウェアに脆弱性がないかチェックする作業です。ソフトウェア開発会社やセキュリティソフトベンダーが提供しているため、それを利用しましょう。
具体的には、プログラムによる自動テストや、エンジニアによる手動テストがあります。サービスによっては、診断結果をもとにセキュリティ対策を提案してもらえることもあります。Zip Slipに限らず、自社のソフトウェアの安全性を高める有効な手段として知っておきましょう。
Zip Slipについて理解し、セキュリティへの意識を高めよう
Zip Slipとは、Zipなどのアーカイブファイルの処理過程に存在する脆弱性のことです。サイバー攻撃の1つであるディレクトリトラバーサルに悪用されます。
アーカイブファイルは中身を展開する位置を自由に設定できます。相対パスで位置指定を行うことで、本来はアクセスできない場所にファイルを展開可能です。
ソフトアップデートや脆弱性診断で対処できます。以上を踏まえ、セキュリティの見直しを行いましょう。