机器学习在网络安全领域的应用(一)
将机器学习应用到网络安全已成为近年来安全领域的研究热点。针对安全领域的5个研究方向(指网络空间安全基础、密码学及其应用、系统安全、网络安全、应用安全),机器学习在系统安全、网络安全、应用安全三个方向有大量的研究成果,而在网络安全基础和密码学及其应用方面的研究较少涉及。其中,系统安全以芯片、系统硬件物理环境及系统软件为研究方向;网络安全主要以网络基础设施、网络安全监测为研究重点;应用层面则关注应用软件安全、社会网络安全。
从机器学习应用于网络安全的角度出发,下图右侧所示是机器学习在网络安全中的一般应用流程,左侧则是上述3个主要研究方向的典型应用。
机器学习被认为是一组能够利用经验数据来改善系统自身性能的算法集合,它包括分类、聚类、降维等问题,它在安全研究中的一般应用流程包括这六个阶段:安全问题抽象--》数据采集--》数据预处理--》安全特征提取--》模型构建--》模型验证--》模型效果评估。
安全问题抽象化
安全问题抽象是指将网络空间安全问题映射为机器学习能够解决的类别,问题映射的恰当与否直接关系到机器学习技术解决网络空间安全问题成功与否。比如,对劣质芯片或硬件木马的检测、伪基站检测、虚拟化安全、信用卡欺诈等都可以抽象为分类问题;设备身份认证、社交网络异常账号检测、网络入侵检测等可以抽象为聚类问题;用户身份认证、恶意/异常/入侵检测、取证分析、网络舆情等问题既可以抽象为分类问题也可以抽象为聚类问题。
数据采集
数据采集是机器学习应用于网络空间安全的前提条件,它主要利用各种软件(比如wireshark、Netflow、日志收集工具等),主要从系统层、网络层及应用层采集数据,系统层数据用于系统安全问题的与研究,这类数据主要有芯片信息、设备信息、系统日志信息等。网络层数据指与具体网络活动密切相关的数据,目前常用的是网络包数据或者网络流数据。应用层数据指网络空间中的各类应用软件产生及存储的数据,如web日志信息、用户个人信息。
数据预处理及特征提取
在真实网络环境中,采集的数据可能有大量的缺失值、噪音也可能由于人工录入失误而产生异常点,因此需要对数据进行清洗以及归一化处理。(比如,从企业内部采集的TCP流数据,首先需要剔除重复数据、去除噪音等规范化操作,然后对清洗的数据进行聚合、归一化处理等操作)
如果采集的数据集中某个特征缺失值较多,通常会将该特征舍弃,否则可能会产生较大的噪声,影响机器学习模型的效果。如果缺失值较少,可以采用固定值填充、均值填充、中位数填充、插值法或者随机数填充等方法。如果存在异常值则直接将该条数据删除。在一些安全问题中国,有时候异常数据样本或恶意数据样本远远少于正常样本,对于这种非平衡数据集,通常采用过采样或欠采样方法构造平衡数据集。(对数据量大的正例采用欠采样,对数据量小的负例采用过采样)。
之后,将数据集进行分割,分成三个集合:训练集、验证集、测试集。(ps;训练集和测试集大家应该都了解),验证集主要用于验证模型及参数调优。常用的数据集分割方法有随机采样和交叉验证。
特征提取指从数据中提取最具有安全问题本质特性的属性,比如从恶意网页的识别中,提取主机信息特征、网页内容特征、静态连接及动态网页行为关系等,不过,这方面,提取特征虽然比较困难,机器学习中比较火的深度学习可以实现自动提取特征
模型构建
在机器学习领域,按照数据集是否有标记,将其分为监督学习和无监督学习,对于监督学习,比如说:垃圾邮件检测中的每条数据标记为“垃圾邮件”或"非垃圾邮件"。在非监督学习中,数据不包含标签信息,但可以通过非监督学习算法推断出数据的内在关联,例如社交网络账号的检测中对好友关系、点赞行为的聚类,从而发现账号内在的关联。近几年来,深度学习凭借强大的自动提取特征的能力,被用于解决异常协议检测、恶意软件检测、网络入侵检测等方面。另外,深度学习与增强学习相结合的深度增强学习算法还可以应用于移动终端恶意检测。
将选定的算法和训练数据集用于模型训练时,往往需要面临调参的挑战,这需要依据个人的经验进行。
模型验证
模型验证主要采用K倍交叉验证法,它将数据预处理后的训练数据集划分成k个大小相似且互斥的子集,每个子集尽可能保持数据分布的一致性,然后用k-1子集的并集作为训练集,剩余子集作为验证集,从而获得k组训练数据集和验证集,可以进行k此训练和验证测试,最终返回的结果是这k次验证测试结果的均值。
模型效果评估
安全领域一般常用的有正确率、查准率、查全率,正确率是分类正确的正常样本数与恶意样本数占样本总数的比例。查准率(精度)是指被正确识别的正常样本数占被识别为正常样本的比例,查全率(召回率)则是指被正确识别的正常样本与正确识别的正常样本和被错误识别的恶意样本之和的比例(简单说即是被正确识别的正常样本占)。公式一般如下:
以上部分,均来自于我阅读《机器学习在网络空间安全研究中的应用》(计算机学报)的部分总结,希望以后作为可以回顾的笔记来使用。
机器学习在网络安全领域的应用(一)相关推荐
- IEEE发布《人工智能与机器学习在网络安全领域的应用》
美国电气和电子工程师协会(IEEE)发布<人工智能(AI)与机器学习(ML)在网络安全领域的应用>报告,指出随着移动设备和物联网设备的爆炸式增长,以及AI/ML技术的日益成熟,人们面临着前 ...
- 机器学习在网络安全领域的应用(二)
机器学习在系统安全研究中的应用: 网络空间中的系统主要指具有独立计算能力的单元计算系统,例如计算机.移动终端等.本节以这些单元计算系统的安全为核心,横跨芯片.系统硬件以及系统软件三个层 ...
- 2022年,AI将给网络安全领域带来什么?
近年来,人工智能(AI)已经成为了我们日常生活中重要的组成部分.各种算法通过执行一系列与市场决策相关的任务,以发现在基本技术实现之外的.与人类习惯有关的洞察.在YouTube和TikTok上使用的建议 ...
- 基于机器学习的网络安全态势感知
人工智能技术与咨询 点击蓝字 · 关注我们 来源:<计算机科学与应用> ,作者杨怡等 关键词: 机器学习:态势感知:关联分析:攻击场景重建 摘要: 摘要: 在传统网络防御手段抵御攻击的基础 ...
- 机器学习与网络安全(一)
深度学习技术目前是人工智能这个领域里面最核心的一门技术. 首先就是说要从人工智能来谈起,人工智能它是研究开发用于模拟延伸和扩展人类智能的理论方法技术以及应用系统的一门新的技术科学.人工智能好早以前就有 ...
- 盘点 | 2020年网络新技术及人工智能在网络安全领域的特点
回顾2020年,网络新技术新应用继续在网络安全领域大施拳脚,其中人工智能.区块链.量子信息技术对网络安全的两面性影响随着技术的发展呈现出新的特点:第五代移动通信技术(5G).物联网.边缘计算与雾计算等 ...
- 英国脱欧但网络安全领域重视未减
在全民退欧的热潮下,英国政府仍然对网络安全倾注了巨大的心力.日前,英国政府支持的网络安全加速器正在企业中集思广益以对抗网络犯罪.该加速器是由伦敦网络(Cyber London)和信息安全技术中心(CS ...
- 为什么网络安全领域需要更多的女性?
全球范围内网络安全领域的就业人口中,女性只占到11%.这项数据足以敲响警钟:对如此重要领域的人才短缺问题来说.据估算,目前至少有100万网络安全职位的缺口--这个数字还在飞速增长. 这种情况凸显了政府 ...
- 机器学习在信息安全领域的应用现状和畅想
机器学习在信息安全领域的应用现状和畅想 写在前面 从2013年开始工作到现在,混迹信息安全领域已经五年多了.这么长时间,我学习技术只有输入,近于零输出.比如学Web渗透,都是在乌云.Freebuf.安 ...
最新文章
- 修复“-bash: locate: command not found”
- 【转】IOS中Json解析的四种方法
- Clojure入门教程: Clojure – Functional Programming for the JVM中文版
- SPOJ_SUBLEX
- python——学习笔记3
- 转载:数据库表结构设计方法及原则
- JavaEE基础(01):Servlet实现方式,生命周期执行过程
- 视觉定位VBL 视觉里程计VO 视觉SLAM 区别与联系
- linux不停机释放日志,Kafka在线修改topic日志保存时长(不停机,不重启)
- win10怎么更新flash到最新版本【系统天地】
- 9.郝斌C语言笔记——变量的作用域和存储方式
- python模拟鼠标点击
- 基于JavaScript的Web端股票价格查看器——大道
- Azure微软云(部署一台虚拟机云服务器)
- 干货分享!java进阶视频百度云
- NeRF神经辐射场学习笔记(十)— BungeeNeRF(CityNeRF)实现以及代码注释
- 【PC工具】更新微信语音转mp3保存备份方法及工具,微信语音备份方法,silk转mp3工具...
- 每个程序员书柜必备的编程书籍
- MemoryStream 的一些用法
- 微信小程序自定义底部弹窗
热门文章
- complex函数python_Python中complex函数有什么用?
- 安装redhat系统步骤图解_RedHat Linux系统U盘安装图文教程 | Visant-i 行客
- CSS基础知识汇总{主要内容: CSS语法结构,类选择器,后代选择器,交集选择器等}
- GreatSQL配置到系统systemd服务
- Devoxx法国2012天3
- LC-3 中断实验 (深大计系1实验5)
- 生活污水是怎么处理的
- 产品调研,如何避免「浮于表面」?
- 关于在Unity2018中使用Vuforia实现基础图片识别AR展现效果
- Excel中通过FREQUENCY统计分数段