千家信息网

如何检测和修复Linux Glibc库安全漏洞

发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,这篇文章主要讲解了"如何检测和修复Linux Glibc库安全漏洞",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何检测和修复Linux Glibc库
千家信息网最后更新 2025年01月28日如何检测和修复Linux Glibc库安全漏洞

这篇文章主要讲解了"如何检测和修复Linux Glibc库安全漏洞",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何检测和修复Linux Glibc库安全漏洞"吧!

2015年1月27日Linux GNU glibc标准库的 gethostbyname函数爆出缓冲区溢出漏洞,漏洞编号为CVE-2015-0235。黑客可以通过gethostbyname系列函数实现远程代码执行,获取服务器的控制权及Shell权限,此漏洞触发途径多,影响范围大,已确认被成功利用的软件及系统:Glibc 2.2到2.17 (包含2.2和2.17版本)。

GNU glibc标准库的gethostbyname 函数爆出缓冲区溢出漏洞,漏洞编号:CVE-2015-0235。 Glibc 是提供系统调用和基本函数的 C 库,比如open, malloc, printf等等。所有动态连接的程序都要用到Glibc。远程攻击者可以利用这个漏洞执行任意代码并提升运行应用程序的用户的权限。

漏洞检测方法

按照说明操作即可:

代码如下:

#include
#include
#include
#include
#include
#define CANARY "in_the_coal_mine"
struct {
char buffer[1024];
char canary[sizeof(CANARY)];
} temp = { "buffer", CANARY };
int main(void) {
struct hostent resbuf;
struct hostent *result;
int herrno;
int retval;
/*** strlen (name) = size_needed -sizeof (*host_addr) - sizeof (*h_addr_ptrs) - 1; ***/
size_t len = sizeof(temp.buffer) -16*sizeof(unsigned char) - 2*sizeof(char *) - 1;
char name[sizeof(temp.buffer)];
memset(name, '0', len);
name[len] = '\0';
retval = gethostbyname_r(name,&resbuf, temp.buffer, sizeof(temp.buffer), &result, &herrno);
if (strcmp(temp.canary, CANARY) !=0) {
puts("vulnerable");
exit(EXIT_SUCCESS);
}
if (retval == ERANGE) {
puts("notvulnerable");
exit(EXIT_SUCCESS);
}
puts("should nothappen");
exit(EXIT_FAILURE);
}

将上述代码内容保存为GHOST.c,执行:

代码如下:

gcc GHOST.c -o GHOST

$./GHOST
vulnerable //表示存在漏洞,需要进行修复。

$./GHOST
notvulnerable //表示修复成功。

建议修补方案

特别提示:由于glibc属于Linux系统基础组件,为了避免修补对您服务器造成影响,建议您选择合适时间进行修复,同时务必在修复前通过快照操作进行备份。

CentOS 5/6/7

代码如下:

yum update glibc

Ubuntu 12/14

代码如下:

apt-get update
apt-get install libc6

Debian 6

代码如下:

wget -O /etc/apt/sources.list.d/debian6-lts.list http://mirrors.aliyun.com/repo/debian6-lts.list
apt-get update
apt-get install libc6

Debian 7

代码如下:

apt-get update
apt-get install libc6

openSUSE 13

代码如下:

zypper refresh
zypper update glibc*

Aliyun linux 5u7

代码如下:

wget -O /etc/yum.repos.d/aliyun-5.repo http://mirrors.aliyun.com/repo/aliyun-5.repo
yum update glibc

感谢各位的阅读,以上就是"如何检测和修复Linux Glibc库安全漏洞"的内容了,经过本文的学习后,相信大家对如何检测和修复Linux Glibc库安全漏洞这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

漏洞 代码 检测 安全 安全漏洞 函数 内容 系统 学习 成功 建议 服务器 权限 标准 程序 缓冲区 修补 影响 服务 缓冲 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 阿里云搭建菲律宾代理ip服务器 亚马逊服务器搭建ss 陌陌软件开发在多少年 DNS服务器端配置与管理 图形和数据库的区别 网络安全企业 政府关系部 徐汇区综合网络技术代理品牌 银行软件开发岗的职业规划 小公司有几台数据库 微信日志数据库文件密码计算 昌江区风采网络技术工作室 数据库的关系定义 什么专业学网络安全 登录网站显示调用服务器超时 dns服务器服务类型有哪些 网络技术与数据库读书笔记 淘宝服务器域名ip地址 床位分配数据库代码 湖南游戏软件开发公司 数据库调优 水平扩展 华为云服务器代替手机芯片 本地数据库mdf文件导入 违反网络安全法第46条 邯山区企业网络推广需要服务器吗 数据库管理系统的安全防范措施 什么是地图软件开发 eos如何配置数据库 杭州宇视软件开发公司 数据库压缩拒绝访问 北京快行网络技术有限公司
0