讲师中心 微信公众号
AI工具推荐 视频效率加速

如何通过对系统二进制文件进行签名防范篡改程序执行

落晨酱_7609

落晨酱_7609

发布时间:2026-07-01 07:38:51

|

984人浏览过

|

来源于php中文网

原创

二进制文件签名是执行前强制验证来源与完整性的机制,需精确哈希.text/.rodata/.dynamic等关键节,嵌入.signatures节并由内核IMA+evm在execve时校验,配合Secure Boot、只读挂载与私钥硬件保护实现纵深防御。

如何通过对系统二进制文件进行签名防范篡改程序执行

对系统二进制文件签名,本质是让操作系统在加载执行前验证其来源和完整性。只要签名验证失败,程序就无法运行——这不是“事后检测”,而是执行前的强制拦截。

签名必须覆盖关键可执行段

不是给整个文件打个包签名就行。ELF格式中,真正决定行为的是 .text 节(代码段) 和部分 .dynamic/.init_array 等控制节。签名工具(如 elf-sign)需精确提取这些区域计算哈希,排除签名自身所在节(如 .signature),否则会形成自循环验证漏洞。

  • 推荐做法:只哈希 .text + .rodata(只读数据)+ .dynamic,忽略 .data/.bss 等可变区域
  • 错误做法:对整个文件做 SHA256 —— 一旦签名写入文件尾部,哈希值就失效
  • 内核验证时也按同样范围重新计算哈希,再与签名中解密出的摘要比对

签名要嵌入文件且不破坏可执行性

签名不能改写原有代码或破坏 ELF 加载结构。主流方案是在文件末尾追加自定义节区(如 .signature),或复用未使用的节头表空位。

  • 新增节区需设置正确标志:SHF_ALLOC=0(不加载进内存)、SHF_WRITE=0(不可写)
  • 节头表要更新:增加新节描述项,并调整 e_shnum、e_shoff 等头部字段
  • 签名内容包含算法标识(如 ECDSA-SHA256)、公钥指纹、签名本身及长度字段,便于验证端解析

验证必须由可信环境完成

签名本身不防篡改,防篡改靠的是验证环节的不可绕过性。Linux 内核从 5.15 起支持 IMA(Integrity Measurement Architecture)+ evm(Extended Verification Module),配合内核编译时嵌入的公钥,可在 execve 系统调用入口处自动校验。

  • 启用 CONFIG_IMA_APPRAISE 和 CONFIG_EVM 后,内核会拒绝加载未签名或签名无效的二进制
  • 公钥必须固化在内核镜像中(而非用户空间配置),防止被 root 用户替换
  • 若使用模块化签名(如基于 LSM 的 verifier),需确保该模块无法被 rmmod 卸载

配套机制堵住绕过路径

仅签名还不够。攻击者可能跳过验证逻辑、替换验证模块、或直接 patch 内核。需组合防御:

  • 启用 Secure Boot:确保启动链可信,防止恶意内核或 initramfs 加载
  • 锁定 sysctl 参数:如 kernel.modules_disabled=1、vm.unprivileged_userfaultfd=0,减少攻击面
  • 使用只读挂载 /usr/bin 和 /lib:配合签名,使篡改后文件甚至无法写入磁盘
  • 对签名私钥严格管控:离线保存、硬件加密模块(HSM)保护,避免泄露导致批量伪造

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

二狗PPT
二狗PPT Hot

一款AI演示文稿工具,主要用于专为中式职场打造的AI PPT生成工具,适合需要提升相关任务效率的用户。

UP简历
UP简历 Hot

一款AI办公效率工具,主要用于基于AI技术的免费在线简历制作工具,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
Java 网络安全
Java 网络安全

本专题聚焦 Java 在网络安全与加密通信中的应用,系统讲解常见加密算法(MD5、SHA、AES、RSA)、数字签名、HTTPS证书配置、令牌认证(JWT、OAuth2)及常见安全漏洞防护(XSS、SQL注入、CSRF)。通过实战项目(如安全登录系统、加密文件传输工具),帮助学习者掌握 Java 安全开发与加密技术的实战能力。

5225

2025.10.13

PHP 安全与防护
PHP 安全与防护

本专题聚焦于PHP开发中的安全问题与防御措施,详细讲解SQL注入、XSS攻击、CSRF攻击、文件包含漏洞等常见安全风险及其修复方法。通过结合实际案例,帮助开发者理解漏洞成因,掌握输入验证、会话安全、加密存储与安全编码规范,全面提升PHP网站的安全防护水平。

455

2025.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架安装配置与数据库连接
XORM框架安装配置与数据库连接

本专题聚焦XORM框架的配置与连接环节,拆解MySQL、PostgreSQL、SQLite、SQL Server的DSN写法与驱动选择,讲清连接池参数、多数据源拆分、读写分离与超时重连的处理方式,并补充容器与兼容数据库的适配经验。

0

2026.11.04

XORM框架零基础入门教程
XORM框架零基础入门教程

本专题梳理XORM框架的入门路径,从框架定位、依赖安装、连接数据库到跑通第一个增删改查示例,讲清Engine初始化、日志开启与项目目录规划,并对比GORM等同类ORM的差异,帮助Go开发者建立整体认知。

0

2026.11.04

Docker Desktop怎么设置端口映射
Docker Desktop怎么设置端口映射

本专题聚焦Docker Desktop容器端口映射与访问配置,整理从创建容器、设置端口绑定到验证本地服务访问的操作流程。针对端口被占用、映射配置错误、容器服务无法访问等情况,也提供相应的检查方向,方便用户完成端口配置。

0

2026.11.03

Docker Desktop镜像构建教程
Docker Desktop镜像构建教程

想使用Docker Desktop将本地项目构建成Docker镜像?本专题围绕镜像构建的实际操作展开,介绍Dockerfile编写、构建命令使用、镜像标签设置和构建日志查看等内容,同时整理镜像无法生成、依赖安装失败及构建缓存异常等问题的排查思路。

0

2026.11.03

Docker Desktop容器创建指南
Docker Desktop容器创建指南

本专题聚焦Docker Desktop容器创建与运行配置,介绍通过本地镜像或远程镜像创建容器的方法,以及容器启动、终端访问、日志查看和基础管理等操作。针对端口冲突、参数配置不当、容器无法启动等情况,也整理了相应的排查方向。

0

2026.11.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn