Techniques - ICS | MITRE ATT&CK®https://attack.mitre.org/techniques/ics/
一、初始访问(Initial Access)
该阶段:攻击者正在尝试进入ICS环境。
初始访问包括攻击者可能用作入口向量,从而可以在 ICS 环境中获得初始立足点的技术。这些技术包括破坏运营技术资产、OT 网络中的 IT 资源以及外部远程服务和网站。它们还可能以具有特权访问权限的第三方实体和用户为目标。具体而言,这些初始访问立足点可能包括在IT和OT环境中具有访问权限和权限的设备和通信机制。OT 环境中的 IT 资源也可能容易受到与企业 IT 系统相同的攻击。
受信任的第三方可能包括供应商、维护人员、工程师、外部集成商以及参与预期 ICS 操作的其他外部实体。供应商维护的资产可能包括物理设备、软件和操作设备。初始访问技术还可以利用外部设备(如无线电、控制器或可移动介质)来远程干扰并可能感染 OT 操作。
1.水坑攻击
当用户在常规浏览会话中访问网站时,攻击者可能会在偷渡式入侵期间访问系统。使用这种技术,用户的 Web 浏览器只要访问了受感染的网站即可成为目标并被利用。
攻击者可能以特定社区为目标,例如受信任的第三方供应商或其他行业特定群体,他们经常访问目标网站。这种有针对性的攻击依赖于共同利益,被称为战略性网络入侵或水坑攻击。
NCAS(The National Cyber Awareness System)发布了关于俄罗斯政府针对关键基础设施部门的网络活动的技术警报 (Technical Alert)。国土安全部和联邦调查局的分析指出,在西方能源部门的蜻蜓运动中,有两类不同的受害者:阶段目标和预期目标。攻击者的目标是安全性较低的阶段目标网络,包括受信任的第三方供应商和相关外围组织。对预期目标的最初访问是使用水坑攻击来针对过程控制、ICS 和关键基础设施相关的贸易出版物和信息网站。
检测方法:
(1)应用程序日志:防火墙和代理可以检查 URL 中是否存在已知错误的域或参数。他们还可以在网站和他们请求的资源上进行基于声誉的分析,例如域名的年龄、注册对象、是否在已知的不良列表中,或者之前有多少其他用户连接到它。
(2)文件:监视通过用户在正常浏览过程中访问网站写入磁盘的新构建文件。
(3)网络流量:监视与用于发送或接收数据的不受信任主机的新构建的网络连接;监视异常网络流量,这些流量可能表明已转移到系统的其他工具。使用IDS系统(有时使用 SSL/TLS 检查)来查找已知的恶意脚本(侦察、堆喷射和浏览器识别脚本经常被重用)、常见脚本混淆和漏洞利用代码。
(4)进程:监控端点系统上可能表明成功入侵的行为,例如浏览器进程的异常行为,也可能包括写入磁盘的可疑文件。
2. 利用面向公众的应用
攻击者可能会利用面向互联网的软件的弱点对工业网络进行初始访问。面向互联网的软件可以是用户应用程序、底层网络实现、资产操作系统、薄弱防御等。出于远程管理和可见性的目的,可能会故意暴露此技术的目标。
攻击者可能会寻求以面向公众的应用程序为目标,因为它们可能提供对 ICS 环境的直接访问或可以移动到 ICS 网络的能力。公开的应用程序可以通过在线工具找到,这些工具可以扫描互联网以查找开放的端口和服务。公开应用程序的版本号可能使攻击者能够针对特定的已知漏洞。攻击者可能会对常用端口中的公开控制协议或远程访问端口感兴趣。
检测方法:
(1)应用程序日志:检测软件漏洞可能很困难,具体取决于可用的工具。软件漏洞利用可能并不总能成功,或者可能导致被利用的进程变得不稳定或崩溃。Web 应用程序防火墙可能会检测到试图利用的不当输入。
(2)网络流量的内容:使用深度数据包检测来查找常见漏洞利用流量(例如已知有效负载)。
3. 利用远程服务
攻击者可能会利用软件漏洞,利用程序、服务或操作系统软件或内核本身中的编程错误来启用远程服务滥用。入侵后利用远程服务的一个共同目标是对整个 ICS 环境进行初始访问和横向移动,以便能够访问目标系统。
ICS 资产所有者和运营商受到从企业 IT 迁移到 ICS 环境的勒索软件(或伪装成勒索软件的破坏性恶意软件)的影响:WannaCry、NotPetya 和 BadRabbit。在上述每种情况下,自我传播(可蠕虫)恶意软件最初都会感染 IT 网络,但通过利用(特别是针对 SMBv1 的 MS17-010 漏洞)传播到工业网络,从而产生重大影响。
检测方法:
(1)应用日志内容:同3。
(2)网络流量内容:同3。
4. 外部的远程服务
攻击者可能会利用外部远程服务作为对网络的初始访问点。这些服务允许用户从外部位置连接到内部网络资源。例如,VPN、Citrix 和其他访问机制。远程服务网关通常管理这些服务的连接和凭据身份验证。
外部远程服务允许从系统外部管理控制系统。通常,供应商和内部工程团队可以访问外部远程服务,以通过公司网络控制系统网络。在某些情况下,这种访问是直接从 Internet 启用的。当控制系统位于偏远地区时,远程访问可以轻松维护,但远程访问解决方案的妥协是一种负担。攻击者可以使用这些服务来访问控制系统网络并执行攻击。访问有效帐户通常是必需的。
当他们寻找控制系统网络的入口点时,攻击者可能会开始在受信任的第三方网络上或通过启用拆分隧道的远程支持员工连接搜索现有的点对点 VPN 实现。
在 Maroochy 攻击中,攻击者可以通过无线电远程访问系统;2015年对乌克兰电网的攻击案例中,攻击者收集了工作人员的登录信息,其中一些是用来远程登录控制系统网络的VPN登录信息,这些VPN恰巧缺乏双因子身份验证。
注:2000年澳大利亚昆士兰Maroochy污水处理厂内部工程师多次攻击SCADA系统,导致三个月时间内有75万加仑未经处理的污水流入公园、河流等场地,造成海洋生物损失、危及公共安全等后果,并造成了巨大经济损失。这是有公开报道的第一次CPSs受到攻击。
检测:
(1)应用程序日志:当访问公开的远程服务不需要身份验证时,需要监视后续活动,例如公开的 API 或应用程序的异常外部使用。
(2)登录会话元数据:监控身份验证日志并分析异常访问模式、活动窗口以及正常工作时间之外的访问,包括有效帐户的使用。
(3)网络流量内容:监视来自未知/非预期系统的网络流量。
5. 利用互联网开放设备
攻击者可以通过直接暴露在互联网上进行远程访问的系统而不是通过外部远程服务来访问工业环境。互联网可访问设备在没有足够保护的情况下无意或有意地暴露在互联网上,使得攻击者可以直接进入控制系统网络。对这些设备的访问是在不使用漏洞利用的情况下完成的,这些技术在2中进行了表述。
攻击者可能会利用内置功能进行远程访问,这些功能可能不受保护,或者利用可能成为目标的最小遗留保护。这些服务可以通过使用在线扫描工具来发现。
在Bowman大坝事件中,攻击者通过对蜂窝调制解调器的利用实现了对大坝控制网络的访问。尽管该应用程序通过密码身份验证机制进行保护,但容易受到暴力破解。
在Trend Micros制造中,除了错误配置的 VNC 访问外,还检测到攻击者通过暴露的 Siemens S7、Omron FINS 和 EtherNet/IP 等操作协议来利用对 ICS 环境的直接 Internet 访问。
检测:
(1)登录日志会话:监视登录活动,发现来自Internet的对设备的意外或异常访问。
(2)网络流量:监视对连接Internet设备的异常登录或与Internet之间的非预期协议。网络流量内容将提供有关网络流内容的有价值的上下文和详细信息;监视与 Internet之间的非预期协议。网络流量内容和登录会话元数据可以直接标识某一登录事件,新的基于Internet 的网络流同样也是进行此类检测的可靠指标。
6. 远程服务
攻击者可能会利用远程服务在资产和网段之间移动。这些服务通常用于允许操作员在网络内与系统进行远程交互,例如 RDP、SMB、SSH 和其他类似机制。
远程服务可用于支持远程访问、数据传输、身份验证、名称解析和其他远程功能。此外,允许操作员和管理员从其工程或管理工作站配置网络内的系统也可能需要远程服务。攻击者可以使用此技术访问可能双宿主到多个网段的设备,并可用于程序下载或直接通过有效帐户对控制设备执行攻击。
特定的远程服务(RDP 和 VNC)可能是在 HMI 或工程工作站软件等设备上启用图形用户界面执行的前提条件。
基于事件数据,CISA和FBI评估说某些国家支持的参与者还破坏了各种授权的远程访问渠道,包括旨在传输数据或允许在企业和ICS网络之间访问的系统。
检测:
(1)命令执行:监视专门设计用于接受远程连接(如 RDP、Telnet、SSH 和 VNC)的服务执行的命令和参数。然后,攻击者可以使用有效帐户执行这些操作。
(2)登录会话创建:监视登录到他们通常不会访问的系统的用户帐户或异常访问模式,例如在相对较短的时间内多个系统。将与远程服务相关的登录活动的使用与异常行为或其他恶意或可疑活动相关联。在尝试横向移动之前,攻击者可能需要通过发现技术了解环境和系统之间的关系。
(3)模块加载:监视 DLL 文件事件,特别是这些文件的创建,以及将 DLL 加载到专门设计用于接受远程连接的进程中,例如 RDP、Telnet、SSH 和 VNC。
(4)网络共享访问:使用服务器消息块 (SMB) 等远程服务监视与网络共享的交互技术,例如读取或文件传输。
(5)网络流量:监视新构建的网络连接到专门设计用于接受远程连接的服务,例如 RDP、Telnet、SSH 和 VNC。监控涉及常见远程管理协议的网络连接,例如端口 tcp:3283 和 tcp:5900,以及用于远程登录的端口 tcp:3389 和 tcp:22。攻击者可以使用有效帐户来启用远程登录;监控网络数据中的不常见数据流(例如,一天中的时间、异常的源/目标地址),这些数据流可能与滥用有效帐户登录专门用于接受远程连接的服务(如 RDP、Telnet、SSH 和 VNC)有关。
(6)进程创建:监视与专门设计用于接受远程连接的服务(如 RDP、Telnet、SSH 和 VNC)相关的新执行进程。攻击者可以使用有效帐户登录,并可能以用户身份执行生成其他进程的后续操作。
7.通过可移动介质进行复制
攻击者可以通过将恶意软件复制到插入控制系统环境中的可移动介质来转移到系统上,例如与企业网络分离的系统。攻击者可能依靠不知情的受信任第三方(例如具有访问权限的供应商或承包商)来引入可移动媒体。此技术允许对从不连接到不受信任的网络但可物理访问的目标设备进行初始访问。
德国核电站Gundremmingen的运营商在未连接到互联网的计算机上发现了恶意软件。该恶意软件包括Conficker和W32.Ramnit,在该设施的18个可移动磁盘驱动器中找到。此后,这家工厂检查了感染情况,并清理了1000多台计算机。一位ESET 研究人员评论说,互联网断开并不能保证系统免受感染或攻击载荷的执行。
检测:
(1)驱动器创建:监视新创建的驱动器号或可移动介质的挂载点。
(2)文件创建:监视在可移动媒体上访问的文件,尤其是那些具有可执行内容的文件;监视复制到可移动媒体或从可移动媒体复制的新创建的文件。
(3)进程创建:监视新执行的进程,这些进程在装载后或由用户启动时从可移动媒体执行。如果以这种方式使用远程访问工具横向移动,则在执行后可能会发生其他操作,例如为命令和控制以及系统和网络信息发现打开网络连接等。
8.恶意主机
攻击者可能会设置一个恶意主站,以利用控制服务器功能与外站进行通信。恶意主服务器可用于向其他控制系统设备发送合法的控制消息,从而以意想不到的方式影响进程。它还可用于通过捕获和接收用于实际主站的网络流量来中断网络通信。冒充主控服务器也可能使对手避免被发现。
在 2017 年的达拉斯警笛事件中,对手使用恶意主站向全市 156 个分布式警笛发送命令消息,要么通过一个信号强的恶意发射器,要么使用许多分布式中继器。
检测:
(1)应用日志内容:监视与外站资产通信的新主设备,这些设备可能在资产应用程序日志中可见。
(2)资产清单:咨询资产管理系统,这些系统可能有助于检测网络上不应存在的计算机系统或网络设备。
(3)网络流量检测:监视来自新设备和现有设备的非预期的ICS协议功能。监视已知设备需要 ICS 功能级别洞察,以确定未经授权的设备是否正在发出命令(例如,历史站)。监控来自未知/非预期设备或地址的网络流量。本地网络流量元数据可用于识别意外连接,包括连接到与操作协议关联的端口的未知/非预期源 MAC地址。此外,DHCP 和 ARP 等网络管理协议可能有助于识别意外设备。
(4)设备报警:监视与外站通信的新的主设备,这些设备可能在ICS 环境中的警报中被发现。
9.鱼叉式网络钓鱼攻击
攻击者可能会使用鱼叉式附件作为对特定目标的社会工程攻击形式。鱼叉式附件与其他形式的附件不同之处在于:它们使用附加到电子邮件的恶意软件。所有形式的网络钓鱼都是通过电子方式进行的,目标是特定的个人、公司或行业。在这种情况下,攻击者会将文件附加到欺骗性电子邮件中,并且通常依靠用户执行来获取执行和访问权限。
检测:
同1。
10.供应链攻击
攻击者可能通过受感染的产品、软件和工作流来执行供应链攻击,以获得控制系统的访问权限。供应链攻击是指在最终消费者收到产品(如设备或软件)之前,操纵产品或其交付机制。一旦受感染的产品进入目标环境,就会攻击、损害目标数据或系统。
供应链攻击可能发生在供应链的所有阶段,从操纵开发工具和环境到操纵已开发和工具分发机制。这可能涉及在第三方或供应商网站上的合法软件和补丁的损害和替换。针对供应链攻击的目标,可以尝试渗透到特定受众的环境中发现。在IT和OT网中都拥有资产的控制系统环境中,针对IT环境的供应链攻击可能会进一步影响到OT环境。
假冒设备可能会被引入全球供应链,给资产所有者和运营商带来安全和网络风险。这些设备可能不符合监管机构的安全、工程和制造要求,但可能具有表明符合行业标准的标签。由于缺乏对标准的遵守和整体质量较差,假冒产品可能会带来严重的安全和操作风险。
横河电机发现了他们的客户收到带有横河电机标志的假冒差压变送器的情况。假冒发射器几乎无法区分,其功能和界面模仿正品。
F-Secure实验室分析了攻击者使用Havex破坏受害者系统的方法。攻击者在合法ICS/SCADA 供应商网站上植入了木马软件的安装程序。下载后,此软件用远程访问洛伊木马(RAT)感染了主机。
检测:
(1)文件元数据:通过哈希检查或其他完整性检查机制对分布式二进制文件进行验证。对下载的内容进行扫描以查找恶意签名。
11.瞬态网络资产
攻击者可能以跨 ICS 网络和外部网络瞬态的设备为目标。通常,临时资产由授权人员带入环境,不会永久保留在该环境中。通常需要临时资产来支持管理功能,在远程管理资产不可行、不存在用于远程访问的外部连接或需要第三方承包商/供应商访问的系统中可能更常见。
攻击者可能以不同的方式利用瞬态资产。例如,当临时资产连接到外部网络时,攻击者可能会将其作为目标,然后利用其在另一个环境中的可信访问来发起攻击。他们还可以利用合法最终用户用来与控制系统设备交互的已安装应用程序和库。
在某些情况下,临时资产可能未使用安全配置进行部署,从而导致漏洞可能允许攻击者传播恶意可执行代码,例如,临时资产可能被恶意软件感染,并且当连接到 ICS 环境时,恶意软件会传播到其他系统。
检测:
同5。
12.无线攻击
攻击者可能会执行无线入侵,作为获取通信和未经授权访问无线网络的方法。对无线网络的访问可以通过破坏无线设备来获得。攻击者还可以使用与无线网络频率相同的无线电和其他无线通信设备。无线入侵可以作为远程距离的初始访问向量。
一名波兰学生使用改装的电视遥控器访问和控制波兰的罗兹市有轨电车系统。遥控器设备允许学生与有轨电车网络连接,以修改轨道设置并覆盖操作员控制。攻击者可能通过将控制器与红外控制协议信号的频率和幅度对齐来实现这一点。然后,控制器启用了对网络的初始访问,允许捕获和重放有轨电车信号。
检测:
(1)应用程序日志:监控无线网络上是否有新的或意外的设备或会话的应用程序日志。
(2)登录会话创建:监控无线网络上新设备或意外设备或会话的登录会话。
(3)网络流量:新的或不规则的网络流量可能表示无线网络上出现了非预期的设备或会话。在 Wi-Fi 网络中,监视诸如恶意接入点或低信号强度等变化,表明设备与预期接入点有差异,以及物理层信号的变化。网络流量的内容将提供重要的上下文信息,例如硬件(例如 MAC)地址、用户帐户和发送的消息类型。
二、执行攻击(Execution)
该阶段:攻击者试图以未经授权的方式运行代码或操作系统函数、参数和数据。
执行攻击包括能够促成恶意代码在本地或远程系统、设备或其他资产上运行的技术。执行可能依赖于不知情的最终用户或者依赖控制设备的操作模式来运行。攻击者可能会通过执行编写的可执行文件或恶意项目文件感染远程目标,这些文件根据指定行为运行,并可能以微妙的方式改变设备的预期行为。执行命令也可以从命令行界面、API、GUI 或其他可用界面发出。运行恶意代码的技术也可以与其他策略中的技术成对使用,特别是有助于网络发现和收集、影响操作和抑制响应的方法。
1.更改操作模式
攻击者可能会尝试更改控制设备上的程序的当前状态,程序状态更改可用于允许另一个程序接管控制或加载到目标设备上。
检测方法:
(1)应用程序日志:监视设备应用程序日志,其中可能包含与操作模式更改相关的信息,尽管并非所有设备都会生成此类日志。
(2)网络流量内容:监控 ICS 管理协议,了解更改资产操作模式的功能。
(3)ICS设备报警:监控警报,获取有关操作模式何时更改的信息,尽管并非所有设备都会生成此类日志。
2.命令行界面
攻击者可能利用命令行界面(CLI)与系统交互并执行命令。CLI提供了一种与计算机系统进行交互的方式,并且是控制系统环境中多种平台和设备的常用功能。攻击者可以使用CLI安装和运行新软件,包括在操作过程中可能安装的恶意工具。
CLI通常在本地访问,但也可以通过SSH、Telnet和RDP等服务公开。在CL中执行的命令将以运行终端仿真器的进程的当前权限级别执行,除非该命令指定了权限上下文的更改。
许多控制器都有用于管理目的的CLI接口。
检测方法:
(1)应用程序日志:监控已安装应用程序的日志(例如,历史数据库日志),以发现非预期命令或滥用系统功能。
(2)命令执行:在 Windows 和 Unix 系统上,监视可能使用 shell 命令执行的已执行命令和参数。对管理员、开发人员或高级用户Shell 可能很常用,具体取决于工作职能;在网络设备和嵌入式系统 CLI 上,如果使用未经授权或可疑的命令来修改设备配置,需要考虑查看命令历史记录。
(3)进程创建:监视从已知命令 shell 应用程序(例如 PowerShell、Bash)生成的进程。正常操作需要列入白名单。通过对攻击者对本机进程或自定义工具的使用有助于进一步了解攻击行为。
3. 通过API执行
攻击者可能试图利用控制软件和硬件之同通信的应用程序接口(API)。特定功能通常被编码成 API,软件可以调用API来实现设备或其他软件上的特定功能,如更改PLC上的程序状态。
检测方法:
系统API执行:为用户提供对基础OS的访问权限的设备可能允许安装自定义软件来监视OS API执行。监控 API 调用可能会生成大量数据,除非在特定情况下收集,否则可能对防御没有用处,因为 API 函数的良性使用很常见,可能难以与恶意行为区分开来。使用 API 监控将其他事件与围绕 API 函数调用的行为相关联,将为事件提供额外的上下文,这可能有助于确定它是否是由于恶意行为造成的。
4.图形用户界面GUI
攻击者可能试图通过图形用户界面(GUI)获得对计算机的访问权限,以增强执行能力。对GUI的访问允许用户以比CLI更直观的方式与计算机交互。GUI允许用户移动光标并点击界面对象,鼠标和键盘均是主要的输入设备。
如果不能进行物理访问,则可以通过协议进行访问,如基于Linux的VNC,以及Windows上的RDP。攻击者可以使用此访问权限在目标计算机上执行程序和应用程序。
在2015年对乌克兰电网的攻击中,攻击者利用SCADA环境中HMI打开了断路器。
检测方法:
(1)命令执行:监视与专门设计用于接受远程图形连接(如 RDP 和 VNC)的服务相关的已执行命令和参数。远程服务和有效帐户可用于访问主机的 GUI。
(2)登录会话创建:监视登录到他们通常不会访问的系统的用户帐户或异常访问模式,例如在相对较短的时间内访问多个系统。将与远程服务相关的登录活动的使用与异常行为或其他恶意或可疑活动进行关联分析。远程服务可用于访问主机的 GUI。
(3)模块加载:监视DLL文件事件,特别是创建这些二进制文件以及将DLL加载到与远程图形连接(如RDP和VNC)相关的进程中。远程服务可用于访问主机的 GUI。
(4)进程创建:监视与专门设计用于接受远程图形连接(如 RDP 和 VNC)的服务相关的新执行的进程。远程服务和有效帐户可用于访问主机的 GUI。
5.钩子(Hooking)
攻击者可能会挂接到进程使用的应用程序编程接口 (API) 函数,以重定向对执行和权限提升手段的调用。Windows 进程通常利用这些 API 函数来执行需要可重用系统资源的任务。Windows API 函数通常作为导出的函数存储在动态链接库 (DLL) 中。
ICS 中出现的一种挂钩类型涉及通过导入地址表 (IAT) 挂接将调用重定向到这些函数。IAT 挂钩使用对进程 IAT 的修改,其中存储指向导入的 API 函数的指针。
检测方法:
(1)OS API执行:监视可用于安装挂钩过程的 API 调用,例如 SetWindowsHookEx 和 SetWinEventHook 函数。还可以考虑使用工具或通过编程检查内部内核结构来分析钩链(其中包含指向每种钩子类型的钩子过程的指针)
(2)进程元数据:通过将内存中的代码与相应的静态二进制文件进行比较来验证实时进程的完整性,特别是检查重定向代码流的跳转和其他指令。
6. 修改控制器任务
攻击者可以修改控制器的任务,以允许执行自己的程序。这可以允许攻击者操纵控制器的执行流和行为。
根据 61131-3,任务与项目组织单位 (POU) 的关联定义了任务关联。攻击者可以修改这些关联或创建新的关联来操纵控制器的执行流程。除了其他类型的程序修改(如在线编辑和程序附加)外,还可以使用程序下载来完成控制器任务的修改。
任务具有间隔、频率和优先级等属性,以满足程序执行的要求。一些控制器供应商使用隐式的预定义属性实现任务,而其他控制器供应商则允许显式表述这些属性。攻击者可能会将其程序与具有更高优先级的任务相关联,或者更频繁地执行相关程序。
例如,为了确保其程序在西门子控制器上的循环执行,攻击者可能会将其程序添加到任务组织块 1 (OB1) 中。
检测方法:
(1)应用程序日志:监视资产应用程序日志,以获取指示任务参数已更改的信息。
(2)资产软件:工程和资产管理软件通常会维护预期加载到控制器上的程序副本,并且可能记录对控制器程序和任务所做的任何更改。来自这些平台的数据可用于识别修改后的控制器任务。
(3)设备报警:监视指示控制器任务参数已更改的设备警报,尽管并非所有设备都会产生此类警报。程序下载可能会触发报警。可通过操作警报监控程序下载情况。通过查阅资产管理系统可以了解预期使用的程序版本。
7.本地API
攻击者可以直接与本机操作系统应用程序编程接口(API)交互以访问系统功能。本机 API 提供了一种在内核中调用低级别操作系统服务的受控方法,例如涉及硬件/设备、内存和进程的服务。这些原生 API 在系统启动期间(当其他系统组件尚未初始化时)以及在日常操作期间执行任务和请求时作系统利用。
本机 API 提供的功能通常也通过接口和库向用户模式应用程序公开。例如,memcpy 和对内存寄存器的直接操作等函数可用于修改用户和系统内存空间。
检测方法:
(1)OS API执行:同3。
8. 脚本编写
攻击者可以使用脚本语言以预先编写的脚本或以用户提供给解释器的代码的形式执行任意代码。脚本语言是不同于编译语言的编程语言,因为脚本语言使用解释器而不是编译器。这些解释器在源代码执行之前就读取并编译了部分源代码,与之相反,编译器将每一行代码都编译为可执行文件。脚本允许软件开发人员在存在解释器的任何系统上运行其代码。这样,他们可以分发一个程序包,而不是为许多不同的系统预编译可执行文件。脚本语言(如 Python)解释器在许多Linux 发行版中都默认提供。除了对开发人员和管理员来说是一个有用的工具外,脚本语言解释器还可能被攻击者滥用,从而在目标环境中执行代码、由于脚本语言的性质,使得武器化的代码可以很容易地部署到目标上,并允许随时编写脚本来执行任务。
检测方法:
(1)命令执行:监视脚本执行和后续行为的命令行参数。操作可能与网络和系统信息发现、收集或其他可编写脚本的入侵后行为相关,并可用作返回源脚本的检测指标。脚本可能会在系统上执行具有各种影响的操作,这些操作可能会生成事件,具体取决于所使用的监视类型。
(2)模块加载:监视与脚本执行相关的事件,例如加载与脚本语言(例如JScript.dll、vbscript.dll)相关的模块。
(3)进程创建:通过命令行和脚本活动监视进程执行的日志文件。此信息有助于通过对手如何使用本机流程或自定义工具来进一步了解对手的操作。还要监视与特定语言相关的模块的加载;监视有关正在运行的进程的上下文数据,其中可能包括环境变量、映像名称、用户/所有者等信息,或可能揭示系统功能滥用的其他信息。
(4)脚本执行:监视任何启用系统上运行的脚本的尝试都将被视为可疑。如果已启用的脚本在系统上不常用,则脚本在修补或其他管理员功能的运行周期外是可疑的。应尽可能从文件系统中捕获脚本,以确定其操作和意图。
9.用户执行
攻击者可能依赖目标组织的用户交互来执行恶意代码。用户交互可以包括安装应用程序、打开电子邮件附件或向文档授予更高的权限。攻击者可能会将恶意代码或VB代码嵌入文件中,如微软的Word和Excel 文档或软件安装程序。执行此代码要求用户在文档中启用脚本或写访问权限。在运行木马软件的情况下,用户很容易忽视嵌入式代码。
检测方法:
(1)应用程序日志:监视应用程序日志记录、消息传递和/或其他可能依赖于用户特定操作以获得执行的项目。
(2)命令执行:监视依赖于用户交互的新执行的进程,特别是可以嵌入编程功能的应用程序(例如,带有脚本、安装程序、zip 文件的 Microsoft Office 产品)。这包括压缩应用程序,例如用于 zip 文件的应用程序,可用于对有效负载中的文件或信息进行反混淆/解码。有关对手过程和背景的更多上下文,请参阅用户执行和适用的子技术。
(3)文件访问:防病毒软件可能会检测在用户计算机上下载和执行的恶意文档和文件。终结点感知或网络感知可能会在打开文件后检测到恶意事件(例如,Microsoft Word 文档或 PDF 连接到 Internet 或生成 PowerShell)。
(4)网络流量:监视发送到恶意或可疑目标(例如,归因于网络钓鱼活动的目标)的新构建的基于 Web 的网络连接。考虑与进程监视和命令行的关联,以检测异常进程执行和命令行参数(例如,监视使用通常不启动网络连接的文件或由 regsvr32.exe、rundll.exe、SCF、HTA、MSI、DLL 或 msiexec.exe 启动的异常连接)的异常情况;监控和分析与发送到恶意或可疑目的地(例如,归因于网络钓鱼活动的目的地)的基于 Web 的网络连接相关的流量模式和数据包检测。考虑与进程监视和命令行的关联,以检测异常进程执行和命令行参数(例如,监视使用通常不启动网络连接的文件或由 regsvr32.exe、rundll.exe、SCF、HTA、MSI、DLL 或 msiexec.exe 启动的异常连接)的异常情况。
(5)进程创建:监视依赖于用户交互的新执行的进程,特别是可以嵌入编程功能的应用程序(例如,带有脚本、安装程序、zip 文件的 Microsoft Office 产品)。这包括压缩应用程序,例如用于 zip 文件的应用程序,可用于对有效负载中的文件或信息进行反混淆/解码。