更新时间: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  | 
    
   父主题: 二进制成分分析类