更新时间:2025-06-05 GMT+08:00
成分分析的安全编译选项类问题如何分析?
成分分析会检查用户包中的C/C++、Go文件在构建编译过程中是否添加了保护性的编译选项,来保护文件运行时免受到攻击者的攻击。
安全编译选项类问题分析指导:
- 导出Excel报告,查看安全编译选项Sheet页。
- 根据filepath列寻找目标文件在扫描包中位置,确认文件来源。
- 查看目标文件对应的安全编译选项结果。
- 如果对应项结果底色为绿色或结果值为“YES”或“NA”(rpath项禁选结果值为“No”或“NA”),则说明目标文件满足安全编译选项要求,无需处理。
- 对于不满足要求的项,排查目标文件的构建脚本,添加对应的编译选项,其中Ftrapv和FS两项由于可能影响性能,请根据实际情况确认是否添加对应选项。
检查项 | 检查项描述 | 安全编译选项参数 |
|---|---|---|
BIND_NOW | 立即绑定 | -Wl、-z、now |
NX | 堆栈不可执行 | -WI、-z、noexecstack |
PIC | 地址无关 | -fPIC |
PIE | 随机化 | -fPIE或-pie |
RELRO | GOT表保护 | -WI、-z、relro |
SP | 栈保护 | -fstack-protector-strong或-fstack-protector-all |
NO Rpath/Runpath | 动态库搜索路径(禁选) | 脚本中删除--rpath |
FS | Fortify Source(缓冲区溢出检查) | -D_FORTIFY_SOURCE=2 |
Ftrapv | 整数溢出检查 | -ftrapv |
Strip | 删除符号表 | -s |
父主题:二进制成分分析类

