shellshock テクニカルレポート³にlinuxのネットワーク・テレコミュニ...

12
Shellshock テクニカルレポート Trend Micro Threat Research Lab はじめに 2014 9 24 日、Stephane Chazelas がbashのファンクション定義に存在す るコードの処理を適切に行わない脆弱性 (CVE-2014-6271) を 発 見 し ま し た 1 。攻 撃 者 は、“Shellshock” と 名 付 け ら れ た こ の脆弱性を利用して環境の制限を回避で す。Secure Shell(SSH)、Common Gateway Interface(GCI) ス ク リ プ ト と いった複数のプログラムは、バックグラ ウンドで bash の実行を可能にします。こ れにより攻撃者はこの脆弱性を遠隔から 攻撃できるため、Shellshock は深刻な脅 威となります。2014 年 4 月に発見された 脆弱性 “Heartbleed”(CVE-2014-0160)以 上に深刻になる恐れがあるとするリサー チャーもいます 2 1 http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271 2 http://blog.trendmicro.co.jp/archives/8929 テストを実施した結果、bash が実行して いるからといってすべてのシステムが遠 隔で攻撃できるわけではないことがわか りました。bash を攻撃するには、ネット ワークを経由して bash へのアクセスを可 能にするアプリケーションがシステム上 で稼働している必要があります。 このレポートは、Shellshock の技術的な 詳細について解説します。

Upload: vuthu

Post on 28-Jun-2019

217 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

ShellshockテクニカルレポートTrend Micro Threat Research Lab

はじめに

2014 年 9 月 24 日、Stephane Chazelas

が bash のファンクション定義に存在す

るコードの処理を適切に行わない脆弱性

(CVE-2014-6271) を 発 見 し ま し た 1

。 攻

撃 者 は、“Shellshock” と 名 付 け ら れ た こ

の脆弱性を利用して環境の制限を回避で

き ま す。Secure Shell(SSH)、Common

Gateway Interface(GCI) ス ク リ プ ト と

いった複数のプログラムは、バックグラ

ウンドで bash の実行を可能にします。こ

れにより攻撃者はこの脆弱性を遠隔から

攻撃できるため、Shellshock は深刻な脅

威となります。2014 年 4 月に発見された

脆弱性 “Heartbleed”(CVE-2014-0160)以

上に深刻になる恐れがあるとするリサー

チャーもいます2

1 http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-62712 http://blog.trendmicro.co.jp/archives/8929

テストを実施した結果、bash が実行して

いるからといってすべてのシステムが遠

隔で攻撃できるわけではないことがわか

りました。bash を攻撃するには、ネット

ワークを経由して bash へのアクセスを可

能にするアプリケーションがシステム上

で稼働している必要があります。

このレポートは、Shellshock の技術的な

詳細について解説します。

Page 2: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

2 2

TREND MICRO | テクニカルレポート

脆弱性の詳細

この数日で Shellshock に関するより詳し

い情報が明らかになり、完全に修正する

ことが可能となるでしょう。前述のとお

り、CVE-2014-6271 あ る い は Shellshock

と呼ばれるこの脆弱性は、イギリスのロ

ボット工学企業 SeeByte Ltd で Unix なら

びに Linux のネットワーク・テレコミュニ

ケーション管理者で IT マネージャを務め

る Stephane Chazelas 氏によって発見され

ました。 3

概念実証(Proof of Concept)システム上で bash が脆弱かどうかを確認

するには、以下のコマンドを実行して確

認することができます。

$ env x=’() { :;}; echo vulnerable’ bash -c “echo test”

脆弱な bash を実行しているシステムで

このコマンドを実行すると、“vulnerable”

というアウトプットを出します。この問

題を修正するためにリリースされたパッ

チは、bash ファンクションの後に続くど

んなコードも実行されないようにしてい

ます。

3 http://www.seebyte.com/about-seebyte/

脆弱性を利用する方法我々は、概念実証(PoC)コードを使って

この脆弱性をどのように利用することが

できるかを調査しました。

$ env x=’() { :;}; echo vulnerable’ bash -c “echo test”

上記コードは、環境変数を宣言し、その

後 “test” と表示するものです。特別に細工

された環境変数の値によって、bash はこ

のコードを以下のようなファンクション

定義として解釈します。

x() { :;};echo vulnerable

システムが “ 脆弱である ” となると、攻撃

者はこのファンクション定義の後に悪意

あるコマンドを実行することが可能です。

Page 3: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

3 3

TREND MICRO | テクニカルレポート

影響

bash は、多くのシステムやソフトウェ

