|
日本 Samba ユーザ会 (Samba Users Group Japan)
Samba 2.2.8(オリジナル版)リリースのお知らせSamba 2.2.8 リリースについて2002/03/14、Sambaチームは、安定版リリースであるSamba 2.2.8を発表しました。(アナウンス自体は3/15に流れています)
これは 2.0.x 〜 2.2.7a までに存在するセキュリティホールの修正を含んだものです。Sambaチームは2.2.8にアップグレードを行うか、または下記に示したような対処を行うことを推奨しています。自身の利用形態を確認した上で、対応を行って下さい。
なお、翻訳文内でも記載されているように、Samba が実装している CIFS/SMB プロトコルは本質的に脆弱です。基本的に本件のセキュリティホールに限らず、Firewallなどで防御してインターネットから接続できない様に設定を行ってください。
【注意】
本リリースはオリジナル版のSambaであり、日本Sambaユーザ会がリリースしている「Samba日本語版」ではありません。Samba日本語版の最新リリースバージョンはSamba 2.2.7a-ja-1.0です。なお、現時点でリリースしているSamba日本語版にも同様の問題が存在していることを認識しています。これについては、Samba 2.2.7a-ja-1.1 としてリリースを行う予定です。(なお、Samba 2.2.7a-ja-1.1は、このすぐ後にリリースされています) 以下に samba-jp メーリングリスト(samba-jp@samba.gr.jp) での
リリースノート翻訳
を元にしたものを付記します。なお、一部内容について注意書きを付記してあります。(※アナウンスの際に内容が不適当であったため注意書きについては削除いたしました)
原文については、以下のURLを参照して下さい。
http://us1.samba.org/samba/whatsnew/samba-2.2.8.html
本リリースは、以下のリリースノートで概説する重要なセキュリティの修正を行うものです。これは Samba の安定版リリースの最新のものになります。このバージョンは、現在確認されているすべてのバグ修正を適用するために、業務に利用しているすべてのSambaサーバにおいて実行すべきバージョンです。
ソースコードは、以下からダウンロードすることが可能です:
http://download.samba.org/samba/ftp/ samba-2.2.8.tar.gz と samba-2.2.8.tar.bz2 のいずれかをご利用ください。 いずれのファイルも、Samba 配布キーによる署名が行われています。
主なプラットフォームのバイナリパッケージは、以下から入手可能です:
http://download.samba.org/samba/ftp/Binary_Packages/
リリースノートは以下を参照してください。
従来通り、すべてのバグは、我々に責任があります。
--Sincerely
The Samba Team 重要: Samba のセキュリティ修正概要
SuSE セキュリティ監査チーム、特に Sebastian Krahmer <krahmer@suse.de>は Samba の中核をなす smbd のコードに、外部の攻撃者がリモートから認証なしで Samba が実行されているサーバのスーパーユーザ(root)権限を取得することが可能となる不具合を発見した。
この不具合は、Samba 2.0.x から 2.2.7a までの各バージョンにも存在する。これは致命的な不具合であり、すべてのサイトは直ちに Samba 2.2.8 へのアップグレードを行うか、TCP ポートの 139 と 445 へのアクセスを禁止するようにすべきである。Samba Team のリーダである Andrew Tridgell による、パッチを適用していない Samba サーバをどのように防御すべきかについての アドバイスが本セクションの末尾に付加されている。
Samba の実装されている SMB/CIFS プロトコルはセキュリティホールが存在しない場合でも多くの攻撃に対して脆弱である。TCP ポート 139 および 445 (これは Windows 2000 と Samba 3.0 のアルファ版のコードで使われている)は、信頼できないネットワークに対して解放すべきではない。
詳細
smbd に含まれる SMB/CIFS パケットのフラグメントと再構成のコード中に、攻撃者が smbd のプロセスが占めるメモリ中の任意の領域を上書きし、バッファオーバーランが発生させることが可能な状況が存在する。これにより技術力のある攻撃者は smbd に対してバイナリ依存のコードを送り込むことが可能となってしまう。
このバージョンの Samba では、SMB/CIFS パケットのフラグメントの再構成時に明示的にバッファオーバーフローのチェックを行うことで、smbd が適切な再構成を行うようにしている。
加えて、同様のチェックがクライアント側のコードにも組み込まれているため、smbd 以外のサービスを利用する場合も安全である。
謝辞
このセキュリティ上の不具合は SuSE セキュリティ監査チームの SebastianKrahmer <krahmer@suse.de> によって発見され、Samba Team に報告された。
この修正は Jeremy Allison によって用意され、Samba Team、SuSE、HP、SGI、Apple および Linux ベンダのセキュリティメーリングリストのエンジニアによってレビューされた。 Samba Team は、卓越した監査作業とこの不具合に対する諸々の作業に対して、SuSE および Sebastian Krahmer に感謝する。 パッチの提供
これはセキュリティ上の問題であるため、この不具合に対する以前のバージョンの Samba に対するパッチについても、要望があれば samba-technical@samba.org メーリングリストに投稿される。
パッチを適用しない Samba サーバを防御するSamba Team, March 2003
以下の文書は、最近発見されたリモートからのセキュリティホールに対処するに当たって、直ちに修正されたバージョンにアップグレードすることができない場合に、どのように対処すべきかについて記述したものである。アップグレードを行った場合についても、さらなる防御を行う上で、本文書の記述を参考にして欲しい。
ホスト単位の防御
多くの場合、インストールされた Samba は外部ネットワークからの脅威にさらされている。Sambaのデフォルトでは任意のホストからの接続が許可される。これはインターネットに直結されているホスト上で脆弱性のある Sambaを実行していた場合、脆弱性が顕在化してしまっているということに他ならない。
この問題に対処する最も簡単な対処策は、Samba の設定ファイルである smb.conf 中に「hosts allow」と「hosts deny」オプションを設定することで、サーバに対する接続を特定の範囲のホストに限定してしまうことである。
一例を以下に示す:
hosts allow = 127.0.0.1 192.168.2.0/24 192.168.3.0/24
上記では、SMB 接続を「localhost(自身)」と 192.168.2 と 192.168.3
という二つの内部ネットワークのみに限定している。それ以外のホストからの接続はクライアントがパケットを送出した瞬間に拒否される。拒否される場合、「not
listening on called name」というエラーが返却される。
インタフェースの防御
Samba のデフォルトでは、システム上に存在する任意のネットワークからの接続が許可される。これは ISDN 網や PPP
を経由してインターネットに接続している場合、Samba
はこれらの回線を経由した接続を許可してしまうということである。これは望ましいことではないだろう。
この挙動は、以下のようなオプションを設定することで変更することが可能である:
interfaces = eth* lo
上記の設定により、Samba は eth0、eth1
のように「eth」ではじまる名称のインタフェースと「lo」というループバックインタフェースからの接続のみを待機(listen)するようになる。
この名称については、利用している OS に応じて適切なものを指定する必要がある。上記の例では Linux で一般的なイーサネットアダプタを例示している。
上記の設定を行っている際に、誰かが「ppp0」という PPP インタフェース経由でホストに SMB 接続を行おうとした際には、TCP
コネクション拒否の応答が返却される。この場合 Samba のコードは全く動作せず、OS
がそのインタフェース経由での接続はどのプロセスに対しても許可されていないという応答を行う。
ファイアウォールの利用
多くの場合、外部のネットワークへの公開が望ましくないサービスへのアクセスを拒否するためにファイアウォールが利用されている。可能な限り、前述した対処策と併用することで、万一ファイアウォールが無効になった場合でも防御を行えるようにしておくことを推奨はするが、ファイアウォールの利用は妥当な対処策である。
ファイアウォールの設定を行う際には、どの TCP および UDP のポートを遮断する必要があるかを知っておく必要がある。Samba は以下のポートを使用している:
UDP/137 - nmbd が使用
最後のポートについて、古いファイアウォールの設定では考慮されていない場合が多いため注意すること。このポートは最近用いられているプロトコルでのみ利用されている。
IPC$ 共有の利用拒否
上記の対処策が利用できない場合は、発見されたセキュリティホールが利用する IPC$ 共有への接続のみを拒否することも可能である。これにより
IPC$ 共有に対する潜在的に信頼できないホストからのアクセスを拒否しながら、その他の共有へのアクセスを許可することが可能となる。
これを行うには、以下のように設定を行う:
[ipc$]
これにより、Samba は、明示的に指定された 2 箇所(localhost とローカルサブネット)以外からの IPC$
への接続を禁止する。それ以外の共有への接続は許可されたままである。匿名での接続を常に許可する必要があるのは IPC$
共有のみであるため、この対処策によりユーザ名とパスワードを知らない攻撃者に対してある程度の防御が行われることになる。
この対処策を利用する場合に、IPC$ 共有に接続しようとしたクライアントは「アクセスが拒否されました」というメッセージを受けとってしまう場合がある。こうしたクライアントは共有の一覧を始めとする幾つかのリソースにアクセスすることができない。
この対処方は、何らかの理由によりそれ以外の対処策を利用することができない場合を除き、推奨しない。
Samba のアップグレード
もちろん、最良の解決策は、Samba を不具合が修正されたバージョンにアップグレードすることである。上記の対処策のいずれかを用いても、もちろん構わないであろう。
アップグレードや重要なアナウンスがないかどうか、
https://www.samba.org/ を定常的にチェックするようにして欲しい。 2.2.7a からの変更点
新規パラメータ
追加の変更点:
詳細は、SAMBA_2_2 の CVS のログを参照のこと
|