glibcの脆弱性へのAmazonLinuxでの対応

glibc ライブラリの脆弱性 (CVE-2015-7547) に関する注意喚起が出ています。SeverityがCriticalになっているので対応は早めにしたほうが良さそうです。

glibc ライブラリの脆弱性 (CVE-2015-7547) に関する注意喚起

ドメインの名前解決に関連する脆弱性

クラスメソッドさんのサイトでさっそく対応のまとめが出ています。「EC2はAWS DNSを参照する場合は影響無し」との事で、AmazonLinuxを普通に使っている分には影響なさそうです。

CVE-2015-7547 (glibcの脆弱性) AWSでの対応まとめ

脆弱性の具体的な情報については下記に記載があります。

ALAS-2016-653

A stack-based buffer overflow flaw was found in the send_dg() and send_vc() functions, used by getaddrinfo() and other higher-level interfaces of glibc

とある通り、名前解決する時に悪意のあるDNSサーバー等を参照してたりするとヤバイという事なんですかね。なので、AmazonLinuxで通常使われるAWSのDNSキャッシュサーバー(AWS DNS)を使っている場合には問題がないという事なんだと思います。

resolv.confを確認する

AmazonLinuxのresolve.confを確認して、下記のようにnameserverがVPCのIPアドレス範囲+2になっていればAWS DNSを参照しています。

$ cat /etc/resolv.conf 
; generated by /sbin/dhclient-script
search ap-northeast-1.compute.internal
nameserver xx.xx.xx.2 # VPCのIPアドレス範囲+2になっている

参考情報

AWS VPCのDNSサーバを変更する

修正の対応方法

AWS DNS参照しているので対応しなくても良いのですが気持ち悪いのでいちおう対応します。

既存のEC2インスタンスで対応する場合は、yum updateします。yum update後、サーバー再起動が必要です。

$ sudo yum clean all
$ sudo yum update glibc

ぼくの場合はOpsWorksで運用しているのでインスタンスの入れ替えました。AmazonLinuxのAMIに既に修正が含まれているので新しくインスタンスを作れば自動的に対応できます。AmazonLinuxに取り込まれているセキュリティパッチは下記で確認することができます。

Amazon Linux AMI Security Center

こうやって改めてセキュリティパッチを見ると、OpsWorksとかElasticBeanstalkとかもそうですが自動的に対応されていくので運用がラクですね。

サーバー入れ替え前

$ rpm -qa | grep glibc
glibc-devel-2.17-106.163.amzn1.x86_64
glibc-common-2.17-106.163.amzn1.x86_64
glibc-headers-2.17-106.163.amzn1.x86_64
glibc-2.17-106.163.amzn1.x86_64

サーバー入れ替え後

$ rpm -qa | grep glibc
glibc-devel-2.17-106.166.amzn1.x86_64
glibc-common-2.17-106.166.amzn1.x86_64
glibc-headers-2.17-106.166.amzn1.x86_64
glibc-2.17-106.166.amzn1.x86_64

こちらに記載があるように、バージョンが2.17-106.166になっていればOKです。