ImageMagick脆弱性暫定対応(CVE-2016-3714)

HOMEリナックスマスター.JP 公式ブログLinux情報・技術・セキュリティ > ImageMagick脆弱性暫定対応(CVE-2016-3714)

無料Linux入門マニュアル無料ダウンロード

今だけ2,200円のLinux入門PDFマニュアルが【数量限定】で無料ダウンロードできます。
Linux入門マニュアル無料ダウンロードはこちらをクリック

G.W中に「ImageMagick」の脆弱性がアナウンスされました。
ImageMagickを対処済の最新バージョンに更新することで対応可能ですが、
現時点でディストリビューターから最新バージョンの提供がない場合、
ImageMagickの設定ファイル「policy.xml」を編集して、
一部処理について制限を行うことで脆弱性に暫定対応できます。

本対策を行うと、これまで可能であった動作においても、
 エラーが発生する可能性があります。
本対策はディストリビューターから正式なアップデートが
 提供されるまでの暫定措置となり、制限は解除予定です。


■今回報告されている脆弱性
CVE-2016-3714
CVE-2016-3715
CVE-2016-3716
CVE-2016-3717
CVE-2016-3718
上記すべての脆弱性に暫定対応します。

ImageMagick に入力値検証不備の脆弱性
開発者向け画像処理ツール「ImageMagick」に脆弱性

1.CentOSのバージョンを確認する(環境はCentOS7.1)
[root@Tiger ~]# cat /etc/redhat-release
CentOS Linux release 7.1.1503 (Core)

2.脆弱性検証スクリプトを導入する
[root@Tiger ~]# git clone https://github.com/ImageTragick/PoCs.git
Cloning into 'PoCs'...
remote: Counting objects: 43, done.
remote: Compressing objects: 100% (20/20), done.
remote: Total 43 (delta 9), reused 0 (delta 0), pack-reused 23
Unpacking objects: 100% (43/43), done.

3.脆弱性検証スクリプトを実行する
[root@Tiger ~]# cd PoCs
[root@Tiger PoCs]# ./test.sh
testing read
UNSAFE

testing delete
UNSAFE

testing http with local port: 30439
SAFE

testing http with nonce: ayHDgrZB
SAFE

testing rce1
UNSAFE

testing rce2
UNSAFE

testing MSL
UNSAFE
※UNSAFEと表示された場合脆弱性が存在します。

4.脆弱性暫定対応を行う
policy.xmlファイルの所定の位置に一部処理制限の設定を追記する
※システム内のpolicy.xmlファイルを検索するには下記コマンドを実行する
[root@Tiger ~]# find / -name policy.xml

[root@Tiger PoCs]# cd
[root@Tiger ~]# vi /etc/ImageMagick/policy.xml
変更前)
<policymap>
<!-- <policy domain="system" name="precision" value="6"/> -->
<!-- <policy domain="resource" name="temporary-path" value="/tmp"/> -->
<!-- <policy domain="resource" name="memory" value="2GiB"/> -->
<!-- <policy domain="resource" name="map" value="4GiB"/> -->
<!-- <policy domain="resource" name="area" value="1GB"/> -->
<!-- <policy domain="resource" name="disk" value="16EB"/> -->
<!-- <policy domain="resource" name="file" value="768"/> -->
<!-- <policy domain="resource" name="thread" value="4"/> -->
<!-- <policy domain="resource" name="throttle" value="0"/> -->
<!-- <policy domain="resource" name="time" value="3600"/> -->

</policymap>

変更後)
<policymap>
<policy domain="coder" rights="none" pattern="EPHEMERAL" />
<policy domain="coder" rights="none" pattern="URL" />
<policy domain="coder" rights="none" pattern="HTTPS" />
<policy domain="coder" rights="none" pattern="MVG" />
<policy domain="coder" rights="none" pattern="MSL" />
<policy domain="coder" rights="none" pattern="TEXT" />
<policy domain="coder" rights="none" pattern="SHOW" />
<policy domain="coder" rights="none" pattern="WIN" />
<policy domain="coder" rights="none" pattern="PLT" />

</policymap>
修正後「:wq」で保存終了

5.再度脆弱性検証スクリプトを実行する
[root@Tiger ~]# cd PoCs
[root@Tiger PoCs]# ./test.sh
testing read
SAFE

testing delete
SAFE

testing http with local port: 32661
SAFE

testing http with nonce: saMw2X2C
SAFE

testing rce1
SAFE

testing rce2
SAFE

testing MSL
SAFE
※すべてSAFEと表示されれば安全です。


無料Linux入門マニュアル無料ダウンロード

今だけ2,200円のLinux入門PDFマニュアルが【数量限定】で無料ダウンロードできます。
Linux入門マニュアル無料ダウンロードはこちらをクリック


<<関連記事>>
・RHEL7/CentOS7が重要カーネルセキュリティアップデートをリリース【CVE-2019-14821/CVE-2019-15239】
・PostgreSQL 12が公開と2019年10月データベース人気ランキング
・CentOS8とCentOS7の違い、変更点のまとめ
・Apacheに脆弱性(CVE-2017-9798)、メモリから情報漏えいの恐れ
・Apache Tomcat の複数の脆弱性に対するアップデート(CVE-2017-7674、CVE-2017-7675)

Linux入門マニュアル無料ダウンロード