0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Linux内核漏洞精准检测

秃头也爱科技 来源:秃头也爱科技 作者:秃头也爱科技 2022-10-13 15:44 次阅读

Linux内核结构

Linux内核由七个部分构成,每个不同的部分又有多个内核模块组成,结构框图如下:

IMG_256

Linux裁剪场景分析:

通过分析Linux内核源代码可以看到不同目录中存放着不同模块的实现代码,同时在编译时可以config中配置的信息来控制哪些模块编译到最终的二进制中,哪些模块被裁剪掉,比如以IPV6模块为例,控制该模块的配置名称为CONFIG_IPV6,如果该配置项为设置为y,则表示该功能模块未被编译到最终的二进制文件中,如下所示:

IMG_257

如果该功能模块被裁剪了,即使该漏洞没有被补丁修复,那么该功能模块中存在的漏洞在二进制中也是不受影响的,因此和IPV6相关的漏洞在漏洞检测时就应该在报告中明显的标识出不受该漏洞的影响,如CVE-2013-0343(Linux kernel 3.8之前版本内的net/ipv6/addrconf.c中的函数 ipv6_create_tempaddr没有正确处理IPv6临时地址生成问题,可允许远程攻击者通过 ICMPv6 Router Advertisement (RA) 消息,造成拒绝服务,然后获取敏感信息)。

业界二进制SCA工具不能检测的原因分析:

为什么目前业界通常的二进制SCA工具无法做到精准检测,原因是因为业界二进制SCA工具是基于检测到的开源软件名称和版本号来关联出已知漏洞清单的,而这种通过裁剪功能模块的方法来应用Linux内核,开源软件名称和版本号是不会改变的,因此工具就无法精准的检测出来了。

二进制SCA工具如何实现该功能:

要实现Linux内核裁剪场景下的已知漏洞精准检测,二进制SCA工具必须在原来检测开源软件名称和版本号的基础上,需要实现更新细颗粒度的检测技术,基于源代码文件颗粒度、函数颗粒度的检测能力,从而实现裁剪场景下已知漏洞的精准检测,即可以知道哪些代码被编译到最终的二进制文件中,哪些代码没有参与编译。同时漏洞库也必须实现对细颗粒维度的支持,即漏洞信息必须精准定位是由哪些文件和函数中的代码片段引入的。

以CVE-2013-0343为例,通过分析漏洞描述信息和Linux内核源代码,可以获取到该漏洞和下面这些位置代码相关的定位信息:

"CVE-2013-0343" : {

"net/ipv6/addrconf.c" : [

“addrconf_add_ifaddr”,

“addrconf_dad_begin”,

“addrconf_dad_stop”,

“addrconf_dad_work”,

“addrconf_del_ifaddr”,

“addrconf_prefix_rcv”,

“addrconf_verify_rtnl”,

“addrconf_verify_work”,

“inet6_addr_add”,

“inet6_addr_del”,

“inet6_addr_modify”,

“inet6_rtm_deladdr”,

“inet6_rtm_newaddr”,

“inet6_set_iftoken”,

“inet6_set_link_af”,

“ipv6_create_tempaddr”,

“manage_tempaddrs”

]

}

基于如果引入漏洞的源代码没有参与编译出二进制,那么编译出来的二进制也就是不存在该漏洞的原理;因此只要二进制SCA工具能检测出上述位置的源代码没有参与编译出最终的vmlinux二进制文件,那么此vmlinux文件就不受CVE-2013-0343漏洞的影响。

总结:

二进制SCA工具要想更好的辅助安全人员实现安全审计、降低漏洞检测的误报率,必须向更细颗粒度的检测维度发展,而不仅仅停留在开源软件的层面,同时对漏洞库的要求也需要向细颗粒度的精准信息提出的挑战。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 二进制
    +关注

    关注

    2

    文章

    708

    浏览量

    41254
  • Linux
    +关注

    关注

    87

    文章

    10992

    浏览量

    206744
  • SCA
    SCA
    +关注

    关注

    1

    文章

    35

    浏览量

    11900
