解决Linode Xen环境下4.3内核与grsecurity冲突崩溃问题

0 下载量 100 浏览量 更新于2024-08-29 收藏 86KB PDF 举报
"本文主要探讨了在Linode Xen环境下,使用grsecurity 4.3版本时遇到的内核崩溃问题。自Linux 4.3内核版本起,当结合PaX/grsecurity安全增强技术时,内核在由pv-grub启动后会立即崩溃。由于崩溃发生得非常早,没有可供调试的日志,且由于环境限制,无法获取到有意义的母机调试信息,这使得问题难以解决。作者提到,他们的VPS内核因此被固定在4.2.7版本,而原先误以为Linode的东京机房会在2016年6月迁移至KVM,导致他们没有及时处理这个问题。随着官方宣布新机房上线时间的延迟,解决此内核问题变得紧迫。作者尝试手动修复CVE高危漏洞,并使用diff工具分析4.2.7和4.3.3的补丁文件,但由于grsecurity不提供git源,git bisect方法无法实施。在对比补丁过程中,作者面临区分上游内核修改和PaX/grsecurity补丁修改的困难,计划开发metadiff工具来辅助分析,但尚未实现。最终,通过在VirtualBox中模拟Xen环境,成功复现了内核崩溃并获取了traceback,为进一步的调试提供了线索。" 本文涉及的知识点包括: 1. **PaX/grsecurity**:这是一个针对Linux内核的安全增强系统,提供了地址空间布局随机化(ASLR)、数据执行保护(DEP)以及额外的访问控制等安全特性。在Linux 4.3版本下,与Linode Xen环境存在兼容性问题导致内核崩溃。 2. **pv-grub**:Para-Virtualized GRUB,用于在Xen虚拟机中引导操作系统,是Xen平台上的引导加载程序,它在这里触发了内核崩溃。 3. **Linux内核版本**:文章讨论了4.2.7和4.3.x两个不同版本的内核。4.3版本引入的变化导致了问题的发生,而4.2.7是稳定版本,没有这个问题。 4. **Xen虚拟化**:Xen是一种开源的类型1(裸金属)hypervisor,允许在同一台物理机器上运行多个操作系统实例。Linode在东京机房使用Xen作为虚拟化技术。 5. **KVM虚拟化**:Kernel-based Virtual Machine,基于Linux内核的虚拟化技术,是另一种流行的虚拟化解决方案。文章提到东京机房可能未来会迁移到KVM。 6. **CVE高危漏洞**:CVE(Common Vulnerabilities and Exposures)是公开的网络安全漏洞数据库,作者尝试手动修复这些可能导致安全风险的漏洞。 7. **git bisect**:Git的一个功能,用于在git仓库中找到引入特定问题的提交,由于grsecurity未提供git源,这种方法无法使用。 8. **代码差异分析**:作者使用diff工具来比较不同版本的内核补丁,以找出可能的问题源。然而,由于PaX/grsecurity的补丁和上游内核的混合,分析变得复杂。 9. **调试技巧**:通过在VirtualBox中搭建Xen环境,作者能够复现问题并获取到内核崩溃的堆栈跟踪(traceback),这是调试的关键步骤。 10. **metadiff工具**:作者设想的一个工具,目的是帮助分离上游内核和PaX/grsecurity补丁的修改,以更有效地分析问题。 整体来看,这篇文章展示了在复杂虚拟化环境中遇到的软件兼容性问题、内核安全增强的挑战以及调试此类问题的方法和工具。