2006年05月15日 (月)

ClamXav における freshclam に suid パーミッションのセキュリティ問題

Secunia のセキュリティ勧告「ClamXav freshclam suid Permissions Security Issue」によると ClamXav における freshclam のパーミッションの付け方にセキュリティ上の問題があるそうです。危険度は 5 段階中 2 で「やや危険」。

ClamXav には ClamAV のバイナリパッケージが含まれています。そのバイナリーパッケージもそうですが、ソースから ClamAV をビルドした場合でも ClamXav で使えるようにパーミッションに関する変更をしなければならず、この問題はどちらの場合にでも当てはまります。最新の ClamXav 1.0.3h で確認されていますが、私が知っている 1.0.1 でもこの問題はあります。というよりも ClamXav 利用のための ClamAV インストール手順そのものが問題です。私が書いた手順も後で対策を加えて修正します。

ClamAV のアップデータ freshclam を ClamXav で使用する場合、そのオーナは root という特殊な管理用のユーザになり、しかも suid ビットといって freshclam を誰が起動しても root の権限で動作するように特殊なパーミッションが付与されます。suid ビットは実際の実行者の権限を越えた操作が可能になるため、もし suid ビットが付与されているプログラムに問題があるととても危険です。このためデフォルトで suid ビットが無効な UNIX システムは多数あります。

この問題は、"--config-file" オプション付きで使用されるときに freshclam によって表示されるエラーメッセージの中に /etc/shadow のようなセキュリティ上無闇に表示されるべきでないファイルの内容が表示されてしまうというものです。Mac OS X 10.4.6 には /etc/shadow はありません。"--config-file" オプションは freshclam の man コマンドで見ることができるマニュアルには載っていませんが "--help" オプションで出力されるヘルプには載っています。ソースを見ても実際に存在するオプションです。具体的にどうするのかはこのセキュリティ勧告に書いてある情報でわかってしいますが、無闇に広めるべきではないと思いますのでわかっても心の中にしまっておいてください。

Secunia の同勧告では(そのような freshclam がある)システムへのアクセスを(管理者以外に対して)制限するか、freshclam から suid ビットを取り除くのが解決策としています。確かにそれでも問題を回避できますが、それは同時に ClamXav を一般ユーザがいるシステムで運用してはならないか、ClamXav を使用するなと言っているに等しいです。

そこで私は freshclam のオーナを clamav ユーザにするというのでどうだろうかと考えています。clamav ユーザは Mac OS X 10.4.6 には最初から登録されているシステム用のユーザで、何か特殊な権限を持っているわけではありません。権限という観点では一般ユーザと同じ立場です。その権限で動作すればよいわけで、ClamAV のウィルス定義ファイルはそもそも clamav ユーザがオーナですから後はログファイルへの書き込み権限があれば問題ないはずです。

実際にその状態で ClamXav から freshclam を呼び出して簡単に動作を見たところ特に問題はなさそうです。そこでそのための手順を書いておきます。以下の手順は ClamXav のために調節された ClamAV において有効な手順です。ClamAV 一般には適用されません。

  1. ターミナルを起動する。

    ターミナルウィンドウが表示されます。以後、このウィンドウ上での操作です。

  2. freshclam のオーナを変更する。

    次をタイプして改行してください。パスワードが訊ねられますので管理者アカウントのパスワード(ログインするときのパスワード)をタイプして改行してください。このパスワードはエコーバックされません。

    sudo chown clamav /usr/local/clamXav/bin/freshclam

当初もっとたくさん書こうかと思ったのですが、せっかくエントリ「ClamAV と ClamXav: 第三回 ウィルス定義ファイルの自動更新」で freshclam をデーモンとしてシステムレベルで運用する方法を紹介しているので、総合的なソリューションはその線で検証してから書きます。取り敢えずは上の手順をやっておいてください。


Posted: 23:13    | Comment | Trackback


以下、類似エントリです。