ニュース

【ニュース】シェルプログラムbashにてリモートから任意のコードが実行できる脆弱性が発見され、修正版がリリース

更新日:

サーバーを管理している方は特に注意しましょう。 linuxのシェルプログラムとして有名なbashにて、リモートから任意のコマンドが実行可能になる脆弱性(通称:Shellshock)が発見されました。 これに伴い各ディストリビュージョンにて現在、完全な対策を行ったアップデートが配信されています。

 

「Bash specially-crafted environment variables code injection attack」 - Red Hat Secrity
https://securityblog.redhat.com/2014/09/24/bash-specially-crafted-environment-variables-code-injection-attack/
「GNU bash の脆弱性に関する注意喚起」 - JP CERT
https://www.jpcert.or.jp/at/2014/at140037.html
「「bash」に危険度の高い脆弱性、修正パッチの適用と回避策の実施を」 - INTERNET Watch
http://internet.watch.impress.co.jp/docs/news/20140925_668487.html

 

今回発見された脆弱性は、bashにおいて本来は単なる環境変数として扱われるはずの文字列がコマンドとして解釈され実行されてしまうというもので、「shellshock」の通称で呼ばれているようです。 bashは様々なシステムでインストールされているシェルのため、今年度はじめ頃に起きたOpen SSLの脆弱性群(heart bleed中間者攻撃)と同等かさらに広い範囲で影響が出る恐れがあります。

CVE基本スコア・脅威スコアが文句なしの10点満点をたたき出していることから、どれだけ重大な脆弱性であるかはお分かりいただけるかと思います。

 

「Vulnerability Summary for CVE-2014-6271」 - NVD
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-6271
「JVNVU#97219505 GNU Bash に OS コマンドインジェクションの脆弱性」 - JVN
https://jvn.jp/vu/JVNVU97219505/index.html

 

※上の文章の概略は記事の最後に付けておきます。 ただしJVNにて日本語情報が配信されたため、そちらを参照することをおすすめします。

 

今回の脆弱性、自分のサーバーが対象か否かを確認するための検証コードは以下を使用してください。

env x='() { :;}; echo vulnerable' bash -c "echo this is a test"

読めば分かりますが、本来は「' () { :;}; echo vulnerable 'を環境変数xに格納したらbashで'echo this is a test'を実行する」というコマンドです。(おそらく一般的にこういう書き方をする方や場面はないと思われますが・・・)

※このコマンドの意味はこちらを参照するとわりやすいと思われます。
「bash ShellShock」 http://www.ne.jp/asahi/hishidama/home/tech/unix/vulnerability/bash_shellshock.html

 

ですが、対策未適用のシステムでは以下のように本来文字列として処理されるべき"echo vuulnerable"が解釈・実行されてしまいます

user@server:~$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
vulnerable
this is a test

なお、不完全な対策の取られたアップデートを行っていれば以下のような表示が出るようです。

