跳到主体内容

恶意代码定义

恶意代码是有害的计算机编程脚本,目的是创建或利用系统漏洞。威胁行为者设计这些代码是为了对计算机系统进行有害的更改、破坏或持续访问。恶意代码可能会导致后门、安全漏洞、信息和数据被盗,并对文件和计算机系统造成其他潜在损害。

什么是恶意代码?

恶意代码是敌对方“说出”的语言,旨在操纵计算机系统做出危险行为。恶意代码是通过对计算机程序、文件和基础设施的现有编程进行修改或添加而产生的。

在绝大多数网络安全攻击中,都使用这种威胁作为基础工具。黑客会探测和寻找基于计算机编程语言的漏洞。然后,他们创建称为脚本的“短语”或命令列表,从而滥用这些语言的漏洞。这些脚本可以重复使用,并通过宏指令(简称“宏”)实现自动化。

如果黑客和其他威胁行为者只能通过手动方法利用计算机系统漏洞,那么他们的行动会非常缓慢。但不幸的是,恶意代码可以实现自动化攻击。有些代码甚至可以自行复制、传播并造成破坏。其他类型的代码则需要用户手动下载或与之交互。

恶意代码通常会导致以下后果:

为了帮助您保护自己,我们来探讨一下这些威胁的原理。

恶意代码的原理是什么?

计算机系统的任何编程组件都可能被恶意代码操纵。无论是计算机网络基础设施等大型组件,还是手机或桌面应用程序等小型组件,都是常见的攻击目标。网站和在线服务器等 Web 服务也可能成为攻击目标。恶意代码可以感染任何使用计算机来运行的设备,例如:

  • 传统计算机设备 - 台式机、笔记本电脑、手机、平板电脑。
  • 物联网设备 - 智能家居设备、车载信息娱乐系统 (IVI)。
  • 计算机网络设备 - 调制解调器、路由器、服务器。

攻击者使用恶意脚本和程序入侵计算机系统的可信部分。在此基础上,他们试图实现以下一个或多个目标:

  1. 让用户接触恶意代码,使其受到感染并进一步传播。
  2. 访问被入侵系统中的隐私信息。
  3. 监控被入侵系统的使用情况。
  4. 进一步入侵系统深处。

恶意代码的创建和使用分为几个不同的阶段。在每个阶段中,恶意脚本代码可能需要用户手动交互或其他计算机操作来触发下一个事件。值得注意的是,有些代码甚至可以完全自主运行。大多数恶意代码都遵循以下流程:

  1. 探测和调查漏洞。
  2. 通过编写代码进行编程来利用漏洞。
  3. 使计算机系统暴露于恶意代码。
  4. 通过相关程序或以自动方式执行代码。

探测和编程是攻击的准备阶段。攻击者在入侵系统之前,首先必须掌握入侵系统的工具。如果没有现成的代码,他们就需要编写代码,但也可能修改现成的恶意代码来准备攻击。

恶意脚本的结果可能是一个可自动执行的应用程序,它可以自行激活并呈现为多种不同的形式。其中包括 JavaScript 的宏和脚本、ActiveX 控件、Powershell 滥用、推送内容、插件、脚本语言,或其他一些旨在增强网页和电子邮件的编程语言。

暴露计算机系统的途径可能是 USB 等直接端口,也可能是移动网络和 Wi-Fi 等在线网络连接。只要让恶意代码有途径进入您的机器,就属于成功的暴露。

大范围攻击的暴露依赖于高接触渠道,如热门网站和垃圾邮件;而更有针对性的攻击则采用社会工程学方法,如鱼叉式网络钓鱼。一些内部人员甚至可以通过 USB 驱动器直接连接本地终端用户计算机,将恶意代码植入企业内网等专用网络。

如果暴露的系统与恶意代码兼容,恶意代码就会执行。一旦目标设备或系统暴露于恶意代码,由此产生的攻击可能包括以下任何未经授权的操作:

  • 修改数据 - 未经许可的加密、削弱安全性等。
  • 删除或损坏数据 - 网站服务器等。
  • 获取数据 - 账户凭据、个人信息等。
  • 访问受限系统 - 专用网络、电子邮件账户等。
  • 执行操作 - 复制自身、传播恶意代码、远程设备控制等。

恶意代码如何传播?

恶意代码可用于自行入侵系统,实施二次恶意活动,或自我复制和传播。在任何情况下,原始代码都必须从一个设备转移到另一个设备。

这些威胁可以通过传输数据的几乎任何通信渠道进行传播。传播媒介通常包括:

  • 在线网络 - 内网、P2P 文件共享、公共互联网网站等
  • 社交通讯 - 电子邮件、短信、推送内容、移动通信应用程序等
  • 无线连接 - 蓝牙等
  • 直接设备接口 - USB 等

访问受感染的网站或者点击不良的电子邮件链接或附件,是恶意代码潜入系统的标准途径。不过,这种威胁既可以从合法来源进入,也可以从明确的恶意来源进入。从公共 USB 充电站到被存在漏洞的软件更新工具,都曾被滥用于这些目的。

