利用LSM钩子打破系统调用跟踪桎梏

原创 Linux阅码场 2022-07-11 08:00


Ftrace训练营火热报名中:Ftrace训练营:站在设计者的角度来理解ftrace(限50人)。训练营第一期报名已圆满成功,好评如潮。第二期报名正在火爆进行中(咨询小月微信:linuxer2016)。


ARM安全架构训练营火热报名中:阅码场训练营:ARM安全架构之Trustzone-TEE实战。报名咨询客服(小月微信:linuxer2016)。


ARM架构与调优调试训练营火热报名中:阅码场训练营:ARM架构与调试调优。报名咨询客服(小月微信:linuxer2016)。




译者介绍:

许庆伟,Linux Kernel Security Researcher & Performance Developer


Tracee是一个用于Linux的运行时安全性和取证的开源项目,用于解决常见的Linux安全性问题。通过利用Linux扩展的Berkeley Packet Filter (eBPF)的技术优势,在内核运行时跟踪系统和应用程序,以便获取相应的数据信息。Tracee分析收集的事件可以用来检测可疑的行为模式,在本文中,我将分享从使用eBPF和Linux安全模块(LSM)钩子的角度,来分析在解决Linux漏洞(如TOCTOU类型)中学到的经验教训。


设计LSM钩子来提升安全性


在正在运行的应用程序中,通常是通过系统调用与操作系统进行交互。出于这个原因,安全从业者会使用系统调用来分析运行中的应用程序的行为。重点在于选择收集系统调用的方法,因为获取到的参数值和操作系统实际使用的参数值之间可能存在差距。


eBPF允许在无需更改内核源代码或加载内核模的情况下,在Linux内核中运行沙盒程序。通过使用kprobes附加到Linux Security Module (LSM)挂钩上,我们可以收集内核实际使用的参数值。下面是具体使用LSM钩子需要克服的一些问题:


准确理解相对路径


在Linux中,当从用户程序中读取信息时,path参数可以包含一个相对路径。


例如,当调用一个程序时,Tracee可以使用以下参数获取一个系统调用:


·open("../../directory/file", O_RDONLY)

·open("./test/../../directory/file", O_RDONLY)


这些系统调用中的路径可能指向相同的位置,但问题来了,根据给定的参数,很难精确定位绝对且始终唯一的规范路径。在构建安全策略时,规范路径的重要性变得更加明显,因为相对路径的意图和效果可能太过模糊。


找出链接文件


例如,用户程序给出的某个文件的参数值可能会包含指向其他文件的链接。在Linux中,我们可以创建到一个文件的符号链接,其方式是一个文件充当另一个文件或目录的引用。操作系统使用符号链接到达被链接的文件,并执行给定的命令。请看下面的例子,创建了一个名为python的文件,并将其链接到一个恶意的二进制文件my_malware:

 

当运行python时,我们可以看到Tracee跟踪了两个事件。其一是带有参数值的系统调用 ./python。但实际上,python是象征性地链接到~/bin/my_malware,第二个就是被Tracee捕获的security_bprm_check事件返回了实际执行的文件的路径名。

 


TOCTOU分析


当试图获取用户程序的参数值时,如果只分析系统调用参数,结果可能会受到条件竞争的影响而错过关键细节。这是因为在获取信息后,用户程序可以基于另一个并发线程,来进行更改系统调用参数。


例如,当调用一个程序时,Tracee可以使用以下参数获取一个系统调用:


execve("/bin/ls", NULL, 0)


在进程中某一线程和内核调用执行Syscall之间会存在同一时间点。在这个时间点开始阶段,通过使用指向进程地址空间中内存位置的指针,pathname参数被传递给内核。在这个期间,进程的另一个线程可以快速更改路径名,最后内核来更新路径名。


