关于网络安全攻防演化博弈的研究小议
1. 拉高视角,从宏观看网络安全攻防
伴随着信息化的发展,网络安全的问题就一直日益突出,与此同时,网络安全技术也成为研究热点,直到今日也没有停止。
从微观来看,网络安全技术研究指的是针对某项或某几项指标的完善,例如:
- 针对WEB系统漏洞的挖掘和利用,以及与此相应的日志采集以及关键点审计技术,例如RASP和WAF,核心指标是精确率和召回率
- 恶意代码作者为了躲避病毒AV的静态和动态检测机制,通过隐写、混淆、多态等手段隐藏恶意代码的表征行为,与此对应的,病毒查杀厂商通过研究相应的反混淆、动态沙箱、插桩等技术,希望更有效地提取恶意代码的表征行为
在关注具体技术研究的同时,我们也需要意识到,网络安全策略的研究在某种程度上比技术研究更为重要,特别是对于同样的技术采用不同的安全策略会取得不同的效果。
网络安全中攻防对抗的本质可以抽象为攻防双方的策略依存性,而这种策略依存性正式博弈论的基本特征,因而可以考虑应用博弈论来解决网络安全攻防对抗的问题。
在学术界,博弈论应用于网络安全处于发展阶段,相关的学术研究脉络有:
- 国外学者 Stakhanova等人,通过随机博弈、不完全信息博弈等模型来进行入侵意图、目标和策略的推理
- Reddy指出关于入侵检测的研究主要且多数建立在一次性博弈分析的基础上
- SHEN Shi-gen认为考虑到真实场景中攻击的重复性,将其视为一个重复的多阶段博弈的过程显然更为合理
- Agaha等建立了无线传感器网络中基于重复博弈理论的攻防模型
- 朱建明提出了基于博弈论对信息安全技术进行评价的模型,其研究侧重于信息安全机制的优化配置
- 孙薇等人建立了信息安全攻防的博弈模型,分析防守方和攻击方的复制动态及进化稳定策略,其模型考虑到现实社会中的有限理性,引入了演化博弈来研究攻防对抗的规律
2. 网络安全攻防系统动力学模型
在信息网络中,由于不同的攻击者和防御者对信息安全知识的不同理解和反应,因此产生了不同的预测和决策机制。
每个参与者获得不同的收益,随着时间的推移,每个参与者通过学习成功者的经验,不断改进自己的安全策略,形成新的攻防形势。
在参与者不断改进攻防策略的内在驱使下,随着网络安全技术不断进步,企业对系统的持续调整,都会使信息安全问题呈动态进化趋势,进而形成了不断进化的网络安全体系。
用系统动力学对相关问题的演化博弈进行仿真,可以从全局整体考察博弈均衡背后的动态特性,而演化博弈论的分析则对建模和制定相应的决策起到至关重要的作用。
0x1:系统边界的定义
清晰的界定系统的边界是模型成功与否的关键步骤。界定系统的边界必须紧紧围绕建模目的以及研究对象,真正将关注点放在核心问题上,可以考虑忽略非重要的因素。研究的对象是网络中攻防双方的演化博弈系统。
从参与者结构来看,系统内存在两类个体:
- 防守方
- 攻击方
从演化的范围来看,系统演化包括:
- 防守方之间的学习
- 防守方竞品之间的互相学习
- 攻击方之间的学习
- 0day披露后,在攻击者社群中迅速传播,攻击者会竞相模仿
- 防守方和攻击方之间的对抗
- 安全攻防知识的对抗
- 信息不对称的对抗,例如防守方不知道攻击者采取了何种IDS技术
从影响因素来看,根据演化博弈模型的分析框架,系统影响因素应包括:
- 防守方收益
- 防守方成本
- 针对某个攻击向量的攻击,防守方需要投入大量的研发成本
- 防守方为了防住一个点,往往需要建设一个面
- 攻击方收益
- 攻击方成本
网络中攻防演化博弈系统的构成要素如下表所示:
0x2:基本假设
模型的基本假设如下:
- 攻防双方演化博弈系统限定在网络上的攻防双方,在根据对方的策略集采取采取策略演。不考虑攻防双方角色的转化以及蜜罐技术等其他因素。
- 攻击方和防守方对信息资产的价值认可是相同的
- 在足够长的时间内,攻击者的技术水平和防守方的技术水平没有绝对差距,即攻防技术的研究是对等的
- 攻击方和防守方通过社会网络,能够各自充分了解同质群体采取行动的效用,即攻击方和防守方都各自能够了解自己的群体,并互相学习
- 防守方采取的行动是完全有效的
0x3:模型符号系统构建
网络安全演化博弈系统动力学模型由4个流位、2个流率、13个中间变量、和3个外部变量构成,如下图所示,
- 流位变量
- defensenoinvest:防守方放弃信息安全投资的概率
- defenseinvest:防守方选择进行信息安全投资的概率
- attacknoaction:攻击方放弃攻击的概率
- attackaction:攻击方选择采集攻击的概率
- 流率变量
- 中间变量
- 外部变量
- P1:信息安全资产价值,同时也是防守收益
- P2:攻击方收益,根据前面的攻防等效假设,P1=P2
- C1:防守方信息安全投入成本,表示防守方投入设备、人力和无形资产等全部的价值
- C2:攻击方成本,表示攻击方在人力、设备和法律惩罚方面产生的投入
0x4:博弈系统演进动力方程分析
根据上述流图,构建的博弈树如下图所示:
计算防守者的期望收益和平均收益:
当投入效益和不投入效益不相等时,效益差的防守者会模仿效益好的防守者。
设采取投入策略与采取不投入策略人的比例是时间的函数,分别表示为 p(t) 和 1-p(t)。
投入策略的动态变化速度可以用如下复制动态方程表示:
同理,计算攻击者的情况:
模型稳定性分析,令:
求出博弈系统的平衡状态,得到:
其中,X1、X2、X3、X4为鞍点,X5为中心点,系统不存在演化稳定均衡,只要有微小的变化,系统就会受到重大的影响。
这说明网络安全问题仅靠技术的投入是无法得到彻底解决的。攻防双方两大阵营永远在不断的动态博弈中,而驱动这种博弈的源动力,就来自于攻击者攻击收益的变化,这常常伴随着某些黑产变现手段的出现和繁盛,例如:
- 加密货币
- 基于非对称算法的勒索病毒
- 简易有效的0/Nday漏洞披露
- SEO污染的买房市场繁荣
- 挖矿收益
因为源源不断地收益诱惑这个源动力的存在,会让攻击者群体不断升级演进己方的技术,自然这会打破某一时期存在的短暂纳什均衡。
攻击方通过打破纳什均衡在获得超额收益后,会有一小部分防守者率先升级防御技术,投入防御产品研发,进而获得了更好的防御效果,之后,防守群体中的其他个体会进行学习与模仿,最终,攻防群体重新达到一个新的纳什均衡。
此后,下一轮的新的扰动与动态演化又开始了。
0x5:模型检验
系统动力学模型是对真实世界系统抽象和简化的结果,并不是真实世界系统的复制品,所以从再现客观世界真实情况来看,任何模型都不是完全正确的。只要模型在既定的假设下有效接近真实世界的系统,完成既定条件下的目标,那么就可以认为模型的构建具有客观性、合理性和实用性。
1. 系统边界检验
系统边界测试主要是检查系统中重要的概念和变量是否为内生变量,同时测试系统的行为对系统边界假设的变动是否敏感。
用系统动力学对演化博弈建立的目的,是研究网络攻防演化过程中系统内部影响因素的动态特征,并通过这些影响因素找出网络攻防的优化策略集。
模型的边界是在继承前期网络攻防博弈的相关研究成果基础上,根据建模目的和现实系统的实际情况而确定的。该模型包含了与所研究问题密切相关的重要因素,并摒除了对系统影响较小的因素,因此对网络攻防演化博弈的系统边界是合理、有效的。
2. 有效性检验
有效性检验是为了验证模型所获信息与行为是否反映了实际系统的特征与变化规律,通过模型的分析研究能否正确认识与理解所要解决的问题。在现实的网络环境中,攻防双方都根据对方的行动采取相应的策略。
1)攻防处于均势初始状态的演化
如果初始状态为:
- 防守方都进行有效安全投资
- 攻击方都进行攻击
那么经过一段时间演化,攻防对抗不断交替升级,防守方始终处于滞后循环的状态。
2)守强攻弱的初始状态的演化
如果初始状态时,防守方都进行了有效安全投资,攻击方没有相对收益,那么经过一段时间演化,攻击方攻击概率都将降为0。
通过仿真实验,假设攻击方初始状态为0.9,经过演化攻击方进行攻击概率迅速降至0,
初始防守概率为1,攻击概率为0.9,之后的概率演进
3)攻强守弱的初始状态的演化
如果初始状态为攻击方都采取攻击行动,防守方受到损失,经过一段时间演化,防守方都将进行安全投资。
系统仿真中假设所有攻击方都进行攻击,防守方初始状态为0.1时,经过有演化迅速达到1的均衡状态,
初始攻击概率为1,防守概率为0.1,之后的概率演进
现实世界中第三种情况占了绝大多数,网络安全中防守技术的的起步比攻击技术要晚,防守技术以及防守产品落地时,攻击方往往已经处于上峰优势地位很久了。这个时候防守方会呈现追赶的态势,在经过一段时间后,攻防达到平衡,此后就回到第一种状态,即防守方会持续处于滞后循环中。
Relevant Link:
http://xueshu.baidu.com/usercenter/paper/show?paperid=eb82da16d21916df568789de58231e7e&site=xueshu_se
3. 网络安全攻防对抗治理策略
0x1:所谓的提供攻击者成本说法是否合理?
研究信息攻防博弈的最常见治理策略就是:提高攻击者成本,或加大对攻击者的惩罚力度。
针对类似问题,有学者已经证明混合战略博弈中提高惩罚力度,其实无法改变被惩罚者违规概率的均衡点。
实践中通过防御手段提高攻击者攻击成本的应用,是因为其在短期内可以以降低被惩罚者的均衡点,而从长期来看,该策略忽视了惩罚力度的加大实际上对于双方的支付矩阵都是有影响了。
一般来说防守者投入概率越高,攻击者采取行动的成本越高,或者被发现的概率越大,导致受到惩罚的可能越大。
系统仿真中设 C2 = 2+p*2,在短期内,攻击者的攻击概率可以下降至0,但从长期来看,由于防守方策略也受影响,攻击者的概率不会稳定在较低点,而是波动起伏的,
双方演化博弈过程
随着博弈次数和时间的变化,波动振幅也会加大,博弈无法达到演化均衡点。
所以,依靠防守方加大投资,是无法达到演化均衡的,最终呈现攻防双方反复波动的状态,并且防守方还是是滞后波动的。
0x2:引入第三方惩罚机制
当加入动态惩罚策略,如:
- 第三方监管部门对攻击者的惩罚力度
- 国家法律对攻击行为的定罪和制裁
- 相关部分对攻击者的追溯和惩罚
考虑对整个博弈模型的稳定性影响,系统中假设当 C2=2+2*q 时,随着博弈次数和时间的增加,攻击者采取攻击的概率逐渐收敛,稳定在纳什均衡点。
防守方和攻击方概率变化
可以看到,引入第三方动态惩罚策略的系统博弈是存在演化均衡的。
现实中,防守方投入如果侧重于攻击者攻击的追踪,为第三方监管部门进行动态惩罚提供网络攻击行为的审查线索,是有效遏制网络攻击的重要途径。
0x3:关闭或者减少攻击者获得收益的渠道
解决问题的另一个思路是减少攻击者获取收益的渠道,正常情况下,攻防双方在持续投入的情况下,攻防概率是处于一个纳什均衡中的,这个时候,如果没有新的变现和盈利渠道,那么攻击方就不会有动力去打破当前的均衡点。
相关文章:

