openSSL漏洞原理及安全加固

时间:2023-03-08 18:53:28
openSSL漏洞原理及安全加固

2014年4月8日晚,互联网爆出了又一重量级安全漏洞,即CVE-2014-0160,通俗来讲就是OpenSSL出现了安全漏洞。

说 这个漏洞前,先介绍一下OpenSSL,OpenSSL是一个强大的安全套接字层密码库,很多支付网站等涉及资金交易的平台都用它来做加密工具,比如支付 宝,财付通,各种银行网站,那些带有Https网址的网站,都使用了这一套工具。也就是说它是一个保障账户安全的工具,而如今,这个保镖却被爆出自身就有 严重漏洞,在https开头网址登录的网站,初步评估有不少于30%的网站中招。

简单说下攻击者是如何利用这个漏洞的:

OpenSSL的某个模块存在一个BUG,当攻击者构造一个特殊的数据包,满足用户心跳包中无法提供足够多的数据会导致memcpy把SSLv3记录之后的数据直接输出,该漏洞导致攻击者可以远程读取存在漏洞版本的openssl服务器内存中长达64K的数据。

也就是说,当攻击者得到这64K数据后,就有可能从数据中得到当前用户的用户名,密码,Cookies等敏感信息,更要命的是,这是远程获取的,也就是攻击者只要在自己电脑上提交恶意数据包,就能从服务器上取得这些数据。不要认为区区64K问题不大,问题是攻击者可以反复提交,也就是能源源不断的得到“新的”64K,理所当然的包含了新的用户信息,因为网站的用户也是源源不断的嘛。

漏洞修复方案:

如果你是站长,请按照下面解决方案进行修复:
第一步:

Debian/Ubuntu:
# apt-get update
# apt-get install openssl libssl1.0.0

CentOS/Redhat/Fedora:
# yum update openssl

openSUSE:
# zypper in -t patch openSUSE-2014-277

如果没有源或者不想从源安装,请手工将OpenSSL升级至1.0.1g版本

第二步:

修复完毕后,请重启WEB服务,Apache/Nginx/Httpd的重启方式分别如下:
# /etc/init.d/apache2 restart
# /etc/init.d/ngnix restart
# /etc/init.d/httpd restart

还需要重启其他与OpenSSL相关的服务。(可通过 lsof | grep libssl | awk '{print $1}'| sort | uniq 查看与OpenSSL库相关的服务)。

重启完毕后,可以通过上面的检查框进行验证。

漏洞检测网站:

http://wangzhan.360.cn/heartbleed#xcc.edu.cn