二进制sca指纹提取黑科技:go语言逆向技术

华为云开发者联盟 华为云开发者联盟     2022-11-29     598

关键词:

摘要:SCA(Software Composition Analysis)软件成分分析,指通过对软件源码、二进制软件包等的静态分析,挖掘其所存在的开源合规、已知漏洞等安全合规风险,是一种业界常见的安全测试手段

华为云DevCloud软件开发平台在2022华为伙伴暨开发者大会重磅推出了4大新能力,其中的二进制成分分析安全检测能力,能够实现对开源软件漏洞的全面排查、快速精准定位问题、并迅速响应修复;本文将对什么是二进制SCA检测服务以及该服务的优势进行解读。

什么是二进制SCA检测服务

SCA(Software Composition Analysis)软件成分分析,指通过对软件源码、二进制软件包等的静态分析,挖掘其所存在的开源合规、已知漏洞等安全合规风险,是一种业界常见的安全测试手段(目前华为云提供二进制SCA检测服务,源码SCA检测服务后续正式发布)。

二进制SCA检测服务,检测对象为二进制软件包/固件,直接从二进制文件中提取常量字符串、部分类名称、函数名称等特征信息,再运用匹配算法进行相似度计算,根据相似度门限来检测出引用的开源软件名称和版本号。

二进制SCA指纹提取黑科技:Go语言逆向技术_数据

二进制SCA检测对比源码SCA检测的优势

无需依赖源码,操作方便

用户只需上传二进制软件包/固件,服务会采用静态检测技术,不用构建运行环境,不用运行程序即可快速分析二进制软件包/固件中存在的安全风险问题,并输出一份专业的分析报告

二进制SCA指纹提取黑科技:Go语言逆向技术_SCA_02

图:二进制成分分析-检测处理流程

二进制SCA指纹提取黑科技:Go语言逆向技术之---恢复函数名称算法

在对程序做安全审计、漏洞检测时,通常都需要对程序做逆向分析,我们在没有符号表的情况下,提出了一种恢复函数名称的算法,方便对Go语言二进制文件进行逆向分析,提升分析效率。

Go语言是最近几年发展非常火的一种语言,它具备和C/C++一样的运行速度快的优点,同时又具备开发效率高,支持包管理机制高阶语言特点。其编译出来的二进制文件格式和C/C++一样运行在Linux平台下是elf格式,运行在windows平台下是pe格式,但同时在二进制文件的内部细节上Go语言有自己特有的属性,二进制逆向人员可以利用Go语言这些特有属性来实现对二进制文件进行更精准的逆向分析。

特性1:利用Go语言中特有的节信息来判断elf/pe文件的源代码语言类型,是Go语言还是C、C++语言

通过判断二进制文件中是否存在“.noptrdata”、“.Gopclntab”、“.data.rel.ro.Gopclntab”确定源代码,如果存在上述节名称,则源代码为Go语言。

二进制SCA指纹提取黑科技:Go语言逆向技术_SCA_03

特性2:在没有符号表的情况下如何恢复函数名称

我们知道在C/C++编译出来的二进制文件中,如果没有符号表信息是没法看到函数名称的,在IDA工具中只能看到地址信息。

二进制SCA指纹提取黑科技:Go语言逆向技术_数据_04

Go语言怎么来恢复函数名称呢,可以通过从.data.rel.ro节来恢复函数名,具体查找定位算法如下:

二进制SCA指纹提取黑科技:Go语言逆向技术_数据_05

方法1:

解析头信息可以获取magic, quantum, ptr_size, func_tab_count数据,当magic为’\\xfb\\xff\\xff\\xff’时,entry_size = 2 * ptr_size为entry结构体大小,func_tab_count 为entry结构体数量;解析entry结构获取到名称信息结构数据位置偏移(需要注意64位和32位Go程序 func_info_offset位置相反),读取名称信息结构体数据,再从中获取到名称字符串位置偏移(name_offset),根据此偏移定位到函数名称字符串起始位置偏移,从该位置解析得到函数名称。

方法2:

1.16版本Go语言结构有些新变化,magic变为’\\xfa\\xff\\xff\\xff’,解析头信息获取func_tab_cnt, file_cnt, func_name_off, cu_off, filetab_off, pctab_off, func_tab_off数据,其中func_tab_off为entry数据起始位置,解析entry结构获取code_off, func_info_offset数据,后续解析过程与magic=’\\xfb\\xff\\xff\\xff’一致。

通过上述两个方法可以恢复函数真实名称,从而方便对Go语言二进制文件的逆向分析,提升分析效率。

DevCloud软件开发平台基于二进制成分分析技术,可以为开发者提供以下能力支持:

  • 支持多种类型安装包:支持windows、linux、IoT固件包、安卓部署包等常见软件包的安全检测。
  • 检测全面:支持针对开源软件的许可证、漏洞、信息泄露、安全配置等3大项、25小类的安全问题检测。
  • 开源软件覆盖全面:覆盖100+漏洞源、百万级开源组件版本,开源问题全覆盖。
  • 保障迅速:小时级漏洞更新,提升漏洞发现速度,降低安全风险。

二进制SCA指纹提取黑科技:Go语言逆向技术_go语言_06

作者:郑志强 | 华为云二进制安全测试工具专家


点击关注,第一时间了解华为云新鲜技术~

二进制sca指纹提取黑科技:go语言逆向技术

...sitionAnalysis)软件成分分析,指通过对软件源码、二进制软件包等的静态分析,挖掘其所存在的开源合规、已知漏洞等安全合规风险,是一种业界常见的安全测试手段华为云DevCloud软件开发平台在2022华为伙伴暨开... 查看详情

