「ImageMagick」の脆弱性、遠隔でのコード実行が可能に

ImageMagick」は、画像の閲覧、編集、形式変換に使用される、人気のソフトウェアです。2016年5月3日、セキュリティリサーチャーがこのオープンソースの画像処理ツールセットに存在する複数の脆弱性を公表しました。そのうちの1つは、攻撃者により遠隔から Webサイトの乗っ取りを可能にします。なお、ImageMagick の開発者は、これらの脆弱性を修復した更新版ソフトウェアを公開しています。

このツールセットは、PNG、JPEG-2000、GIF、TIFF、DPX、EXR、WebP、Postscript、PDF、SVG など200以上の形式の画像ファイルの読み込みおよび上書きが可能です。また、Webサイトを構築および管理する「Contents Management System(CMS)」では、Webコンテンツを公開する前の画像処理によくこのツールセットが利用されています。

脆弱性の1つ「CVE-2016-3714」は、サーバ上で遠隔からのコード実行を可能にします。これは、Webサーバへの侵入および Webサイトの乗っ取りに利用される恐れがあり、この脆弱性を突く攻撃が既に確認されています。他に、サーバから HTTP の GET要求の送信、ファイルの閲覧、移動および削除が可能になる脆弱性が報告されており、これらの脆弱性の「Proof-of-concept(PoC、概念実証型エクスプロイト。実際に有効な攻撃ができることを実証している攻撃コード)」がリサーチャーによって公開されています。

Trend Micro Deep Security」および「TippingPoint」をご利用のユーザは、これらの脆弱性を利用した攻撃から保護されています。

■ 脆弱性「CVE-2016-3714」の詳細

ImageMagick では、外部ライブラリによるファイルの処理が可能です。この機能は「delegate」と呼ばれます。入力ファイル名や出力ファイル名など実際のパラメータの値と、設定ファイル delegates.xml で指定されたコマンド文字列によって実行されます。既定の delegate のコマンドの1つが、以下の HTTPS要求の処理に利用されています。

<delegate decode=”https” command=””curl” -s -k -o “%o” “https:%M””/>

しかし、パラメータ 「%M」 に当てはめる入力値のフィルタリングが不十分なため、例えば「https://sample.com”|ls “-la」という値を渡してシェルコマンド「ls –la」を実行することが可能です。このコマンドが実行されると、「ls –la」コマンドと、一般的なコマンドラインである「wget」や「curl」も実行されます。そして出力は以下の様になります。

$ convert ‘https://sample.com”|ls “-la’ out.png
total 296
drwxr-xr-x 2 root root 4096 May 4 21:36 .
drwx—— 5 root root 12288 May 4 20:47 ..
-rw-r–r– 1 root root 481 May 4 19:27 Test.png
-rw-r–r– 1 root root 543 May 4 15:13 convertimage.php

 

■ ImageMagick の脆弱性の深刻度

ImageMagick の脆弱性には以下の 5つがあります。

  • CVE-2016-3714: 拡張子「svg」「mvg」ファイルのアップロードにより、サーバ上でのコマンドシェルの実行が遠隔で可能となります。
  • CVE-2016-3715: 「ephemeral:/」プロトコルを利用し、攻撃者は遠隔からサーバからファイルを削除できます。
  • CVE-2016-3716: 「msl:/」擬似プロトコルを利用し、攻撃者は遠隔からファイルを移動できます。
  • CVE-2016-3717: 「label:@」プロトコルを利用し、ファイル内容を閲覧できます。
  • CVE-2016-3718:サーバ要求の偽造。攻撃者は細工したファイルを利用し、サーバを不正なドメインへ接続させることができます。

弊社がこれらの脆弱性を解析した結果から、ImageMagick を利用している Webサーバを攻撃するための様々なツールが存在すると言えます。

■ 影響を受けるのは誰か

ImageMagick「6.9.3-10」「7.0.1-1」未満のバージョンを利用しているサーバは影響を受ける恐れがあります。共有ホスティングサーバ、または、ユーザにファイルのアップロードを許可しているサーバは、悪意のあるユーザによる不正なコードを含む画像のアップロードが容易なため、特に影響を受ける危険性があります。

■ Webサイトの脆弱性を確認する方法

コマンドラインで以下のコマンドを実行することによって、ご利用のサーバの脆弱性を確認できます。

  • “$ convert –version”: バージョンが 「7.0.1-1」または「6.9.3-10」以降でなければ、ご利用の Webサイトには脆弱性があるかもしれません。
  • “$ convert ‘https:”;echo It Is Vulnerable”‘ – 2>&-“: 出力が “It Is vulnerable”であれば、直ちに修正プログラムを適用してください。

■ 緩和策

サーバを保護するため、直ちに以下を実行するようサーバ管理者にお勧めします。

  1. 修正プログラムはすでに公開されています。最新のバージョンに更新することを推奨します。
  2. 画像ファイルが処理される前に、アップロードしたファイルの先頭数バイトが画像の種類に相応したマジックバイトで始まっていることを確認してください。これによりアップロードするファイルが実際に画像ファイルであり不正なファイルではないことを確認することができます。
  3. ポリシーファイル「policy.xml」に変更を加え ImageMagick の設定を変更してください。ImageMagick のグローバルポリシーは大抵 “/etc/ImageMagick”に存在します。詳細は、ImageMagick サポートフォーラムを参照してください。

 

■ トレンドマイクロの対策

サーバ向け総合セキュリティ製品「Trend Micro Deep Security(トレンドマイクロ ディープセキュリティ)」をご利用のお客様は、以下の DPIルールによって脆弱性を利用する脅威から保護されています。

  • 1007610 – Identified Usage Of ImageMagick Pseudo Protocols
  • 1007609 – ImageMagick Remote Code Execution Vulnerability (CVE-2016-3714)
  • 1007611 – ImageMagick Remote Code Execution Vulnerability (CVE-2016-3714) – 1

ネットワークセキュリティ対策製品「TippingPoint」では、2016年5月10日以降、以下の MainlineDVフィルタにより今回の脆弱性を利用した攻撃から保護します。

  • 24579: HTTP: ImageMagick MVG Various Delegate Command Usage
  • 24580: HTTP: ImageMagick MVG Various Delegate Command Usage
  • 24583: HTTP: ImageMagick MVG Delegate Command Injection Vulnerability
  • 24584: HTTP: ImageMagick SVG Delegate Command Injection Vulnerability

TippingPoint」はこれらの脆弱性対策として「Customer Shield Writer (CSW)」を公開しています。こちらの「Threat Management Center(TMC)」からダウンロードしてください。

 

参考記事:

翻訳:室賀 美和(Core Technology Marketing, TrendLabs)