ヒェーッ!!
もう対処しました? ShellShock 。うちのサーバ OS は Windows なので,直接の影響はなさそうですがね。まぁ,とんでもない脆弱性ですよ, NVD のスコアは満点の 10 だし。 VMWare 上に CentOS 6.5 があるので,その bash は,一応 bash-4.1.2-15.el6_5.2.i686 にアップデートしました。
アップデートが済んだ後に env x='() { :;}; echo vulnerable' bash -c "echo this is a test"
で,以下のメッセージが出るようだと,初期のパッチしか当たっていないので,もう一度アップデートが必要です。
bash: warning: x: ignoring function definition attempt
bash: error importing function definition for 'x'
this is a test
この情報は Red Hat Customer Portal 上の Masanari Iida さんのコメントで発見したものです。
関連リンクをちょっとだけ。もちろんネット上にはすごい量の記事がありまっさ:
- CVE-2014-6271 ⇒ CVE-2014-7169 ⇒ CVE-2014-6277 ⇒ CVE-2014-6278
- Vulnerability Summary for CVE-2014-6271
- Bash ‘shellshock’ scan of the Internet
- Bash Code Injection Vulnerability via Specially Crafted Environment Variables (CVE-2014-6271, CVE-2014-7169)
- GNU bash の脆弱性に関する注意喚起
- GNU bash の脆弱性 ~ shellshock 問題~ について (gif アニメデモあり)
- bashに存在する脆弱性「Shellshock」を利用したボットネットによる攻撃を確認
- Bash bug: apply Florian’s patch now (CVE-2014-6277 and CVE-2014-6278)
- ファイアウォール内のサーバに対するShellshockを利用した攻撃
ところで,うちの Apache エラーログには,昨日までに 6 回のアタックが残っていて,それについては昨日ブロックするようにしたんですが,本日現時点までで,また新しいところから 2 回のアタックがあってました。どれに対しても, HTTP エラーが返ってるんですがね。
追記(9/30):
“Bash bug: apply Florian’s patch now” に, “I very strongly recommend manually deploying Florian’s patch unless your distro is already shipping it.” という記述があり,そのパッチが当たっているのかどうかの確認方法も書いてある。
Bash 自身で foo='() { echo not patched; }' bash -c foo
をやったときに, “コマンドが見つかりません” が返ってくればパッチ済, “not patched” なら未パッチ。
コメントで, vdp が “These ‘toughen the feature’ patches still feel quite scary.” と書き,あまり使わない機能なので,デフォルトでは使えないようにして,必要な場合はセキュリティに気を付けて有効にするようにしたらどうかと提案しているが,そのほうがいいんじゃないだろうか。
追記2(10/6):
セキュリティホール memo さんのところのに 10/6 づけで追記が出ていた。
ウォオオ。
foo='() { echo not patched; }' bash -c foo
だけではいけないようですな。ただし, CVE-2014-6271 や CVE-2014-7169 と比べれば,危険度はグッと下がっているらしいです。