一文搞懂APT攻击
APT攻击
- 1. 基本概念
- 2. APT的攻击阶段
- 3. APT的典型案例
- 参考
1. 基本概念
高级持续性威胁(APT,Advanced Persistent Threat),又叫高级长期威胁,是一种复杂的、持续的网络攻击,包含高级、长期、威胁三个要素。
- 高级是指执行APT攻击需要比传统攻击更高的定制程度和复杂程度,攻击人员通常根据需要开发更高级的工具,这需要花费大量时间和资源对目标进行扫描分析,挖掘研究系统漏洞
- 长期是为了达到特定目的,过程中“放长线”,持续监控分析目标,确保对目标保有长期访问权
- 威胁强调的是人为参与策划的攻击,攻击目标是高价值的组织,攻击一旦得手,往往会给攻击目标造成巨大的经济损失或政治影响
主要特点
- 攻击者组织严密:有组织发起的攻击,可能具有军事或政治目的,有时会与某个国家关联在一起,而且背后往往有强大的资金及资源支持。
- 针对性强:攻击者不会盲目攻击,一般会很有针对性的选择一个攻击目标,该目标往往具有军事、政治、经济上的较高价值。
- 技术先进:APT攻击的恶意代码变种多且升级频繁,结合尚未发布的零日漏洞,使得基于特征匹配的传统检测防御技术很难有效检测出攻击。
- 隐蔽性强:APT攻击者具有较强的隐蔽能力,不会像DDoS攻击一样构造大量的报文去累垮目标服务器,基于流量的防御手段很难发挥作用;在整个过程中都会使用高级逃逸技术来刻意躲避安全设备的检查,在系统中并无明显异常,基于单点时间或短时间窗口的实时检测技术和会话频繁检测技术也难以成功检测出异常攻击。
- 持续时间长:攻击者一般都很有耐心,渗透过程和数据外泄阶段往往会持续数月乃至数年的时间。
2. APT的攻击阶段
APT攻击者通常是一个组织,从瞄准目标到大功告成,要经历多个阶段。洛克希德-马丁公司提出的网络攻击杀伤链 Cyber-Kill-Chain包括以下七个阶段。
(1)信息收集
RECONNAISSANCE
攻击者选定目标后,首先要做的就是收集所有跟目标有关的情报信息。这些情报可能是目标的组织架构、办公地点、产品及服务、员工通信录、管理层邮箱地址、高层领导会议日程、门户网站目录结构、内部网络架构、已部署的网络安全设备、对外开放端口、企业员工使用的办公OS和邮件系统、公司web服务器的使用的系统和版本等等。
(2)武器构建
WEAPONIZATION
信息收集完成后,就要考虑如何渗透到组织内部。从钓鱼邮件、web服务器还是U盘入手?如果是钓鱼邮件,利用哪种客户端软件的零日漏洞?如果是web服务器,目标用户最常去的网站有哪些?
收集信息越多,社会工程攻击就越无缝可击。通过员工在LinkedIn上的信息,可以用鱼叉式钓鱼获得公司内部资源。或者可以把远程访问木马提前嵌入可能会录入重要信息的文件里,以诱使接收者运行它。如果知道用户或服务器运行的软件信息,比如操作系统版本和类型,在企业网络里渗透和布置的机会就大大增加。
渗透手段确定后,下一步则需要制作特定的恶意软件。通常,攻击者所在组织会有专门的团队从事零日漏洞的挖掘和利用,他们也会密切关注一些漏洞报告平台上的最新公告,利用这种公开或半公开披露的漏洞原理以及可能的POC代码来进一步制作自己的趁手武器,例如带有恶意代码的pdf文件或office文件。这种恶意代码被称作shellcode,往往短小精悍,采用代码混淆、加壳、加密等反侦测手段,并在投递之前用各种最新的防病毒软件检测一遍,以期在投递到目标网络之后尽可能不被发现。
(3)载荷投送
DELIVERY
恶意软件制作好,下一步是把它投递到目标网络内。常用的手法包括邮件的附件、网站(挂马)、U盘等。
- 对于钓鱼邮件攻击,黑客务必要精心构造一封足以乱真的邮件内容,邮件标题、邮件内容、附件的名称和类型,都要让收件者放松警惕,产生兴趣,最终打开邮件附件或邮件正文中的URL链接。例如2020 年结合疫情热点发送钓鱼邮件或制作诱饵文件,成为了全球高级持续性威胁的普遍趋势。
- 对于网站(挂马),要根据攻击目标的兴趣爱好,选择一个合适的网站下手,这个网站必须存在可被利用的零日漏洞,然后对网站展开渗透和攻击,攻破后放上一个能自动在后台进行下载的脚本,让访问该网页的目标用户在不知不觉中就把含有恶意软件下载到本地,同时利用浏览器漏洞来安装执行。
- 而使用U盘载体来投递恶意软件的攻击行为,一般需要近距离的接触。当攻击目标不在internet上,不连接外网时,是一种手段。
(4)漏洞利用
EXPLOITATION
当目标用户使用含有漏洞的客户端程序或浏览器打开带有恶意代码的文件时,就会被恶意代码击中漏洞,下载并安装恶意软件,恶意软件通常是一个体积很小的远程控制工具,业内简称为RAT(即Remote Administration Tool,或Remote Access Trojan),用于与控制服务器建立C&C信道。恶意程序一般还会提升权限或添加管理员用户,把自己设置为开机启动,甚至在后台悄悄关闭或修改主机防火墙设置,以让自己尽可能不被发现。
(5)安装植入
INSTALLIATION
通常情况下,攻击方安装一个持续后门或植入,可以长时间访问目标的工具终端防御检测和记录“异常”安装活动。
同一个组织机构内部的办公主机往往都是相同的系统、类似的应用软件环境,因此很大程度上具备相同的漏洞,攻陷一台内网主机后,恶意程序会横向扩散到子网内其他主机或纵向扩散到企业内部服务器。由于RAT具备键盘记录和屏幕录像功能,因此很容易获取用户的域密码、邮箱密码及各类服务器密码。
(6)命令控制
COMMAND & CONTROL
一旦威胁软件在目标的网络环境里扎根,恶意软件将打开通信信道,以使攻击方远程操作目标。它可能下载额外的组件,更有可能的是通过C&C通道联系一个僵尸网络主控机。
(7)完成目标
ACTION ON OBJECTIVES
攻击者成功地破坏、瘫痪或渗入系统后,攻击者可转移到另一个阶段——盈利。攻击者可能采取任意形式的组合,比如,通过破坏基础设施来进行广告欺诈或发送垃圾邮件、向企业勒索赎金、出售他们在黑市上获得的数据,甚至劫持基础设施出租给其他罪犯。
攻击者的每一步过程中都通过匿名网络、加密通信、清除痕迹等手段来自我保护,在机密信息外发的过程中,也会采用各种技术手段来避免被网络安全设备发现。一方面化整为零,将机密信息打散、加密或混淆,避免DLP设备通过关键字扫描发现泄密;另一方面会限制发送的速率,以尽量不超过各类安全设备的检测阈值。
3. APT的典型案例
Google Aurora极光攻击、震网攻击是2010年著名的APT攻击,也是APT攻击的典型案例。而近年来,供应链、远程办公、移动终端成为攻击的切入点,例如2020年末的SolarWinds供应链事件。
(1)Google Aurora极光攻击
Google Aurora极光攻击是由一个有组织的网络犯罪团伙精心策划的有针对性的网络攻击,攻击团队向Google发送了一条带有恶意连接的消息,当Google员工点击了这条恶意连接时,会自动向攻击者的C&C Server(Command and Control Server)发送一个指令,并下载远程控制木马到电脑上,成为“肉鸡”,再利用内网渗透、暴力破解等方式获取服务器的管理员权限,员工电脑被远程控制长达数月之久,其被窃取的资料数不胜数,造成不可估量的损失。
(2)震网攻击
2010年,“震网”病毒(Stuxnet)成功攻击了伊朗核设施的离心机,仅仅2个月,报废离心机约1000台。据报道,“震网”是由多个国家发起的针对伊朗核设施的定向网络攻击事件, 但一个编程错误使蠕虫扩散到了其它不支持的操作系统上,才导致其在2010年6月被捕获。
“震网”利用了7个漏洞,其中4个是零日漏洞。由于攻击目标不在Internet上,不连接外网,与外界物理隔离,理论上不会遭遇外界攻击。初期“震网”是经由特工之手将U盘插入目标系统或网络的。“震网”还应用了非常多的隐身、伪装、欺骗手法,例如,它的漏洞利用程序瞄准的是系统内核级别,以此逃脱反病毒软件的扫描,实现“隐身”;它会仔细跟踪自身在计算机上占用的处理器资源情况,只有在确定震网所占用资源不会拖慢计算机速度时才会将其释放,以免被发现,它还盗用了两家公司的数字签名。
(3)SolarWinds供应链事件
2020年12月网络安全公司 FireEye披露其公司购置的网管软件厂商SolarWinds相关软件中存在后门,该后门通过HTTP与第三方服务器进行通信。SolarWinds对全球客户展开排查,经排查发现,多家大公司均被攻击者通过该软件作为入口而成功渗透。此外,多个政府机构也可能已经沦陷;世界500强企业中,也有超过9成受到影响;全球至少30万家大型政企机构受到影响。
参考
- 360安全大脑
- 知道创宇安全威胁情报
- 安全资讯平台
- 安全牛威胁情报
相关文章:

