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