APP下载

“逆向分析核心技术”课程优化方案研究

2021-05-28赵北庚

辽宁警察学院学报 2021年3期
关键词:案例库核心技术逆向

赵北庚

(中国刑事警察学院 公安信息技术与情报学院,辽宁 沈阳 110854)

“逆向分析”是在没有源代码的情况下对软件程序功能进行分析的技术,“恶意软件”是被设计用于实现恶意目的的软件程序[1]。近年来,随着互联网、计算机和智能手机的普及,“恶意软件”涉及的平台、种类、技术呈多样化,相关的犯罪案件数量也呈增长趋势[2]。案发现场提取到的恶意软件程序往往没有源代码,需要利用“逆向分析”技术对恶意软件程序的行为和功能进行检验分析,以还原案件发生的过程并锁定与案件相关的证据。恶意软件逆向分析相关技术被广泛应用在企业安全防范、警察执法、司法检验等多个领域。

为培养学生对恶意软件程序分析取证的能力,中国刑事警察学院于2015 年开设了针对网络安全与执法专业的“逆向分析核心技术”选修课。课程教学目的是通过经典的恶意软件样本逆向分析过程,使学生掌握一套完整、扎实的知识体系。然而,随着计算机技术的高速发展,近年来涌现出一批新型的恶意软件案例,如利用恶意软件进行网络诈骗、信息盗取、网络抢购等。其中涉及的开发语言框架、恶意功能和侦查方法并没有包含在已有课程内容中。为了保障课程内容的高效持续化建设,将已有“逆向分析核心技术”课程知识体系和新型恶意软件案例有效结合,使学生掌握相关领域的新动态、提高专业素养和实践能力,提出一套基于恶意软件案例库的课程优化方案。所提出的课程优化方案可为相关专业的课程内容持续化建设提供参考。

一、“逆向分析核心技术”课程现状与存在问题

“逆向分析核心技术”课程授课对象为中国刑事警察学院网络安全与执法专业本科学生。课程教学目的是培养学生利用“逆向分析”技术对案件现场提取的没有源代码的恶意软件程序进行分析取证的能力。现有课程内容包括以逆向分析关键技术和恶意软件功能检验为核心的理论知识,以及对具体恶意软件样本的逆向分析实验。用于实验的恶意软件样本是来自参考书[3-4]中以C++语言实现的经典恶意软件程序。围绕教课书中经典样本的实验可以使学生打下扎实的恶意软件检验与逆向分析基本功。

近年来,网络安全执法工作中出现了大量新型的恶意软件案例。新案例中涉及的恶意软件样本在恶意功能、运行场景、结构特征、检验要点、分析工具等诸多方面与课程中的经典样本不同。新案例、新样本的大量出现,使课程建设面临着亟待解决的问题。首先,新型恶意软件样本涉及的检验方法与技术没有完全包含在现有的课程知识体系中,导致了教学内容与行业新动态的脱节。第二,仅针对参考书中经典样本展开教学,难以培养学生对真实犯罪案件场景中恶意软件的侦查思维和持续学习新知识的能力。第三,现有课程建设机制无法保障将后续出现的新型恶意软件案例持续引入到课程体系中。

为解决上述问题,提出基于案例库的课程优化方案。构建易维护、可扩展的恶意软件案例库,使之与课程内容融合,优化教学效果并保障课程持续建设。

二、将案例库引入“逆向分析核心技术”课程的重要意义

(一)补充经典知识体系

现有的“逆向分析核心技术”课程内容围绕Windows 和 Linux 平台的 C++语言展开。Windows 和Linux 是应用最广泛的计算机操作系统,其结构和运行机制被许多其他操作系统如Android、iOS 等参考借鉴;C++语言是适用场景最全面的高级程序设计语言之一。对运行在Windows 和Linux 系统上由C++语言开发的软件进行逆向分析,涉及的技术与方法覆盖了恶意软件逆向分析知识体系的各个部分,包括编译原理、操作系统机制、程序库依赖、静态分析、动态调试等。因此,以C++语言为核心的经典课程内容体系非常适用于“逆向分析核心技术”课程教学。