ア で 広 く 使 わ れ て い る Unix シ ェ ル で、

Shellshock は GNU Bash バ ー ジ ョ ン 1.14

~ 4.3 に影響があります。

• Bash 4.3 Patch 25 より前のバージョン

• Bash 4.2 Patch 48 より前のバージョン

• Bash 4.1 Patch 12 より前のバージョン

• Bash 4.0 Patch 39 より前のバージョン

• Bash 3.2 Patch 52 より前のバージョン

• Bash 3.1 Patch 18 より前のバージョン

• Bash 3.0 Patch 17 より前のバージョン

• Bash 2.0.5 とそれ以前のバージョン

• Bash 1.14.7 とそれ以前のバージョン

ルータ、IP カメラ、ゲートウェイ(Citrix

NetScaler、F5 BIGIP、Cisco 製 品 な ど )、

Web CGI プログラムといった bash を使

う す べ て の ア プ リ ケ ー シ ョ ン、 ネ ッ ト

ワーク機器が脆弱です。攻撃者は、脆弱

な Dynamic Host Configuration Protocol

(DHCP)サーバにクライアントシステム

上で任意のコードを実行させることも可

能です。

以下の表は、広く使われている OS とその

標準設定のシェルを示しています。Bash

が標準設定のシェルになっている OS は、

すべて脆弱になります。

OS 標準シェル

Mac OS X

RHEL

CentOS

Fedora

Debian

Ubuntu

FreeBSD

Android

iOSOnly Jailbreak version

組み込み機器

bash

bash

bash

bash

sh (lenny) dash (Squeeze)

dash

tcsh

比較的新しいバージョン: ashAndroid 3.0 は mksh

bash

多くが busybox(ash)を使用

Page 4: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

4 4

TREND MICRO | テクニカルレポート

攻撃シナリオ

Web サーバへの攻撃Web サーバへの攻撃が最も深刻なものに

なります。なぜなら、bash スクリプトが

cgi-bin を通じて実行されるからです。

このシナリオの場合、CGI は Web サーバ

に HTTP リクエストヘッダを変換し、クラ

イアントからのリクエストヘッダを環境

変数に変換させる必要があります。これ

は、Apache サ ー バ の mod-cgi あ る い は

mod-cgid モジュールによって実行されま

す。攻撃者が cgi-bin 経由で bash スクリ

プトを呼び込む場合、Web サーバのアク

セス権限を使って httpd としてコードを

実行することができます。

我々は複数のプログラミング言語を使っ

て Apache mod-cgi モ ジ ュ ー ル を テ ス

トしました。結果、Perl、PHP、Python、

Ruby で記述されている CGI プログラムが

脆弱であることが明らかになりました。

Perl#!/usr/bin/env perlp r i n t “ C o n t e n t t y p e : t e x t / p l a i n ; charset=iso 8859 1\n\n”;$result = system(“test >> /dev/null;”);

PHP#!/usr/bin/env php<?phpprint “Content Type: text/html\n\n”;print “Hello World!\n\n”;var_dump(exec(‘date’));?>

Python#!/usr/bin/env pythonprint “Content Type: text/html”printprint “””<html><body><h2>Hello World!</h2></body></html>“””import osos.system(‘date’)

Page 5: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

5 5

TREND MICRO | テクニカルレポート

Ruby#!/usr/bin/env rubyputs “Content type: text/html\n\n”p u t s “ < ? x m l v e r s i o n = \ ” 1 . 0 \ ” encoding=\”UTF 8\”?>”puts “<!DOCTYPE html>”puts “<html>”puts “<head>”puts “<title>Ruby CGI test</title>”puts “</head>”puts “<body>”puts “<p>Hello, world!</p>”puts “</body>”puts “</html>”`date`

トレンドマイクロの対策ト レ ン ド マ イ ク ロ の サ ー バ 向 け 総 合 セ

キ ュ リ テ ィ 製 品「Trend Micro Deep

Security(トレンドマイクロ ディープセ

キュリティ)」の仮想パッチは、bash に存

在する脆弱性を利用するエクスプロイト

からサーバを保護します。また、bash の

エクスプロイト攻撃に関連する不正プロ

グラムおよび、改ざんされたサーバから

発生する C&C 通信を検出します。

DHCP サーバの悪用脆弱な DHCP サーバを利用すると、攻撃

者はローカルネットワーク環境に接続す

るクライアントに任意のコマンドを送り

つけることが可能です。攻撃者は、特別

に細工されたコマンドで悪意ある DHCP

サーバを設定し、様々な悪意あるコード

を実行させることが可能になります。