恶意代码的“包装”不一定很明显,但公共数据连接和任何通信服务都是最值得警惕的路径。攻击者经常在下载内容和 URL 链接中嵌入危险代码。

恶意代码的类型

许多类型的恶意代码都可能找到通往您宝贵数据的入口点,从而损害您的计算机。在日益繁多的恶意代码中,有以下一些常见的类型:

病毒

病毒是可以自我复制的恶意代码,会附着在启用宏的程序上执行。这些文件通过文档和其他下载文件进行传播,使得病毒潜入您的设备。病毒一旦执行,就会通过系统和连接的网络进行自我传播和扩散。

蠕虫

和病毒一样,蠕虫也能自我复制和自我传播,而且不需要采取任何后续操作就能做到。一旦计算机蠕虫进入您的设备,这些恶意威胁就会完全自行执行,而无需借助用户运行的程序。

木马

木马是携带恶意代码有效载荷的诱饵文件,需要用户使用文件或程序才能执行。这些威胁无法自我复制或自主传播。不过,它们的恶意有效载荷可能包含病毒、蠕虫或任何其他代码。

跨站点脚本 (XSS)

跨站点脚本向用户可能使用的 Web 应用程序注入恶意命令,由此干扰用户的网页浏览。这通常会更改网页内容、截获机密信息或感染用户设备本身。

后门攻击

网络犯罪分子使用编码手段,可通过应用程序后门远程访问被入侵的系统。除了暴露敏感数据(如公司隐私信息)外,后门还能让攻击者成为高级持续性威胁 (APT)。

然后,网络犯罪分子可以通过新获得的访问级别横向移动,清除计算机的数据,甚至安装间谍软件。这些威胁可以发展到很严重的程度:美国政府问责局甚至就恶意代码对国家安全的威胁发出了警告。

恶意代码攻击的示例

恶意代码具有多种多样的形式,在过去也非常活跃。在这些攻击实例中,最著名的有以下几种:

Emotet 木马

Emotet 木马于 2014 年首次出现,本质上属于恶意软件,并发展成为携带恶意代码的垃圾邮件。攻击者使用网络钓鱼伎俩,比如通过紧急电子邮件主题行(例如:“需要付款”)诱骗用户进行下载。

据了解,Emotet 一旦进入设备,就会运行脚本来传播病毒,安装用于组建僵尸网络招募的命令和控制 (C&C) 恶意软件等。这种威胁在 2018 年短暂地销声匿迹,之后又卷土重来,成为短信恶意软件威胁。

Stuxnet 蠕虫

自 2010 年以来,Stuxnet 计算机蠕虫及其后继变种一直以国家基础设施为攻击目标。首次记录在案的攻击是通过 U 盘攻击伊朗核设施,进而破坏了关键设备。此后,Stuxnet 已无人使用,但直到 2018 年,其源代码一直被用于发起类似的高针对性攻击。

如何防范恶意代码攻击

对于大多数恶意威胁,具有自动更新、恶意软件清除和 Web 浏览安全功能的反病毒软件都是最好的防御手段。然而,仅靠反病毒软件本身可能无法防范恶意代码。

反病毒软件通常可以预防并清除病毒和其他形式的恶意软件,而恶意软件就属于恶意代码的一个子类别。更广泛的恶意代码类别还包括可利用漏洞上传恶意软件的网站脚本。根据定义,并非所有反病毒软件都能处理恶意代码造成的特定感染或操作。

虽然反病毒软件对于主动清除感染和构筑防御仍是至关重要的,但还应采取以下一些重要的自我保护方法:

  • 安装反脚本软件,以防 JavaScript 和相关代码在未经授权的情况下运行。
  • 谨慎对待链接和附件。任何包含 URL 链接或附件的信息,无论是电子邮件还是短信,都可能是恶意代码的载体。
  • 启用浏览器的弹出窗口拦截器,以防脚本在不需要的浏览器窗口中提供恶意内容。
  • 在日常使用中避免用到管理员级账户。通常需要有高级权限,才能自动运行脚本和程序。
  • 利用数据备份保护不可替代的文件和文档。
  • 警惕使用任何公共数据连接。USB 连接通常被忽视,但其实很容易藏匿恶意代码。公共 Wi-Fi 也是一种常见威胁,会被攻击者用来传输恶意代码。
  • 使用配置合理的防火墙,以阻止未经授权的连接。如果恶意代码渗透到您的设备中,并与外部建立连接来请求恶意软件有效载荷,防火墙可以帮助阻止这种操作。请务必将防火墙配置为默认阻止任何连接,同时将需要使用的和受信任的连接加入白名单。

相关链接:

什么是恶意代码?

恶意代码是指会造成安全隐患,从而破坏计算机系统的计算机代码。立即了解如何保护自己免受恶意代码的侵害。
Kaspersky Logo