本篇文章将介绍一篇针对网络安全问题,运用强化学习方法寻找最优的网络防御策略。
这篇文章主要贡献是将攻击者和防御者之间的互动建模为一个马尔可夫博弈过程,以及为减小计算量和增加算法的收敛性使用的两个小trick,创新点没有那么突出,但对网络攻击防御的过程建模值得看看。
摘要
提出了一种针对入侵防御用例的安全策略自动查找方法。将攻击者和防御者之间的互动建模为一个马尔可夫博弈,在没有人为干预的情况下,让攻击和防御策略通过强化学习和自演来进化
模型
将入侵防御建模为一个零和马尔可夫博弈(Zero-sum Markov game),涉及攻击者代理和防御者代理
方法
强化学习算法
使用REINFORCE、PPO和PPO-AR(Autoregressive Policy Representation)算法,并且参数化策略,PPO-AR是在PPO的基础上做出了一定的改进:
原本的状态空间为 ∣ N ∣ ⋅ ( m + 1 ) |\mathcal{N}|\cdot(m+1) ∣N∣⋅(m+1)简化为 ∣ N ∣ + ( m + 1 ) |\mathcal{N}|+(m+1) ∣N∣+(m+1)
第一步选择哪个节点进行进攻或防御,第二步选择哪种攻击或防御方式。
实验
本文中已给出了源代码:https://github.com/Limmen/gym-idsgame
PPO-AR超出基准算法,攻击者在场景1和场景2的胜率低于场景3,反映了场景1和场景2的初始防御较强,而场景3的初始防御较弱。同样,在图3最左边两列的相似曲线上,可以看到场景1和场景2有相似的防御。
检查学习到的攻击策略:我们发现学习到的攻击策略是确定性的,一般由两个步骤组成:(1)进行侦察,收集邻近节点的信息;(2)、利用识别出的漏洞。此外,学习到的防御策略也大多是确定性的,包括加固关键节点 N d a t a N_{data} Ndata和修补所有节点识别出的漏洞。最后,我们还发现防御者学会了利用可预测的攻击模式,并在攻击者可能下一次攻击的地方进行防御。
PPO-AR在场景1、2之后策略收敛,然而,在场景3中,方法随着振幅的增加而振荡。振荡表明防御代理对对手策略的改变和超拟合做出了反应。尽管经验池池技术已经被引入来缓和振荡,但从结果中很明显,这在某些场景中是不够的。
最终,实现了将威胁识别与攻击预测结合起来的随机防御策略,以及将侦察与目标利用结合起来的随机攻击策略
强化学习具有对策略进行广泛探索的特性,能找到对未知网络攻击的防御和恢复的最佳策略,促进网络安全方面的发展
✔️ 网络安全研究小白,如有问题和建议,欢迎一起讨论