网络安全攻防演练中的常见计策
大家觉得有意义记得关注和点赞!!!
引言
在网络安全攻防演练里面,用于分析攻击者动机和行为的,国外的有基于攻击链分析的模型(如Cyber Kill Chain和ATT&CK)和基于威胁行为的模型(如Diamond Model of Intrusion Analysis和Pyramid of Pain)等。也有各类PDR(Protect,防护、Detect,检测、Respond,响应)变种。
我将常见的攻防使用通俗易懂的老祖宗智慧之三十六计进行匹配,让大家更容易理解,并给出针对性的防守方法。
当然在实际攻防对抗中远不止我所描述的这些,比如多种大模型的检测/蜜罐/沙箱、/IDS/IPS/WAF/DDOS防护/威胁情报/主动防御等工具的组合使用.
攻防两大阵营分类
主要的攻击策略 | |||||
处于优势时所用之计 | 处于劣势时所用之计 | ||||
胜战计 | 敌战计 | 攻战计 | 混战计 | 并战计 | 败战计 |
瞒天过海 围魏救赵 以逸待劳 声东击西 | 无中生有 暗度陈仓 笑里藏刀 顺手牵羊 | 打草惊蛇 借尸还魂 欲擒故纵 擒贼擒王 | 釜底抽薪 混水摸鱼 关门捉贼 假道伐毓 | 偷梁换柱 指桑骂槐 上屋抽梯 反客为主 | 美人计 空城计 苦肉计 走为上 |
左边可以认为是攻击队会采用的一些方法,右边是防守方会被迫采取的做法。
一、攻击队计谋
瞒天过海
在攻防演练的时候,我们一定会发现,各类扫描增多,各类设备告警也变多,这是正常的。
因为攻击队为了得分,会对你进行“Reconnaissance”。这其中,有可能有些就是有意的行为。
有些攻击队,为了掩盖他们的攻击行为,会购买或自行对你的系统进行扫描,让你淹没在海量的告警里,而忽略了他们真正的攻击行为。
对付这类行为,我们在攻防演练之前,就应当对告警进行清零。
清零看似很难,其实一点都不简单。我们只能做到一定程度的降噪。
前期,就要对对正在扫描你的所有IP有一个极为清晰的认识,分清哪些IP大概是什么,在攻防演练期间,再结合历史记录,识别到是新增的还是已有的扫描类IP。
在攻防演练期间,就只能寄希望于各类检测设备,争取发现一些蛛丝马迹。
借刀杀人
由于网络攻击的特殊性,攻击队我们最开始能看到的,就是一串IP。
在攻防演练的时候,为了演练比较可控,组织者会分配给攻击队一些IP资源,并且要求只从这些IP发起攻击。
循规蹈矩的人,不会成为攻击者,或者是,很难成为很强的攻击者。
所以攻击队,他很大概率不会直接使用这些IP导致“出师未捷身先死”。在外网,他会先“借用”自己的其他IP,或者团队的资源,先对目标进行“Reconnaissance”,等探测得差不多,觉得有把握拿下了,才会真正使用那些IP攻击——成功——截图——提交报告。
在内网里,他会控制一些中了木马的客户端或者服务器发起攻击,导致你的溯源,都是溯源到错误的IP上。
笑里藏刀
在攻防演练里,钓鱼是最没有技术含量但是性价比最高的。很多攻击队正面打不进去,就会投机取巧开始钓鱼了。
钓鱼,一般会给你一些甜头,说你中奖了,或者装成寻求帮助的弱者,含着笑,其实最终是要获取你的信息,甚至全控你。
我们会说为了防止被钓鱼,会开展网络安全意识培训,开展反钓鱼邮件演练。但是其实这个意义不大。
不管你做多少次反钓鱼邮件演练,在攻防演练中,一定会有人会中招,一旦中招,一般都是被全控,攻击队立刻进入单位内网。
反钓鱼邮件演练就像考试,题目出得简单一点,很多人都可以过,出难点,就很多人会中招了。
而且很多在特定的场景下,再见多识广、谨小慎微的人,都会中招。
所以,对于钓鱼的防守,就是不要防钓鱼,要假定失陷。《BeyondCorp和高校的落地》。任何其他的防守策略,都一定要以“攻击队一定会进入内网”为底线思维。
顺手牵羊
有些攻击队在攻击时,会不经意“顺手牵羊”到其他不是原始目标的权限、数据,这种一般发生在防守方异常弱的情况下。
进入这种防守单位,仿佛进入了漏洞的金库,到处都是得分点。
为了防止这种情况发生,常规的安全套餐需要安排做一遍,特别是“两高一弱”,需要——
1 让自己人扫。在攻防演练之前,请一些攻击队做一些扫描并且进行整改。
2 不让攻击队扫。这可以通过蜜罐或流量来发现攻击队的扫描行为,并第一时间对发起扫描的IP进行隔离。
借尸还魂
有时候你的一台设备被全控,经过你和伙伴的应急响应,找到并删除了木马,清理了环境,高高兴兴又上线了,但是后面发现,攻击队还是从这台设备“借尸还魂”。
当然一个可能是,你技术能力不足,或者你漏洞没有修复,或者你没有举一反三,《网络安全里的苍蝇,蟑螂和白蚁》,或者你只是删除了上传的木马,被人家再次利用。
还有一个可能是,攻击队可能上传了十几个木马,故意留下那个最简单的,让你识别并且止步于此。
一台设备被全控,他上面的所有信息变得不再可信,即使日志也可以被伪造。
就像你在电影里看到的,被俘虏过的人一样。即使全身而退,不管他自己说有没有talk,你一定要以他所知道的所有信息泄露为前提进行应对。
为了防止这种情况,对于被攻击或被全控过的设备,我们一定要重新安装操作系统,重新部署应用,程序代码重新下载,数据库导出导入,上载文件全查病毒,比对备份文件。
擒贼擒王
“王”就是集权系统。比如云平台、集中式数据库平台、统一身份认证平台、堡垒机、源代码版本库管理系统、运维平台等等。
虽然擒王难度很高,不过带来的收益也是巨大的。有些攻击队不屑于帮你找前面“顺手牵羊”的问题,而是会对着集权系统发起挑战。
对于这种的防护,最重要的是要梳理好这些“圣杯”资产,对这些系统加强防护,分级管理。
很多时候,可能是你所不知道的某个二级单位的这类系统被攻陷。
金蝉脱壳
攻击队攻击完成后,会删除日志,清理痕迹。
对于这类防护,需要做好日志保留,日志应当传输到远程。
但是这个传输动作可能被暂停,或者传输的内容被恶意篡改,所以不可篡改的流量留存也是非常重要的。
偷梁换柱
有些攻击队不寻求直接破坏系统,而是通过偷梁换柱等手段,替换一些组件,在系统内隐藏起来。这个有时候比较难防,恶意行为和病毒很类似,发作的那天,就是它死亡的那天,潜伏期3天,7天,15天,越长,隐蔽性越高,越难以防范。
走为上
如果攻击队发现当前目标防守过于严密,则会采取“走为上”的策略,转头去攻击其他单位其他较弱的目标。在有限的时间里,肯定是挑软柿子捏,吃饱了没事干,才会啃硬骨头。所以,有时候,只要你不是最弱的那个单位,在攻防演练时,也会取得不错的成绩。所以应对这个策略,在防守时,就要积极地去防守,去封IP,搞动作,让攻击队意识到,这个目标,是有防守的。
二、防守方计谋
反客为主
如同我在 《业务系统不止要有安全中心,还要有反制中心》 里谈到的,在攻防演练或者日常检测预警中,不要一直把自己处于被动挨打的状态。反制应当在规则下,合法地进行。反制可以利用蜜罐类设备,去控制攻击者的设备。也可以获得攻击者IP后,尝试对IP进行嗅探。现在的攻击者,有组织,有依托公司的各类知识库,有自己的平台、工具、武器库形成战斗群。攻击队会在云平台搭建自己的各类平台,购买IP池用于伪装。但只要是平台,也可能会有漏洞。不过反制听起来热血,意义不大,有这个时间和精力,做点别的更好。
釜底抽薪
防守队对攻击队最“釜底抽薪”的动作只能是封IP了。封IP有时候意义不会很大,除非你封到组织者给的IP地址,否则攻击队很快就会更换IP地址。
欲擒故纵
正如“釜底抽薪”提到的,封IP有时候意义不大,你封了IP,攻击队换了另外一个IP,《网络安全里的苍蝇,蟑螂和白蚁》,你还需要再次去识别到新IP,害人害己。
所以,有时候,如果你识别到攻击队的IP,你可以不封他,只是观察他的攻击行为,如果他只是在探测,尝试,可以不用有什么动作,避免“打草惊蛇”,就当是免费的渗透测试。
一旦识别到风险,立刻“釜底抽薪”,封堵漏洞,反向注入、反向攻击、小偷偷小偷等。
但是这种情况,千万不要玩脱了,只有你检测设备足够的情况下,才能执行这个策略。
关门捉贼
一键断网,把问题设备从互联网隔离开来。当然,很多时候可能抓不到贼,但是可以抓到贼留下的各类恶意木马、攻击手法、来源IP等等。
无中生有
这个主要是涉及到蜜罐的使用,“无中生有”出很多资产出来。
我们前面“顺手牵羊”里做加固,做暴露面收缩,都是在做减法,这里是开始做加法。
蜜罐的部署在于密集,可参考我以前写的:《攻防演练中的蜜罐,不在于他有多蜜,而在于他有多密》。
蜜罐默认为所有的访问信息都不合法,所有经过蜜罐访问的记录都有清晰的记录,这样可以记录攻击者的入侵过程和思路,后续追踪和反向溯源等攻击留下痕迹。
美人计
通过网站或者链接有美女、或者诱导你去访问指定的网站、点击指定的反向给你的主机注入病毒,导致你的电脑成为肉鸡、木马、勒索病毒等病毒的传播站,平时没啥作用一旦远程激活之后很快就美女杀手的复制机构。
相关文章:
网络安全攻防演练中的常见计策
大家觉得有意义记得关注和点赞!!! 引言 在网络安全攻防演练里面,用于分析攻击者动机和行为的,国外的有基于攻击链分析的模型(如Cyber Kill Chain和ATT&CK)和基于威胁行为的模型(…...

SD卡模块布局布线设计
1、SD/TF/SIM卡的定义 2、SD/TF/SIM卡模块引脚定义以及图示 3、SD/TF/SIM卡接口布局和布线 4、小结 1、BGA两线交叉时,可以在源头将两线互相短路连接,然后再输出口删除一小节线,然后CHRLX/V,这样就可以换两条线的网络,…...
Flask-----SQLAlchemy教程
存session session[username] username # 存储数据到 session 取session username session.get(username) render_template return render_template(index.html, usernameAlice),渲染一个包含 username 变量的模板。 redirect return redirect(url_for(profil…...
STM32 高级 物联网通信之CAN通讯
目录 CAN通讯介绍 物理层 协议层 CAN的帧(报文)种类 1 数据帧(发送单元->接受单元) 2 远程帧(接受单元->发送单元) 3 错误帧(发送方发送数据错误会发送的状态帧) 4 过载帧(接收方放不下会发送到的状态帧) 5 帧间隔(状态) 数据帧介绍 远程帧介绍 C…...

“乡村探索者”:村旅游网站的移动应用开发
3.1 可行性分析 从三个不同的角度来分析,确保开发成功的前提是有可行性分析,只有进行提前分析,符合程序开发流程才不至于开发过程的中断。 3.1.1 技术可行性 在技术实现层次,分析了好几种技术实现方法,并且都有对应的成…...

前端案例---自定义鼠标右键菜单
之前右击出现默认的选项菜单,使用evt.preventDefault()把默认的去掉,然后自定义右击的样式 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible"…...
浅谈归一化
在深度学习中,对网络层进行归一化(Normalization,简称Norm)是一个重要的技巧。常见的归一化方法包括批归一化(Batch Normalization)、层归一化(Layer Normalization)、实例归一化&am…...
lodash常用函数
文章目录 一、数组1、chunk分组2、difference、differenceBy、differenceWith3、findIndex4、intersection、intersectionBy、intersectionWith5、union、unionBy、unionWith 二、对象1、pick、omit 2、get、set三、数学1、sum、sumBy2、range 四、工具函数1、isEqual、isEmpty…...
触控算法总结
一、触控湿手指算法的具体实现原理涉及多个方面的技术和方法,主要包括以下几个关键点 1.电容变化检测 电容式触摸屏通过检测电容变化来确定触摸位置。当手指接触屏幕时,会引起电容的变化。然而,当手指湿润时,水分会影响电容值,导致触摸屏误判成无法正确识别触控点 2.噪声过滤: …...
齐次矩阵包含平移和旋转
第一个矩阵旋转矩阵 A [ R 1 0 0 1 ] A\left[\begin{matrix}R_{1} & 0\\0 & 1\end{matrix}\right] A[R1001] 第一个平移矩阵 B [ 1 T 1 0 1 ] B\left[\begin{matrix}1 & T_{1}\\0 & 1\end{matrix}\right] B[10T11] C [ R 2 0 0 1 ] C\left[\be…...

Move AI技术浅析(四):运动跟踪与估计
一、运动跟踪与估计模块概述 运动跟踪与估计 是 Move AI 的核心模块之一,其主要任务是从提取到的关键点特征中,分析和理解运动的动态特性,包括运动轨迹、速度、加速度、方向等。该模块通常包括 时间序列分析 和 运动估计 两个子模块。 时间…...

NCR+可变电荷块3——NCB/cell绘图1
文献method参考: 蛋白质序列数据从uniprot中获取 https://www.uniprot.org/uniprotkb/P46013/entry https://www.uniprot.org/uniprotkb/P06748/entry、 1,电荷分布计算: Charge distribution was calculated as the sum of the charges …...
数据仓库是什么?数据仓库简介
数据仓库(Data Warehouse)是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持企业的管理决策。以下是对数据仓库的详细解释: 一、定义与特性 定义:数据仓库是构建在组织的现有数据基础上&#x…...

AI的进阶之路:从机器学习到深度学习的演变(二)
AI的进阶之路:从机器学习到深度学习的演变(一) 三、机器学习(ML):AI的核心驱动力 3.1 机器学习的核心原理 机器学习(Machine Learning, ML)突破了传统编程的局限,它不再…...
C++中属性(Attributes)
属性(Attributes)在 C 中的完整讲解 在 C 中,属性(Attributes) 是一种编译时机制,用于附加元数据到函数、变量、类型等元素上,以指导编译器如何优化、检查、警告或者改变编译行为。通过属性&am…...

Go语言中的defer,panic,recover 与错误处理
目录 前言 三个关键字 defer语句 panic语句 recover函数 defer、panic、recover组成的错误处理 总结 前言 在其他编程语言中,如Java,宕机往往以异常的形式存在。底层抛出异常,上层逻辑通过try...catch...fanally机制捕获异常并处理&am…...
(C语言)力扣 904.水果成篮
写在所有的前面: 本文采用C语言实现代码 目录 写在所有的前面:题目说明题目:力扣 904.水果成篮题目出处题目描述Description输入Input输出Output样例Sample限制Hint 解答说明方案解题思路一般情况特殊情况 代码实现其他解释 题目说明 题目…...

2024 年12月英语六级CET6听力原文(Lecture部分)
2024 年12月英语六级CET6听力原文(Long Conersation和Passage) 1 牛津大学关于普遍道德准则的研究及相关观点与建议 译文 2 食物颜色对味觉体验及大脑预期的影响 译文 3 财务资源对意义与幸福之间关系的影响研究 译文...

CentOS下,离线安装vscode的步骤;
前置条件: 1.CentOS7; 步骤: 1.下载vscode指定版本,例如; 例如 code-1.83.1-1696982959.el7.x86_64.rpm 2.使用下面命令: sudo rpm -ivh code-1.83.1-1696982959.el7.x86_64.rpm 其他: 卸载vscode的命…...
ubuntu停止.netcore正在运行程序的方法
在Ubuntu系统中停止正在运行的.NET Core程序,你可以使用以下几种方法: 使用kill命令: 如果你知道.NET Core程序的进程ID(PID),你可以直接使用kill命令来停止它。首先,使用ps命令配合grep来查找.…...

深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...

Appium+python自动化(十六)- ADB命令
简介 Android 调试桥(adb)是多种用途的工具,该工具可以帮助你你管理设备或模拟器 的状态。 adb ( Android Debug Bridge)是一个通用命令行工具,其允许您与模拟器实例或连接的 Android 设备进行通信。它可为各种设备操作提供便利,如安装和调试…...
质量体系的重要
质量体系是为确保产品、服务或过程质量满足规定要求,由相互关联的要素构成的有机整体。其核心内容可归纳为以下五个方面: 🏛️ 一、组织架构与职责 质量体系明确组织内各部门、岗位的职责与权限,形成层级清晰的管理网络…...

Keil 中设置 STM32 Flash 和 RAM 地址详解
文章目录 Keil 中设置 STM32 Flash 和 RAM 地址详解一、Flash 和 RAM 配置界面(Target 选项卡)1. IROM1(用于配置 Flash)2. IRAM1(用于配置 RAM)二、链接器设置界面(Linker 选项卡)1. 勾选“Use Memory Layout from Target Dialog”2. 查看链接器参数(如果没有勾选上面…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...

[10-3]软件I2C读写MPU6050 江协科技学习笔记(16个知识点)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16...

Android15默认授权浮窗权限
我们经常有那种需求,客户需要定制的apk集成在ROM中,并且默认授予其【显示在其他应用的上层】权限,也就是我们常说的浮窗权限,那么我们就可以通过以下方法在wms、ams等系统服务的systemReady()方法中调用即可实现预置应用默认授权浮…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

HDFS分布式存储 zookeeper
hadoop介绍 狭义上hadoop是指apache的一款开源软件 用java语言实现开源框架,允许使用简单的变成模型跨计算机对大型集群进行分布式处理(1.海量的数据存储 2.海量数据的计算)Hadoop核心组件 hdfs(分布式文件存储系统)&a…...