关于网络安全攻防演化博弈的研究小议
1. 拉高视角,从宏观看网络安全攻防 伴随着信息化的发展,网络安全的问题就一直日益突出,与此同时,网络安全技术也成为研究热点,直到今日也没有停止。 从微观来看,网络安全技术研究指的是针对某项或某几项…...
【FAQ】HarmonyOS SDK 闭源开放能力 —Push Kit(7)
1.问题描述: 推送通知到手机,怎么配置拉起应用指定的页面? 解决方案: 1、如果点击通知栏打开默认Ability的话, actionType可以设置为0, 同时可以在.clickAction.data中,指定待跳转的page页面…...

远程桌面防护的几种方式及优缺点分析
远程桌面登录是管理服务器最主要的方式,于是很多不法分子打起了远程桌面的歪心思。他们采用暴力破解或撞库的方式破解系统密码,悄悄潜入服务器而管理员不自知。 同时远程桌面服务中的远程代码执行漏洞也严重威胁着服务器的安全,攻击者可以利…...

ASP.NET|日常开发中连接Sqlite数据库详解
ASP.NET|日常开发中连接Sqlite数据库详解 前言一、安装和引用相关库1.1 安装 SQLite 驱动1.2 引用命名空间 二、配置连接字符串2.1 连接字符串的基本格式 三、建立数据库连接3.1 创建连接对象并打开连接 四、执行数据库操作4.1 创建表(以简单的用户表为例…...

python的自动化seleium安装配置(包含谷歌的chromedriver)
目录 前言介绍 一、下载谷歌浏览器chromedriver (一)查看谷歌浏览器版本 (二)去官网下载谷歌驱动(chromdriver) (三)谷歌浏览器安装位置解压 (四)配置环境变量 二、pychram里下载安装selenium 三、测试selenium是否成功 前言介绍 Selenium是一个开源的自动化测试工具&…...
QT requested database does not belong to the calling thread.线程中查询数据报错
QT requested database does not belong to the calling thread.线程中查询数据报错 QString name "ttx"; QSqlQueryModel* sql_model; QString sql_comm QString("select * from dssb_moddve_loddt_tab where name%1").arg(name); sql_model->set…...
服务器一般装什么系统?
在服务器管理中,操作系统的选择是一个关键因素,它直接影响到服务器的稳定性、性能和可维护性。那么为什么有些服务器选择Linux,而不是Windows?选择合适的操作系统对服务器的性能和安全性有多么重要? 在众多操作系统中…...
Linux vi/vim 编辑器使用教程
Linux vi/vim 编辑器使用教程 引言 Linux 系统中的 vi 和 vim 是非常强大的文本编辑器,它们以其高效性和灵活性而闻名。vim 是 vi 的增强版,提供了更多的功能和改进的用户界面。本文将详细介绍 vi/vim 的基本用法,包括打开文件、编辑文本、…...

JavaEE多线程案例之阻塞队列
上文我们了解了多线程案例中的单例模式,此文我们来探讨多线程案例之阻塞队列吧 1. 阻塞队列是什么? 阻塞队列是⼀种特殊的队列.也遵守"先进先出"的原则. 阻塞队列是⼀种线程安全的数据结构,并且具有以下特性: 当队列满的时候,继续⼊队列就会…...

梳理你的思路(从OOP到架构设计)_基本OOP知识04
目录 1、 主动型 vs.基於被动型 API 1)卡榫函数实现API 2)API的分类 3)回顾历史 4)API >控制力 2、 结语&复习: 接口与类 1)接口的表示 2)Java的接口表示 1、 主动型 vs.基於被动…...

