【摘要】 SCA分析技术通常被用来进行安全审计、 漏洞扫描 分析,但二进制文件在产品包中的类型与形态非常复杂,不同语言的软件设计、开发、编译、打包方法也千差万别;二进制SCA检测技术既有它的长处,同时它自身技术短板也存在着一些无法或很难解决的场景。本文针对二进制SCA检测技术短板所面临的一些特殊场景、检测影响及应对措施进行详细分析和说明,希望对使用二进制SCA检测工具的测试和研发人员有所帮助。
世间万物都不可能是十全十美的,二进制SCA检测技术也逃不过此宿命,它既有它的长处,能解决其他技术不能或很难解决的问题和场景,同时它自身技术短板也面临着一些无法或很难解决的场景。
我们知道二进制文件在产品包中的类型与形态是非常复杂的,不同语言的二进制文件有各自不同的特点,同时不同开发人员进行软件设计、开发、编译、打包的方式和场景更是千差万别,以产品引用 开源 软件的方式为例就存在以下场景:patch打补丁版本号不变、产品引用开源软件部分功能场景下的部分编译、自研代码基于开源软件源码的侵入式修改,以及不同开源软件的被动依赖等等场景,在这些复杂的场景下二进制SCA工具检测能力和检测结果正确性会受到极大的挑战和影响。
解决或缓解这些影响的思路无非就两种:外部解决和内部解决。从外部解决的方法是尽可能的减少或避免出现二进制SCA短板场景,从软件的设计、开发编译、打包部署等在不同阶段进行优化和规范,摒弃不合理的做法,尽量避免出现二进制SCA工具的短板场景;另外一个是测试工具及测试方法的优化,把二进制SCA工具用来做它擅长的事,避免出现用大炮打蚊子的事情。从内部解决的方法则是优化工具的能力和算法,尽可能来提升工具的适用场景,减少短板场景。
下面针对二进制SCA工具的技术短板面临的特殊场景的特点、检测影响和应对措施进行详细描述:
解包特殊场景:被测软件包采用了自定义的打包算法或加密过的压缩包
解包影响:解包工具无法正确的进行解包,会导致检测结果遗漏;
应对措施:测试人员可以先用专用工具进行解包,再用tar、zip等工具对解包后的目录重新打包,上传新包进行检测即可。
不同语言特殊场景详解: