GNU Bash における OS コマンドインジェクションの脆弱性(Shellshock)(Scan Tech Report) | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
2017.11.23(木)

GNU Bash における OS コマンドインジェクションの脆弱性(Shellshock)(Scan Tech Report)

脆弱性と脅威 エクスプロイト

1.概要
GNU Bash(Ver 4.3 及びそれ以前)には、外部からの入力が環境変数に設定されるような環境においてリモートから任意のコマンドを実行される脆弱性が報告されています(CVE-2014-6271,CVE-2014-6278)。
本脆弱性は、「Shellshock」と呼ばれており、既に攻撃手法が公開されていることから被害も数多く報告されています。影響も広範囲に及ぶため、可能な限り下記対策の実施を推奨します。


2.深刻度(CVSS)
10.0
http://jvndb.jvn.jp/ja/contents/2014/JVNDB-2014-004410.html


3.影響を受けるソフトウェア
以下のバージョンが本脆弱性の影響を受けます。

- Bash 4.3 Patch 28 およびそれ以前
- Bash 4.2 Patch 51 およびそれ以前
- Bash 4.1 Patch 15 およびそれ以前
- Bash 4.0 Patch 42 およびそれ以前
- Bash 3.2 Patch 55 およびそれ以前
- Bash 3.1 Patch 21 およびそれ以前
- Bash 3.0 Patch 20 およびそれ以前

※Debian, Fedora などの Linux ディストリビューションに含まれる Bash パッケージについてもこの脆弱性の影響を受けます。


4.解説
GNU Bash は、様々な機器(Linux, BSD, Mac OS X を含むUNIX系OS)や、組み込み機器などで利用されています。

GNU Bashには、新しくBashのインスタンスが生成された際に、環境変数に記述されたシェル関数の定義を読み込み、設定する機能が存在します。この環境変数の読み込み処理の際、特定文字列が入っていると、それに続く文字列をコードとして扱ってしまう問題が存在します。

一見影響はローカル環境に止まりそうですが、CGI、SMTP、DHCP等のサービスでは、内部でOSコマンドを実行する際、外部からの入力が環境変数へと引き渡されるためリモートからでも任意のOSコマンドの実行が可能となります。

公開されているExploitでは、任意のコード実行が可能な脆弱性としてCVE-2014-6271とCVE-2014-6278、2つの脆弱性が利用されています。

Shellshockとして最初に報告されたCVE-2014-6271では、環境変数にシェル関数の定義に続き、";"が入っている場合、その後の文字列がOSコマンドとして処理されてしまうという問題点があります。

その後、この問題点に対しベンダーは修正パッチを公開しましたが、修正が不十分であり、未だコード実行が可能であることがセキュリティ研究者Michal Zalewskiにより報告されました(CVE-2014-6278)。※1

このCVE-2014-6278では、環境変数にシェル関数の定義に続き、">_[$($())]"のような文字列があった場合、ネストされた"$($())"という文字列により環境変数の読み込みが適切に行われず、その後の文字列をOSコマンドとして処理してしまう問題点が報告されています。この問題点に対しても、ベンダーから追加で修正パッチが公開されています。

最終的に、関連するCVEは6つに渡り(CVE-2014-6271,CVE-2014-7169,CVE-2014-7186,CVE-2014-7187,CVE-2014-6277,CVE-2014-6278)、根本的な脆弱性の解消のためには全ての問題点が修正済みのパッチバージョンを適用する必要があります。修正済みバージョンについては下記対策を確認してください。

※1 http://lcamtuf.blogspot.com/2014/10/bash-bug-how-we-finally-cracked.html

また、NASデバイス「QNAP」における本脆弱性を悪用するワームが出現しており、国内でも本脆弱性を対象としたと推測される攻撃が確認されています。今後もShellshockを使用する攻撃は継続すると考えられますので、引き続き警戒が必要です。※2

※2 https://www.jpcert.or.jp/at/2014/at140055.txt


5.対策
以下のWebサイトより、次に示す修正済みバージョン以降を入手しアップデートする、あるいは修正パッチを適用することでこの脆弱性を解消することが可能です。

修正済みのバージョンは、以下の通りです。
- Bash 4.3 Patch 29
- Bash 4.2 Patch 52
- Bash 4.1 Patch 16
- Bash 4.0 Patch 43
- Bash 3.2 Patch 56
- Bash 3.1 Patch 22
- Bash 3.0 Patch 21

GNU Bash Patch
http://ftp.gnu.org/gnu/bash/


また、 Linux ディストリビューションにおいては、それぞれのベンダが提供するセキュリティアドバイザリを参考に、適切なパッケージを入手しアップデートすることで、この脆弱性を解消することが可能です。

Red Hat
https://access.redhat.com/ja/articles/1210893
CentOS
http://wiki.centos.org/Security/Shellshock
Ubuntu
http://www.ubuntu.com/usn/usn-2380-1/


6.ソースコード
(Web非公開)

(執筆:株式会社ラック サイバー・グリッド研究所

※Web非公開該当コンテンツ閲覧をご希望の方はScan Tech Reportにご登録(有料)下さい。

Scan Tech Report
http://scan.netsecurity.ne.jp/archives/51916302.html
《株式会社ラック サイバー・グリッド研究所》

関連記事

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

Scan BASIC 会員限定記事

もっと見る

Scan BASIC 会員限定記事特集をもっと見る

[Web小説] サイバー探偵 工藤伸治の事件簿サーガ (シーズン 1~6 第1話)

もっと見る

[Web小説] サイバー探偵 工藤伸治の事件簿サーガ (シーズン 1~6 第1話)特集をもっと見る

カテゴリ別新着記事

脆弱性と脅威 カテゴリの人気記事 MONTHLY ランキング

  1. Microsoft Windows OS において DLL Hijacking により UAC を回避する手法(Scan Tech Report)

    Microsoft Windows OS において DLL Hijacking により UAC を回避する手法(Scan Tech Report)

  2. ランサムウェア「Bad Rabbit」感染に注意喚起、水飲み場攻撃を実行か(IPA)

    ランサムウェア「Bad Rabbit」感染に注意喚起、水飲み場攻撃を実行か(IPA)

  3. 「GNU Wget」にリモートから任意のコードを実行される複数の脆弱性(JVN)

    「GNU Wget」にリモートから任意のコードを実行される複数の脆弱性(JVN)

  4. Savitech製USBオーディオドライバに、ルートCA証明書を導入される脆弱性(JVN)

  5. GNU wget に HTTP プロトコルのハンドリングにおける値検証不備に起因するバッファオーバーフローの脆弱性(Scan Tech Report)

  6. アップルがSafari、macOS、iOSなどのアップデートを公開、適用を呼びかけ(JVN)

  7. トレンドマイクロの管理マネージャに複数の脆弱性(JVN)

  8. 8以降のWindowsに、特定のメモリアドレスのコードを悪用される脆弱性(JVN)

  9. パケット解析ツール「Packetbeat」にDoS攻撃を受ける脆弱性(JVN)

  10. 脆弱性対策情報は前年同期比で倍以上、日頃からの情報収集を呼びかけ(IPA)

全カテゴリランキング

特集

★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★
<b>★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★</b>

経営課題としてサイバーセキュリティに取り組む情報システム部門や、研究・開発・経営企画に携わる方へ向けた、創刊19年のセキュリティ情報サービス Scan PREMIUM を、貴社の事業リスク低減のためにご活用ください。

×