随着互联网和移动智能设备的普及,近年来涌现出许多新型的恶意软件案例,如利用恶意软件窃取网站、智能手机中的公民私人信息,利用恶意软件伪造网络数据报牟取利益等。这些新型案件中的恶意软件涉及的编程语言与操作系统没有包含在已有的“逆向分析核心技术”课程体系内。以中国刑事警察学院物证鉴定中心 2015年1 月至2020 年12 月送检的恶意软件样本编程语言分布为例(图1),由C++语言所开发的恶意软件所占比例仅为35%,占65%比例由其他编程语言所开发的恶意软件样本涉及的分析工具、技术、思路并未包含在现有教学内容中。这种经典知识体系和新型案例的脱节导致了学生无法有效了解相关领域最新技术、工具和方法,缺乏对新型热点案例中的恶意软件进行逆向分析取证的能力。

图1 送检恶意软件样本编程语言分布

搜集整理新案件中的恶意软件样本,构建案例库并用于“逆向分析核心技术”课程建设,是对现有经典课程知识体系的有效补充。

(二)培养学生侦查思维和持续学习能力

利用“逆向分析”技术对案件现场提取到的恶意软件样本进行分析取证只是侦查和执法过程中的一个环节。具体的“恶意软件”案例包括案发场景信息、嫌疑人与受害人信息、样本的提取和送检、程序功能检验、出具司法检验报告等多个环节。构建恶意软件案例库,归纳和整理与案件相关的样本、案情、侦查方法、取证要点、相关司法文书等材料,在教学过程中将“逆向分析”技术与具体案情结合,有助于培养学生对真实犯罪案件中恶意软件的侦查思维,树立信息安全与网络犯罪侦查大局观。此外,构建和扩充恶意软件案例库并将之引入到课程建设中,引导学生掌握知识更新的脉络与趋势,有助于培养学生的持续学习意识。

(三)保障课程内容的持续化建设

恶意软件逆向分析涉及的技术、工具、方法更新速度快。随着计算机与互联网技术的发展,恶意软件的运行平台由最初的UNIX、DOS 逐渐扩充为Windows、Linux、MacOS 以及近年来的Android、iOS 等智能手机系统;开发语言由传统的C 和C++语言扩展为以C#、Java、易语言等为代表的可视化程序设计语言;恶意软件的功能也由早期的以破坏计算机系统为目的的蠕虫、木马衍生出种类繁多的盗号、信息窃取、抢购等牟取非法利益的软件程序。随着操作系统、编程语言和恶意功能的演化,对应的恶意软件逆向分析工具也随之更新:从经典的用于静态逻辑分析的IDA、动态调试 PE 文件的 OllyDbg,到专注于.NET 程序逆向分析的ILSpy 以及针对Android手机程序的JEB,恶意软件逆向分析技术和工具一直在高速更新与扩充。

构建并维护用于课程教学的案例库,可以在后续的课程改革过程中有针对性地向库中添加有教学价值的新型恶意软件案例,为课程内容的持续更新提供保障。

三、基于案例库的“逆向分析核心技术”课程优化方案

(一)基础知识与具体案例相结合的课程内容设计

基于恶意软件案例库的“逆向分析核心技术”课程包含两方面内容:基础知识和案例库中的具体案例。基础知识包含了恶意软件逆向分析的通识性原理、技术和方法,是课程内容的核心;案例库中的具体案例可以梳理归纳到基础知识框架中。课程基础知识主要包含五个部分内容:

1.恶意功能

根据恶意软件程序运行所造成的不良结果总结其恶意功能,对恶意软件进行分类归纳。例如:窃取用户键盘敲击顺序的“键盘记录”功能;从远程网络主机下载木马文件的“木马下载”功能;向网站服务器批量发送登录请求并扫描页面信息的“网站扫描”功能;向电子商务网站频繁发送数据报扰乱交易服务的“商品抢购”功能;读取和转发手机短信的“短信劫持”功能等。

2.恶意软件的编程语言与开发框架

与普通软件程序一样,恶意软件是由计算机编程语言和开发框架来实现的。使用不同编程语言和开发框架实现的恶意软件程序,具有不同的结构和运行特征,分析取证时需要利用不同的工具与方法。识别恶意软件的编程语言与开发框架,总结归纳不同语言框架的恶意软件样本结构、特征和分析方法,是恶意软件逆向分析过程的重要环节。

3.静态分析方法

