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

可以试试下面的漏扫服务,看看系统是否存在安全风险:>>>漏洞扫描服务
带你掌握二进制SCA检测工具的短板及应对措施的更多相关文章
- 漏洞检测方法如何选?详解源代码与二进制SCA检测原理
摘要:本文探讨的是SCA具体的检测原理,源代码SCA检测和二进制SCA检测有哪些相同点和不同点,在进行安全审计.漏洞检测上各自又有什么样的优势和适用场景. 本文分享自华为云社区<源代码与二进制文 ...
- Windows自带强大的入侵检测工具——Netstat 命令 查询是否中木马
Netstat命令可以帮助我们了解网络的整体使用情况.根据Netstat后面参数的不同,它可以显示不同的网络连接信息.Netstat的参数如图,下面对其中一些参数进行说明.如何检测本机是否有被中木马, ...
- python中文及符号检测工具带GUI界面
import tkinter import webbrowser import re #本程序是一个中文字符和中文检测工具 #中文字符自己添加,我只添加了一点 #输入字符串,点击检查文本即可判断有没有 ...
- C++内存泄漏检测工具
C++内存泄漏检测工具 1.VC自带的CRT:_CrtCheckMemory 调试器和 CRT 调试堆函数 1.1用法: /************************************ ...
- dll文件32位64位检测工具以及Windows文件夹SysWow64的坑
自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...
- [转载]浅谈C/C++内存泄漏及其检测工具
http://dev.yesky.com/147/2356147_3.shtml 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问题.已经有许多技术被研究出来以应对这个问题,比如Sm ...
- Linux入侵检测工具 - RKHunter
RKHunter是Linux系统平台下的一款开源入侵检测工具 特点 (1)安装便捷,运行快速 (2)扫描范围全,能够检测各种已知的rootkit特征码.端口扫描.常用程序文件的变动情况检查 主要功能 ...
- Linux后门入侵检测工具,附bash漏洞解决方法[转载]
转自:http://blog.jobbole.com/77663/ 官网 ClamAV杀毒软件介绍 ClamAV是一个在命令行下查毒软件,因为它不将杀毒作为主要功能,默认只能查出您计算机内的病毒,但是 ...
- iOS内存泄漏自动检测工具PLeakSniffer
新款objective-C内存泄漏自动检测工具 PLeakSniffer , GitHub地址 (https://github.com/music4kid/PLeakSniffer). 背景 前些天读 ...
- [转]浅谈C/C++内存泄露及其检测工具
转自:http://www.cnblogs.com/taoxu0903/archive/2007/10/27/939261.html 对于一个c/c++程序员来说,内存泄漏是一个常见的也是令人头疼的问 ...
随机推荐
- Go 方法集合与选择receiver类型
Go 方法集合与选择receiver类型 目录 Go 方法集合与选择receiver类型 一.receiver 参数类型对 Go 方法的影响 二.选择 receiver 参数类型原则 2.1 选择 r ...
- Golang面试题从浅入深高频必刷「2023版」
大家好,我是阳哥.专注Go语言的学习经验分享和就业辅导. Go语言特点 Go语言相比C++/Java等语言是优雅且简洁的,是我最喜爱的编程语言之一,它既保留了C++的高性能,又可以像Java,Pyth ...
- SyntaxError: Non-ASCII character 与 Cannot decode using encoding "ascii" 错误解决
转载请注明出处: python调试时遇到的两个相同的编码错误进行总结: 1.错误:Cannot decode using encoding "ascii", unexpected ...
- 使用ResponseSelector实现校园招聘FAQ机器人
本文主要介绍使用ResponseSelector实现校园招聘FAQ机器人,回答面试流程和面试结果查询的FAQ问题.FAQ机器人功能分为业务无关的功能和业务相关的功能2类. 一.data/nlu.y ...
- go 上下文:context.Context
Go语言中的上下文(Context)是一种用于在 Goroutines 之间传递取消信号.截止时间和其他请求范围值的标准方式.context 包提供了 Context 类型和一些相关的函数,用于在并发 ...
- 如何使用C#编写低代码应用插件
本文由葡萄城技术团队发布.转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 前言 作为当今快速发展的技术之一,低代码平台为开发人员提供了更高效.更简便的工具和 ...
- java集合框架(二)LinkedList的常见使用
@[toc]## 一.什么是LinkedList LinkedList是Java中的一个双向链表. 它实现了List和Deque接口,在使用时可以像List一样使用元素索引,也可以像Deque一样使用 ...
- 洛谷P2579 [ZJOI2005]沼泽鳄鱼(矩阵快速幂,周期)
例题:现在豆豆已经选好了两座石墩Start和End,他想从Start出发,经过K个单位时间后恰好站在石墩End上.假设石墩可以重复经过(包括Start和End),他想请你帮忙算算,这样的路线共有多少种 ...
- lua面向对象(类)和lua协同线程与协同函数、Lua文件I/O
-- create a class Animal={name = "no_name" , age=0 } function Animal:bark(voice) print(sel ...
- [cnn][julia]Flux实现卷积神经网络cnn预测手写MNIST
julia_Flux 1.导入Flux.jl和其他所需工具包 using Flux, MLDatasets, Statistics using Flux: onehotbatch, onecold, ...