OpenSSL HeartBleed漏洞

漏洞描述

由于未能在memcpy()调用受害用户输入内容作为长度参数之前正确进行边界检查。攻击者可以追踪OpenSSL所分配的64KB缓存、将超出必要范围的字节信息复制到缓存当中再返回缓存内容,这样一来受害者的内存内容就会以每次64KB的速度进行泄露。

请求包中的数据实际长度远远小于其标明的length长度,Server端根据其标明的length长度分配了堆,然后尝试将请求包中的数据都拷贝过来形成回应包,于是便从内存中的请求包数据处开始复制了length个长度的字节,已经远远超过了数据的实际长度,从而造成数据的泄露。通过这种方式,一般可以得到SSL使用的Server端的私钥,从而获得SSL会话密钥,以及用户的账号等信息,最多64KB的数据。

漏洞危害

  • 攻击者可利用该漏洞直接读取服务器数据;

修复建议

  • 升级OpenSSL到最新版本。
  • 使用DEPENSSL_NO_HEARTBEATS参数重新编译低版本的OpenSSL以禁用Heartbleed模块。
  • 删除OpenSSL组件。

results matching ""

    No results matching ""