摘要:程序的动态链接过程中多个阶段均存在显著的安全隐患, 然而现有的控制流保护机制对动态链接过程保护较少, 且存在防御能力片面、性能开销高及硬件依赖强等局限性. 针对上述问题, 本文提出了一种面向动态链接过程的随机化安全防护机制SecLoader. 该机制通过3个核心模块的协同工作, 实现了对动态链接全生命周期的安全防护. 在加载阶段, 引入混合加密认证机制, 防止信息泄露和动态库劫持攻击; 在符号解析阶段, 设计动态库函数名随机化技术, 防御符号劫持攻击; 在地址重定位阶段, 提出GOT表随机化技术, 增加GOT劫持的攻击成本. 本文在glibc中实现了SecLoader, 具有良好的兼容性, 并对上层应用无感知. 为验证防护能力的有效性, 构建了渗透攻击测试集, 并在真实CVE漏洞上验证了防御的有效性. 此外, 本文采用SPEC CPU 2017的C语言基准测试集进行了性能评估. 实验结果表明, SecLoader能够有效防御多种对动态链接过程的安全威胁. 在性能方面, 仅在程序加载阶段引入了42.2%的毫秒级开销, 且对程序实际运行阶段几乎无影响.