2022云栖精选-eBPF安全特性解析

简介: 许庆伟深信服创新研究院

lQLPJxbcF2cqNBvMiM0FeLCMz4ifcSGHeANpqgFLAEAA_1400_136.png

image.png

安全是eBPF 应用中较为重要的一个特性。比如操作系统软件安网络容器场景都会应用到eBPF的安全特性。

可观测性存在冰山现象,安全也是。普通开发者或用户,平时接触的多为主机安全PC 端的安全等。PC 端或大型集群服务器业务场景非常广泛,包括异常的攻击行为异常漏洞等,其对应的检测范围也较大。主机端实现安全防护或检测,一般通过构建病毒库,然后不断地根据受到的攻击将新的病毒更新到病毒库,达到一定的阻断和防御目的但该手段无法应对近年出现的新型病毒,因此我们需要利用eBPF的能力,比如eBPF一个容器或云原生场景的白名单,白名单之外的所有异常行为都会被阻断。

image.png

安全是指一种状态,在这种状态下,某种对象或对象的某种属性不受威胁。

image.png

eBPF具有以下几个安全特性:

l  程序沙箱化:内核源代码受到保护并保持不变,eBPF程序的验证步骤会确保资源不会程序阻塞;

l  侵入性低:无需修改内核代码,也无需停下现有程序来验证效果;

l  透明化:数据都从内核中透明地收集,应用无需检测监控的状态,符合安全用例;

l  可配置:自定义乃至自动化配置策略,修改检测、阻断规则文件更快速,更新灵活性高、过滤条件丰富(进程、网络、文件等)。一般而言,检测到异常后,如果直接阻断,可能会对业务产生影响。因此,会先进行告警,然后根据严重程度决定是否阻断。

l  快速检测:在内核直接处理各种事件,使得检测异常情况更方便和快速,从性能和开销上也能获得更大的收益;

image.png

eBPF程序会被LLVM编译为eBPF字节码,eBPF字节码需要通过eBPF Verifier(静态)验证,再通过比如JIT 解析成符合要求的机器码,方能真正地运行。

因此,边界检查是eBPF Verifier的重点工作,经过验证步骤后,能够确保eBPF程序可以安全运行内核的稳定性大多与内存相关,因此eBPF 验证器主要工作也与其有一定的关联,也就需要确保以下几点:

第一,需要拥有加载 eBPF 流程所需的特权,对指令集指令数都有一定要求。安全角度来说,即使赋予程序一定的非 root 权限,部分功能可能也并没有效果。

第二,不要出现 crash 或其他异常导致系统异常或内核崩溃的情况。因为 eBPF 本身的工作内容即沙箱化无侵入、不对内核造成大的影响。

第三,程序可以正常结束,无死循环。从静态分析的角度将程序完全地运行一遍,确保无死循环

第四,检查内存越界。如果存在内存越界,则可能导致验证不通过,流程无法往下进行。

第五,检查寄存器溢出。如果存在寄存器溢出,则会导致验证流程中断。

image.png

随着云网边端的急速发展,人们的目光越发聚焦在目前最火热的云原生场景上。FalcoTraceeTetragonDatadog-agentKubeArmor是现阶段云原生场景下比较流行的几款运行时防护方案这些方案主要基于eBPF挂载内核函数并编写过滤策略,在内核层出现异常攻击时触发预置的策略,在内核层对异常攻击进行记录并发出告警,无需再返回用户层,可以直接发出告警甚至阻断

以上方案多为应用层的运行时防御方案,以进程为粒度,而阻断进程会导致业务运行受到影响。

因此,我们正在推进内核侧的eBPFLSM结合的方案,期望能够解决上述问题。该方案能够从函数调用的粒度进行阻断,在白名单内记录正常的调用路径,一旦发现白名单之外的调用行为,即可阻断此次函数调用不会影响正常的业务运行。但此类方案目前尚存在的限制,比如需要较高的内核版本。

此前,人们对安全的关注点大多集中于应用层规则的编写或安全策略的实施。而伴随着云原生的发展,我们会越来越注重于内核端,结合内核和 eBPF 的安全特性,进行防御和阻断。

安全策略可以通过 KubernetesCRD)、JSON API Open Policy AgentOPA)等系统注入

image.png

CNCF为例,上层收集到的数据,通过 agent 内核端,进行一系列的收集检测。每一个 POD 会制定规则,触发了规则之后会给予相应的措施,比如告警或阻断。


关于龙蜥峰会 eBPF & Linux 稳定性专场课件获取方式:


【PPT 课件获取】:关注微信公众号(OpenAnolis),回复“龙蜥课件” 即可获取。有任何疑问请随时咨询龙蜥助手—小龙(微信:openanolis_assis)。