一文搞懂APT攻击
APT攻击 1. 基本概念2. APT的攻击阶段3. APT的典型案例参考 1. 基本概念 高级持续性威胁(APT,Advanced Persistent Threat),又叫高级长期威胁,是一种复杂的、持续的网络攻击,包含高级、长期、威胁三个要素…...
在pandas中通过一列数据映射出另一列的几种思路和方法
如果一句话中出现某个品牌的关键词,那么就将该品牌进行提取,开始我的做法是写了很多elif,如下: def brand_describe(x):if TRUM in x.upper():return "通快"elif BYSTRONIC in x.upper():return "百超"elif …...

数据分析视角中的商业分析学习笔记
数据分析一大堆,结果却是大家早就知道的结论?是工具和方法出问题了吗?真正原因可能是你的思维有误区。 为什么分析的这么辛苦,得出的结论大家早知道,谁谁都不满意?核心原因有3个: 分析之前&am…...

剑指offer——JZ26 树的子结构 解题思路与具体代码【C++】
一、题目描述与要求 树的子结构_牛客题霸_牛客网 (nowcoder.com) 题目描述 输入两棵二叉树A,B,判断B是不是A的子结构。(我们约定空树不是任意一个树的子结构) 假如给定A为{8,8,7,9,2,#,#,#,#,4,7},B为{8,9,2}&…...

NEFU数字图像处理(1)绪论
一、简介 1.1什么是数字图像 图像是三维场景在二维平面上的影像。根据其存储方式和表现形式,可以将图像分为模拟图像和数字图像两大类 图像处理方法:光学方法、电子学方法 模拟图像:连续的图像数字图像:通过对时间上和数值上连续…...

数值分析学习笔记——绪论【华科B站教程版本】
绪论 数值分析概念 用计算机求解数学问题的数值方法和理论 三大科学研究方法 实验理论分析科学计算(用计算机去辅助研究):数值方法计算机 解析解和近似解 解析解:使用数学方法求出或推导出的结果,往往可以求解出…...

节日灯饰灯串灯出口欧洲CE认证办理
灯串(灯带),这个产品的形状就象一根带子一样,再加上产品的主要原件就是LED,因此叫做灯串或者灯带。2022年,我国灯具及相关配件产品出口总额超过460亿美元。其中北美是最大的出口市场。其次是欧洲市场&#…...

一线大厂Redis高并发缓存架构实战与性能优化
文章目录 一、redis主从架构锁失效问题分析二、从CAP角度剖析redis与zookeeper分布式锁区别三、redlock分布式锁原理与存在的问题分析四、大促场景如何将分布式锁性能提升100倍五、高并发redis架构代码实战 一、redis主从架构锁失效问题分析 我们都知道,一般的互联…...

PHP 行事准则:allow_url_fopen 与 allow_url_include
文章目录 参考环境allow_url_fopenallow_url_fopen 配置项操作远程文件file 协议 allow_url_includeallow_url_include 配置项 allow_url_include 与 allow_url_fopen区别联系默认配置配置项关闭所导致异常运行时配置ini_set()限制 参考 项目描述搜索引擎Bing、GoogleAI 大模型…...

Replicate + ngrok云端大模型API实现教程
ChatGPT 的诞生预示着人工智能和机器学习领域的新时代。 日新月异,Hugging Face 不断推出突破性的语言模型,重新定义人机交互的界限。欢迎来到未来! 当然,有很多选项可以对它们进行推断。在本文中,我将告诉大家如何使…...
蓝桥等考Python组别十四级005
蓝桥等考Python组别十四级 第一部分:选择题 1、Python L14 (15分) 运行下面程序,输出的结果是( )。 d = {1 : one, 2 : two, 3 : three, 4 : four} print(d[2]) onetwothreefour正确答案:B...

Linux 本地 Docker Registry本地镜像仓库远程连接
Linux 本地 Docker Registry本地镜像仓库远程连接 Docker Registry 本地镜像仓库,简单几步结合cpolar内网穿透工具实现远程pull or push (拉取和推送)镜像,不受本地局域网限制! 1. 部署Docker Registry 使用官网安装方式,docker命令一键启动,该命令启动一个regis…...

二十九、高级IO与多路转接之epollreactor(收官!)
文章目录 一、Poll(一)定义(二)实现原理(三)优点(四)缺点 二、I/O多路转接之epoll(一)从网卡接收数据说起(二)如何知道接收了数据&…...
vite dev开发模式下支持外部模块引用
web工程中经常需要使用外部的cdn资源,比如lodash、three.js等: <script type"importmap">{"imports": {"lodash": "https://unpkg.com/lodash-es4.17.21/lodash.js"}} </script> vite build通过r…...
Chrome出现STATUS_STACK_BUFFER_OVERRUN解决方法之一
Chrome出现STATUS_STACK_BUFFER_OVERRUN错误代码,setting都无法打开 解决方法1:兼容性设置为win7 解决方法2: 1,开始菜单搜索Exploit Protection 2,添加程序进行自定义,点号,按程序名称添加 …...

【JavaEE】JavaScript
JavaScript 文章目录 JavaScript组成书写方式行内式内嵌式外部式(推荐写法) 输入输出变量创建动态类型基本数据类型数字类型特殊数字值 String转义字符求长度字符串拼接布尔类型undefined未定义数据类型null 运算符条件语句if语句三元表达式switch 循环语…...

剑指offer——JZ7 重建二叉树 解题思路与具体代码【C++】
一、题目描述与要求 重建二叉树_牛客题霸_牛客网 (nowcoder.com) 题目描述 给定节点数为 n 的二叉树的前序遍历和中序遍历结果,请重建出该二叉树并返回它的头结点。 例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建出…...

图片批量编辑器,轻松拼接多张图片,创意无限!
你是否曾经遇到这样的问题:需要将多张图片拼接成一张完整的画面,却缺乏专业的图片编辑技能?现在,我们为你带来一款强大的图片批量编辑器——让你轻松实现多张图片拼接,创意无限! 这款图片批量编辑器可以帮助…...
蓝桥等考Python组别十四级008
第一部分:选择题 1、Python L14 (15分) 运行下面程序,输出的结果是( )。 d = {1: "red", 2: "yellow", 3: "blue", 4: "green"} print(d[2]) redyellowbluegreen正确答案:B 2、Python L14 (...

【linux进程(二)】如何创建子进程?--fork函数深度剖析
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:Linux从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学更多操作系统知识 🔝🔝 进程状态管理 1. 前言2. 查看…...

SpringBoot-17-MyBatis动态SQL标签之常用标签
文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…...

docker详细操作--未完待续
docker介绍 docker官网: Docker:加速容器应用程序开发 harbor官网:Harbor - Harbor 中文 使用docker加速器: Docker镜像极速下载服务 - 毫秒镜像 是什么 Docker 是一种开源的容器化平台,用于将应用程序及其依赖项(如库、运行时环…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

高等数学(下)题型笔记(八)空间解析几何与向量代数
目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...
生成 Git SSH 证书
🔑 1. 生成 SSH 密钥对 在终端(Windows 使用 Git Bash,Mac/Linux 使用 Terminal)执行命令: ssh-keygen -t rsa -b 4096 -C "your_emailexample.com" 参数说明: -t rsa&#x…...

如何将联系人从 iPhone 转移到 Android
从 iPhone 换到 Android 手机时,你可能需要保留重要的数据,例如通讯录。好在,将通讯录从 iPhone 转移到 Android 手机非常简单,你可以从本文中学习 6 种可靠的方法,确保随时保持连接,不错过任何信息。 第 1…...

苍穹外卖--缓存菜品
1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得,如果用户端访问量比较大,数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据,减少数据库查询操作。 缓存逻辑分析: ①每个分类下的菜品保持一份缓存数据…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
MySQL中【正则表达式】用法
MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现(两者等价),用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例: 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...