2014/9/24に見つかったとされるbashの欠陥、いわゆるShellshockの話は目にしていたのだが、玄箱HG+Debianで運用中のこのサーバーには関係ないと思っていた。そもそも、Debianのshはbashでなくdashである。
今週、
記者の眼 - 記者は「ShellShock」に触れてみた、そして震え上がった:ITpro
という記事を読んだ。CGIを呼び出せると任意のコマンドが実行できてしまうという。
ふむふむ、なるほど、これは致命的な大穴だ。
試しに、このサーバーに対してもやってみた。上記の記事ではcurlを使っているが、wgetで次のようにしてみた。
wget -U "() { :;}; echo Content-type:text/plain;echo; /bin/uname -a" http://localhost/cgi-bin/test.cgi・・・!!!
uname -aの結果が返ってきた。
何かの間違いではないか、と祈りつつ、unameをfind /にしてみると、このファイルシステムの全て表示されてしまった。
真っ青になった。
それでやっと思い出した。このサーバーをLennyにupgradeした時に/bin/shがdashになったのだが、それで何かが動かなくなったので、勝手に/bin/shをbashに戻してしまったのである。
とりあえずapacheを止めて、bashをupdateしようとして、apt-get updateしたが、bashが更新されなかった。
このDebianはSqueezeであり、サポートが終了してしまっているのである。
しかし、Squeeze LTS(Long Term Support)というものの存在を見つけたので、このページを参考にして、/etc/apt/sources.listに
deb http://http.debian.net/debian squeeze-lts main contrib non-freeを加えて
deb-src http://http.debian.net/debian squeeze-lts main contrib non-free
apt-get updateしようとした。
apt-get install -t squeeze-lts --only-upgrade bash
しかし、apt-get updateがエラーになってしまった。
squeeze LTSのページを見ると、powerpcはサポートされていなかった。i386やand64でなければwheezyにupgradeすることが推奨される、と書いてある。
このサーバーは、過去にwheezyへのupgradeに頓挫しており、非常に面倒で時間を要することがわかっているのである。
今回の件でセキュリティアップデートの必要性を思い知ったので、wheezy化は近い内に必ず行う決心をしたが、とりあえず、/bin/shをdashに戻して、bashはソースコードと最新のパッチを使ってmakeしたものに置き換えた。
不正ログインやファイルシステム破壊の痕跡は無かったが、ファイルシステムが覗かれたかどうかは調べようがないので、わからなかった。
対策するまでの間に、ファイルを一通り読まれたかも知れないと思うと、憂鬱である。
コメント