glibc 脆弱性対応に関する備忘録 (CVE-2015-7547)
※WebやSNSの情報漁った個人まとめなので、CVEやGoogleやRedhatなど各社が出している公式情報を参照してください。
CVE-2015-7547の内容
悲報。glibc 2.9以降の脆弱性が本日 2/17 (日本時間) 発見された。getaddinfo() 関数の脆弱性で悪用されるとリモートコードの実行が可能なリスクを孕んでいるとのこと。
「glibc」ライブラリに脆弱性、Linuxの大部分に深刻な影響 - ITmedia エンタープライズ Google Online Security Blog: CVE-2015-7547: glibc getaddrinfo stack-based buffer overflow
The glibc DNS client side resolver is vulnerable to a stack-based buffer overflow when the getaddrinfo() library function is used. Software using this function may be exploited with attacker-controlled domain names, attacker-controlled DNS servers, or through a man-in-the-middle attack.
要するに、
- glibc (2.9 later) に脆弱性が見付かった
- glibcのDNS resolver をbuffer overflowさせることで攻撃者は任意のコードを実行可能
- 例えば、中間者攻撃介して不正ドメインに誘導され、攻撃者のドメイン名をcallされるような処理くらうと発火
- さっさとglibc updateしてOS再起動(もしくはglibc参照しているプロセス再起動)しましょう
DNSサーバ側での対応
getaddrinfo() 関数のバッファオーバーフローが発動する2,148バイト以上の場合に成立するらしい。 そのため、DNSサーバ側で対処するなら、単純にDNS response sizeをTCP/UDP 共に2,048 byteに制限すれば良い。 上記の情報が正しければ、Google DNSもAWS DNSも対処済みとのことなので、厳しければ再起動せずこの方法でも回避できるとのこと。
これに関して早速良記事。 何か起きてからでは遅いのでさっさとglibc上げるに越したことはなさそうだけど。
glibc使って外部通信行ってるLinuxサーバの対応
各Distributionのパッチが公開されてから、RedhatさんGoogleさん公式発表してくれた。なので、公開されているパッチ当てれば基本はOK。
GHOST対応時に、sshログインできなくなる事象があったらしいので、念のため開発/検証用のサーバで挙動確認してみたけど、特に異常なし。
GHOST脆弱性にyum update glibc、その後リブートする前に - Qiita
CentOS6.6の個人検証機は無事updateできたので、本番にも適宜展開していく。 (CentOS古くてお恥ずかしい...)
# cat /etc/redhat-release CentOS release 6.6 (Final) # rpm -qa glibc glibc-2.12-1.166.el6_7.7.x86_64