【视频回放】:视频回放可前往龙蜥官网https://openanolis.cn/video 查看。


lQLPJxbcF2cqM2TM-M0CnrCgW_7LDpyh1wNpqgFKAPsA_670_248.png

相关文章
|
机器学习/深度学习 安全 大数据
揭秘!企业级大模型如何安全高效私有化部署?全面解析最佳实践,助你打造智能业务新引擎!
【10月更文挑战第24天】本文详细探讨了企业级大模型私有化部署的最佳实践,涵盖数据隐私与安全、定制化配置、部署流程、性能优化及安全措施。通过私有化部署,企业能够完全控制数据,确保敏感信息的安全,同时根据自身需求进行优化,提升计算性能和处理效率。示例代码展示了如何利用Python和TensorFlow进行文本分类任务的模型训练。
770 6
|
12月前
|
域名解析 负载均衡 安全
DNS技术标准趋势和安全研究
本文探讨了互联网域名基础设施的结构性安全风险,由清华大学段教授团队多年研究总结。文章指出,DNS系统的安全性不仅受代码实现影响,更源于其设计、实现、运营及治理中的固有缺陷。主要风险包括协议设计缺陷(如明文传输)、生态演进隐患(如单点故障增加)和薄弱的信任关系(如威胁情报被操纵)。团队通过多项研究揭示了这些深层次问题,并呼吁构建更加可信的DNS基础设施,以保障全球互联网的安全稳定运行。
|
编译器 C# 开发者
C# 9.0 新特性解析
C# 9.0 是微软在2020年11月随.NET 5.0发布的重大更新,带来了一系列新特性和改进,如记录类型、初始化器增强、顶级语句、模式匹配增强、目标类型的新表达式、属性模式和空值处理操作符等,旨在提升开发效率和代码可读性。本文将详细介绍这些新特性,并提供代码示例和常见问题解答。
287 7
C# 9.0 新特性解析
|
编译器 PHP 开发者
PHP 8新特性解析与实战应用####
随着PHP 8的发布,这一经典编程语言迎来了诸多令人瞩目的新特性和性能优化。本文将深入探讨PHP 8中的几个关键新功能,包括命名参数、JIT编译器、新的字符串处理函数以及错误处理改进等。通过实际代码示例,展示如何在现有项目中有效利用这些新特性来提升代码的可读性、维护性和执行效率。无论你是PHP新手还是经验丰富的开发者,本文都将为你提供实用的技术洞察和最佳实践指导。 ####
223 1
|
数据安全/隐私保护 iOS开发 开发者
iOS 14隐私保护新特性深度解析####
随着数字时代的到来,隐私保护已成为全球用户最为关注的问题之一。苹果在最新的iOS 14系统中引入了一系列创新功能,旨在增强用户的隐私和数据安全。本文将深入探讨iOS 14中的几大隐私保护新特性,包括App跟踪透明度、剪贴板访问通知和智能防追踪功能,分析这些功能如何提升用户隐私保护,并评估它们对开发者和用户体验的影响。 ####
|
PHP 开发者
PHP 7新特性深度解析
【10月更文挑战第40天】随着PHP 7的发布,这个广泛使用的语言带来了许多令人兴奋的新特性和性能改进。本文将深入探讨PHP 7的主要变化,包括类型声明、错误处理机制、性能优化等方面,帮助开发者更好地理解和应用这些新特性。
176 5
|
C# 开发者
C# 10.0 新特性解析
C# 10.0 在性能、可读性和开发效率方面进行了多项增强。本文介绍了文件范围的命名空间、记录结构体、只读结构体、局部函数的递归优化、改进的模式匹配和 lambda 表达式等新特性,并通过代码示例帮助理解这些特性。
237 2
|
Kubernetes Cloud Native 调度
云原生批量任务编排引擎Argo Workflows发布3.6,一文解析关键新特性
Argo Workflows是CNCF毕业项目,最受欢迎的云原生工作流引擎,专为Kubernetes上编排批量任务而设计,本文主要对最新发布的Argo Workflows 3.6版本的关键新特性做一个深入的解析。
|
PHP 开发者
PHP 7新特性深度解析及其最佳实践
【10月更文挑战第31天】本文将深入探讨PHP 7带来的革新,从性能提升到语法改进,再到错误处理机制的变革。我们将通过实际代码示例,展示如何高效利用这些新特性来编写更加健壮和高效的PHP应用。无论你是PHP新手还是资深开发者,这篇文章都将为你打开一扇窗,让你看到PHP 7的强大之处。
130 1
|
安全 编译器 PHP
PHP 8新特性解析与实践应用####
————探索PHP 8的创新功能及其在现代Web开发中的实际应用

推荐镜像

更多
  • DNS