() { :; }; /usr/bin/cat /etc/shadow > /tmp/shadow

以下に示すのは、悪意ある DHCP サーバ

の 設 定 の 一 例 で、 追 加 オ プ シ ョ ン

(Additional Option)114 にある悪意ある

コマンドで設定されています。

Page 6: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

6 6

TREND MICRO | テクニカルレポート

この悪意あるサーバの IP アドレスにア

クセスしたユーザは、システム上でこの

悪意あるコマンドを実行することになり

ます。

• 脆弱な bash バージョンを実行する

CentOS 7.0 DHCP クライアント

• 脆弱な bash バージョンを実行する

Ubuntu 10.04.1 LTS DHCP

クライアント

• 脆弱な bash バージョンを実行する

Ubuntu 14.04.1 LTS

DHCP クライアント

• 脆弱な bash バージョンを実行する

Fedora 20 DHCP クライアント

Android や iOS を稼働しているモバイル機

器は、bash が標準で搭載されていないた

め脆弱ではありません。Mac OS X の場合、

このシナリオでは DHCP プロセスで IP ア

ドレスを要求する際に bash を使用しない

ため脆弱ではありません。

CentOS

Fedora

Ubuntu

Ubuntu

Android

Apple iOS

Mac OS X

7.0

20

10.04.1 LTS

14.04.1 LTS

4.4.4

7.0.4

10.9.5

脆弱

脆弱

脆弱

脆弱

影響なし

影響なし

影響なし

OS バージョン 状況

Page 7: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

7 7

TREND MICRO | テクニカルレポート

トレンドマイクロの対策ウイルスバスター コーポレートエディ

ションは、「Web レピュテーション」技

術 に よ っ て、 関 連 す る 不 正 な URL へ の

アクセスをブロックします。(Microsoft™、

Windows® のみ )

「Trend Micro Deep Discovery」 シリーズで

は、Windows、CentOS、Ubuntu お よ び

Fedora 上で不正な IP アドレスと通信する

エ ン ド ポ イ ン ト を 検 知 す る こ と が 可 能

です。

GIT、Subversion サーバへの攻撃GIT や Subversion といったサーバへの攻

撃により、攻撃者は接続しているシステ

ムやサーバへのアクセスは可能になりま

すが、制限されたシェル環境により任意

のコマンドを実行することはできません。

し か し、CVE-2014-6271 を 利 用 す る と、

この制限を回避してシェルを利用するこ

とができます(OpenSSH ユーザの場合、

すでにシェルアクセスを持っているため

影響を受けません)。

GIT ユーザのシェルが bash に標準設定さ

れている脆弱なサーバは、遠隔からのコー

ド実行に脆弱です。SSH 鍵がアップロー

ドされているサーバの場合、攻撃者が手

にすることができるため特に危険です。

bash を標準のシェルとして使っている

GIT サーバだけが脆弱になります。dash

や Debian といった bash を標準のシェル

として使っていないサーバは脆弱ではあ

りません。

我々は、以下の Shellshock の概念実証コー

ドを使って脆弱な GIT サーバのパスワー

ドの入手を試みました。ssh g i t@gi tserver ‘ ( ) { : ; } ; echo vulnerable’

トレンドマイクロの対策サーバ向けセキュリティソリューション

「Trend Micro Deep Security」は、不正侵

入防止システム(IPS)や仮想パッチの機

能を備えており、bash に存在する脆弱性

への攻撃の検出が可能です。

Page 8: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

8 8

TREND MICRO | テクニカルレポート

その他攻撃シナリオこのレポートは、限られた攻撃シナリオ

についてしか言及していませんが、いく

つかの可能性が想定されます。一つ確か

なことは、この脆弱性はワームとして拡

散することが可能なことです。実際、す

でに Shellshock を拡散するワームを確認

しています。

トレンドマイクロの対策トレンドマイクロの各製品は、ファイル

ベースでスキャンすることにより脆弱性

「Shellshock」に関連する不正プログラム

の検出が可能です。

「Trend Micro Deep Security」、「ウイルス

バスター コーポレートエディション」お

よ び「Trend Micro Deep Discovery」 は、

脆弱性「Shellshock」関連する C&C サー

バとの通信を検出します。

「Trend Micro Deep Security」で対策可能

な脆弱性の例は以下のとおりです。

• C V E - 2 0 1 4 - 7 1 6 9 : D S R U 1 4 - 0 2 8 :

1006256

• G N U B a s h R e m o t e C o d e

Execution Vulnerability7

• C V E - 2 0 1 4 - 6 2 7 1 : D S R U 1 4 - 0 2 8 :