nginx反向代理(负载均衡)
nginx的代理 代理 四层代理 七层代理 正向代理和缓存的配置方式 🐭🐮🐯🐰🐉🐍🐴🐑🐒🐔🐶🐷 反向代理》负载均衡 负载均衡ÿ…...
Android系统应用主要模块
设置 Android Settings开发总结 Launcher Android Launcher开发学习总结 System UI Android SystemUI 学习总结...

【万字详解】三维重建(二)——NeRF、NeuS、MeshUDF、NeuralUDF、3DGS、GShell
文章目录 一、NeRF:Representing Scenes as Neural Radiance Fields for View Synthesis(推荐读)1.1 式1 神经网络的输入和输出1.2 式2 体素渲染算法1.3 式3 损失函数1.4 位置编码1.5 基本原理二、经典的重建流程2.1 传统的三维重建pipeline2.2 神经网络回归2.3 可微渲染最优…...
【RK3588 Linux 5.x 内核编程】-内核线程与Seqlock
内核线程与Seqlock 文章目录 内核线程与Seqlock1、Seqlock介绍2、Seqlock相关API2.1 初始化2.2 写操作2.3 读操作3、驱动实现4、驱动验证在前面的文章中,我们介绍了 Mutex、Spinlock、Read/Write Spinlock 的使用及其实现。 它们都用于保护共享资源不被两个或多个进程同时修改…...