收藏 人收藏

    评论

    相关推荐

    Linux内核内存泄漏怎么办

    Linux内核开发中,Kmemleak是一种用于检测内核中内存泄漏的工具。
    发表于 07-04 11:04 598次阅读

    浅析Linux系统开源漏洞检测工具

    jSQL是一款轻量级安全测试工具,可以检测SQL注入漏洞。它跨平台(Windows, Linux, Mac OS X, Solaris)、开源且免费。
    发表于 07-23 07:21

    Linux内核教程

    本章学习目标掌握LINUX内核版本的含义理解并掌握进程的概念掌握管道的概念及实现了解内核的数据结构了解LINUX内核的算法掌握
    发表于 04-10 16:59 0次下载

    一种新的漏洞检测系统方案

    本文分析了漏洞检测技术重要性、研究现状以及存在问题,提出了一个新的漏洞检测系统模型。关键词:网络安全;入侵检测系统;
    发表于 07-15 11:09 14次下载

    Linux内核编译详谈

    Linux内核编译详谈
    发表于 10-30 09:51 7次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>编译详谈

    Linux内核提权攻击研究

    提权攻击是针对Linux系统的一种重要攻击手段。根据提权攻击所利用的漏洞类型,一般可将其分为应用层提权攻击和内核提权攻击。现有的防御技术已经能够防御基本的应用层提权攻击,但是并不能完全防御内核
    发表于 11-24 11:46 0次下载
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>提权攻击研究

    基于符号执行技术实现的驱动程序的漏洞检测

    的思路,提出了一种基于符号执行技术实现的驱动程序模拟环境,可以用于分析和检测Linux设备驱动程序中存在的安全漏洞。该环境通过模拟内核提供给驱动程序的服务接口,使驱动程序可以在应用层进
    发表于 12-05 16:06 0次下载
    基于符号执行技术实现的驱动程序的<b class='flag-5'>漏洞</b><b class='flag-5'>检测</b>

    如何修复Linux内核存在的TCP漏洞

    卡内基梅隆大学的 CERT/CC 发出警告,称 Linux 内核 4.9 及更高版本中有一个 TCP 漏洞,该漏洞可使攻击者通过极小流量对系统发动 DoS (Denial-of-Ser
    的头像 发表于 08-10 11:15 3402次阅读

    linux内核是什么_linux内核学习路线

    Linux内核是一个操作系统(OS)内核,本质上定义为类Unix。它用于不同的操作系统,主要是以不同的Linux发行版的形式。Linux
    发表于 09-16 15:49 2388次阅读

    linux内核参数设置_linux内核的功能有哪些

    本文主要阐述了linux内核参数设置及linux内核的功能。
    发表于 09-17 14:40 1222次阅读
    <b class='flag-5'>linux</b><b class='flag-5'>内核</b>参数设置_<b class='flag-5'>linux</b><b class='flag-5'>内核</b>的功能有哪些

    谷歌和英特尔警告Linux内核都存在高严重性蓝牙漏洞

    谷歌和英特尔警告说,除了最新版本的Linux内核外,其他所有版本的Linux内核都存在高严重性蓝牙漏洞。谷歌的一位研究人员表示,该
    的头像 发表于 10-16 17:00 1826次阅读

    最硬核的Linux内核文章

    来源 :头条号@Linux学习教程,冰凌块儿 01 前言 本文主要讲解什么是Linux内核,以及通过多张图片展示Linux内核的作用与功能,
    的头像 发表于 10-19 17:46 1902次阅读
    最硬核的<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>文章

    快速理解什么是Linux内核以及Linux内核的内容

    01 前言 本文主要讲解什么是Linux内核,以及通过多张图片展示Linux内核的作用与功能,以便于读者能快速理解什么是Linux
    的头像 发表于 10-21 12:02 3947次阅读
    快速理解什么是<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>以及<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>的内容

    Linux 5.10.5内核正式发布

    1月6日,Linux基金会宣布,Linux 5.10.5内核正式发布,所有5.10内核系列的用户都必须升级。
    的头像 发表于 01-07 14:36 2379次阅读

    Linux内核】从小小的宏定义窥探Linux内核的精妙设计

    Linux内核】从小小的宏定义窥探Linux内核的精妙设计
    的头像 发表于 08-31 13:30 1649次阅读