diff --git "a/oEEP/oEEP-0004 openEuler\346\231\272\350\203\275\350\241\245\344\270\201\347\256\241\347\220\206\346\241\206\346\236\266.md" "b/oEEP/oEEP-0004 openEuler\346\231\272\350\203\275\350\241\245\344\270\201\347\256\241\347\220\206\346\241\206\346\236\266.md" new file mode 100755 index 0000000000000000000000000000000000000000..3d9c1ba2b0487ff25bfb3080d8967831c2e07200 --- /dev/null +++ "b/oEEP/oEEP-0004 openEuler\346\231\272\350\203\275\350\241\245\344\270\201\347\256\241\347\220\206\346\241\206\346\236\266.md" @@ -0,0 +1,154 @@ +作者: +胡峰(solarhu) + +标题: +openEuler智能补丁管理框架 + +状态: +初始化 + +类别: +特性新增 + +## 动机/问题描述: +操作系统作作为所有软件的基座,代码量巨大,社区会及时修复每一个发现的安全漏洞和缺陷,如果不及时修复这些问题,可能会带来系统安全隐患和宕机的风险。当前社区存在如下问题: + +* 社区没有完善的热补丁发布流程,对于kernel、glibc、openssl等等基础组件,采用冷补丁修复后需要重启,影响业务持续运行时间 +* 社区支持热补丁(内核/用户态热补丁)工具,但是需要用户提取补丁文件,制作热补丁 +* 无集群巡检和热补丁生命周期管理能力,管理员管理热补丁依赖和重启等各种场景,维护繁复 +* 热补丁存在天然的限制,短期内无法完全替代冷补丁,用户需要部署冷热补丁两个管理流程 +智能补丁管理(aops-apollo)为了应对如上问题,提供热补丁服务,集群缺陷(CVE/bugfix)巡检&修复功能,制作环境管理等,通过定时扫描集群中主机的缺陷信息,并及时呈现给用户,用户通过在web界面实现简单的补丁管理动作。 + +## 收益分析 +* 可获取:热补丁服务提供补丁发布通知、下载能力。降低热补丁制作的投入 +* 全生命周期管理:支持CVE巡检到修复全生命周期管理,提升发现效率,减少补丁管理错误。 +* 智能补丁管理:冷热补丁混合管理,屏蔽冷热补丁差异,实现补丁智能化管理,提升补丁覆盖范围和易用性; + +## 方案的详细描述: +* 补丁发布:热补丁通过采用rpm格式,通过update.xml管理热补丁信息,同时扩展cvrf.xml实现热补丁对cve的信息发布。通过邮件组实现热补丁发布订阅,并在openEuler门户新增热补丁发布窗口。 +* 补丁管理:通过dnf plugin机制,扩展热补丁接口,实现cve检查,下载,修复等能力 + +### 接口变更描述 +* 修改cvrf.xml扩展热补丁对cve的支持* +``` + + An update for patchelf is now available for openEuler-22.03-LTS and openEuler-22.03-LTS-SP1 + Security Advisory + + ... + + + ... + + + ... + + + ... + + + + openEuler-22.03-LTS + + + patchelf-0.16.0-1.oe2203.aarch64.rpm + + patchelf-0.16.0-1.oe2203.src.rpm + + + patchelf-debuginfo-0.16.0-1.oe2203.x86_64.rpm + + + + + openEuler-22.03-LTS + + + patch-patchelf-0.16.0-1.oe22030-HP001.aarch64.rpm + + patch-patchelf-0.16.0-1.oe22030-HP001.src.rpm + + + patch-patchelf-0.16.0-1.oe22030-HP001.x86_64.rpm + + + + ... + + +``` +* 扩展update.xml支持热补丁管理 +``` + + + + openEuler-SA-2021-1502 + An update for polkit is now available for openEuler-20.03-LTS-SP3 + Important + openEuler + + + + + xxxxxxxxxxxxx + + + openEuler + + polkit-0.116-9.oe1.aarch64.rpm + + + //本次新增字段 + + openEuler + + polkit-0.116-9.oe1.aarch64.rpm + + + polkit-help-0.116-9.oe1.noarch.rpm + + + + + +``` +* ci/cd支持热补丁制作,pr中新增热补丁制作接口:pr->issue->Hotpatch_matedata->release + 1. 开发人员在本次提交的pr评论区,执行makehotpatch来启动热补丁流程 + 2. 后台会自动创建热补丁issue,用于跟踪整个热补丁过程,同时也作为后续update版本发布的依据 + 3. 后台同时在Hotpatch仓库中以软件包名称(包括版本号),创建该热补丁仓库,并初始化热补丁管理xml + 4. 开发者通过提交补丁到该仓库中,完成热补丁修改和制作 + 5. 最后修改issue内容和状态,便于update发布管理 +* 新增hotpatch 仓库管理热补丁代码 +``` + + + Managing Hot Patch Metadata + + + + download_link + download_link + xxxxxx.patch + + + download_link + download_link + xxxxxx.patch + + + + + +``` + +详细设计文档参考 +https://gitee.com/openeuler/aops-apollo/blob/master/doc/design/aops-apollo%E7%89%B9%E6%80%A7%E8%AE%BE%E8%AE%A1%E6%96%87%E6%A1%A3(draft-for-hotpatch).md + + +## roadmap +|release time|Feature|openEuler release| +|-----|-----|------| +|2023-6-30|热补丁服务,热补丁巡检,热补丁生命周期管理|openEuler 22.03 LTS SP2| +|2023-9-30|热补丁Devkit(不支持可重复)|openEuler 22.09| +|2023-12-30|热补丁支持可重复构建(时间一致性),冷热不定混合管理(有风险)|openEuler 22.03 LTS SP3| +|2024-H1|热补丁可移植性|openEuler 2024 xxx|