摘 要:当前,主流杀毒软件的主要功能是对计算机病毒程序进行查杀,而不是对存储载体进行病毒防御,导致大量病毒程序通过存储载体实现长期潜伏、扩散,从而对计算机系统和数据造成巨大威胁。通过对传统杀毒软件的分析,以及对NTFS文件系统的研究,从加强存储载体的隔离免疫和访问预扫描两个维度进行探讨,提出一种新型计算机病毒防御理念,并使用C#语言进行编程,建立一套新型计算机病毒防御体系。
关键词:计算机病毒;隔离免疫;预扫描;防御体系
中图分类号:TP311 文献标识码:A 文章编号:2096-4706(2021)06-0161-03
Design and Implementation of Anti-virus Storage Device Based on Isolation Technology
LIAO Rongjiang
(Equipment Department of PLA Navy,Beijing 100841,China)
Abstract:At present,the main function of the mainstream anti-virus software is to check and kill the computer virus program,rather than to defend the virus on storage carrier. As a result,a large number of virus programs are latent and spread through the storage carrier for a long time,so as to pose a huge threat to the computer system and data. Through the analysis of traditional anti-virus software and the research of NTFS file system,this paper discusses from the two dimensions of strengthening the isolation immunity of storage carrier and access pre-scan,puts forward a new computer virus defense idea,and uses C# language to program,so as to establish a new computer virus defense system.
Keywords:computer virus;isolation immunity;pre-scan;defense system
0 引 言
在管理維护办公网络时,对计算机病毒的检测、防御、查杀和清除等工作,始终是管理维护人员日常运维的头等大事。在实际工作当中,大多数单位内部都安装有杀毒软件,但由于与互联网物理隔离,往往会出现病毒库升级不及时,病毒查杀效果不明显的情况。同时,还有些用户不愿意或不擅于使用杀毒软件,从而导致计算机病毒泛滥,影响系统稳定和数据安全。如何便捷高效地阻止计算机病毒入侵是一个新的研究方向。基于以上问题,本文通过NTFS文件系统和.NETFramework中的FileSystemWatcher类进行研究,以某单位内部局域网计算机终端为管理目标,设计了一套基于隔离技术的防病毒存储设备,并探讨了其优点及实现方式。
1 传统计算机病毒查杀技术
1.1 特征基因检测
目前,国内外各大杀毒软件采用的主流技术之一,是通过提取被扫描文件的特征数据,与本地或者云端病毒数据库进行比照,以此对病毒进行初步筛检。为了缩小病毒数据库,一些杀毒软件采用了基于基因码的检测技术[1]。所谓基因码,是指同族病毒的不同变种,几乎都含有相同的病毒基因特征。采用基于基因码的检测技术,可以从同族病毒变种中找出其共同之处和普遍特征。通过这种方法进行文件扫描,只须采用较少的特征数据就能筛检庞大的病毒种类,在进行特征对照时可大大缩短运行时间。同时,对于同族病毒衍生出来的新变种,只要吻合该病毒族群的基因特征,即使是在没有更新病毒数据库的情况下,也能成功将其筛检出来。
1.2 沙箱防御技术
沙箱也叫沙盘,是一种轻量级虚拟机,类似于影子系统[2]。与其在军事上的用途相似,在沙箱中运行的各种程序都是模拟演习,所有在沙盘内执行的操作都是虚拟构建的,其工作原理是使程序在一个隔离的空间内运行,程序无权修改沙箱外的程序和数据,也无法修改系统设置,从而保障系统不会遭到恶意软件及病毒的篡改和入侵。当杀毒软件对病毒进行特征基因码检测时,有时会出现检测无效或拦截失败的情况,而沙箱能够很好地弥补这一不足,提高筛检病毒的成功概率。
1.3 特征行为检测
针对一些尚未收录特征基因码的病毒,以及通过特殊加壳或使用花指令加密的病毒,还可以对病毒进程行为进行全程监控,分析其操作是否存在恶意行为[3],比如创建高级系统用户、获取系统底层权限、破坏杀毒软件、监控网络访问、发送敏感数据、修改注册表关键值、创建自启动项、读写敏感文件,隐藏自身并进行复制、删除操作等,一旦发现违规行为,就可以通知用户,或者直接终止进程,从而做到主动防御。
2 存储设备隔离免疫技术
计算机存储设备是用于储存数据信息的设备,被广泛应用于各种程序和数据的存放,是计算机必不可少的关键设备之一,也是计算机病毒攻击、感染的主要对象。无论计算机技术如何发展,病毒寄生隐藏于存储设备的基本特性始终没有改变,通过自动加载启动或诱导用户点击激活的基本策略也始终没有改变。病毒将自身代码植入存储载体,是其感染计算机的必经途径和首要目标。加强存储设备的病毒入侵防御能力,严防“病从口入”至关重要。
2.1 NTFS磁盘格式安全配置
NTFS(New Technology File System)[4]是基于Windows NT内核系列操作系统,为提高文件安全性而设计的一种磁盘格式,提供数据保护和恢复功能,能通过目录和文件许可实现安全性。相较于传统的FAT(File Allocation Table)磁盘格式,NTFS最大的优点就是使文件系统的安全性得到极大的提升。在Windows操作系统命令提示符模式下,可以使用convert指令将FAT升级为NTFS,然后使用cacls指令即可实现对目录的各种权限设置。比如,对文件夹test_dir赋予读写、修改、访问等所有权限,可使用指令“echo y|cacls test_dir /p everyone:f”来实现;取消其所有权限,则可使用指令“echo y|cacls test_dir /p everyone:n”来实现。
2.2 基于NTFS的隔离免疫技术
在Windows操作系统中,除操作系统默认的少数关键目录和文件外,其他目录和文件都默认为完全访问,这就为病毒的入侵感染提供了便利。比如,盘符根目录下面的autorun.inf病毒,就是通过上述开放权限实现的。针对这类根目录病毒,最好的方法就是使用“目录隔离免疫技术”,以D:\盘为例,即在D:\盘的根目录下新建一级目录level1_dir,并在该文件夹下新建二级目录level2_dir,然后开放二级目录的所有权限(echo y|cacls level2_dir /p everyone:f),取消一级目录的所有权限(含列出文件夹内容权限)(echo y|cacls level1_dir /p everyone:n),最后设置D:\盘根目录为只读权限(echo y|cacls d: /p everyone:r),即可创建一个“百毒不侵”的D:\盘,以及一个可完全访问的授权目录level2_dir。这样设置完成后,病毒首先无法将自身写入根目录D:\,也无法检索一级目录level1_dir,从而达到保护真实数据所在level2_dir目录的目的。
2.3 快捷访问授权目录
当D:\完成“隔离免疫”后,不但病毒无法“长驱直入”,用户的正常操作也将受到限制,无法通过传统双击模式访问二级目录level2_dir。如需访问,可在资源管理器的地址栏中输入D:\level1_dir\level2_dir,然后回车进入;也可将D:\level1_dir\level2_dir创建为快捷方式,以便快速访问。
2.4 基于C#的硬盘隔离免疫代码
在使用C#编程语言实现硬盘隔离免疫功能时,我们需要调用Windows操作系统的cmd指令,也就是命令提示符,如图1所示,在这里我们构建了一个Cmd类,在不创建任何显式窗口的情况下执行各种操作。然后,通过调用“硬盘隔离免疫”子函数,如图2所示,实现对任意磁盘的隔离和免疫功能。在创建桌面快捷方式时,调用了ShortcutCreator类,如图3所示。
3 存储设备访问预扫描技术
存储设备做好隔离免疫后,病毒就无法将自身复制到磁盘的根目录,也无法感染磁盘内的其他文件。但是,如果用户缺少经验或操作错误,极有可能将病毒拷贝到磁盘隔离免疫后的安全空间。为此,还要在隔离免疫基础上增加一道“防火墙”,这就是访问目录前的预扫描技术,该技术需要通过编程,在访问安全空間之前,对安全空间内的所有文件进行预扫描,隔离疑似病毒后,方可进行访问操作。
3.1 黑名单快速扫描
病毒寄生的文件类型比较多,常见的有exe、com、dll等二进制文件,有bat、vbs、js、php等脚本语言,还有asp、htm等网页文件。在图4的软件界面中,我们梳理了常见的23种病毒寄生文件类型,并将它们全部列入黑名单。预扫描时,可以有针对性地对黑名单所列出的特定类型文件进行扫描和隔离,从而避免用户双击激活病毒。
3.2 杀毒软件全面扫描
基于文件类型黑名单快速扫描的方法比较简单,但也可能会造成误隔离的情况,所以我们可以在访问安全空间前,通过命令行调用专业杀毒软件的接口对其进行查杀。以360杀毒软件为例(其他杀毒软件类似),在360杀毒安装目录下输入以下命令“360sd.exetest_dir”即可,360杀毒软件会以静默方式对该文件夹进行扫描。扫描完成以后,会在其安装目录的VirusScanLog目录下生成以日期为名称的日志文件,并对可疑文件进行隔离。这种全面扫描的方式比较费时,这就需要使用下面的FileSystemWatcher实时监控技术,以避免全面、重复的扫描,从而有效提高访问速度。
3.3 基于C#的文件实时监控技术
在C#编程语言中,提供了FileSystemWatcher类[5]。该类侦听文件系统更改通知,并在目录或目录中的文件发生更改时引发事件。通过该类,不仅可以监视特定的文件,也可以监视特定类型文件中的更改。例如,若要监视可执行文件中的更改,只需将Filter属性设置为“*.exe”。FileSystemWatcher的实例监控到目录或文件的变化后,会触发相应的事件,其中目录或文件的添加、删除和修改会分别触发Created、Deleted和Changed事件,目录或文件重命名时触发OnRenamed事件。通过该技术,结合病毒文件类型黑名单,可以精准、快速、高效地将疑似病毒文件进行隔离,示例代码如图5所示。
4 系统集成应用
在对存储载体安全隔离免疫和预扫描技术进行深入探究后,笔者进行了软件功能设计、软件的总体结构设计和模块设计,并使用C#编程语言完成了“存储载体病毒防御系统”(简称“防御系统”)的编码调试。在完成联调测试并审批通过后,对所在单位的计算机操作系统和移动存储载体,分批次进行了安装。用户在访问存储载体时,必须通过“防御系统”进行预先杀毒,才能访问被NTFS文件系统保护的隔离区域。通过这种方式,所在单位计算机实现了存储载体零感染计算机病毒的目标。
5 结 论
通过存储载体隔离免疫和访问预扫描技术,可以有效阻止病毒程序自动写入存储载体,也可以防范用户因错误操作而激活病毒程序,对阻止病毒寄生存储载体并通过存储载体传播扩散具有重要意义。本文通过对传统计算机病毒查杀方式的研究,提出了一种新型基于存储载体隔离免疫及访问预扫描技术,并通过编程实现了相关功能,在实际使用过程中效果显著。
参考文献:
[1] 张瑜,LIU Q Z,宋丽萍,等.基于免疫和代码重定位的计算机病毒特征码提取与检测方法 [J].北京理工大学学报,2017,37(10):1036-1042.
[2] 赵广强.基于虚拟化的沙箱防御技术的研究与实现 [D].广州:广东工业大学,2015.
[3] 邹维福,张翼英,张素香,等.基于特征行为分析的木马病毒检测技术的研究 [J].电信科学,2014,30(11):105-109+115.
[4] 李萍.NTFS中的文件及内容的安全保护研究 [D].成都:电子科技大学,2019.
[5] 朱清海,谭代芳.基于文件系统监控的工作效率评价系统设计与实现 [J].城市勘测,2017(4):45-48.
作者简介:廖荣江(1983—),男,汉族,四川内江人,工程师,本科,主要研究方向:网络安全、数据加密、智慧办公等。