赋能开发者创新!天翼云向欧拉社区贡献全自研项目

日前,欧拉开发者大会(openEuler Developer Day 2023)成功举办。天翼云科技有限公司基础架构事业部副总经理郑文明出席大会并发表演讲,介绍了天翼云向欧拉社区捐赠的两款全自研项目,即旨在帮助运维人员诊断网络性能的软件工具CTinspector,以及专注于CVE信息的平台cve-ease。

CTinspector,让网络性能观测更直观

CTinspector是由天翼云基础架构事业部原创的新项目,2023年在欧拉社区openEuler ebpf-sig中开始孵化并持续运作。该项目为多结点巡检、运算场景链式传递提供了基础框架,主要目的是为解决传统OVS连接跟踪CT流表过滤规则开发任务重、查看耗时多的问题。

该软件通过基于ebpf技术的网络流量监测与分析,能够快速定位网络性能瓶颈。基于ebpf的ACL将传统iptables命令行配置替换为ebpf程序,简化ACL的功能开发、提高下发速度;基于流式RPC的Packet VM节省网络带宽和缩小时延,从而方便运维人员诊断网络问题。

目前,该项目已经实现了主题框架,通过了OBS编译构建和集成测试。与普通的巡检工具相比,该项目的特点是可以在预设的剧本中调用内核中的ebpf埋点获取数据,并把结果及剧本直接传向下一个操作结点继续执行,免去将结果回传给任务发起结点的过程,从而提高执行和分布式运算的效率。

传统ACL配置复杂且不直观,一个报文最终是ACCEPT还是DROP需要查看完全部chain规则才能知晓。而CTinspector大大简化了ACL的复杂实现方式,特别是范围比较、掩码匹配等特殊处理,彻底改变了ACL逐条规则匹配的方式,当一个报文匹配多条规则时性能将得到大幅提升。

CTinspector的服务端框架分为内核函数、加载器、编译器、路由器、转发器、调度器、执行器、内存映射几大模块。当外部任务下发时,剧本内容、上下文环境、运算结果等会被全部封装在packet VM中,从而可以实现非交互式链式传播,大大提高执行和结果运算的效率。

当前,CTinspector框架已被封装成RPM包发布,方便安装与版本迭代。用户可以根据模板自主书写多剧本,然后在CTinspector的统一架构下进行编译,生成ebpf可执行程序。用户使用该框架可以将ACL流表快速一体化封装进执行剧本,自定义控制动作及触发条件,定制多结点的巡检工具、高性能运维工具。

cve-ease,提高系统安全管理水平

CVE(Common Vulnerabilities and Exposures)的全称是公共漏洞和暴露,用于标准化识别已知的系统漏洞和缺陷,旨在帮助用户在众多独立的漏洞数据库和漏洞评估工具中共享系统漏洞数据,提高系统安全管理水平。虽然CVE对系统安全具有重要意义,但由于目前用户侧缺乏CVE相关管理平台和工具,使得CVE信息难以在系统安全中有效发挥其关键作用。

2023年,天翼云基础架构事业部原创的另一款新项目cve-ease在内部开始持续孵化运作。cve-ease 平台旨在帮助用户快速了解和应对系统中存在的漏洞,提高系统安全性和稳定性。通过cve-ease平台,用户可以查看CVE信息的详细内容,包括漏洞描述、影响范围、修复建议等,并根据自己的系统情况选择合适的修复方案。

目前,cve-ease 已经在欧拉社区开放源码,社区用户可以加入项目开发,共同打造安全、稳定、可靠的国产操作系统生态。

作为一款专注于CVE信息的平台,cve-ease的架构主要由四个模块组成,分别是CVE爬虫、CVE分析器、CVE通知器和CVE前端。

1.CVE爬虫

该模块负责从openEuler社区提供的各个CVE数据源抓取CVE信息,并将其存储到MySQL等关系型数据库中。这些关键信息主要来源于cve-manager项目。目前,cve-manager支持从NVD、CNNVD、CNVD、RedHat、Ubuntu、Debian等数据源获取CVE信息。

2.CVE分析器
该模块对CVE信息进行解析、归类、评分等。cve-ease使用Python编写了一个分析器脚本,它会定期从关系型数据库中读取原始CVE信息,并进行以下操作:解析CVE信息的基本属性(如编号、标题、描述等)、归类CVE信息的影响范围(如操作系统、软件包等)、评分CVE信息的危害程度(如CVSS评分等)、匹配CVE信息的修复建议(如补丁链接等)。分析器脚本会将处理后的结构化CVE信息以SQL格式持久化到数据库中,以便后续查询和展示。

3.CVE通知器

该模块根据用户的订阅配置,通过邮件、微信、钉钉等方式向用户发送CVE通知。cve-ease使用Python编写了一个通知器脚本,定期从MySQL数据库中读取结构化CVE信息,并进行以下操作:过滤出用户关注的影响范围(如操作系统、软件包等)、生成适合不同渠道的通知内容(如文本、图片等)、调用不同渠道的API发送通知给用户(如SMTP协议发送邮件、HTTP协议发送微信或钉钉消息等)。通知器脚本会记录发送结果和反馈情况,并更新MySQL数据库中的订阅状态。

4.CVE前端

该模块提供一个友好的cli终端命令,让用户可以查看、搜索、订阅CVE信息。cve-ease的架构设计,可通过打造高效、灵活、可扩展的CVE信息平台,为用户提供及时准确的安全漏洞情报服务。

系统整体结构框架图
系统设计结构图

截至目前, cve-ease项目共计输出CVE排查文档超5000个,应对安全扫描报告上百次,累计覆盖的CVE问题数量近2万个。相较于之前的解决方案, cve-ease感知能力从7天降低至15分钟,基于ease研发的一整套CVE处理方案可实现80%以上的自动化效果,提升处理效率的同时大大降低人力成本。实践证明,cve-ease能够及时、高效、可靠地应对漏洞安全问题,为自研系统提供了创新的漏洞安全解决方案,为企业的信息化建设和数字化转型增添了新的动力和价值。

面向未来,天翼云将与欧拉开源社区在现有合作基础上,围绕DPU卸载、全栈云原生、DPU操作系统、容器化操作系统等方面持续开展联合创新,贡献更多自研项目,以自主可控的天翼云数字底座,支撑更多开发者创新,服务千行百业数字化转型。