扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
启发式∥(Heuristic)是指探索和发现的行为或过程。牛津英文词典将启发式定义为―让某人能够自 主的探索和学习∥或者(在计算领域)―仅依靠宽泛的定义,或者依靠不断尝试和汲取失败经验教训的 方法来解决问题。∥韦氏词典将其定义为―依靠实验尤其是反复试验,通过尝试和汲取失败经验教 训的方法,来帮助学习、探索或者解决问题∥或者(在计算领域)―一种利用自主学习的手段(通过反 馈的评估)来提高表现,以探索解决问题的技术[7]。∥
启发式程序通常被认为是一种具有人工智能的应用程序,而且也是一种解决问题的工具。启发式程 序的编写,例如用于专门系统的程序,建立于一些从经验中提取的规则,它通过不断积累经验产生 更好的解决方法,并且增加自己的知识库。
当启发式分析被用于处理恶意软件时(当然还包括垃圾邮件和流氓软件), 尽管涉及反复试验和从经验中学习的原理,却又有更多限定的含义。启发 式分析使用基于规则的方法来诊断一个有潜在威胁的文件(或信息,如果是 分析垃圾邮件的话)。分析引擎的工作是基于自身规则库的,它依据规则检 查恶意软件存在的可能性,当找到一个匹配的规则时就为其分配一个分值。 如果这些分值达到或超过了一个阈值[8],这个文件就会被标记为可疑文件 (或者潜在的恶意软件、垃圾邮件)并进行处理。
某种意义上来说,针对反恶意软件的启发式技术,尝试的是模拟人类的智能分析方法。与恶意软件 分析人员设法判定某个软件的行为和动作相同,启发式分析执行相同的智能决策过程,有效地担当 虚拟分析师的角色。恶意软件分析人员从出现的新生威胁中不断学习,并将他的知识通过编程应用 于启发式分析器,以提高今后的检测率。
启发式编程在反病毒软件性能中有着双重的任务:速度和检测。事实上,―启 发式∥这个术语在其他科学领域也有类似的含义[9];即专注于通过达到―足够 好∥的结果(尤其指数据吞吐速度)而非―完美的∥结果来提高性能。当已知病毒的 数量与日俱增,就需要提高检测速度。否则,增长的恶意软件数量所带来额外 扫描时间,会降低系统的使用效率。
尽管当今的启发式引擎性能已经大幅提升,但在用户看来,启发式(甚至非启发式)扫描所带来负面影响,可能会超过其检测率提高所带来的优势,这是危险的。人们普遍相信启发式扫描器通常比 静态扫描器慢,但在特定的情况下这一点不再正确。
早期的启发式扫描使用经过优化的简单检测模式,它只搜索目标中可能存在特定病毒的部分文件。 (一个简单的例子:如果一个病毒只将核心代码存储在被感染文件的头部和尾部,就没有必要扫描 整个文件)。这样就减少了扫描的资源占用也降低了误报的风险。
对于在正常情况下,病毒不可能存在的位置检测出了病毒,体现的不仅是劣质检测方法的副作用, 同时也是劣质检测设计程序的表现。例如,一些测试者尝试将病毒代码随机的插入一个文件或者其 他可被感染的目标,以此来测试杀毒软件能力。同样的,对于一些特殊类型的目标,如文件或者引 导区,可以选择性的扫描其中针对性的恶意软件类型,这种方法有时被描述为―过滤∥。毕竟,没有理 由在引导区上去扫描宏病毒代码。
然而,一种文件类型被正确识别,不能成为该文件未被感染的实际证据。举例来说,将 Microsoft Word 文档植入恶意的可执行文件,长期以来就是商业间谍和信息盗窃者的主要攻击手段。同样的,恶意 软件编写者经常寻找一些正常情况下不可能包含可执行代码的文件,通过修改运行环境等方法使其 能够包含可执行代码进而作为攻击目标。例如W32/Perrun病毒,将自身添加到 JPG和 TXT类型的文件中,一般不会运行,一旦操作环境做了特殊的改变之后,它就能释放出代码并运行。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者