1006256

• G N U B a s h R e m o t e C o d e

Execution Vulnerability

Page 9: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

9 9

TREND MICRO | テクニカルレポート

ソリューションと推奨事項

企業は、bash をバックグラウンドで実行

可能な Linux ベースのサーバ、機器、サー

ドパーティアプリケーションをテストす

る 必 要 が あ り ま す。 特 に、 攻 撃 者 が 遠

隔 か ら Shellshock を 攻 撃 す る こ と が 可

能な Web ベースのアプリケーションや

サービスをテストする必要があります。

Xymon といった人気のある Linux ベース

のサーバ・ネットワーク監視システムも

Shellshock の影響を受けます。bash ユー

ザは、以下の表にあるように最新バージョ

ンに更新することを推奨します。

OS 影響のないバージョン

RHEL

Fedora

CentOS

AWS

Ubuntu

SuSE

Debian

RHSA-2014:1306-1BASH-3.2-33.el5_11.4 (RHEL5)BASH-4.1.2-15.el6_5.2 (RHEL6)BASH-4.2.45-5.el7_0.4 (RHEL7)

BASH-4.2.48-2.fc19 (Fedora 19)BASH-4.2.48-2.fc20 (Fedora 20)BASH-4.3.25-2.fc21 (Fedora 21)

BASH-3.2-33.el5_10.4 (CentOS 5)BASH-4.1.2-15.el6_5.2 (CentOS 6)BASH-4.2.45-5.el7_0.4 (CentOS 7)

CVE-2014-6271 AdvisoryALAS-2014-418

USN-2362-1 (CVE-2014-6271)USN-2363-1 (CVE-2014-7169)4.1-2ubuntu3.2 (Ubuntu 10.04 LTS)4.2-2ubuntu2.3 (Ubuntu 12.04 LTS)4.3-7ubuntu1.2 (Ubuntu 14.04 LTS)

CVE-2014-6271/Bug 896776CVE-2014-7169/Bug 8983463.2-147.20.1 (SuSE11)3.1-24.32.1 (SuSE10)

DSA-3032-1 (CVE-2014-6271)DSA-3035-1 (CVE-2014-7169)4.1-3+deb6u2 (squeeze (lts))4.2+dfsg-0.1+deb7u3 (wheezy(security))4.3-9.2 (sid)

Page 10: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

10 10

TREND MICRO | テクニカルレポート

この bash の脆弱性に対してパッチが公開

されたものの、完全ではありません。こ

の公開された修正を適用しても、特別に

細工された環境変数を使って、脆弱なバー

ジョンの bash に特定の文字列を挿入で

きるといわれています。攻撃者は、新し

い手法を作り出し、環境の制限を回避し

てシェルコマンドを実行することができ

ます。以下の CVE で言及されている制限

回避方法は機能することが確認されてい

ます。

• CVE-2014-71694 4

• CVE-2014-71865 5

• CVE-2014-71876 6

• https://rhn.redhat.com/errata/RHSA20141306.html

CVE-2014-6271 へのパッチを適用済みで

あっても、企業は最新版が入手可能にな

るのを常に確認する必要があります。加

えて、以下のような回避策を適用してネッ

トワークを守ることを推奨します。

4 http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-71695 https://security-tracker.debian.org/tracker/CVE-2014-71866 https://security-tracker.debian.org/tracker/CVE-2014-7187

• 標準のシェルを dash や tsh といった

bash の代替になるものに変更してく

ださい(ただし、異なるシェルは異

なる構文を使うため、既存のスクリ

プトが機能しない可能性もあるため

注意して行う必要があります。)

• CGI プログラムを保護するために、

以下のような侵入検知システム(IDS)

ルール、Web アプリケーションファ

イアウォール(WAF)ルールを適用

して、エクスプロイトをブロックし

てください。

• mod_security

