公务员期刊网 论文中心 正文

计算机病毒密码算法检测系统浅析

计算机病毒密码算法检测系统浅析

摘要:本文基于密码算法设计了计算机病毒检测系统,详细分析了密码算法,并进行了系统测试。结果发现,此系统不仅可自动迅速识别计算机病毒内的密码算法,还可准确跟踪检测计算机病毒运行时的密码算法调用与加密过程,同时可由病毒加壳、加密通信、加密文件等视角分析以全面刻画病毒。

关键词:计算机病毒;密码算法;病毒检测;静态特征;动态行为

0引言

随着计算机技术的快速发展,人们的日常生产生活发生了巨大转变,也获得了各种便捷,从而演变成了现代化社会最不可获取的部分。但是计算机系统的安全性依旧有待提高,其不安全因素主要有计算机信息系统自身与人为操作,而计算机病毒是最常见且最不安全的因素,病毒的存在不仅会造成资源与财富浪费,还会导致社会性灾难。并且在互联网技术的大范围普及下,邮件、脚本、网页、木马、蠕虫等病毒愈发泛滥,计算机用户随时随地可能会遭遇攻击,所以采用多元化算法与技术检测并预防计算机病毒已是必然趋势[1]。据此本文基于密码算法设计了计算机病毒检测系统,以期能够为防控病毒做出一定贡献。

1密码算法分析

密码算法可保护并认证数据,通常用于为计算机提供安全防护,但是密码算法实际上一把双刃剑,其在提供安全保护的同时,很多攻击者也会利用密码算法逃避安全部门的追踪检测,导致有关调查取证工作难以有序开展,从而严重威胁着网络安全与社会和谐[2]。一般情况下,密码算法主要基于加壳免杀、加密通信、加密勒索方式散播计算机病毒。其中加壳免杀方式会隐藏病毒特性,无法以静态特征码识别并查杀病毒;加密通信方式会通过HTTP协议伪装为网页,以此绕过防火墙入侵计算机;加密勒索方式的破坏性更巨大,此方式下散播的病毒会直接导致用户的计算机文件访问异常,给用户带来不可挽回的损失。比特币勒索病毒便是以加密勒索方式攻击了数百万计算机,支付赎金用户上万,用户根本无法获取解密私钥,无法破解,很多用户只能通过支付赎金的方式获取密钥。现阶段基于密码算法的计算机病毒依旧在蔓延,对此如何有效迅速地检测并分析病毒的工作已经迫在眉睫,但是当前计算机病毒密码算法的自动化系统研究仍旧亟待深入[3]。

2计算机病毒结构模式分析

虽然当前的计算机病毒逐渐海量化,类型也逐步复杂化,但基于病毒程序代码分析,对比可知大部分病毒程序均是由引导模块、传染模块、破坏表现模块共同组成的。计算机病毒结构模式[4]具体见图1。

3计算机病毒密码算法检测系统设计

3.1系统架构

计算机病毒密码算法检测系统整体架构具体见图2。用户通过传输待分析病毒文件于系统中,经过三种算法检测之后生成最终分析结果[5-6]。第一环节,加壳算法检测。基于加壳指纹特征库和PE文件信息熵相结合的方式,可保障计算机病毒加壳算法识别精确度。其中已知壳需构建指纹特征库,以指纹特征匹配可迅速精准地检测出既知病毒使用的加壳算法;而未知壳由于加壳会造成文件数据信息熵增高,对此可通过PE文件信息熵方式对病毒进行检测,以得知是否加壳。第二环节,静态特征密码算法检测。以病毒静态特征的详细分析实现密码算法和静态特征的映射建设,通过算法特征匹配检测病毒所使用的加密算法。第三环节,动态行为加密算法检测。一般情况下病毒为了逃避追踪检测,会采取加壳或指令转变技术隐匿算法的静态特征码,这时便可基于静态检测分析,进行算法动态分析与实时跟踪,从而提升密码算法检测精确度。

3.2密码算法

