こんにちは。SIOS OSSエバンジェリスト/セキュリティ担当の面 和毅です。
11/27/2018に予告通りSambaの脆弱性情報(Medium: CVE-2018-14629, CVE-2018-16841, CVE-2018-16851, CVE-2018-16852, CVE-2018-16853, CVE-2018-16857)と、新バージョン(Samba 4.9.3, 4.8.7, 4.7.12)が公開されています。今回はこれらの脆弱性の概要と、各ディストリビューションの対応について簡単にまとめてみます。
一次情報源
Samba Security Release (https://www.samba.org/samba/history/security.html)
CVE-2018-14629 (https://www.samba.org/samba/security/CVE-2018-14629.html)
CVE-2018-16841 (https://www.samba.org/samba/security/CVE-2018-16841.html)
CVE-2018-16851 (https://www.samba.org/samba/security/CVE-2018-16851.html)
CVE-2018-16852 (https://www.samba.org/samba/security/CVE-2018-16852.html)
CVE-2018-16853 (https://www.samba.org/samba/security/CVE-2018-16853.html)
CVE-2018-16857 (https://www.samba.org/samba/security/CVE-2018-16857.html)
Priority
- CVE-2018-14629
- CVSS v3 Base Score: 6.5
- CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- CVE-2018-16841
- CVSS v3 Base Score: 6.5
- CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- CVE-2018-16851
- CVSS v3 Base Score: 6.5
- CVSS:3.0/AV:N/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- CVE-2018-16852
- CVSS v3 Base Score: 4.9
- CVSS:3.0/AV:N/AC:L/PR:H/UI:N/S:U/C:N/I:N/A:H
- CVE-2018-16853
- CVE-2018-16857
- CVSS v3 Base Score: 5.9
- CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
修正方法
各ディストリビューションの情報を確認してください。
CVE概要(詳細はCVEのサイトをご確認ください)
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-14629
- 非特権ユーザの追加したCNAMEレコードによるAD DNSサーバの無限ループ
- 対象バージョン:Samba 4.0.0以降の全バージョン
- Samba 4.0.0以上のバージョンでは、CNAMEループにより再帰的無限クエリによる脆弱性があります。非特権ユーザがlbdaddツールを使うことにより、ldapを通して任意のDNSレコードを追加することが出来るため、これはセキュリティの問題です。
- 暫定回避策: Samba AD DCをDNSとしてBIND9を使うように設定することで暫定的に回避が可能です。これには
samba_upgradedns --dns-backend=BIND9_DLZ
を実行し、smb.confで
server services = -dns
を設定します。
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-16841
- Samba AD DC KDCのPKINITによる二重解放
- 対象バージョン:Samba 4.3.0以降の全バージョン
- スマートカード認証を受け付けられるように設定されている場合、SambaのKDCは有効な署名をされた証明書中のプリンシパルがAS-REQ中のプリンシパルと一致しない場合に、同じメモリ上でtalloc_free()を2回コールします。
これは信頼された証明書で承認された後にのみ発生します。
tallocはtalloc_freeによる二重解放から生じるさらなる腐敗に対してロバスト性があるため、直接abort()を呼び出しKDCプロセスが終了します。
この問題によるさらなる脆弱性は存在せず、単にDoSとなります。
- 暫定回避策: krb5.confから
enable-pkinit = true
を削除して、スマートカードログインを無効にすることで暫定的に回避が可能です。
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-16851
- Samba AD DC LDAPサーバ中のNULLポインタ非参照
- 対象バージョン:Samba 4.0.0以降の全バージョン
- SambaのAD DCがLDAPエントリーをクライアントに返す前にLDAPサーチが行われると、エントリはシングルメモリオブジェクト(最大サイズ256MB)中にキャッシュされます。このサイズに達した場合、LDAPサービスを提供するSambaプロセスはNULLポインタに達し、プロセスが終了します。
この問題によるさらなる脆弱性は存在せず、単にDoSとなります。
- 暫定回避策: Samba 4.7以降ではデフォルトの’standard’プロセスモデルとして開始されている場合には、接続に使われているプロセスだけが攻撃者のクライアントに戻ってクラッシュさせます。
デフォルトでは匿名のアクセスはrootDSE(サーバのメタデータ)のみで有効になっているため、認証されたユーザだけが大量のデータを読み出すことが出来ます。
- http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-16852
- Samba AD DC DNSサーバ中のNULLポインタ非参照
- 対象バージョン:Samba 4.9.0以降の全バージョン
- DNSを管理するDCE/RPCサーバ中でDNSゾーンが処理されている際に、内部のDNSサーバやBIND9用のSamba DLZプラグインで、DSPROPERTY_ZONE_MASTER_SERVERSプロパティまたはDSPROPERTY_ZONE_SCAVENGING_SERVERSがセットされている時、サーバはNULLポインタに達して終了します。
この問題によるさらなる脆弱性は存在せず、単にDoSとなります。
- 暫定回避策: ありません。しかし、dnsZoneオブジェクトに対して書き込みアクセスが出来るユーザのみがこの問題を引き起こすことができます。
- Samba AD DC S4U2SelfのexperimentalなMIT Kerberos configurationでのクラッシュ(サポート対象外)
- 対象バージョン:Samba 4.7.0以降のバージョン
- Samba ADドメイン中のユーザはSambaがデフォルトでないMIT Kerberos configurationでビルドされている場合、KDCをクラッシュさせることが出来ます。
このアドバイザリでは、Samba AD DCのMIT Kerberosビルドがexperimentalであると明白にしたいと思っています。したがって、Sambaチームはこの問題に対してセキュリティパッチは提供しません。
- 暫定回避策: SambaのデフォルトのHeimdalビルドでは、この問題は発生しません。
- AD DCでのBadパスワードカウントが必ずしも有効ではない
- 対象バージョン:Samba 4.9.0以降のバージョン
- デフォルトでは、SambaはBadパスワードを30分記憶しています。すなわち
$ samba-tool domain passwordsettings show ... Reset account lockout after (mins): 30
これはまた、'Badパスワード観察ウィンドウ'として知られており、ドメインDNのlockOutObservationWindow属性で設定されるか、より詳細なパスワードポリシ(パスワード設定オブジェクト - PSO)で設定されています。
この値が3分以上に設定されている場合には、Badパスワードロックアウトは有効にならないことがあります。
この設定が8-10分、または15-16分の場合には、SambaはBadパスワードロックアウト保護を提供しますが、設定されたよりも小さい観察ウィンドウを使います(実際の設定に依存しますが、41-170秒の間です)。
その他全ての設定された観察ウィンドウが3分以上の場合(デフォルトを含みます)、Badパスワードカウントは動作しません。これはbadPwdCount属性(これには繰り返されたBadパスワード試行回数が格納されます)が1を超えないことを意味します。'アカウントロックアウトスレッシュホールド(account lockout threshold)'には達せず、従ってユーザはロックアウトされないことになります。
この問題の主なリスクは、Samba 4.8以前からアップグレードされたドメインに関するものです。この場合、組織のパスワードポリシを確認するための手動のテストが、アップグレード後に再度実行されていない可能性があります。
- 暫定回避策: Badパスワードロックアウトはデフォルトでは設定されておらず、従ってスレッシュホールドが
samba-tool domain passwordsettings set --account-lockout-threshold=3
で設定されてた場合のみ有効になります。
この問題を緩和するには、'Reset account lockout after'ウィンドを短く設定することです(無効のデフォルトは30ですが、3以下でも動作します)。
samba-tool domain passwordsettings set --reset-account-lockout-after=3
注意:この設定はアカウントがどれだけの時間ロックされるか(これは --account-lockout-durationで制御できます)ではなく、Sambaがどれだけの時間Badパスワード試行を覚えているかを制御します。このません。しかし、dnsZoneオブジェクトに対して書き込みアクセスが出来るユーザのみがこの問題を引き起こすことができます。
注意:より詳細なパスワードポリシ(PSO)がセットされている場合には、これはそれぞれのPSOでも行う必要があります。
主なディストリビューションの対応方法
詳細は、各ディストリビューションの提供元にご確認ください
- Debian
https://security-tracker.debian.org/tracker/CVE-2018-14629
https://security-tracker.debian.org/tracker/CVE-2018-16841
https://security-tracker.debian.org/tracker/CVE-2018-16851
https://security-tracker.debian.org/tracker/CVE-2018-16852
- Red Hat Enterprise Linux/CentOS
https://access.redhat.com/security/cve/CVE-2018-14629
https://access.redhat.com/security/cve/CVE-2018-16841
https://access.redhat.com/security/cve/CVE-2018-16851
https://access.redhat.com/security/cve/CVE-2018-16852
- Ubuntu
https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-14629.html
https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-16841.html
https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-16851.html
https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-16852.html
https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-16853.html
https://people.canonical.com/~ubuntu-security/cve/2018/CVE-2018-16857.html
- SUSE/openSUSE
対処方法
各ディストリビューションの案内に従い、アップデートを行ってください。全てのRed Hat製品でパッチが行き渡っているかを確認するには、Red Hat SatelliteやKatello、Spacewalk等を使うと管理が便利でしょう。
また、サービスの再起動が発生しますので、peacemakerなどOSSのクラスタ製品やLifeKeeperなどの商用のクラスタリング製品を使うとサービス断の時間を最小限にすることが出来ます。
[参考]
Samba Security Release (https://www.samba.org/samba/history/security.html)
CVE-2018-14629 (https://www.samba.org/samba/security/CVE-2018-14629.html)
CVE-2018-16841 (https://www.samba.org/samba/security/CVE-2018-16841.html)
CVE-2018-16851 (https://www.samba.org/samba/security/CVE-2018-16851.html)
CVE-2018-16852 (https://www.samba.org/samba/security/CVE-2018-16852.html)
CVE-2018-16853 (https://www.samba.org/samba/security/CVE-2018-16853.html)
CVE-2018-16857 (https://www.samba.org/samba/security/CVE-2018-16857.html)
セキュリティ系連載案内
- OSSセキュリティ技術の会による日経Linuxでの連載「IoT時代の最新SELinux入門」がITPro上で読めるようになりました。技術の会代表で第一人者である中村さん等による、最新のSELinuxの情報やコマンド類等も更新されているのでお薦めです。
- OSSセキュリティ技術の会によるThinkITでの連載「開発者のためのセキュリティ実践講座」がThinkIT上で開始しました。技術の会の中の人間で、最新の代表的なOSSセキュリティ技術を紹介していきます。
- OSSセキュリティ技術の会により、ThinkITでLinuxSecuritySummit 2017のレポートが紹介されています。
- OSSセキュリティ技術の会の面により、@ITで「OSS脆弱性ウォッチ」が連載されています。
- OSSセキュリティ技術の会の面により、@ITで「OpenSCAPで脆弱性対策はどう変わる?」が連載されています。
- OSSセキュリティ技術の会のメンバーにより、@ITで「Berkeley Packet Filter(BPF)入門」が連載されています。