go语言逆向技术:恢复函数名称算法

...,提出了一种恢复函数名称的算法,方便对go语言二进制文件进行逆向分析,提升分析效率。本文分享自华为云社区《go语言逆向技术之---恢复函数名称算法》,作者:安全技术猿。go语言是最近几年发展非常... 查看详情

go语言逆向技术:常量字符串(代码片段)

摘要:Go语言源代码编译成二进制文件后,源代码中的字符串存放在哪里?是如何组织的?本文分享自华为云社区《go语言逆向技术之---常量字符串解密》,作者:安全技术猿。Go语言源代码编译成二进制文... 查看详情

go项目开发与go二进制程序逆向分析(代码片段)

Ghidra10.1逆向分析二进制程序go项目开发与go二进制程序逆向分析一、go项目开发环境搭建1.下载go安装包https://golang.google.cn/dl/选择对应平台的安装包,进行下载 查看详情

从源码分析快速实现对新开源软件的检测

摘要:本文简单阐述如何基于源码来生成二进制SCA特征。本文分享自华为云社区《基于源码的二进制SCA特征生成技术》,作者:安全技术猿。在二进制SCA检测原理中提到对于常量字符串、部分类名称、函数名称、以及... 查看详情

漏洞检测方法如何选?详解源代码与二进制sca检测原理

...f1a;本文探讨的是SCA具体的检测原理,源代码SCA检测和二进制SCA检测有哪些相同点和不同点,在进行安全审计、漏洞检测上各自又有什么样的优势和适用场景。本文分享自华为云社区《源代码与二进制文件SCA检测原理》... 查看详情

[黑科技]baidupcs-go使用cmd命令行全速下载百度云

BaiduPCS-Go使用CMD命令行全速下载百度云推荐博客:BaiduPCS-Go使用CMD命令行全速下载百度云|老D博客 link:https://laod.cn/black-technology/baidupcs-go-baiduyun.html补充:win7配置BaiduPCS-Go 老D博客|关注谷歌服务,分享互联网精神! https... 查看详情

带你掌握二进制sca检测工具的短板及应对措施

摘要:本文针对二进制SCA检测技术短板所面临的一些特殊场景、检测影响及应对措施进行详细分析和说明,希望对使用二进制SCA检测工具的测试和研发人员有所帮助。本文分享自华为云社区《二进制SCA检测工具---技术短... 查看详情

什么是高热度网(gaoredu.com)?高热度网站都有哪些功能?

...下面就来简单介绍一下这个网站。高热度网专注于分享黑科技产品资讯快报、手机电脑黑科技软件下载、黑科技视频教程下载,涉及到视频、产品、IT技术、系统软件、互联网公司动态等众多领域内的迷你黑科技技术大全及下载... 查看详情

图像处理技术|黑科技解读之ps检测弯曲拉平切边增强摩尔纹(代码片段)

🎬图像处理技术黑科技解读之PS检测、弯曲拉平、切片增强、摩尔纹📢前言一、图像处理技术1.1什么是图像处理技术1.2图像处理技术有哪些研究内容1.3图像处理技术处理方法二、黑科技解读2.1黑科技之PS检测2.1.1PS是什么&... 查看详情

xcode最新调试技术-2018wwdcsession,黑科技,必备

https://juejin.im/post/5b1cd870e51d4506dc0ac76c 查看详情

xcode最新调试技术-2018wwdcsession,黑科技,必备

https://juejin.im/post/5b1cd870e51d4506dc0ac76c 查看详情

您将如何对从设备中提取的一组二进制数据进行逆向工程?

】您将如何对从设备中提取的一组二进制数据进行逆向工程?【英文标题】:Howwouldyougoaboutreverseengineeringasetofbinarydatapulledfromadevice?【发布时间】:2010-09-1201:32:51【问题描述】:我的一个朋友前几天提出了这个问题,他最近买了... 查看详情

springboot核心技术:actuator远程关闭服务“黑科技”

...节点、查看详细健康信息,我们本章来介绍下Actuator的黑科技,远程关闭应用服务。恒宇少年在博客整理三套免费学习教程专题,由于文章偏多特意添加了阅读指南,新文章以及之前的文章都会在专题内陆续填充,希望可以帮助... 查看详情

思岚科技受邀2018高交会携多项“黑科技”亮相

...心正式拉开帷幕,这是目前中国规模最大、最具影响力的科技类展会。来自41个国家和国际组织,超过60个团组将展出1000多项新产品、新技术,并将举办80多场新产品、新技术发布会。2018高交会现场本届高交会以“坚持新发展理... 查看详情

杂乱无章的整理

...团旗下网站天使领域浮云殿技术外包猪八戒网一品威客黑科技增长黑盒-增长黑客专用工具箱-增长黑客社区-用别人的轮子开自己的跑车湾区论坛建群宝-微信群活码|微信群裂变营销|社群裂变|用户增长工具支付宝红包跳转链接其... 查看详情

探究“黑科技”:自动驾驶中的对象追踪技术丨曼孚科技

...而图像跟踪则是基于静止的图片,通过对目标的特征进行提取和匹配来实现目标的追踪。例如,对于一张道路上的照片,通过识别车辆的轮廓来实现对车辆的跟踪。单目标与多目标追踪:在对象追踪中,单目标追踪是指在视频或... 查看详情

4星|《黑科技的应用场景革命》:《经济学人》科技文章集

《经济学人》杂志近一两年来的科技文章集。实际篇幅就是一本普通的20万字的书。总体来说以下两点做的不错:1:可信。所有的文章都是有根据有来源,并且能把相关技术说清楚。2:相关技术的应用前景的分析也比较有水平... 查看详情