3.2.1加壳检测算法分析与实验。3.2.1.1算法分析。传统静态加壳技术影响下,加壳病毒执行过程中会具备相同编码,所以检测与破解难度较小。为满足计算机病毒防护需求,攻击者提供了动态加壳技术理念,以随机加密算法,加密病毒程序代码与数据。为生成各种特征加密壳,通过随机密钥加密算法可实现多态引擎技术,基于保障同功能病毒样本,以新方式生成不同病毒代码序列,且序列中的特征码完全不同,从而导致单一特征码匹配检测技术逐渐失去了效用。3.2.1.2检测实验。通常基于UPX加壳算法指纹特征匹配模式进行已知壳检测,结果具体见图3。由图可以看出,UPX加壳算法能够迅速且准确地识别病毒为64为可执行程序,且可通过UPX实现加壳处理。检测未知壳的时候利用以信息熵检测技术研发检测仪器,检测结果具体见图4。由图可以看出,第一个样本评估为加壳,第二个样本评估为未加壳,准确率较高。3.2.2静态特征密码检测算法分析与实验。3.2.2.1算法分析。静态特征密码检测算法即基于提取算法所需静态特征码,以标识密码算法。所以特征码提取合理性在很大程度上决定了密码算法识别准确率。就原理不同主要划分为Hash函数、分组密码算法、公钥密码算法三种算法。Hash函数密码算法主要利用初始链值进行加密数据处理分析,即算法使用的初始链值保持不变的状态下,以这些数据为静态特征;分组密码算法则通过S盒和置换盒等常数发挥辅助作用,其中S盒负责混淆视听,定义为静态数值,就AES算法来讲若病毒文件匹配到了S盒,则病毒可能使用了AES算法;公钥密码算法中的RSA算法在生成密钥的时候需采用2个大素数,而大素数的生成以小素数表为载体,所以此特征可在RSA算法中得以应用。3.2.2.2检测实验。通过静态特征密码检测算法原理进行特征提取,并将其输入到IDA密码算法检测插件特征库中。就AES算法来讲,S盒作为16×16数组,在内存内可存储为256长度字符串。AES字节替代是关于字节的非线性变换,可通过可逆变换复合生成。首先计算字节E于有限域内的乘法逆元,结果记录为F=f0f1f2f3f4f5f6f7,规定字节00变化成自身;其次对结果F进行仿映射变换,字节E替代之后的结果记录为字节G=G0G1G2G3G4G5G6G7。基于转变生成S盒字节代替数组,以其中前32个字节作为算法识别特征。ruleRijnDael_AES_CHAR{meta:Author=“_pusher_”Description=“RijnDaelAES(check2)[char]”date=“2021-06”strings:$c0={637C777BF26B6FC53001672BFED7AB76CA82C97DFA5947F0ADD4A2AF9CA472C0}condition:$c0}基于以上所提取静态字符串特征,进行AES密码算法识别检测,结果具体见图5。由图可以看出,静态特征密码检测算法可以快速准确识别出待检测程序内所包含的AES算法。3.2.3动态行为密码检测算法分析与实验。3.2.3.1搭建环境。以Cuckoo沙箱为载体搭建病毒动态行为密码检测分析环境,动态分析环境配置具体见表1。3.2.3.2算法库调用。许多病毒程序基于调用既有密码算法库得以实现。以动态行为密码检测算法调动过程识别技术,能够对病毒程序运行过程中加载的密码算法动态链接库加以准确识别,还可就API函数跟踪调取的加密函数与所传输相关参数进一步生成密码算法调取序列,以还原勒索病毒中密码算法的具体调用过程。病毒可通过CryptoAPI给予的有关函数对用户数据进行加密,并保障解密密钥不被用户获取。3.2.3.3加密通信流量。就已经感染病毒的计算机来讲,所有主机操作系统类型均需以网络实现和攻击者之间的通信交流,还可为了逃避检测选用加密通信方式。在计算机病毒动态化运行过程中会产生网络流量数据,将其储存为pcap格式文件,在此文件中可分析病毒所用加密通信协议。通过加密通信流量分析可以顺利获得病毒在外对接的控制端或中转站的具体IP。对于比较简单的加密通信方式来讲,可以选用还原流量的方式,但是高强复杂的加密通信方式选用流量还原方式虽然难度非常大,但是依旧可在获取IP通信地址的同时,以防火墙为辅助阻隔木马或者僵尸网络,最大程度上防控威胁,避免信息丢失。通过Cuckoo沙箱环境执行病毒程序,可获取加密流量数据报文,以数据报文分析可知,病毒程序与控制服务器的信息传输均会基于TLS加密处理。

