CN105938532B - 一种对固件样本大规模采样及漏洞分析方法 - Google Patents
一种对固件样本大规模采样及漏洞分析方法 Download PDFInfo
- Publication number
- CN105938532B CN105938532B CN201510830919.8A CN201510830919A CN105938532B CN 105938532 B CN105938532 B CN 105938532B CN 201510830919 A CN201510830919 A CN 201510830919A CN 105938532 B CN105938532 B CN 105938532B
- Authority
- CN
- China
- Prior art keywords
- firmware
- analysis method
- file
- sample
- sampling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 34
- 238000005070 sampling Methods 0.000 title claims abstract description 13
- 230000006837 decompression Effects 0.000 claims abstract description 15
- 241000270322 Lepidosauria Species 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims description 7
- 230000009193 crawling Effects 0.000 claims description 4
- 238000007639 printing Methods 0.000 claims description 3
- 241000938605 Crocodylia Species 0.000 claims description 2
- 239000007787 solid Substances 0.000 claims description 2
- 238000009412 basement excavation Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000000034 method Methods 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- HPTJABJPZMULFH-UHFFFAOYSA-N 12-[(Cyclohexylcarbamoyl)amino]dodecanoic acid Chemical compound OC(=O)CCCCCCCCCCCNC(=O)NC1CCCCC1 HPTJABJPZMULFH-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002354 daily effect Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种对固件样本大规模采样及漏洞分析方法,其特征在于,包括以下步骤:使用网络爬虫对固件进行采样;识别采样的固件并对所述固件已公开的安全信息进行过滤;对所采样的固件进行解压;对解压后的固件进行漏洞分析。
Description
技术领域
本发明涉及计算机网络信息安全领域,尤其涉及一种对固件样本大规模采样及漏洞分析方法。
背景技术
嵌入式系统在我们的日常生活中无处不在从日常使用的手机,打印机,路由器到复杂的航天飞机、导弹系统,都离不开嵌入式系统。在一辆轿车中,就可能集合了十几个嵌入式系统。不同于计算机的是,嵌入式系统将微处理器嵌入到特定的控制对象中,以操作电子元件执行相应的任务,方便人们的生活。
所有这些系统上运行的特殊软件,通常被称为固件。它们是用来告诉电子设备如何操作的控制程序。
就像传统的软件,嵌入式固件通常会有很多的漏洞或者后门,并且根据目前为止的很多研究或者公开的漏洞信息显示,嵌入式固件的漏洞和后门非常的普遍。
另一方面,对固件的手动研究能够产生非常精确的结果,但是这个过程往往非常的缓慢,并且能够覆盖的范围也非常的有限。同时由于设备厂商经常会重用一些代码,比如说SDK,如果缺乏大规模的固件分析,很难通过一个漏洞发现举一反三,发现大量的相关固件的漏洞。
发明内容
为解决现有技术中存在的问题,本发明提出了一种对固件样本大规模采样及漏洞分析方法。本发明的技术方案包括以下步骤:
步骤一:使用网络爬虫对固件进行采样;
步骤二:识别采样的固件并对所述固件已公开的安全信息进行过滤;
步骤三:对所采样的固件进行解压;
步骤四:对解压后的固件进行漏洞分析。
进一步地,所述步骤一包括:初始化所述固件的URL下载界面并由所述爬虫直接爬取下载;使用搜索引擎搜索所述固件关键字,将得到的URL传送给所述爬虫进行爬取下载;人工将固件或URL提交给所述爬虫进行爬取下载;将下载成功的固件存储到数据库。
进一步地,所述步骤二包括:对固件进行进一步分析之前对所述固件已公开的安全信息进行过滤,总结所述固件的已公开的安全问题。
进一步地,所述步骤三包括:使用可定制的固件解压框架提取固件内容。
进一步地,所述步骤四包括,对于可解压的固件:尝试提取文件中包含的明码字段;对二进制可执行文件进行反汇编分析;分析固件的关联性。
进一步地,所述步骤四还包括,对于不可解压的固件:使用文件分析工具获得固件文件的基本数据类型;使用字符串打印工具提取固件文件中的明码字段,分析是否有引导装载程序以及操作系统内核信息;使用固件解压框架寻找标头信息;使用十六进制转储工具分析为对齐固件文件空间分段而放入的连续填充字节。
本发明的技术方案所取得的有益效果在于:对固件较广范围的智能化的覆盖与分析,实现了对大量固件的漏洞进行快速挖掘分析的目的。
附图说明
图1为使用本发明的对固件样本大规模采样及漏洞分析方法对固件进行分析的流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本实施方案分为两个步骤:步骤一为利用网络爬虫技术大规模搜集嵌入式设备固件,步骤二对所搜集的固件进行漏洞挖掘与分析。
利用网络爬虫技术大规模搜集嵌入式设备固件:
1.访问知名的固件厂家的URL下载点,这些专业固件厂家的URL或为文件URL,爬虫可以直接下载,或为目录型的URL,爬虫进行遍历即可下载到所有的固件。
2.利用FTP搜索引擎,搜索指定的关键字,将搜索的结果中的URL交给爬虫进行固件的爬取。
3.利用Google通用搜索,搜索到能够提供Firmware固件的各厂家URL,然后使用谷歌客户搜索引擎(GCSE),对搜索到的URL进行定制化搜索。
4.人工进行固件的收集和上传。
5.利用NoSQL数据库,将下载成功的固件存储到数据库中供后续分析使用。
对所搜集的固件进行漏洞挖掘与分析:
1.对已公开的安全信息进行过滤
为了提高漏洞挖掘效率及降低规模化自动框架不必要的负荷,在对固件进行进一步分析之前应首先对已公开的安全信息进行过滤,总结此固件已经发现的安全问题。
2.对固件解压
使用可定制的固件解压框架提取固件内容。该解压框架利用模式匹配来定位和分割文件。对于常见的嵌入式设备固件,例如基于Linux的SquashFS文件系统,固件解压框架内置多种特征符可以识别,所以使用时可先让固件解压框架尝试自动解压文件包。
对于无法自动解压的固件,可以基于以下方法分析:
1).使用文件分析工具获得固件文件的基本数据类型。
2).使用字符串打印工具提取文件中所包含的明码字段,寻找是否有引导装载程序以及操作系统内核的信息。
3).使用固件解压框架寻找标头信息,如果解压框架识别的详细信息和文件压缩类型,根据发现的压缩类型解压文件。
4).使用十六进制转储工具(hexdump)分析为了对齐固件文件空间分段而放入的连续填充字节,文件系统标示有可能紧跟此后。
5).文件系统有可能使用非标准的特征符,如果发现可疑特征符字段,可以替换为标准特征符,再尝试由固件解压框架进行识别。
3.固件的分析
固件解压之后的分析包括主要集中在对常见漏洞入口进行针对性的静态分析,包括密码,默认开启的服务,端口,配置文件等。
1).尝试提取文件中包含的明码字段,判断是否存在硬编码密码等。
2).对二进制可执行文件进行反汇编分析。支持包括X86和ARM在内的多种架构,可以提供反汇编指令的详细信息,并提供反汇编指令的语义。
3).发掘固件的关联性,包括分析固件作者,库使用,目录结构,配置文件关键字,定制默认密码等。
4).如果发现包含密码哈希的文件,可考虑使用John the Ripper,Hash Suite等工具进行破解。前者有版本支持GPU加速(支持CUDA和OpenCL)。使用暴力破解可以利用前述步骤中提取的关键字,显著加快运行效率。在设计固件分析模块时可考虑并行化,分布化扩展,以提高规模和效率。
以上所述实施例仅表达了本发明的实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利的限制。应该指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (4)
1.一种对固件样本大规模采样及漏洞分析方法,其特征在于,包括以下步骤:
步骤一:使用网络爬虫对固件进行采样;包括初始化所述固件的URL下载界面并由所述爬虫直接爬取下载;
使用搜索引擎搜索所述固件关键字,将得到的URL传送给所述爬虫进行爬取下载;
人工将固件或URL提交给所述爬虫进行爬取下载;
将下载成功的固件存储到数据库;
步骤二:识别采样的固件并对所述固件已公开的安全信息进行过滤;
步骤三:对所采样的固件进行解压;
步骤四:对解压后的固件进行漏洞分析;
所述步骤四包括,对于可解压的固件:
尝试提取文件中包含的明码字段;
对二进制可执行文件进行反汇编分析;
分析固件的关联性;
对于不可解压的固件:
使用文件分析工具获得固件文件的基本数据类型;
使用字符串打印工具提取固件文件中的明码字段,分析是否有引导装载程序以及操作系统内核信息;
使用固件解压框架寻找标头信息;
使用十六进制转储工具分析为对齐固件文件空间分段而放入的连续填充字节。
2.如权利要求1所述的对固件样本大规模采样及漏洞分析方法,其特征在于,所述步骤二包括:对固件进行进一步分析之前对所述固件已公开的安全信息进行过滤,总结所述固件的已公开的安全问题。
3.如权利要求1所述的对固件样本大规模采样及漏洞分析方法,其特征在于,所述步骤三包括:使用可定制的固件解压框架提取固件内容。
4.如权利要求1所述的对固件样本大规模采样及漏洞分析方法,其特征在于,所述搜索引擎可以为FTP搜索引擎或谷歌客户搜索引擎(GCSE)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510830919.8A CN105938532B (zh) | 2015-11-25 | 2015-11-25 | 一种对固件样本大规模采样及漏洞分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510830919.8A CN105938532B (zh) | 2015-11-25 | 2015-11-25 | 一种对固件样本大规模采样及漏洞分析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105938532A CN105938532A (zh) | 2016-09-14 |
CN105938532B true CN105938532B (zh) | 2018-03-16 |
Family
ID=57153088
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510830919.8A Active CN105938532B (zh) | 2015-11-25 | 2015-11-25 | 一种对固件样本大规模采样及漏洞分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105938532B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413909A (zh) * | 2019-06-18 | 2019-11-05 | 中国科学院信息工程研究所 | 基于机器学习的大规模嵌入式设备在线固件智能识别方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814098A (zh) * | 2010-05-11 | 2010-08-25 | 天津大学 | 基于垂直搜索及语义标注获取软件安全缺陷的方法 |
CN101923618A (zh) * | 2010-08-19 | 2010-12-22 | 中国航天科技集团公司第七一○研究所 | 一种基于隐马尔可夫模型的汇编指令级漏洞检测方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101673326B (zh) * | 2008-09-11 | 2012-04-18 | 北京理工大学 | 基于程序执行特征的网页木马检测方法 |
CN103685258B (zh) * | 2013-12-06 | 2018-09-04 | 北京奇安信科技有限公司 | 一种快速扫描网站漏洞的方法和装置 |
-
2015
- 2015-11-25 CN CN201510830919.8A patent/CN105938532B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101814098A (zh) * | 2010-05-11 | 2010-08-25 | 天津大学 | 基于垂直搜索及语义标注获取软件安全缺陷的方法 |
CN101923618A (zh) * | 2010-08-19 | 2010-12-22 | 中国航天科技集团公司第七一○研究所 | 一种基于隐马尔可夫模型的汇编指令级漏洞检测方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110413909A (zh) * | 2019-06-18 | 2019-11-05 | 中国科学院信息工程研究所 | 基于机器学习的大规模嵌入式设备在线固件智能识别方法 |
CN110413909B (zh) * | 2019-06-18 | 2022-06-10 | 中国科学院信息工程研究所 | 基于机器学习的大规模嵌入式设备在线固件智能识别方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105938532A (zh) | 2016-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10114946B2 (en) | Method and device for detecting malicious code in an intelligent terminal | |
US10684943B2 (en) | Generating executable test automation code automatically according to a test case | |
Chen et al. | Detecting android malware using clone detection | |
CN103761475B (zh) | 检测智能终端中恶意代码的方法及装置 | |
CN106796637B (zh) | 分析装置、分析方法 | |
CN104715196B (zh) | 智能手机应用程序的静态分析方法及系统 | |
CN102663285B (zh) | 一种apk病毒特征码的提取方法及装置 | |
CN101924761B (zh) | 一种依据白名单进行恶意程序检测的方法 | |
Zollner et al. | An automated live forensic and postmortem analysis tool for bitcoin on windows systems | |
KR102415971B1 (ko) | 악성 모바일 앱 감지 장치 및 방법 | |
Zhang et al. | Android application forensics: A survey of obfuscation, obfuscation detection and deobfuscation techniques and their impact on investigations | |
CN109753800A (zh) | 融合频繁项集与随机森林算法的Android恶意应用检测方法及系统 | |
US10747880B2 (en) | System and method for identifying and comparing code by semantic abstractions | |
US20170214704A1 (en) | Method and device for feature extraction | |
CN103294951B (zh) | 一种基于文档型漏洞的恶意代码样本提取方法及系统 | |
CN104834858A (zh) | 一种android应用中恶意代码的静态检测方法 | |
KR20150044490A (ko) | 안드로이드 악성 애플리케이션의 탐지장치 및 탐지방법 | |
US11263062B2 (en) | API mashup exploration and recommendation | |
CN104680065A (zh) | 病毒检测方法、装置及设备 | |
CN103345532A (zh) | 一种网页信息抽取方法及装置 | |
CN115562992A (zh) | 一种文件检测方法、装置、电子设备及存储介质 | |
CN103475671A (zh) | 恶意程序检测方法 | |
CN104360837A (zh) | 取证软件中基于自定义脚本实现电子数据取证分析的方法 | |
CN114462044A (zh) | 一种基于污点分析的uefi固件漏洞静态检测方法及装置 | |
CN106709350B (zh) | 一种病毒检测方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
PP01 | Preservation of patent right | ||
PP01 | Preservation of patent right |
Effective date of registration: 20180306 Granted publication date: 20180316 |
|
PD01 | Discharge of preservation of patent |
Date of cancellation: 20210306 Granted publication date: 20180316 |
|
PD01 | Discharge of preservation of patent | ||
PP01 | Preservation of patent right |
Effective date of registration: 20210306 Granted publication date: 20180316 |
|
PP01 | Preservation of patent right | ||
PD01 | Discharge of preservation of patent |
Date of cancellation: 20240306 Granted publication date: 20180316 |
|
PD01 | Discharge of preservation of patent |