继续我们的例子,另一个线程可以将第一个参数从/bin/ls更改为/bin/malicious,后者将由内核执行,而前者将由Tracee记录。这个场景被称为TOCTOU竞态。攻击者可以利用它来影响检查和真正使用之间的记录值,这样会导致收集到的数据不准确,并误导安全研究人员或自动检测工具。


基于上面的原因,决定在Tracee中连同Syscall数据一起使用LSM钩子来进行追踪。像security_file_open这样的事件,包含内核实际使用的路径名,并与上报的常规Syscall事件交叉引用。


简化分析过程


我们都知道在Linux中,Everything is a file这句著名的口号(https://en.wikipedia.org/wiki/Everything_is_a_file),是的,所有东西都是文件,需要使用文件描述符才能与之交互。当打开一个文件时(例如使用open),你会收到一个文件描述符。使用这些系统调用openat, unlinkat, execveat, accept, connect, bind, listen等等来与打开的文件进行交互。由于这个原因,如果我们想要分析在一个文件上执行的操作,那就必须跟踪其打开的文件描述符,而Socket允许在不同的程序之间传递打开的文件描述符,这样就会使分析更加困难。


对于使用Tracee的LSM钩子事件,跟踪文件描述符变得无关重要,因为LSM事件已经包含了相关的数据,比如完整的路径名。这使得在分析问题时可以避免上述的影响,更加简化分析流程。

结论


Tracee是一个易于使用的Linux运行时安全和取证工具,采用了目前最为火热功能更为强大的eBPF技术,可以让我们更好地理解程序的运行时行为,并打破对类似安全软件构成困难和挑战的桎梏,为安全分析人员提供进一步深入分析的方案。


相关演示视频在如下地址,关于Tracee的详细信息可以查看项目Github主页和其他分析文章:


  • 1.https://github.com/aquasecurity/tracee

  • 2.https://blog.aquasec.com/ebpf-container-tracing-malware-detection

  • 3.https://www.youtube.com/watch?v=-SRAlokoWDc

  • 4.https://blog.aquasec.com/linux-vulnerabilitie-tracee

对文章或技术感兴趣可进群与作者直接沟通交流


作者上一篇文章:减少嵌入式软件调试时间的三个技巧


精华文章:【精华】Linux阅码场原创精华文章汇总



阅码场付费会员专业交流群

会员招募:各专业群会员费为88元/季度,权益包含群内提问,线下活动8折,全年不定期群技术分享(普通用户直播免费,分享后每次点播价为19元/次),有意加入请私信客服小月(小月微信号:linuxer2016)


专业群介绍:

彭伟林-阅码场内核性能与稳定性
本群定位内核性能与稳定性技术交流,覆盖云/网/车/机/芯领域资深内核专家,由阅码场资深讲师彭伟林主持。


甄建勇-性能优化与体系结构

本群定位Perf、cache和CPU架构技术交流,覆盖云/网/车/机/芯领域资深用户,由阅码场资深讲师甄建勇主持。


李春良-Xenomai与实时优化

本群定位Xenomai与实时优化技术交流,覆盖云/网/车/机/芯领域资深用户,由阅码场资深讲师李春良和彭伟林共同主持。


周贺贺-Tee和ARM架构

本群定位Tee和ARM架构技术交流,覆盖云/网/车/机/芯领域资深用户,由阅码场资深讲师周贺贺主持。


谢欢-Linux tracers

本群定位Linux tracers技术交流,覆盖云/网/车/机/芯领域资深用户,由阅码场资深讲师谢欢主持。





Linux阅码场 专业的Linux技术社区和Linux操作系统学习平台,内容涉及Linux内核,Linux内存管理,Linux进程管理,Linux文件系统和IO,Linux性能调优,Linux设备驱动以及Linux虚拟化和云计算等各方各面.
评论
  •  在全球能源结构加速向清洁、可再生方向转型的今天,风力发电作为一种绿色能源,已成为各国新能源发展的重要组成部分。然而,风力发电系统在复杂的环境中长时间运行,对系统的安全性、稳定性和抗干扰能力提出了极高要求。光耦(光电耦合器)作为一种电气隔离与信号传输器件,凭借其优秀的隔离保护性能和信号传输能力,已成为风力发电系统中不可或缺的关键组件。 风力发电系统对隔离与控制的需求风力发电系统中,包括发电机、变流器、变压器和控制系统等多个部分,通常工作在高压、大功率的环境中。光耦在这里扮演了
    晶台光耦 2025-01-08 16:03 88浏览
  • 光伏逆变器是一种高效的能量转换设备,它能够将光伏太阳能板(PV)产生的不稳定的直流电压转换成与市电频率同步的交流电。这种转换后的电能不仅可以回馈至商用输电网络,还能供独立电网系统使用。光伏逆变器在商业光伏储能电站和家庭独立储能系统等应用领域中得到了广泛的应用。光耦合器,以其高速信号传输、出色的共模抑制比以及单向信号传输和光电隔离的特性,在光伏逆变器中扮演着至关重要的角色。它确保了系统的安全隔离、干扰的有效隔离以及通信信号的精准传输。光耦合器的使用不仅提高了系统的稳定性和安全性,而且由于其低功耗的
    晶台光耦 2025-01-09 09:58 79浏览
  • 1月7日-10日,2025年国际消费电子产品展览会(CES 2025)盛大举行,广和通发布Fibocom AI Stack,赋智千行百业端侧应用。Fibocom AI Stack提供集高性能模组、AI工具链、高性能推理引擎、海量模型、支持与服务一体化的端侧AI解决方案,帮助智能设备快速实现AI能力商用。为适应不同端侧场景的应用,AI Stack具备海量端侧AI模型及行业端侧模型,基于不同等级算力的芯片平台或模组,Fibocom AI Stack可将TensorFlow、PyTorch、ONNX、
    物吾悟小通 2025-01-08 18:17 84浏览
  • 在智能网联汽车中,各种通信技术如2G/3G/4G/5G、GNSS(全球导航卫星系统)、V2X(车联网通信)等在行业内被广泛使用。这些技术让汽车能够实现紧急呼叫、在线娱乐、导航等多种功能。EMC测试就是为了确保在复杂电磁环境下,汽车的通信系统仍然可以正常工作,保护驾乘者的安全。参考《QCT-基于LTE-V2X直连通信的车载信息交互系统技术要求及试验方法-1》标准10.5电磁兼容试验方法,下面将会从整车功能层面为大家解读V2X整车电磁兼容试验的过程。测试过程揭秘1. 设备准备为了进行电磁兼容试验,技
    北汇信息 2025-01-09 11:24 97浏览
  • 在当前人工智能(AI)与物联网(IoT)的快速发展趋势下,各行各业的数字转型与自动化进程正以惊人的速度持续进行。如今企业在设计与营运技术系统时所面临的挑战不仅是技术本身,更包含硬件设施、第三方软件及配件等复杂的外部因素。然而这些系统往往讲究更精密的设计与高稳定性,哪怕是任何一个小小的问题,都可能对整体业务运作造成严重影响。 POS应用环境与客户需求以本次分享的客户个案为例,该客户是一家全球领先的信息技术服务与数字解决方案提供商,遭遇到一个由他们所开发的POS机(Point of Sal
    百佳泰测试实验室 2025-01-09 17:35 101浏览
  • 故障现象一辆2017款东风风神AX7车,搭载DFMA14T发动机,累计行驶里程约为13.7万km。该车冷起动后怠速运转正常,热机后怠速运转不稳,组合仪表上的发动机转速表指针上下轻微抖动。 故障诊断 用故障检测仪检测,发动机控制单元中无故障代码存储;读取发动机数据流,发现进气歧管绝对压力波动明显,有时能达到69 kPa,明显偏高,推断可能的原因有:进气系统漏气;进气歧管绝对压力传感器信号失真;发动机机械故障。首先从节气门处打烟雾,没有发现进气管周围有漏气的地方;接着拔下进气管上的两个真空
    虹科Pico汽车示波器 2025-01-08 16:51 113浏览
  • HDMI 2.2 规格将至,开启视听新境界2025年1月6日,HDMI Forum, Inc. 宣布即将发布HDMI规范2.2版本。新HDMI规范为规模庞大的 HDMI 生态系统带来更多选择,为创建、分发和体验理想的终端用户效果提供更先进的解决方案。新技术为电视、电影和游戏工作室等内容制作商在当前和未来提供更高质量的选择,同时实现多种分发平台。96Gbps的更高带宽和新一代 HDMI 固定比率速率传输(Fixed Rate Link)技术为各种设备应用提供更优质的音频和视频。终端用户显示器能以最
    百佳泰测试实验室 2025-01-09 17:33 106浏览
  • 职场是人生的重要战场,既是谋生之地,也是实现个人价值的平台。然而,有些思维方式却会悄无声息地拖住你的后腿,让你原地踏步甚至退步。今天,我们就来聊聊职场中最忌讳的五种思维方式,看看自己有没有中招。1. 固步自封的思维在职场中,最可怕的事情莫过于自满于现状,拒绝学习和改变。世界在不断变化,行业的趋势、技术的革新都在要求我们与时俱进。如果你总觉得自己的方法最优,或者害怕尝试新事物,那就很容易被淘汰。与其等待机会找上门,不如主动出击,保持学习和探索的心态。加入优思学院,可以帮助你快速提升自己,与行业前沿
    优思学院 2025-01-09 15:48 98浏览
  • 一个真正的质量工程师(QE)必须将一件产品设计的“意图”与系统的可制造性、可服务性以及资源在现实中实现设计和产品的能力结合起来。所以,可以说,这确实是一种工程学科。我们常开玩笑说,质量工程师是工程领域里的「侦探」、「警察」或「律师」,守护神是"墨菲”,信奉的哲学就是「墨菲定律」。(注:墨菲定律是一种启发性原则,常被表述为:任何可能出错的事情最终都会出错。)做质量工程师的,有时会不受欢迎,也会被忽视,甚至可能遭遇主动或被动的阻碍,而一旦出了问题,责任往往就落在质量工程师的头上。虽然质量工程师并不负
    优思学院 2025-01-09 11:48 111浏览
  • 在过去十年中,自动驾驶和高级驾驶辅助系统(AD/ADAS)软件与硬件的快速发展对多传感器数据采集的设计需求提出了更高的要求。然而,目前仍缺乏能够高质量集成多传感器数据采集的解决方案。康谋ADTF正是应运而生,它提供了一个广受认可和广泛引用的软件框架,包含模块化的标准化应用程序和工具,旨在为ADAS功能的开发提供一站式体验。一、ADTF的关键之处!无论是奥迪、大众、宝马还是梅赛德斯-奔驰:他们都依赖我们不断发展的ADTF来开发智能驾驶辅助解决方案,直至实现自动驾驶的目标。从新功能的最初构思到批量生
    康谋 2025-01-09 10:04 93浏览
  • 根据环洋市场咨询(Global Info Research)项目团队最新调研,预计2030年全球中空长航时无人机产值达到9009百万美元,2024-2030年期间年复合增长率CAGR为8.0%。 环洋市场咨询机构出版了的【全球中空长航时无人机行业总体规模、主要厂商及IPO上市调研报告,2025-2031】研究全球中空长航时无人机总体规模,包括产量、产值、消费量、主要生产地区、主要生产商及市场份额,同时分析中空长航时无人机市场主要驱动因素、阻碍因素、市场机遇、挑战、新产品发布等。报告从中空长航时
    GIRtina 2025-01-09 10:35 95浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