4系统测试

以WannaCry勒索病毒为例进行计算机病毒密码算法检测系统测试。WannaCry是一种蠕虫式勒索病毒软件,在2017年爆发时,大量高校与企业内网遭遇感染,甚至部分政府机构业务被迫中断。此病毒加密设计比较复杂,切实结合了RSA算法密位属性、价格、座位号。如果可订,可用航班及其可订座位属性信息将流向捆绑销售规则配置模块。步骤三:捆绑销售规则配置模块,是航空公司业务人员事先配置完成的捆绑产品规则,支持配置特定属性的座位与特定机票品牌捆绑形成一个产品销售单位,例如“长腿位”和“超值经济舱”可以捆绑且限量20个,“长腿位”和“豪华商务舱”不可捆绑;若步骤二中查出可被捆绑的座位属性,系统将出行用户选定的航班下可用于捆绑的品牌和座位,组成该品牌机票+座位的捆绑产品,例如“长腿位”加“超值经济舱”是一个销售单位,在前端展示给出行用户;捆绑产品经过捆绑销售调价配置模块的价格管道处理,生成专属价格,例如配置了整体减价50元,那么捆绑产品的价格等于机票总价与长腿位总价之和为1550元(不含税),减去50元后,为出行用户展示该捆绑产品价格为“1500元”(不含税);以及为出行用户展示捆绑产品详情及优惠金额,前文提到的整体减价50元,将以“立省50元”类似的方式在前端展示给出行用户;不同常旅客等级可能享受不同的优惠金额,例如配置了金卡用户折上再8折,该出行用户身份为金卡用户,在前端展示“1200元”(不含税)、“金卡立省300元”的醒目提示。步骤四:在捆绑产品选购模块中,每个捆绑产品旁都有一个预订按钮,出行用户可一键选择心仪的品牌机票加座位的捆绑产品,继续后续预订流程。点击预订后,系统将机票和座位产品都加入订单信息中,记录机票和座位属性的详细信息。之后进入出行用户信息填写页,需要为每一个出行用户填写姓名、证件类型、证件号、联系方式等信息,填写完毕并确认后,系统根据捆绑产品中的座位属性,在之后的选择座位页面中,以座位图的样式向出行用户开放该座位属性对应可选座位区域,出行用户在区域范围内选择具体座位,点击座位图标即可确认座位,将座位号加入订单信息中。待出行用户完成确认航班信息和座位号后,系统即将正式生成订单,继续步骤五的支付和预订操作。若出行用户改变主意,不想购买该捆绑产品,可与前端的特定按钮交互,返回原来的品牌机票流程,继续选购机票产品。步骤五:系统生成订单后,出行用户进行支付操作,支付成功的状态下,系统的捆绑产品预订模块收到支付成功状态后,立刻向中国航信订座系统和EMD系统发出预订请求,后台系统根据预订请求,对出行用户所选的机票、座位产品分别进行出票。待中国航信订座系统、EMD系统完成出票并回传预订成功信息至该系统后,系统判断捆绑产品整体预订成功,在前端页面向旅客展示预订成功信息及订单信息。至此,该系统所有涉及的模块的工作实现介绍完毕,全流程结束。

参考文献

[1]里格斯·道格尼斯.迷航:航空运输经济与营销(第四版)[M].北京.航空工业出版社.2011(01).

[2]王文芳,罗亮生.基于差异化服务收益理念的航空公司品牌运价体系战略研究.CNKI:SUN:GLXZ.0.2019-14-051[Z].

[3]赵礼强,陈鹏,张子辰,郑晓宇.考虑旅客异质性的机票捆绑销售研究[D].沈阳航空航天大学经济与管理学院,110136.2020(50).

作者:张文川 单位:兰州石化职业技术大学