一. 前言
攻击者利用侦察技术,通过发现系统和人员中的漏洞来渗透网络并破坏系统,在攻击中发挥着重要作用,是成功实施攻击的关键阶段之一,如在乌克兰电网网络攻击中的系统扫描[1]、孟加拉国银行网络抢劫中的鱼叉式网络攻击[2]等。
本文介绍一篇2022年发表在ACM Computing Surveys的论文工作[3],如图1所示。该文通过调研侦察的相关工作,总结归纳了攻击者在整个攻击过程中执行侦察行动的目标、阶段和技术,提供了侦察的全面视图,可以帮助理解和建模网络攻击,有助于防御策略改进。
图1. 论文标题与作者信息
1.1 侦察定义
侦察(Reconnaissance)是指,为了成功利用漏洞或实现攻击者目标,由攻击者发起的、用于搜集目标网络和系统相关信息的必要过程。
网络安全中的侦察是指攻击者搜集尽可能多的有关目标系统或网络信息的持续过程。这些信息可用于各种类型的恶意活动,如获取未经授权的访问等。
1.2 核心问题
该文主要回答了以下3个问题:
Q1. What——侦察目标信息:攻击者通过侦察寻找哪些类型的信息?
Q2. When——侦察阶段:攻击者何时进行侦察?
Q3. How——侦察技术分类:侦察技术主要类别有哪些?攻击者如何应用这些技术?这些技术在获取哪些信息以及何时/如何使用方面有什么特点?
二. What——侦察目标
如图2所示,该文把攻击者需要侦察的目标信息,根据攻击者如何在不同类型攻击中使用这些类型信息,划分成非技术信息和技术信息。非技术信息包括组织和人员的相关信息,技术信息则由网络、主机、应用、用户等相关信息构成。其中非技术信息(如人员联系方式等)通常对于执行社会工程技术最有用。技术信息(如主机或网络配置)有助于攻击者发现漏洞来攻击特定系统、提升权限、在网络中横向移动以及实现特定目标。
图2. 基于信息被使用攻击类型的侦察目标分类概览
2.1 非技术信息
非技术信息按对象不同可分为组织信息和个人信息。
组织信息包括组织的物理属性,如目标组织的地理位置、物理基础设施及潜在漏洞(如物理安全系统或建筑访问控制中的缺陷),以及逻辑细节,如目标组织的业务流程、管理结构、资源安排、供应链等等。其中部分信息可以从商业网站、新闻博客中在线获取。
个人信息包括联系方式、个人背景、行为习惯特征等信息。攻击者通过搜集此类信息,分析人员弱点,并应用社会工程技术来远程访问受害者机器或账户。
2.2 技术信息
技术信息包括网络、主机、应用、用户的各种有关信息。基本的技术信息可以从外部网络获得,但攻击者通常需要突破目标网络或系统才能搜集更准确的细节。
网络级信息主要用来了解网络状况。攻击者最常获取的网络级信息,如域名、远程主机IP、网络设备、网络拓扑、网络服务、网络安全措施等。它对计划渗透组织网络的远程攻击、横向移动至关重要。
主机级信息则对于攻击者执行下一阶段的攻击非常有用。攻击者最常获取的主机级信息,如文件目录、系统进程(已安装软件)、硬件设备、操作系统类型版本、软硬件服务配置等。
应用程序级信息则主要针对可利用性、可检测性和失效影响,攻击者最常获取的应用程序级信息,如各种开发框架和环境(Django/Java)、安全工具和应用程序及相关配置、云服务相关资产信息(Amazon AWS)、数据库程序及配置(MySQL)、GUI窗口信息等。
用户级信息对于访问目标主机及权限提升等各方面很有用。攻击者通常搜集如用户列表、登录类型、访问控制策略、用户组权限等账户详细信息,以及利用键盘记录器或浏览器缓存等访问凭证信息。
三.When——侦察阶段
如图3所示,该文通过考虑网络杀伤链模型,基于侦察行动相对于目标网络的发生位置,把侦察行动分为外部侦察和内部侦察两个阶段。外部侦察是从目标网络外部执行的,用于在访问内部资产之前搜集技术或非技术信息;而内部侦察是在获得目标网络的访问权限后执行的,用于从内部网络获取各种信息,执行横向移动并访问其他资源。内部侦察在搜集详细信息方面相对更有效,而外部侦察过程被防御者识别的概率更小。
图3. 基于行动发生位置的侦察阶段分类作用
3.1 外部侦察
外部侦察是指攻击者获得内部网络访问权限之前的行动。攻击者可以从面向公众的服务节点、在线人员等获取关键信息,有助于计划攻击并确定攻击目标优先级。攻击者通常首先搜集组织信息和人员的联系方式,使用互联网指纹了解不同的技术信息。然后攻击者将注意力转向设计攻击和恶意软件,并尝试突破至少一台内部主机。成功后,攻击者可以在网络内停留数月,进行内部侦察并升级攻击,直至完成目标。
3.2 内部侦察
内部侦察是当攻击者突破了目标网络内至少一台主机或建立了内部访问权限,在已安装的后门与命令控制服务器之间创建安全通信后的行动。攻击者最初可以查找用户和主机级信息,其中运行进程和配置文件会暴露内部主机使用的已安装软件及应用程序列表。然后可以使用系统命令和自定义工具来搜集用户、主机、网络和应用程序级信息。攻击者可以利用被动分析技术(如数据包嗅探)来获取网络拓扑并发现系统架构、协议映射和可利用漏洞,进一步利用漏洞突破其他主机,以更接近目标资源。
四.How——侦察技术
如图4所示,该文基于执行侦察行动时搜集数据的不同来源,把侦察技术分为基于第三方源获取、基于目标人员获取和基于系统资源获取等三类技术。基于第三方源的侦察技术主要指从第三方(如公开网站或暗网)获得的目标在线(互联网)或离线(文档)信息。基于人员的侦察技术主要指社会工程技术,通过欺骗目标人员以泄露机密细节或访问信息。基于系统的侦察技术主要指通过本地(如本地主机发现)或远程(如网络扫描和嗅探)与目标系统网络直接交互获取信息。
图4. 基于数据来源的侦察技术分类概览
4.1 基于第三方数据源的侦察
基于第三方源的侦察通常在攻击早期阶段执行,用来搜集有关组织、人员和资源的有用信息。第三方源包括网站、搜索引擎、暗网等。如图5所示,展示了常用几种基于第三方源的侦察技术的目标信息及可公开使用工具等,如搜索引擎(查找组织/人员相关背景信息)、Whois查找(域名注册者相关信息)、DNS查询(CNAME等资源记录扩展关联主机)、网络指纹(traceroute网络拓扑)、网站指纹(提取网页敏感信息)、邮件跟踪(Streak45监控目标打开和阅读电子邮件的时间和频率)等。
图5. 基于第三方数据源的侦察技术及相关工具
4.2 基于目标人员的侦察
基于目标人员的侦察,是通过关注目标组织中的人员,从人这里搜集信息,即社会工程学(Social Engineering, SE)。该文根据攻击者是否与目标人员直接接触,分为本地SE技术(如诱饵、尾随、肩窥等)需要直接亲自参与,和远程SE技术(如网络钓鱼、网络钓鱼、域欺骗、恶意软件等)可以通过网络远程执行。如图6所示,展示了常用社会工程技术的方法、目标信息、阶段和类型。
图6. 基于目标人员的侦察技术及相关工具
4.2.1 远程SE欺骗目标人员
远程SE技术主要指线上远程执行的欺骗技术,如网络钓鱼(利用虚假网页、短信、传真、即时消息、电话等窃取用户凭证)、水坑攻击(欺骗用户安装恶意代码攻击受害者计算机)等。
4.2.2 本地SE窃取敏感信息
本地SE技术主要指线下面对面的直接或间接交互,如面对面交谈、尾随(假装未带卡,跟踪目标进入建筑物或安全区域)、肩窥(站在目标人员附近观察输入用户名密码等敏感信息)、通过冒充权威人员来欺骗目标等。
4.3 基于计算机系统的侦察
基于系统的侦察,是通过使用标准接口或利用脆弱点,从目标计算机系统(硬件或软件)搜集信息。该文根据侦察相对于目标网络的发生位置,分为远程系统侦察,如在网络中远程执行扫描和嗅探,和本地系统侦察,如通过读取文件内容或使用操作系统命令探索配置来发现受害主机。
4.3.1 远程扫描嗅探目标系统
远程系统侦察是指,攻击者可以从远程位置执行侦察技术,通过与系统的直接或间接交互来搜集信息。基于侦察技术是否与目标系统直接交互,分为扫描和嗅探,其中扫描需要直接交互,嗅探则使用间接交互。扫描和嗅探可以从外部网络或内部网络中发现存活的网络资源。
A. 主动发包直接交互的扫描技术
扫描技术,是指通过主动发包与目标系统直接交互,基于返回数据分析获取相关信息。根据不同分类标准进行分类,如基于扫描空间选址过程,可分为随机扫描、顺序扫描、特定偏好扫描等;基于扫描后留下痕迹多少,分为隐形扫描和非隐形扫描;基于扫描任务分配,分为水平扫描(多个IP上的特定端口为目标)、垂直扫描(单个IP上的多个端口为目标)和分布式扫描(两者结合)。如图7所示,显示了扫描常用技术、目标信息、阶段和工具,包括ICMP、UDP、ARP或TCP等网络级扫描技术,以及如banner抓取、操作系统和应用程序指纹识别等应用程序级扫描技术。
图7. 常用扫描技术及相关工具
B. 旁路捕获间接交互的嗅探技术
嗅探技术,是指通过旁路捕获和分析网络数据包,与目标系统间接交互的方式,搜集用户凭据等信息。如图8所示,嗅探分为被动嗅探和主动嗅探,被动嗅探通过直接捕获数据包来发现网络协议和服务、存活主机和端口(Wireshark/Tcpdump等流量抓包分析工具),主动嗅探利用流量泛洪或欺骗攻击,来捕获流量或将流量重定向到攻击者控制的主机(MAC泛洪/ARP欺骗)。网络数据包可能包含已安装操作系统、应用程序、协议版本、源/目标端口、数据包/帧序列等信息,通过逐帧分析数据包,攻击者可能发现服务中的错误配置和漏洞。
图8. 常用嗅探技术及相关工具
4.3.2 本地提权移动访问目标
本地系统侦察,是当攻击者破坏目标系统中至少一个主机后,开始搜集本地系统关联目标信息。它可以发现文件目录、配置和环境变量,确定已安装软件、应用程序、框架,以供进一步利用、横向移动、权限升级等。如图9所示,展示了介绍了本地系统侦察常用技术、目标信息、阶段、命令行工具及其APT事件案例,如用户组发现(查找系统账户信息以获取用户组凭据,有助于权限升级)、进程发现(查看系统上正在运行进程,有助于发现已安装软件应用)、密码策略发现(了解系统实施密码策略信息,有助于暴力破解或设计自定义密码字典)、键盘记录和屏幕捕获(使用键盘记录器搜集用户击键和信息)。此外,还有一些侧信道攻击,需要攻击者对系统进行物理访问,如缓存攻击(通过窃听键盘计时来触发)、电磁攻击(捕捉电磁信号功率、时间等信息,有助于突破安全系统获取密钥)等。
图9. 常用本地系统侦察技术及相关工具
五.总结
网络安全侦察范围广、信息杂、技术多、工具新,本文介绍的这篇研究工作[3],总结归纳了攻击者在整个攻击过程中执行侦察行动的目标(what)、阶段(when)、技术(how)的分类情况,提供了侦察的全面视图,可以帮助理解和建模网络攻击,有助于防御策略改进。基于目标信息被使用的攻击类型,把侦察目标信息分成非技术信息(组织/人员)和技术信息(网络级/主机级/应用级/用户级);基于侦察行动相对于目标网络的发生位置,把侦察行动阶段分为外部侦察和内部侦察;基于侦察数据来源类型,把侦察技术分为基于第三方源获取、基于目标人员获取(远程SE/本地SE)和基于系统资源获取(远程/本地)。
后续面向安全攻防的网络空间测绘数据源及相关工具的具体研究工作,可以借鉴该文中对网络侦察目标信息及相关数据工具总结。
参考文献
1. Defense Use Case. 2016. Analysis of the cyber attack on the Ukrainian power grid. Electricity Information Sharing and Analysis Center (E-ISAC’16). SANS Industrial Control System.
2. Julie Andersen Hill. 2018. SWIFT bank heists and article 4A. J. Consum. Commerc. Law 22, 1 (2018).
3. Roy S, Sharmin N, Acosta J C, et al. Survey and taxonomy of adversarial reconnaissance techniques[J]. ACM Computing Surveys, 2022, 55(6): 1-38.
内容编辑:创新研究院 黄彩云
责任编辑:创新研究院 董炳佑
声明:本文来自绿盟科技研究通讯,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。