ShellShock対応中
参照:GNU bash
自宅サーバ(Mac mini)とQNAP TS-112は、一応対応が完了。
今週は遅い夏休みを取っていました。その間に、ShellShockというbashのとんでもないバグ「CVE-2014-6271」で騒ぎになっていたのですね。休みの間、あまりMacも使わずネット情報にもアクセスしなかったので、気付くのが遅れました。
ShellSchock(bash bug)については、既にあちこちで解説されており、脆弱性があるかどうか確認する方法も公表されていますが、実に簡単に任意のコマンドを実行できてしまいますね。MacOS X 10.9.5 (Marvericks)で実行した結果が以下です。
$ env X='() { :;}; echo vulnerable' bash -c 'echo hello'
vulnerable
hello
|
echo vulnerable の部分がしっかり実行されちゃってますねぇ。ここは環境変数Xへ代入する文字列なので、実行してはイカンのですよ。echo vulnerable の部分を、PC内のファイルを読み出したり、送信したり、書き換えたりするコマンドに変えたとしたら・・・まったく恐ろしいバグです。
先ずこの自宅サーバ(Mac mini)のbashを自力でビルドした Ver.4.3.26に置き換えました。その結果は、
$ env X='() { :;}; echo vulnerable' bash -c 'echo hello'
bash: 警告: X: ignoring function definition attempt
bash: `X' の関数定義をインポート中にエラーが発生しました
hello
|
という具合に、echo vulnerable が実行されなくなりました。これで一先ず安心なのですが、現在提供されているパッチはまだ不十分なのだそうです。まだ暫くはbashのパッチが出ていないか注意ですね。また、このWebサーバのアクセスログも調べましたが、この脆弱性を狙った攻撃は見当たりませんでした。一応、情報を盗まれたりはしていないと思って良いかな。
その他、QNAP TS-112には QTS 4.1.1 ファームウェアアップデートが出ており、これで ShellShock脆弱性が修正されています。因に bash は Version 3.2.53(237) になっていました。
他にも ShellShock脆弱性のあるbashが入っている機器には、
- MacOS X 10.9.5 (Marvericks)
- Buffalo LS-VL
- NETGEAR RN10200
があるのですが、今日現在まだアップデータはリリースされていません。いざとなったら自力でbashをビルドしたり、ビルド済みの最新版bashをダウンロードして対処することも可能ではありますが。しかし iOS (iPhone) やルーター等にも bashが入っているかも知れません。これらはメーカーがアップデータを提供してくれない限り修正されません。また既にサポート切れになっている MacOS X 10.6(Snow Leopard)や、それ以前の MacOS Xは(今回ワタシがやったように)自力で修正しなければならないわけですよね。今回のような深刻な脆弱性は、メーカーの方でも何か配慮して欲しいなぁ。それにこういう態度は(本当だとしたら)ちょっと問題だと思うのだけど。>Apple
その後、更にVer.4.3用にpatch-027がリリースされていました。自宅サーバ(Mac mini)のbashにも早速パッチを適用してビルドしなおして、Ver.4.3.27にしました。試してみたところ、
$ env X='() { :;}; echo vulnerable' bash -c 'echo hello'
hello
|
echo vulnerable 部分が実行されなくなったのはpatch-026と同じですが、警告メッセージが出なくなりました。その代わり環境変数Xへの文字列代入がそのまま受け入れられるようになり、環境変数Xの値が '() { :;}; echo vulnerable' になるようになりました。確かに、こちらの方が正しい挙動かな。
|