访问者模式的理解和实践
在软件开发过程中,设计模式为我们提供了解决常见问题的最佳实践。访问者模式(Visitor Pattern)是行为设计模式之一,它将数据操作与数据结构分离,使得在不修改数据结构的前提下,能够定义作用于这些元素的新的…...
在Scala中对Map函数的使用
package pp28{object cscc {def main(args: Array[String]): Unit {val m1 Map("马云 — 阿里巴巴" -> 1964,"马化腾 — 腾讯" -> 1971,"李彦宏 - 百度" -> 1968,"雷军 - 小米" -> 1969,"丁磊 - 网易" -> …...
PyTorch基本使用-张量的索引操作
在操作张量时,经常要去获取某些元素进行处理或者修改操作,在这里需要了解torch中的索引操作。 准备数据: data torch.randint(0,10,[4,5]) print(data--->,data)输出结果: data---> tensor([[3, 9, 4, 0, 5],[7, 5, 9, …...

OpenCV实验:图片加水印
第二篇:图片添加水印(加 logo) 1. 实验原理 水印原理: 图片添加水印是图像叠加的一种应用,分为透明水印和不透明水印。水印的实现通常依赖于像素值操作,将水印图片融合到目标图片中,常用的方法…...
sql server log文件
确定 SQL Server 实例中具有大量 VDF 的数据库 SELECT [name], COUNT(l.database_id) AS vlf_count FROM sys.databases AS s CROSS APPLY sys.dm_db_log_info(s.database_id) AS l GROUP BY [name] HAVING COUNT(l.database_id) > 100; 在收缩日志文件之前确定事务日志中…...

Elasticsearch 集群部署
Elasticsearch 是一个分布式的搜索和分析引擎,广泛应用于日志分析、全文搜索、实时数据分析等场景。它以其高性能、高可用性和易用性而著称。本文档将引导您完成一个基本的 Elasticsearch 集群配置,包括节点间的通信、客户端访问、安全设置等关键步骤。我…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...
A2A JS SDK 完整教程:快速入门指南
目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库ÿ…...

如何更改默认 Crontab 编辑器 ?
在 Linux 领域中,crontab 是您可能经常遇到的一个术语。这个实用程序在类 unix 操作系统上可用,用于调度在预定义时间和间隔自动执行的任务。这对管理员和高级用户非常有益,允许他们自动执行各种系统任务。 编辑 Crontab 文件通常使用文本编…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现企业微信功能
1. 开发环境准备 安装DevEco Studio 3.1: 从华为开发者官网下载最新版DevEco Studio安装HarmonyOS 5.0 SDK 项目配置: // module.json5 {"module": {"requestPermissions": [{"name": "ohos.permis…...

自然语言处理——文本分类
文本分类 传统机器学习方法文本表示向量空间模型 特征选择文档频率互信息信息增益(IG) 分类器设计贝叶斯理论:线性判别函数 文本分类性能评估P-R曲线ROC曲线 将文本文档或句子分类为预定义的类或类别, 有单标签多类别文本分类和多…...
node.js的初步学习
那什么是node.js呢? 和JavaScript又是什么关系呢? node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说, 需要在node.js的环境上进行当JavaScript作为前端开发语言来说,需要在浏览器的环境上进行 Node.js 可…...

何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡
何谓AI编程【02】AI编程官网以优雅草星云智控为例建设实践-完善顶部-建立各项子页-调整排版-优雅草卓伊凡 背景 我们以建设星云智控官网来做AI编程实践,很多人以为AI已经强大到不需要程序员了,其实不是,AI更加需要程序员,普通人…...
验证redis数据结构
一、功能验证 1.验证redis的数据结构(如字符串、列表、哈希、集合、有序集合等)是否按照预期工作。 2、常见的数据结构验证方法: ①字符串(string) 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...

react菜单,动态绑定点击事件,菜单分离出去单独的js文件,Ant框架
1、菜单文件treeTop.js // 顶部菜单 import { AppstoreOutlined, SettingOutlined } from ant-design/icons; // 定义菜单项数据 const treeTop [{label: Docker管理,key: 1,icon: <AppstoreOutlined />,url:"/docker/index"},{label: 权限管理,key: 2,icon:…...