静态分析是指在程序没有运行的前提下,对磁盘中恶意软件样本文件的静态结构特征加以分析取证的方法。静态分析的主要内容包括:恶意样本可执行文件结构分析,反编译代码的逻辑和引用关系分析,程序库导入导出和API 调用分析,静态数据编码分析等。

4.动态分析方法

动态分析是指恶意软件程序执行后,通过追踪内存中代码和数据的动态变化、观察程序对外部环境(如磁盘、网络、输入输出设备等)产生的影响判定其恶意行为。动态分析的主要内容包括:关键代码的断点跟踪调试,追踪程序对内存和磁盘的动态数据读写,捕获分析程序发送和收取的网络数据报,加壳程序的动态脱壳分析。

5.检验要点

由开发框架实现的恶意软件程序具有复杂的结构和模块间依赖关系。利用静态分析和动态分析技术进行全面详尽的检验分析需要大量时间与人力。真实场景中的恶意软件检验分析,须根据软件样本特征和案件情景推断主要的恶意功能和对应的检验要点。针对具体的恶意功能提炼总结检验要点,是课程的重点和难点。

教学过程中按照“先基础、后案例”的顺序将案例库中的具体案例与基础知识结合。通过教案中的经典示例向学生讲授课程的基础知识,构筑上述1~5 小节所述的基础知识体系框架。在此基础上,对案例库中的恶意软件样本进行个性化的讲解与点评,引导学生将具体的恶意软件逆向分析案例整理归纳到基础知识体系框架中。表1 是按照基础知识框架对案例库中的部分样本进行归纳的结果。

表1 根据基础知识体系框架归纳总结案例库中的样本

(二)案例样本搜集与案例库建设

1.案例样本搜集

通过开源数据集和网络安全执法工作两种渠道搜集有教学价值的恶意软件案例样本构建案例库。近年来,一些科研组织公布了用于科学研究的大规模开源恶意软件样本数据集,如Mal-API-2019 数据集[5],微软恶意软件分类数据集[6]等。选取其中有代表性的优质样本加入案例库。此外,将网络安全工作中提取到的有教学价值的样本脱敏处理并添加到案例库。

2.基于虚拟机镜像的案例样本存储

为妥善存储恶意软件样本,提出基于虚拟机镜像的存储方案,为不同的案例样本制作专属的虚拟机镜像并编号存储。这种基于虚拟机镜像的存储方式保障了案例样本的“安全性”和“可重现性”。“安全性”方面,虚拟机镜像提供与外界隔离的环境,保证存储在其中的样本不会对虚拟机镜像之外的环境产生危害。“可重现性”方面,不同类型样本的运行依赖不同的操作系统和硬件环境,虚拟机镜像以“容器”的方式为不同样本提供专属的虚拟系统和硬件环境,保障案例样本在虚拟环境中运行并重现其恶意功能。

3.标签化归档管理

维护XML 格式的结构化文档,为案例库中的每个样本建立记录。每条记录中包含样本的编号、名称、虚拟机镜像路径、主要恶意功能、语言与框架、静态与动态分析工具等标签。基于XML 的规范化标签式管理,保障了案例样本的可查询性、可维护性和可扩展性。

为保障“逆向分析核心技术”课程的持续性建设,将有价值的新案例与已有教学内容有效融合,使学生掌握经典知识脉络的同时提高对真实场景中恶意软件程序的分析取证能力,提出基于案例库的课程建设方法。论述了课程现状和存在的问题,分析了将案例库引入“逆向分析核心技术”课程的重要意义。在此基础上详细论述了基于恶意软件案例库的课程优化方案,包括与案例库相结合的课程内容设计和案例库建设方法。所提出的优化方案对相关学科课程建设与优化研究有积极意义和参考价值。

猜你喜欢

案例库核心技术逆向
心血管外科教学案例库的建设及应用研究
《宁夏大学学报(自然科学版)》入选2021年度中国高校科技期刊建设示范案例库
强化核心技术攻关 赋能种植业转型升级——聚焦《“十四五”全国种植业发展规划》
《宁夏大学学报(自然科学版)》入选2021年度中国高校科技期刊建设示范案例库
逆向而行
国内首个海事司法案例库正式上线
逆向思维天地宽
掌握核心技术 赢在精益制造
核心技术,造船强国第一要素
颠覆式创新: 集汽车级十项核心技术的ROBYF1