user@server:~$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
bash: 警告: x: ignoring function definition attempt
bash: `x' の関数定義をインポート中にエラーが発生しました
this is a test

完全な対策が行われたアップデートでは、以下のようにエラーも出なくなっているようです。

user@server:~$ env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
this is a test

今回の脆弱性を見ていただいて分かる通り、(実際に成功するかは別にして)実行可能なコマンドであればなんでも入れ込むことが可能なため、情報の漏えいや破壊等といった直接的被害が出かねないという意味ではより深刻であるといえます。 なによりもcgiをbash経由で実行する環境などがある場合は遠隔でコマンドを実行することが可能になるため、早急な対策が必要になります。

なお現在この脆弱性の修正版が各ディストリビュージョンよりリリースされているため、yumやapt系経由でアップデートができるようになっています。

yumは、「yum check-update && yum update」apt系は「apt-get update && apt-get upgrade」あるいは「aptitude update && aptitude upgrade」などで確認をしつつアップデートを行いましょう。

また普段bashを利用していない方も、アプリケーション群がbashを呼んでいる可能性がある事も考慮して予防措置としてアップデート等を実施することをお勧めします。

 

ちなみにweb経由でこの脆弱性の影響を受けるか否かの判定としては、以下のものが挙げられているようです。

  1. /bin/shの実体としてbashを使用しているディストリビューション(「readlink /bin/sh」の実行結果としてbashが帰ってくる)
  2. 環境としてCGI、CGIモードのPHPを使用している
  3. RubyのPassengerを使用している
  4. systemや `command`、 '| /usr/lib/sendmail' などを使用して外部コマンドを実行するものを使用している
  5. PHPのmailやmb_send_mail、その他フレームワーク等を介したメール送信を使用している
  6. 明示的にbashを呼んでいる箇所がある
  7. 先頭で #!/bin/bash や #!/usr/bin/env bashを行っているプログラム群を実行している

以下の場合は脆弱性の対象となる条件を満たします。 早急に対策を取ってください。

  • 1と2に加え4か5の条件を満たしている場合
  • 1と3の条件を満たす場合( Passengerはすべて対象となるようです)
  • 2に加え6か7の条件を満たす場合(この場合、1を満たさなくても対象となります)
※こちらのサイトを参考として、使用させていただきました。 「ウェブアプリにおけるBash脆弱性の即死条件 #ShellShock」 http://d.hatena.ne.jp/nekoruri/20140926/shellshock

 

ただし一部では今回リリースされているバージョンでは対策が不十分であるという指摘があるため、しばらくは要警戒な期間が続きそうです。(こちらはCVE-2014-7169にて管理が行われているようです。)

なお、現在CVE-2014-7169に関しての対策も行われたアップデートの配信が始まっています。 前回のアップデートでは対策が不十分なため、前回アップデートを行った方も再度アップデートを行っておくようにしましょう。

今回の件で不安が残っている方は、別のシェルへの移行やWAFやIDSなどによる攻撃緩和、システム監視などを検討・実施しておいた方がいいかもしれません。

「Vulnerability Summary for CVE-2014-7169」 - NVD
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2014-7169

 

~~~脆弱性概要 CVE-2014-6271(特に概要は誤訳がある可能性があります あらかじめご了承ください)~~~

初回リリース日時:09/24/2014

最終修正日時:09/24/2014

ソース:US-CERT/NIST

概要
GNU bash4.3を通じてシェル関数定義の後の文字追跡にて環境変数の値をシェルが処理してしまう。 (OpenSSH sshd、Apache HTTP Server に含まれるmod_cgi や mod_cgid モジュール、明らかでないDHCPクライアントのスクリプトの実行など)いわゆるForceCommand機能が関係するもので、設定次第では特権の行使を引き起こすことが示すように、攻撃者はこの脆弱性を持つ環境でbashを通して任意のコードを実行可能となる。

影響
CVSS Severity(バージョン2.0):
CVS v2ベース得点:10.0(高い)
(攻撃元区分:ネットワーク /攻撃条件の複雑さ:低 /攻撃前の認証要否:不要 /機密性への影響:全面的 /完全性への影響:全面的 /可用性への影響:全面的)(伝説)
影響サブスコア:10.0
潜在危険性サブスコア:10.0
CVS v2測定基準:
攻撃元区分:ネットワーク経由でリモートから攻撃可能
攻撃条件の複雑さ:低い
認証:脆弱性実行に必要ありません
影響:
意図しない情報漏洩
第3者による情報改竄
アドバイザリ・ソリューション・ツールへの参照サービスの破壊

 

22:24 追記:国内のニュースサイトへのリンクの追加と対策に関して追記を行いました。

9/26 20:46 追記:JVNでの脆弱性情報が公開されたことに伴うリンク追加とCVE-2014-7169の件の対策が行われたため、それらの情報を記事に反映しました。 同時に若干の訳出や文面の修正も行っています。

9/26 21:25 追記:webアプリで影響を受ける条件に関して追記を行いました。

9/27 0:06 追記:検証コマンドの解説をしているサイトへのリンクの追加を行いました。

投稿者プロフィール

monaf
mona digest管理人です。 現在はmonacoinを中心として、各種暗号(仮想)通貨の記事を書かせてもらっています。
記事にしてほしいネタは左のタレこみフォームを利用して投下してもらうと気付きやすいです。
monacoin:MMditkELuURZgDPduLDLGYArA15G7nWFo3

-ニュース
-

Copyright© mona digest , 2018 All Rights Reserved Powered by STINGER.