• Request Header values:SecRule REQUEST_HEADERS “^\(\) {“ “phase:1,deny,id:1000000,t:urlDecode,status:400,log,msg:’CVE-2014-6271 - BASH Attack’”

• SERVER_PROTOCOL values:SecRule REQUEST_L INE “ \ ( \ ) { “ “phase:1,deny,id:1 0 0 0 0 0 1 , s t a t u s : 4 0 0 , l o g , m s g : ’ CVE-2014-6271 - BASH Attack’”

Gentoo

Scientific Linux

Bug 523592BASH-3.1_p18-r1BASH-3.2_p52-r1BASH-4.0_p39-r1BASH-4.1_p12-r1BASH-4.2_p48-r11

SLSA-2014:1293-1BASH-3.2-33.el5.1(SL5)BASH-4.1.2-15.el6_5.1(SL6)

OS 影響のないバージョン

Page 11: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

11 11

TREND MICRO | テクニカルレポート

• GET/POST names:S e c R u l e A R G S _ N A M E S “ ^ \ ( \ ) { “ “phase:2,deny,id:1000002,t:urlDecode,t:urlDecodeUni,status:400,log,msg:’CVE-20 14-6271 - BASH Attack’”

• GET/POST values:S e c R u l e A R G S “ ^ \ ( \ ) { “ “phase:2,deny,id:1000003,t:urlDecode,t:urlDecodeUni,status:400,log,msg:’CVE-2014-6271 - BASH Attack’”

• File names for uploads:SecRule F ILES_NAMES “^ \ ( \ ) { “ “phase:2,deny,id:1000004,t:urlDecode,t:urlDecodeUni,status:400,log,msg:’CVE-2014-6271 - BASH Attack’”

• IPTables# iptables A INPUT m string algo bm hex string ‘|28 29 20 7B|’ j DROP

# ip6tables A INPUT m string algo bm hex string ‘|28 29 20 7B|’ j DROP

• Suricataalert http $EXTERNAL_NET any > $HOME_NET any (msg:”Possible CVE 2014 6271 BASH Vulnerability R e q u e s t e d ( h e a d e r ) ” ; flow:established,to_server; c o n t e n t : ” ( ) { “ ; h t t p _ h e a d e r ; threshold:type limit, track b y _ s r c , c o u n t 1 , s e c o n d s 1 2 0 ; sid:2014092401;)

• Snortalert tcp $EXTERNAL_NET any > $HOME_NET $HTTP_PORTS (msg:”Possible CVE-2014 6271 BASH Vulnerability Requested (header) “; flow:established,to_server; content:”() {“; http_header; threshold:type limit, track by_src, count 1, seconds 120; sid:2014092401;)

• ref:

• m o d _ s e c u r i t y , I P T a b l e s

(https://access.redhat.com/

articles/1212303)

• Snort, Suricata(http://www.

volexity.com/blog/?p=19)

• ソース IP アドレスでアクセスを制限

してください。CGI プログラムの利

用が必要でパッチ適用が現実的では

ない場合には、ソース IP アドレスで

アクセスを制限することができます。

信頼できる IP レンジやホストにのみ

サービスへのアクセス権を与えるよ

うにしてください。

Page 12: Shellshock テクニカルレポート³にLinuxのネットワーク・テレコミュニ ケーション管理者でITマネージャを務め るStephane Chazelas氏によって発見され

Trend Micro Incorporated, a global leader in security software and solutions, strives to make the world safe for exchanging digital information. For more information, visit www.trendmicro.com.

©2014 Trend Micro, Incorporated. All rights reserved. Trend Micro and the Trend Micro t-ball logo are trademarks or registered trademarks of Trend Micro, Incorporated. All other product or company names may be trademarks or registered trademarks of their owners.

TREND MICRO™

本書に関する著作権は、トレンドマイクロ株式会社へ独占的に帰属します。

トレンドマイクロ株式会社が書面により事前に承諾している場合を除き、形態および手段を問わず本書またはその一部を複製することは禁じられています。本書の作成にあたっては細心の注意を払っていますが、本書の記述に誤りや欠落があってもトレンドマイクロ株式会社はいかなる責任も負わないものとします。本書およびその記述内容は予告なしに変更される場合があります。

本書に記載されている各社の社名、製品名、およびサービス名は、各社の商標または登録商標です。

〒151-0053東京都渋谷区代々木2-1-1 新宿マインズタワー大代表 TEL:03-5334-3600 FAX:03-5334-4008http://www.trendmicro.co.jp

TRENDLABSSM

フィリピン・米国に本部を置き、日本・台湾・ドイツ・アイルランド・中国・フランス・イギリス・ブラジルの10カ国12ヵ所の各国拠点と連携してソリューションを提供しています。

数カ月におよぶ厳しいトレーニングを経て最終合格率約1%の難関を突破した、選びぬかれた1,000名以上の専門スタッフが、脅威の解析やソリューションへの反映など、24時間365日体制でインターネットの脅威動向を常時監視・分析しています。

世界中から収集した脅威情報を、各種レピュテーションデータベースや不正プログラム、迷惑メールなどの各種パターンファイルなど、グローバル共通のソリューションに随時反映しています。

サポートセンターの役割も兼ねる研究所として、お客様に満足いただけるサポート体制を整備し、より多くの脅威に迅速に対応しています。