关于 eBPF 安全可观测性,你需要知道的那些事儿
许庆伟:龙蜥社区eBPF技术探索SIG组 Maintainer & Linux Kernel Security Researcher。
本文是作者在 PODS 2022 大会上关于内核安全方面的一些思考和心得,本次分享将从监控和可观测性、eBPF 安全可观测性分析、内核安全可观测性展望三个方面展开。
一、eBPF 安全可观测性的前景展望
从下图可以看到,监控只是可观测性的冰山一角,而大部分都隐藏在水面之下的深层次问题无法简单通过监控解决。目前监控也开始可视化,但绝大部分都是事先预定义参数,然后事后查看日志,进行分析。监控的缺点包括:
1)可扩展性差,需要修改代码和编译;验证周期长;数据来源窄等问题。2)可观测性是通过主动定制度量的搜集和内核数据聚合,包括以下三种:Logging实时或者事后特定事件信息
分布式服务器集群的海量数据溯源图
离散信息整理各种异步信息
数据源:提供数据来源 采集框架:往上对接数据源,采集解析发送数据,往下对用户态提供接口 前端交互:对接 Tracing 内核框架,直接与用户交互,负责采集配置和数据分析
二、eBPF 安全可观测性分析
安全:指的是某种对象或者对象属性不受威胁的状态。安全可观测性:通过观测整个系统,从低级别的内核可见性到跟踪文件访问、网络活动或能力(capability)变化,一直到应用层,涵盖了诸如对易受攻击的共享库的函数调用、跟踪进程执行或解析发出的 HTTP 请求。因此这里的安全是整体的概念。
提供对各种内核子系统的可观测性,涵盖了命名空间逃逸、Capabilities 和特权升级、文件系统和数据访问、HTTP、DNS、TLS 和 TCP 等协议的网络活动,以及系统调用层的事件,以审计系统调用和跟踪进程执行。
从日志、跟踪及度量三个维度检查相关输出,进而来衡量系统内部安全状态的能⼒。
程序沙箱化:通过 eBPF 验证器保护内核稳定运行。
侵入性低:无须修改内核代码,且无须停止程序运行。
透明化:从内核中透明搜集数据,保证企业最重要的数据资产。
可配置:Cilium 等自定义乃至自动化配置策略,更新灵活性高,过滤条件丰富。
快速检测:在内核中直接处理各种事件,不需要回传用户态,使得异常检测方便和快速。
拥有加载 eBPF 程序的流程所需的特权
无 crash 或其他异常导致系统崩溃的情况
程序可以正常结束,无死循环
检查内存越界
检查寄存器溢出
三、内核安全可观测性展望
下面从传统内核安全、Android 内核安全、KRSI 等几个方面展开讨论。1.传统内核安全方案:正如 Linus Torvalds 曾经说过的,大多数安全问题都是 bug 造成的,而 bug 又是软件开发过程的一部分,是软件就有 bug。至于是安全还是非安全漏洞 bug,内核社区的做法就是尽可能多的测试,找出更多潜在漏洞这样近似于黑名单的做法。内核代码提交走的流程比较繁琐,应用到具体内核版本上,又存在周期长以及版本适配的问题,所以导致内核在安全方面发展的速度明显慢于其他模块。同时,随着智能化、数字化、云化的飞速发展,全球基于 Linux 系统的设备数以百亿计,而这些设备的安全保障主要取决于主线内核的安全性和健壮性,当某一内核LTS版本被发有漏洞,这样相关的机器都会面临被攻破利用的局面,损失难以估量。2.Android 内核安全
现如今,世界上越来越多的智能终端包括手机、TV、SmartBox 和 IoT、汽车、多媒体设备等等,均深度使用 Android 系统,而 Android 的底层正是 Linux 内核,这也让 Linux 内核的安全性对 Android 产生重大影响。由于历史原因,Google 在 Android 内核开源的问题上,理念和 Linux 内核社区不是十分的匹配,这也导致了Android 对内核做了大量的针对性修改,但是无法合入到 Upstream 上。这也导致了 Android 内核在安全侧有部分不同于 Linux 内核,侧重点也存在不同。在操作系统级别,Android 平台不仅提供 Linux 内核的安全功能,而且还提供安全的进程间通信 (IPC)机制,以便在不同进程中运行的应用之间安全通信。操作系统级别的这些安全功能旨在确保即使是原生代码也要受应用沙盒的限制。无论相应代码是自带应用行为导致的结果,还是利用应用漏洞导致的结果,系统都能防止违规应用危害其他应用、Android 系统或设备本身。
Android内核安全特性:
HWAddressSanitizer
KASAN
Top-byte Ignore
KCFI
ShadowCallStack
Signals:意味着系统有一些异常活动的迹象、事件
Mitigations:在检测到异常行为之后所采取的告警或阻断措施
4.后续计划
内核安全问题是个非常复杂的话题,牵一发而动全身,防御机制、加固配置、漏洞利用等等挑战性的技术。在进行加固防御的过程中,又会产生性能或者系统稳定性相关的影响。
从 eBPF + LSM 的角度可以更加可视化、数据丰富的观测内核安全情况,进而在内核 Livepatch、漏洞检测以及防御提权相关攻击手段上,有着进一步的发展空间。
欢迎各位感兴趣的朋友加入龙蜥社区 eBPF 技术探索 SIG(Special Interest Group)(扫描下方二维码或搜索钉钉群号:44866635) ,一起讨论分享自己对eBPF 技术的看法和解决方案,和 SIG 组成员一起开启 eBPF 的神奇之旅!
eBPF 技术探索 SIG 链接地址:
https://openanolis.cn/sig/ebpfresearch
—— 完 ——
加入龙蜥社群加入微信群:添加社区助理-龙蜥社区小龙(微信:openanolis_assis),备注【龙蜥】与你同在;加入钉钉群:扫描下方钉钉群二维码。欢迎开发者/用户加入龙蜥社区(OpenAnolis)交流,共同推进龙蜥社区的发展,一起打造一个活跃的、健康的开源操作系统生态!
2.技术门槛高?来看 Intel 机密计算技术在龙蜥社区的实践
3.性能提升1倍,成本直降50%!基于龙蜥指令加速的下一代云原生网关
5.龙蜥社区正式成立 RISC-V ARCH SIG!平头哥、中科院软件所 PLCT 实验室等联合共建