CN117610001A - 针对物联网恶意软件中细粒度恶意行为的自动分析方法 - Google Patents
针对物联网恶意软件中细粒度恶意行为的自动分析方法 Download PDFInfo
- Publication number
- CN117610001A CN117610001A CN202311833436.4A CN202311833436A CN117610001A CN 117610001 A CN117610001 A CN 117610001A CN 202311833436 A CN202311833436 A CN 202311833436A CN 117610001 A CN117610001 A CN 117610001A
- Authority
- CN
- China
- Prior art keywords
- analysis
- malicious
- malicious software
- malware
- internet
- 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.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 195
- 230000006399 behavior Effects 0.000 title claims abstract description 130
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000006870 function Effects 0.000 claims description 56
- 230000008569 process Effects 0.000 claims description 20
- 244000035744 Hura crepitans Species 0.000 claims description 17
- 230000002155 anti-virotic effect Effects 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 claims description 12
- 238000013507 mapping Methods 0.000 claims description 10
- 239000012634 fragment Substances 0.000 claims description 9
- 230000003068 static effect Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 238000003491 array Methods 0.000 claims description 2
- 238000010835 comparative analysis Methods 0.000 claims description 2
- 235000012907 honey Nutrition 0.000 claims description 2
- 238000010223 real-time analysis Methods 0.000 claims description 2
- 230000010485 coping Effects 0.000 abstract 1
- 238000001514 detection method Methods 0.000 description 11
- 230000003542 behavioural effect Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 238000013459 approach Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 230000007123 defense Effects 0.000 description 2
- 238000005206 flow analysis Methods 0.000 description 2
- 238000010921 in-depth analysis Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- WQZGKKKJIJFFOK-GASJEMHNSA-N Glucose Natural products OC[C@H]1OC(O)[C@H](O)[C@@H](O)[C@@H]1O WQZGKKKJIJFFOK-GASJEMHNSA-N 0.000 description 1
- 241000700605 Viruses Species 0.000 description 1
- 238000009411 base construction Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013075 data extraction Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001066 destructive effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 238000009472 formulation Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 239000008103 glucose Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000011835 investigation Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008450 motivation Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000004801 process automation Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000010187 selection method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 239000002699 waste material Substances 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/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/561—Virus type analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Data Mining & Analysis (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了针对物联网恶意软件中细粒度恶意行为的自动分析方法,属于恶意软件分析技术领域;本发明首先制定一个全面详尽的物联网恶意软件分析框架,其次构建一个细粒度恶意行为知识库,最后,基于上述结果,开发出一个针对物联网恶意软件中恶意行为的自动化分析工具。本发明解决了当前物联网恶意软件分析领域中的一系列问题,包括提高物联网恶意软件的分析效率和准确性、降低专业技能要求、适应快速变化的威胁环境,以及能够应对日益复杂化的恶意软件行为。通过自动化分析工具,研究人员和安全从业人员能够更快速地获取物联网恶意软件中的可疑行为,从而更有效地对抗物联网环境中的恶意软件威胁,从而保护这一日益增长的技术领域免受攻击。
Description
技术领域
本发明涉及恶意软件分析技术领域,具体涉及一种针对IoT恶意软件中细粒度恶意行为的自动分析方法。
背景技术
物联网(IoT)迅速改变了我们生活和工作的方式,无论是在医疗保健领域中用于监测血糖的设备,还是帮助我们的家庭更高效的智能家具,物联网设备已经大大改变了我们与数字世界的互动方式,并成为我们日常生活和关键基础设施的组成部分。预计到2025年,将有大约1000亿个设备联网,物联网设备将变得越来越普遍。
不幸的是,物联网设备的迅速普及并未逃过网络犯罪分子和恶意软件作者的注意。尽管这些设备为我们提供了便利、效率和创新,但它们也引入了新的安全挑战。由于物联网设备的多样性,针对这些设备的恶意软件背后的动机也变得多样化,例如金融利益、政治议程或网络活动。这使得物联网设备更容易成为犯罪分子和恶意行为者的主要目标。与普通设备不同,物联网设备通常存在大量低质量代码和架构缺陷,这使它们更容易激起网络犯罪分子和恶意软件编写者的兴趣。此外,许多物联网设备仍在使用着过时的固件和不同级别的安全措施,使它们更容易受到恶意软件的攻击。
例如,Mirai家族的恶意软件在物联网领域是一个标志性的例子,它快速扫描网络上仍然使用默认登录凭据的设备,使黑客能够同时控制超过40万个设备进行恶意行为。这使得黑客能够轻松控制这些设备的计算能力并发动高破坏性的攻击。一旦Mirai的源代码被公开发布,就会导致更多恶意软件的出现。其中最著名的攻击之一是针对DNS服务提供商Dyn的攻击,导致包括Twitter、Netflix、Reddit和Github在内的数百个知名网站暂时关闭数小时。Mirai的兴起和广泛传播凸显了与物联网设备相关的安全问题。它揭示了许多物联网设备在设计和部署时没有考虑基本的安全措施,例如更改默认凭据或定期更新固件。这种恶意软件还引发了关于物联网设备安全的更广泛讨论,并促使研究人员和安全领域从业者探索保护物联网生态***免受威胁的新方法。物联网恶意软件日益普遍,在疫情期间攻击增加了700%,这表明物联网内恶意软件的多样范围和迅速增长对安全研究人员和从业者构成了重大挑战。因此,安全专家和研究人员必须开发更有效的方法来检测、识别、预防和减轻这些威胁。与此同时,检测和定位物联网恶意软件中关键的恶意行为变得越来越重要。
为了解决这类问题,研究人员试图通过利用多种方法来解决这些问题,但这种努力还处于起步阶段,现有对物联网恶意软件中恶意行为的研究,大概有以下几类:
(1)物联网恶意软件标准化分析流程的制定。当前,物联网设备的种类繁多,从智能家居设备到工业传感器,每种设备的硬件和软件配置都不同。这种异构性使得恶意软件的行为在不同设备上可能表现出不同的特征,增加了分析恶意软件的难度。当前主流的分析方法及分析流程也多种多样,如通过网络流量分析和行为分析揭示可疑的通信模式和恶意行为,亦或者通过逆向工程分析物联网恶意软件潜在的漏洞和恶意代码片段。虽然现在针对物联网恶意软件的分析方法多种多样,但是根据不同的分析方法所获得的分析报告的质量参差不齐,因此,目前极为需要基于当前的分析方法针对物联网恶意软件形成一套标准化的分析流程。
(2)物联网恶意软件分类问题。在物联网恶意软件的分类问题上,当前技术主要集中于二分类和家族分类。二分类是一种基础的方法,它将软件简单分为恶意软件和非恶意软件。这种方法通常依赖于特征提取和机器学习算法,如决策树、支持向量机或深度学习模型,来分析软件行为和代码特征。然而,二分类方法虽然能有效区分恶意软件与正常软件,但不足以识别恶意软件的具体家族。家族分类则更为复杂,它涉及将恶意软件进一步分类到特定的家族或类型,如木马、蠕虫或僵尸网络。这通常需要更深层次的分析,如基于行为的分析、签名匹配或基于图的方法,来识别恶意软件家族的特定特征。家族分类对于理解恶意软件的行为模式、传播方式及其潜在危害至关重要,但也面临着更高的复杂性和持续演变的威胁模型的挑战。随着物联网设备种类和数量的增加,这些分类方法并不能适应新的安全挑战,同时,这些方法也存在明显不足。首先,目前的恶意行为检测方法通常关注于较为宏观的分类粒度,即将恶意软件归为大类或家族,而在细粒度的恶意行为检测方面相对薄弱。这种较为粗粒度的分类方法可能无法准确识别和区分更微妙的恶意行为模式,如针对特定设备或环境的定制化攻击等。
(3)恶意软件中恶意行为的检测问题。除了物联网恶意软件分类的问题,恶意软件中恶意行为的检测与识别也是近年来的一个新兴研究领域。当前,主流的分析方法包括基于沙箱的动态分析和基于可执行文件的静态分析。沙箱技术指的是通过在一个隔离的环境(沙箱)中执行可疑文件或程序,通过沙箱中的分析监控程序安全地观察其可疑恶意行为,例如通过分析***调用和网络行为模式来动态检测恶意软件的可疑行为,如果观察到恶意活动或可疑行为,该沙箱将会进行记录并上报。另一方面,静态分析涉及在不运行恶意软件的情况下,深入审查软件源代码或编译后的二进制文件,以识别潜在的恶意行为、可疑构造和安全漏洞,如通过分析程序结构、程序数据流和程序控制流来揭示后门、恶意载荷等安全威胁,从而在恶意行为对***构成威胁之前进行识别和阻断。然而,恶意软件行为的分析过程不同于分类检测任务。它不仅需要确定恶意行为的存在与否的问题,还需要详细了解其具体实现方式和操作方法,并通过各种分析技术识别其恶意功能。且截止目前,这一分析过程主要依赖于研究人员对恶意软件的手动分析,因此也使得此分析过程变得冗长而耗时,不仅需要投入大量人力和时间资源,还使得研究人员难以针对相应的恶意软件快速部署应对措施。
物联网环境的复杂性和设备的多样性使得传统的恶意软件分析方法在精确度、分析粒度和效率上面临重大挑战。并且目前恶意软件分析往往依赖于时间密集且专业性强的手动分析过程,这不仅耗时而且效率低下。此外,随着物联网设备的快速增长和恶意软件类型的日益多样化,传统的分析方法难以适应快速变化的物联网威胁环境。为了解决上述问题,本发明提出了一种一种针对IoT恶意软件中细粒度恶意行为的自动分析方法。
发明内容
本发明的目的在于提供一种一种针对IoT恶意软件中细粒度恶意行为的自动分析方法,提高物联网恶意软件的分析效率,以快速从物联网恶意软件中获得可疑恶意行为信息,从而针对可疑恶意行为采取响应措施。
为了实现上述目的,本发明采用了如下技术方案:
一种针对IoT恶意软件中细粒度恶意行为的自动分析方法,包括以下步骤:
S1、基于现有技术,参考目前物联网恶意软件分析过程中主流的静态和动态分析方法,制定一个恶意软件分析框架,以简化并标准化恶意软件样本的手动分析流程;所述框架能够更有效地识别和分类恶意软件,同时降低分析过程的复杂性和冗余性。它包括对恶意软件的行为模式、威胁级别、代码结构等方面的深入分析。此外,框架还整合了一套详细的分析指南和工具,这些工具可以帮助分析师更***地处理恶意软件样本,从而确保分析结果的一致性和可靠性。通过应用该框架,恶意软件分析师能够更快速地洞察恶意软件的特点,从而为进一步的防御策略提供支持。
S2、基于S1中所制定的恶意软件分析框架对恶意软件进行标准化分析,依据获得的分析报告构建细粒度恶意行为知识库,通过所述知识库将物联网恶意软件中的恶意行为与其复杂的实现方式以及其威胁级别相关联;该步骤能够***地理解恶意软件的复杂性,有助于开发更精准的自动化分析工具。
S3、基于Ghidra逆向分析工具,开发一种自动化分析工具,以实现自动分析恶意软件的细粒度行为,快速识别和分类恶意软件的具体行为,并准确地指出并记录恶意软件中每个细粒度恶意行为的代码实现方法和具***置。
优选地,S1中所述恶意软件框架对于一个待分析恶意软件,具体分析步骤如下:
S1.1、基于反病毒程度的初步分析:使用反病毒程序来检查该恶意软件是否已被标记为恶意软件;
S1.2、基于沙箱技术的动态分析:基于S1.1中反病毒程序获取的初步分析报告作为参考,使用沙箱技术对物联网恶意软件进行动态分析;
S1.3、基于逆向分析工具的整体分析:使用Ghidra逆向分析工具对可执行文件进行逆向工程,对恶意文件进行更加深入的分析;
S1.4、基于动态调试工具的补充分析:使用动态调试工具对无法通过Ghidra逆向分析工具分析识别的功能进行进一步的补充分析。
优选地,所述S2具体包括如下内容:
S2.1、在数据采集与样本选择阶段,从IoTPOT蜜罐中收集恶意软件样本,利用AVClass工具对恶意软件样本进行初步分类,确保了所得样本集既全面又均衡,涵盖了各类恶意软件的代表性特征;
S2.2、在细粒度恶意行为建模阶段,按照S1中恶意软件分析流程对物联网恶意软件样本进行手动分析,以识别物联网恶意软件的关键恶意行为,如***持久化策略、***欺骗行为以及***反调试行为;
S2.3、根据S2.2中所得分析结果,对每个细粒度的恶意行为进行建模,提炼出恶意行为的关键特征,为准确分类和有效响应提供基础;
S2.4、综合S2.1-S2.3所述操作,构建一个知识库,以收集和整合恶意软件的行为意图、行为类别、行为模式和攻击手段,所述知识库不仅提高了分析的效率和准确性,而且为网络安全领域的研究和实践提供了重要的支持。
优选地,所述S3具体包括如下内容:
S3.1、构建恶意行为分析函数,针对S2中的手动分析过程进行自动化实现,进一步包括如下内容:
S3.1.1、分析关键函数的调用方式和代码片段:分析反汇编获得的汇编代码,识别关键函数和代码片段,上述关键函数和代码片段能够提供对可执行文件的功能和行为的深入理解;
S3.1.2、分析恶意软件中的字符串:分析恶意软件汇编列表中使用的字符串,如文件名、注释或条件检查,能够提供恶意软件创建者意图使用的线索;
S3.1.3、分析恶意软件中的数据结构:分析恶意文件中使用的数据结构,例如数组、结构和链表,有助于确定程序如何存储和处理数据;
S3.1.4、分析恶意软件的控制流:分析恶意文件的控制流,识别主要执行路径,有助于分析出不同变种之间的共享或相似的执行路径,从而帮助发现新的恶意软件变种;
S3.2、设计恶意行为的类别映射、定位模块,准确地分类和定位细粒度恶意行为,进一步包括如下内容:
S3.2.1、所述类别映射、定位模块接收S3.1中分析函数生成的数据,所述数据包括细粒度恶意行为关联的代码片段;
S3.2.2、所述类别映射、定位模块以S2中构建得到的细粒度恶意行为知识库为参考,通过对比分析,将实时分析数据与知识库中的信息进行匹配,以确定恶意行为的具体类别;
S3.2.3、所述类别映射、定位模块根据S3.2.1中的关联的代码片段的内存位置计算出细粒度恶意行为在文件中的具***置,以实现恶意行为定位功能。
与现有技术相比,本发明提出了一种针对IoT恶意软件中细粒度恶意行为的自动分析方法,具备以下有益效果:
(1)本发明制定了一个恶意软件分析框架。研究人员可以使用该框架根据其步骤进行恶意软件分析。它将根据恶意软件分析所需的关键工具和技术,制定一个工作流程,其中包括***恶意软件分析的所有必要步骤,工具和技术。本框架相比现有技术,提供了更加***化和结构化的恶意软件分析流程。通过整合关键工具和技术,它大幅提高了分析的效率和准确性。这种组织化的方法降低了对专业知识的需求,使得即使是非专业人员也能高效地进行分析,从而减少了人力成本。此外,预设的工作流程减少了分析中可能出现的错误,提高了操作的安全性和便利性。
(2)本发明构建了一个细粒度恶意行为知识库。通过该知识库能够将恶意软件中的细粒度恶意行为与其复杂的实现方式以及其威胁级别紧密联系起来。它将大大加快我们分析并理解恶意软件所表现出的细粒度恶意行为的行为意图和恶意行为威胁级别的能力。与现有技术相比,这个知识库提供了一个更深入和细化的物联网恶意软件行为分类***。它使研究人员能够更快速地理解和识别恶意软件的具体行为意图和威胁级别,从而加快了响应时间和提高了处理恶意软件的效率。这不仅增强了安全防御的能力,还减少了因错误分类导致的资源浪费,进而降低了能源和时间成本。
(3)本发明开发了一套针对物联网恶意软件中恶意行为的自动化分析工具。我们基于Ghidra构建了自动化分析工具。在分析物联网恶意软件时,使用该工具可以快速准确地检测、识别、并定位物联网恶意软件中的细粒度恶意行为。与传统方法相比,该工具不仅能够更快地检测物联网恶意软件中的细粒度恶意行为,而且还可以快速地识别并定位细粒度恶意行为,从而大幅提高了分析效率。这种自动化的方法减少了手动分析的需求,降低了人工成本,并减少了因手动分析错误可能导致的风险。它为研究人员提供了一个更快、更可靠的分析工具,从而改善了物联网环境的整体安全性。
附图说明
图1为本发明实施例1中一种针对IoT恶意软件中细粒度恶意行为的自动分析方法的整体流程图;
图2为本发明实施例1中恶意软件分析框架流程图;
图3为本发明实施例1中VirusTotal分析结果示例图;
图4为本发明实施例1中LISA沙箱分析结果示例图;
图5为本发明实施例1中Ghidra反汇编代码图;
图6为本发明实施例1中Ghidra反编译代码图;
图7为本发明实施例1中Ghidra调用图;
图8为本发明实施例1中Radare2分析过程截图;
图9为本发明实施例1中数据采集与样本选择流程图;
图10为本发明实施例1中恶意行为类别映射示意图;
图11为本发明实施例1中知识库恶意行为模型的建模过程;
图12为本发明实施例1中细粒度恶意行为知识库构建流程图;
图13为本发明实施例1中函数迭代分析算法示意图;
图14为本发明实施例1中自动化分析工具流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。
实施例1:
本发明提出一种一种针对IoT恶意软件中细粒度恶意行为的自动分析方法,整体流程如图1所示,即输入为一个物联网恶意软件的可执行文件,输出为一个针对该恶意软件中细粒度恶意行为的全面详尽的分析报告。下面结合相关附图详细介绍本发明的详细实现过程。
(1)基于现有技术的恶意软件分析框架的制定
请参阅图2,本发明基于现有技术制定了一个恶意软件分析框架,以简化并标准化恶意软件样本的手动分析流程,且该框架遵循目前主流的恶意软件分析技术,具体采用的标准化分析工具如表1所示。
表1:恶意软件分析框架工具概览
对于一个待分析的恶意软件,具体的分析步骤及方法详细如下:
1)基于反病毒程序的初步分析。
在该框架中,本发明首先使用反病毒程序来检查该恶意软件是否已被标记为恶意软件。这些反病毒程序采用基于签名的检测和基于恶意软件的检测。基于签名的检测依赖于查看收集的恶意文件数据库,如图3所示,这些数据库通常使用散列算法,如MD5,SHA-1,或SHA-256为文件生成唯一的哈希值,基于启发式的检测方法依靠行为和模式匹配分析来识别可疑文件。通常,每个反病毒程序通常使用不同的签名和启发式检测方法,为了获得最全面的覆盖,我们将检查多个反病毒程序,看看是否有任何可用的信息。
在本框架中,本发明使用VirusTotal进行统一扫描,VirusTotal是一个恶意软件在线搜索网站,汇集了许多反病毒程序和在线扫描引擎的结果报告信息。VirusTotal能够将恶意软件样本与多种反病毒程序的数据库进行对比,从而返回匹配度最高的结果报告。
2)基于沙箱技术的动态分析。
基于上述步骤所中反病毒软件获取的初步分析报告作为参考,本发明接着使用沙箱技术对物联网恶意软件进行动态分析。
沙箱技术是一种强大的方法,用于在安全、隔离的环境中评估和分析恶意软件的行为,沙箱本质上是一个受控的虚拟环境,允许恶意软件在其中运行,同时防止其对真实***造成损害,这种技术使研究人员能够观察恶意软件在执行时的行为,包括它如何与操作***交互、是否尝试连接到远程服务器、以及它是否试图下载或执行其他恶意代码。
通过基于沙箱的动态分析,可以揭示一些静态分析技术无法检测到的复杂行为,如基于特定条件触发的恶意活动或使用先进技术隐藏的恶意操作。此外,基于沙箱的动态分析还有助于生成恶意软件的行为特征,这些特征可用于增强安全产品和策略,以更有效地识别和阻止恶意软件。
在该框架中,本发明使用的标准分析沙箱是LISA Sandbox,这个沙箱具备高级的监控能力,通过该沙箱的动态分析,如图4所示,可以获取诸如文件操作、网络通信和***调用等一系列可疑恶意行为。通过LISA Sandbox,本发明的框架能够更有效地识别和分析各种复杂的恶意软件,为安全研究提供了强有力的支持。
3)基于逆向分析工具的整体分析。
由于基于沙箱技术的分析方法也有其局限性,如高级恶意软件如果检测到自己处于沙箱中,则会改变其恶意行为,从而逃避检测。因此,为了对恶意文件进行更加深入的分析,本发明使用了一个名为Ghidra的逆向分析工具对可执行文件进行逆向工程。
Ghidra的工作原理是将二进制代码分解成更小的片段,并独立分析每个片段。当将二进制文件加载到Ghidra中时,它会自动识别指令集和文件格式。然后,它将二进制文件分解成汇编代码供研究。
在从Ghidra开始的汇编过程中,本发明首先分析恶意程序的入口点,通过跟踪入口点,可以很容易地找到恶意软件的主要功能,并了解恶意软件的创建者编写的恶意软件的操作。通过分析恶意软件的汇编代码,可以推断函数调用和值来理解恶意软件的功能。
Ghidra中一个非常有用的工具是它内置的反编译器,它可以将汇编代码转换成更高级且更容易理解的级别代码,这有助于更好地了解程序的执行过程。此步骤的具体分析过程如下:首先通过Ghidra对恶意软件进行反汇编得到汇编代码,接着使用Ghidra内置的反编译器对上述获得的汇编代码进行反编译,从而可以得到相应的高级语言代码表示。
接下来,将以分析物联网恶意软件中的一种持久化恶意行为的实现方法为例进行分析:
如图5所示,首先获取该恶意文件的反汇编代码,接着使用Ghidra内置编译器分析反汇编代码,从而获取反编译代码,如图6所示。在获取到反编译生成的高级语言代码之后,可以很轻松并清晰地了解到恶意行为的具体实现方法,在该恶意软件中:
恶意软件首先会尝试打开路径为/etc/rc.d/rc.local的文件。如果该文件不存在,代码将尝试打开/etc/rc.conf文件。接着使用getcwd()函数尝试获取当前工作目录,存储在acStack6736变量中,并检查当前工作目录是否为根目录(/)。如果是,关闭已打开的文件并退出。然后,计算param_2指向的字符串的长度,遍历该字符串直到找到最后一个“/”字符,并使用sprintf函数将当前工作目录和param_2指向的字符串中最后一个“/”之后的部分拼接起来,结果存储在afStack6420变量中。最后,在打开的配置文件中逐行读取内容,检查是否已包含afStack6420变量中的字符串,如果找到匹配的行,则增加local_1a70的计数,否则以追加模式打开文件local_1a5c指向的路径,将afStack6420中的字符串写入文件。完成上述一系列操作后,关闭文件即可。
根据上述的分析结果,我们可以在手动分析报告中简单记录以下信息:
除此以外,基于Ghidra,本发明能够记录各种恶意软件样本的关键恶意行为,包括恶意软件作者故意混淆的恶意软件。然而,恶意软件的创建者通常使用反调试技术,这增加了研究人员分析恶意软件的难度。
在本发明的研究中,观察到物联网恶意软件中的一些常见反分析技术包括:如代码混淆、反调试和打包等。幸运的是,Ghidra是一个非常强大的反编译器,可以对抗许多这些反分析技术。例如,如图7所示,它内置了代码分析功能,可以自动进行数据流分析,控制流分析等功能。可以通过在线生成函数ID来辅助本发明的分析工作。根据前面获得的架构信息,可以生成函数ID,然后使用Ghidra的函数ID数据库文件来分析函数的签名。即使在符号表被剥离的情况下,Ghidra的函数ID工具仍然能够有效地识别常见的***调用和函数,对本发明的分析过程提供了极大的帮助。
4)基于动态调试工具的补充分析。
在完成上述一系列分析后,对于无法通过Ghidra分析识别的功能,可以使用动态调试工具进行进一步的补充分析。在该框架中,本发明使用的标准动态调试工具是Radare2,如图8所示,此工具允许我们逐行执行指令,并有选择地执行特定功能,而不必运行整个程序,通过使用动态调试器,可以跳转到单个函数内部,以更好地理解其代码功能和关键恶意行为的具体实现。
(2)细粒度恶意行为知识库的构建
1)数据采集与样本选择。
如图9所示,首先从IoTPOT蜜罐获取大量物联网恶意软件样本。接着使用AVClass工具对这些样本进行初步的分类,以便能够了解它们的基本特征和类别。随后,从每个初步分类的类别中按一定比例选取样本,这样的选择方法旨在确保手动分析的样本集既全面又均衡。通过这种策略,能够获得代表性强且种类多样的样本,从而为深入的恶意软件行为分析打下坚实的基础。
2)细粒度恶意行为的分析和建模。
此过程主要涉及将物联网恶意软件的恶意行为细分为不同的类别,如图10所示,首先基于上述框架手动分析物联网恶意软件样本,主要分析恶意软件的代码结构、执行模式和控制流,从而识别其用于行为隐藏、***持久化、数据混淆、***损坏或网络攻击等特定策略。然后针对根据分析获得的恶意行为进行行为总结,在此步骤,如图10所示,参考ATT&CK框架对上述分析出来的恶意行为进行分类,这个过程不仅能够将恶意软件中的各种行为与其具体的实现方式联系起来,而且还加快了识别恶意软件的速度,确保了恶意行为能够被映射至正确的类别。最后,根据上述的分析结果,对这些恶意行为进行建模,具体的模型如图11所示,将每个恶意行为按照摘要和信息分为两个部分,具体如下:
此外,进一步评估恶意软件可能对目标***造成的具体损害,如***崩溃、数据泄露等。并分析恶意软件的行为模式,探究它如何与其它***组件或网络资源进行交互,从而全面评估其威胁程度和潜在的影响范围。
最后,针对上述的分析结果进行总结,最终形成一份全面详尽的恶意软件手动分析报告,本工作中制定的恶意软件手动分析报告模版如表2所示。
表2:恶意软件手动分析报告模版
3)构建知识库。
知识库的构建流程如图12所示,基于上述深入分析所获得的分析报告,进行知识总结并将分析结果进一步构建为一个专门的知识库。这个知识库致力于为恶意软件的综合分析提供全面详尽且坚实的基础。在这个知识库中,收集并整合了各种恶意软件中细粒度恶意行为的行为类别、行为模式、攻击方法和潜在威胁,使其成为一个信息丰富、易于访问的资源。总体而言,这个知识库的构建旨在提高恶意软件分析的效率和准确性,为网络安全领域的研究和实践提供关键的支持。
(3)自动化分析工具的具体技术实现
基于对恶意软件自动化分析工具各方面的综合考虑,本发明决定基于Ghidra的API进行开发,利用Ghidra逆向工程框架提供的API,自动执行和定制分析二进制文件相关的各种任务,通过Ghidra,可以使用Java或Python编写自动化分析任务。Ghidra API允许对数据提取,符号重命名,函数识别等任务实现流程自动化。对于本发明,使用Java进行主要开发语言,因为Java是Ghidra的实现语言。这意味着Java可以为本发明提供Ghidra API的所有功能,并允许本发明利用许多现有的Java库。
在本发明中,首先使用Ghidra对输入的物联网恶意软件进行逆向工程,从而获取相应恶意软件的汇编代码。接下来,将生成的汇编代码作为主要分析对象进行进一步的分析。
在具体实现过程中:
在针对每个细粒度恶意行为进行分析的时候,根据分析关键函数的调用方式和代码片段、分析恶意软件中的字符串、分析恶意软件中的数据结构、分析恶意软件的控制流这四种分析方法,结合先前步骤构建完成的知识库,针对每种细粒度恶意行为构建了特定的分析函数,接着采用Ghidra API来实现上述分析函数。这一系列分析函数旨在分析每个细粒度恶意软件行为,以识别特定的恶意行为类别。这些分析函数同时也将作为本发明的主要自动化分析工具,以实现对物联网恶意软件中恶意行为的自动分析。
在针对整个物联网恶意软件进行分析的时候,首先构建一个函数迭代分析算法,此函数迭代分析算法主要用于循环遍历对恶意软件进行逆向工程所获得的整个函数集合,从而使本发明能够有效地搜索整个恶意文件。
函数迭代分析算法的具体实现方式如图13所示,首先使用Ghidra API中的getFirstFunction()函数获取整个待分析文件的入口函数funci。接着判断是否成功获取funci,如果函数不为空,即成功获取该函数,则进入while循环,在while循环中,根据函数监视器的取消与否,来判断是接着获取下一个待分析函数funci+1,还是进行此函数的详细分析(此步骤的详细分析即为上述定义的四种分析方法)。
在恶意软件的实际分析过程中,本发明使用上述构建的分析函数作为主要分析工具,如图14所示,由于本发明的主要分析函数也是基于知识库中每个行为类别的行为特征总结进行构建的,所以当上述四个分析函数中的某个分析函数检测到某个细粒度恶意行为的时候,便可根据该分析函数的类别归属首先获取此恶意行为的类别映射信息behavior_category。接着,将分析过程中获取的该恶意行为的汇编代码实现方法behavior_implCode,以及恶意行为的代码实现位置behavior_loc,统一记录在对象数组behavior_array中,并在分析完每个函数对象后将此对象数组behavior_array作为此步骤的结果进行返回。
对象数组behavior_array定义如下;
随后,通过函数迭代分析算法对恶意软件进行多次迭代分析,直至完成对整个恶意文件的全面分析。
最后,将收集到的对象数组behavior_array进行汇总和整理,形成一个最终的恶意软件自动析报告,并将其作为自动化分析结果进行输出。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种针对IoT恶意软件中细粒度恶意行为的自动分析方法,其特征在于,包括以下步骤:
S1、基于现有技术,参考目前物联网恶意软件分析过程中主流的静态和动态分析方法,制定一个恶意软件分析框架,以简化并标准化恶意软件样本的手动分析流程;
S2、基于S1中所制定的恶意软件分析框架对恶意软件进行标准化分析,依据获得的分析报告构建细粒度恶意行为知识库,通过所述知识库将物联网恶意软件中的恶意行为与其复杂的实现方式以及其威胁级别相关联;
S3、基于Ghidra逆向分析工具,开发一种自动化分析工具,以实现自动分析恶意软件的细粒度行为,快速识别和分类恶意软件的具体行为,并准确地指出并记录恶意软件中每个细粒度恶意行为的代码实现方法和具***置。
2.根据权利要求1所述的一种针对IoT恶意软件中细粒度恶意行为的自动分析方法,其特征在于,S1中所述恶意软件框架对于一个待分析恶意软件,具体分析步骤如下:
S1.1、基于反病毒程度的初步分析:使用反病毒程序来检查该恶意软件是否已被标记为恶意软件;
S1.2、基于沙箱技术的动态分析:基于S1.1中反病毒程序获取的初步分析报告作为参考,使用沙箱技术对物联网恶意软件进行动态分析;
S1.3、基于逆向分析工具的整体分析:使用Ghidra逆向分析工具对可执行文件进行逆向工程,对恶意文件进行更加深入的分析;
S1.4、基于动态调试工具的补充分析:使用动态调试工具对无法通过Ghidra逆向分析工具分析识别的功能进行进一步的补充分析。
3.根据权利要求1所述的一种针对IoT恶意软件中细粒度恶意行为的自动分析方法,其特征在于,所述S2具体包括如下内容:
S2.1、在数据采集与样本选择阶段,从IoTPOT蜜罐中收集恶意软件样本,利用AVClass工具对恶意软件样本进行初步分类;
S2.2、在细粒度恶意行为建模阶段,按照S1中恶意软件分析流程对物联网恶意软件样本进行手动分析,以识别物联网恶意软件的关键恶意行为;
S2.3、根据S2.2中所得分析结果,对每个细粒度的恶意行为进行建模,提炼出恶意行为的关键特征,为准确分类和有效响应提供基础;
S2.4、综合S2.1-S2.3所述操作,构建一个知识库,以收集和整合恶意软件的行为意图、行为类别、行为模式和攻击手段。
4.根据权利要求1所述的一种针对IoT恶意软件中细粒度恶意行为的自动分析方法,其特征在于,所述S3具体包括如下内容:
S3.1、构建恶意行为分析函数,针对S2中的手动分析过程进行自动化实现,进一步包括如下内容:
S3.1.1、分析关键函数的调用方式和代码片段:分析反汇编获得的汇编代码,识别关键函数和代码片段;
S3.1.2、分析恶意软件中的字符串:分析恶意软件汇编列表中使用的字符串,如文件名、注释或条件检查;
S3.1.3、分析恶意软件中的数据结构:分析恶意文件中使用的数据结构,例如数组、结构和链表;
S3.1.4、分析恶意软件的控制流:分析恶意文件的控制流,识别主要执行路径;
S3.2、设计恶意行为的类别映射、定位模块,准确地分类和定位细粒度恶意行为,进一步包括如下内容:
S3.2.1、所述类别映射、定位模块接收S3.1中分析函数生成的数据,所述数据包括细粒度恶意行为关联的代码片段;
S3.2.2、所述类别映射、定位模块以S2中构建得到的细粒度恶意行为知识库为参考,通过对比分析,将实时分析数据与知识库中的信息进行匹配,以确定恶意行为的具体类别;
S3.2.3、所述类别映射、定位模块根据S3.2.1中的关联的代码片段的内存位置计算出细粒度恶意行为在文件中的具***置,以实现恶意行为定位功能。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311833436.4A CN117610001A (zh) | 2023-12-28 | 2023-12-28 | 针对物联网恶意软件中细粒度恶意行为的自动分析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311833436.4A CN117610001A (zh) | 2023-12-28 | 2023-12-28 | 针对物联网恶意软件中细粒度恶意行为的自动分析方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117610001A true CN117610001A (zh) | 2024-02-27 |
Family
ID=89953714
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311833436.4A Pending CN117610001A (zh) | 2023-12-28 | 2023-12-28 | 针对物联网恶意软件中细粒度恶意行为的自动分析方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117610001A (zh) |
-
2023
- 2023-12-28 CN CN202311833436.4A patent/CN117610001A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9715593B2 (en) | Software vulnerabilities detection system and methods | |
Canfora et al. | Leila: formal tool for identifying mobile malicious behaviour | |
Bao et al. | {BYTEWEIGHT}: Learning to recognize functions in binary code | |
Avancini et al. | Security testing of web applications: A search-based approach for cross-site scripting vulnerabilities | |
Calleja et al. | The malsource dataset: Quantifying complexity and code reuse in malware development | |
US20060282897A1 (en) | Secure web application development and execution environment | |
CN114077741B (zh) | 软件供应链安全检测方法和装置、电子设备及存储介质 | |
CN113821804B (zh) | 一种面向第三方组件及其安全风险的跨架构自动化检测方法与*** | |
Schlumberger et al. | Jarhead analysis and detection of malicious java applets | |
Liao et al. | SmartDagger: a bytecode-based static analysis approach for detecting cross-contract vulnerability | |
CN103475671B (zh) | 恶意程序检测方法 | |
Eskandari et al. | To incorporate sequential dynamic features in malware detection engines | |
Hannousse et al. | Handling webshell attacks: A systematic mapping and survey | |
Le et al. | GuruWS: A hybrid platform for detecting malicious web shells and web application vulnerabilities | |
Li et al. | Large-scale third-party library detection in android markets | |
Yuste et al. | Optimization of code caves in malware binaries to evade machine learning detectors | |
Wang et al. | {MetaSymploit}:{Day-One} Defense against Script-based Attacks with {Security-Enhanced} Symbolic Analysis | |
Korine et al. | DAEMON: dataset/platform-agnostic explainable malware classification using multi-stage feature mining | |
Si et al. | Malware detection using automated generation of yara rules on dynamic features | |
Guo et al. | An empirical study of malicious code in pypi ecosystem | |
Brito et al. | Study of javascript static analysis tools for vulnerability detection in node. js packages | |
Ladisa et al. | On the feasibility of cross-language detection of malicious packages in npm and pypi | |
CN117610001A (zh) | 针对物联网恶意软件中细粒度恶意行为的自动分析方法 | |
Vimpari | An evaluation of free fuzzing tools | |
Crincoli et al. | Code reordering obfuscation technique detection by means of weak bisimulation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |