2006年3月24日金曜日

sendmailに、かなりヤバいセキュリティホール

今日、FreeBSDのメーリングリストにSecurity Advisory(SA:セキュリティ勧告)が流れていたので知ったのですが、ひさびさに(ってほどでもないかもしれないけど)sendmailにセキュリティホールが見つかったとのことです。



ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:13.sendmail.asc



このセキュリティホールで、どんな危険性があるかというと・・・

III. Impact



A remote attacker may be able to execute arbitrary code with the privileges of the user running sendmail, typically root.



ということで、ネットワークの向こうにいる悪意のある人が、root権限で任意のプログラムを実行させることができてしまう、ってことなので、かなりヤバイですね。



うちも、SAのほかにウェブのニュース記事も見て、自宅のFreeBSDサーバでは応急処置として、sendmailを停止させました。



    # /etc/rc.d/sendmail stop





帰宅後、さっそくcvsupして、最新ソースコードをダウンロードして、



ftp://ftp.freebsd.org/pub/FreeBSD/CERT/advisories/FreeBSD-SA-06:13.sendmail.asc



に書いてある手順を参考にしながら、sendmailをアップデートしました。

# cvsup -g ほにゃらら-supfile
# cd /usr/src/lib/libsm
# make obj && make depend && make
# cd /usr/src/lib/libsmutil
# make obj && make depend && make
# cd /usr/src/usr.sbin/sendmail
# make obj && make depend && make && make install



結局、この作業で、どんなファイルが更新されるかというと、こんな感じです。



# make install
install -s -o root -g smmsp -m 2555   sendmail /usr/libexec/sendmail
install -o root -g wheel -m 444 mailq.1.gz  /usr/share/man/man1
install -o root -g wheel -m 444 newaliases.1.gz  /usr/share/man/man1
install -o root -g wheel -m 444 aliases.5.gz  /usr/share/man/man5
install -o root -g wheel -m 444 sendmail.8.gz  /usr/share/man/man8
/usr/share/man/man8/hoststat.8.gz -> /usr/share/man/man8/sendmail.8.gz
/usr/share/man/man8/purgestat.8.gz -> /usr/share/man/man8/sendmail.8.gz



で、最後に忘れずsendmailを再起動させる、と。

# /etc/rc.d/sendmail start
Starting sendmail.



なお、ソースをコンパイルするのではなくて、バイナリだけ更新する手段も、FreeBSDでは「一応」用意されています。portsにある

/usr/ports/security/freebsd-update

がそのためのツールです。



freebsd-updateを使うと、セキュリティホールが見つかった場合に、バイナリファイルだけアップデートできるので、WindowsUpdateとかLinux方面のパッケージ管理ツールのように、とっても気軽にアップデートが行えるみたいです。



でも実は、このfreebsd-updateを、私は使ったことがありません。このツールは、FreeBSD 5.4-RELEASEとか6.0-RELEASEなどの、リリースバージョンしかアップデートできないそうです。私は、リリースされてからしばらく経った、6-STABLEのようなスナップショットバージョンをインストールしているので、freebsd-updateを使うことができません。
まあ、STABLEを使うような人は、自己責任で、STABLEを追っかけ続けなさい、っていうことですかね。



なお、 portupgradeというツールがありますが、こちらは、portsとして提供されているソフトウェアの更新ができます(ソースからコンパイルするだけでなく、バイナリでのアップデートも可能)。今回セキュリティホールが見つかったsendmailは、portsのソフトではなく、最初からインストールされているソフトなので(base system)、portupgradeでアップデートすることはできません。



ただ、sendmailって、portsにも入ってるんですよね。そうか、baseのsendmailを使わずに、portsでインストールしちゃえばいいのかも?!





0 件のコメント:

コメントを投稿