opensslの対応メモ


よくあるわりに対応方法がいろんなとこに散らばって濃度が違ってたのでこちらに備忘録。
CentOS。

バージョン確認

openssl version
rpm -qa|grep openssl

チェンジログを一応みる

$ rpm -q --changelog openssl|head
* Thu Sep 22 2016 Tomáš Mráz <[email protected]> 1.0.1e-48.3
- fix CVE-2016-2177 - possible integer overflow
- fix CVE-2016-2178 - non-constant time DSA operations
- fix CVE-2016-2179 - further DoS issues in DTLS
- fix CVE-2016-2180 - OOB read in TS_OBJ_print_bio()
- fix CVE-2016-2181 - DTLS1 replay protection and unprocessed records issue
- fix CVE-2016-2182 - possible buffer overflow in BN_bn2dec()
- fix CVE-2016-6302 - insufficient TLS session ticket HMAC length check
- fix CVE-2016-6304 - unbound memory growth with OCSP status request
- fix CVE-2016-6306 - certificate message OOB reads

バージョンアップ

$ sudo yum update openssl
$ rpm -qa|grep openssl

ssl更新後のライブラリが使われているか確認

$ sudo ls -lh /usr/lib64/libssl*
-rwxr-xr-x 1 root root 256K Jun 25  2015 /usr/lib64/libssl3.so
lrwxrwxrwx 1 root root   16 Nov 28 01:36 /usr/lib64/libssl.so -> libssl.so.1.0.1e
-rwxr-xr-x 1 root root 318K Jun  5  2014 /usr/lib64/libssl.so.0.9.8e
lrwxrwxrwx 1 root root   16 Nov 28 01:36 /usr/lib64/libssl.so.10 -> libssl.so.1.0.1e
-rwxr-xr-x 1 root root 435K Sep 27 12:30 /usr/lib64/libssl.so.1.0.1e
lrwxrwxrwx 1 root root   16 Sep 24  2015 /usr/lib64/libssl.so.6 -> libssl.so.0.9.8e

ライブラリ使ってるプロセスを確認

$ sudo  lsof -n | egrep -a 'ssl|PID'
COMMAND     PID         USER   FD      TYPE             DEVICE SIZE/OFF       NODE NAME
pickup      596      postfix  mem       REG              202,1   261248      50252 /usr/lib64/libssl3.so
pickup      596      postfix  mem       REG              202,1   445416      67085 /usr/lib64/libssl.so.1.0.1e
sudo        792         root  mem       REG              202,1   261248      50252 /usr/lib64/libssl3.so
aws        1277         root  DEL       REG              202,1               61271 /usr/lib64/libssl.so.1.0.1e.#prelink#.hFLQuR
aws        1277         root  mem       REG              202,1    34112     134754 /usr/lib64/python2.6/lib-dynload/_ssl.so
master     1891         root  DEL       REG              202,1               90597 /usr/lib64/libssl3.so
master     1891         root  DEL       REG              202,1               61271 /usr/lib64/libssl.so.1.0.1e.#prelink#.hFLQuR
qmgr       1918      postfix  DEL       REG              202,1               90597 /usr/lib64/libssl3.so
qmgr       1918      postfix  DEL       REG              202,1               61271 /usr/lib64/libssl.so.1.0.1e.#prelink#.hFLQuR
zabbix_ag 12897         root  mem       REG              202,1   261248      50252 /usr/lib64/libssl3.so
zabbix_ag 12897         root  DEL       REG              202,1               67086 /usr/lib64/libssl.so.1.0.1e
zabbix_ag 12905         root  mem       REG              202,1   261248      50252 /usr/lib64/libssl3.so
zabbix_ag 12905         root  DEL       REG              202,1               67086 /usr/lib64/libssl.so.1.0.1e
~略~

$ rpm -qf /usr/lib64/libssl.so.1.0.1e

監視とか止めたり待機系にするかそうであることを確認したりしてOS再起動
(事情があってOSまるごとは無理そうならライブラリ使ってるプロセス再起動という手も。まあでもバンドルされてて使ってないやつ放置とか見切れないのでrebootがいいのでは。)

$ w
$ ss
$ ps -auxww

$ reboot

$ ssh <host>
$ w
$ ss
$ ps -auxww

作業後の確認としては、
バージョン上がってて同じプロセスが起動してて同じポートがリッスンされてて監視アラート出てないか等。

以上