利用MLAI判定未知恶意程序——里面提到ssl恶意加密流检测使用N个payload CNN + 字节分布包长等特征综合判定...
利用ML&AI判定未知恶意程序
导语:0x01、前言 在上一篇ML&AI如何在云态势感知产品中落地中介绍了,为什么我们要预测未知恶意程序,传统的安全产品已经无法满足现有的安全态势。那么我们要使用新的技术手段武装我们的安全产品,通过大数据的手段更好的解决未知恶意程序
0x01、前言
在上一篇ML&AI如何在云态势感知产品中落地中介绍了,为什么我们要预测未知恶意程序,传统的安全产品已经无法满足现有的安全态势。那么我们要使用新的技术手段武装我们的安全产品,通过大数据的手段更好的解决未知恶意程序给我们带来的危害。
0x02、落地技术架构
一、如何检测
上篇文章讲了大致的落地方法,本文主要是给大家暴露更多的技术细节。
1、IDS Agent还原文件会计算一下MD5hash值与FIleHash缓存系统对比一下,如果有则直接报告为恶意软件,并且附上恶意软件家族分类,如果没有根据聚类算法分成不同的未知分类,不存储该文件,更新缓存,把发生的时间和次数记录一下,为下一步流行度统计使用。
2、如果没有这个文件,那么存储到对象存储(公有云IAAS组件,OSS)。存储完成后向下一个环节投递,发出kafka Topic消息给主程序。设计这个是因为在公有云环境下需要鉴定的文件是海量的,需要一套大数据流转系统缓存。
3、主程序使用多线程的方式启动多个处理单元。接收到kafka消息后,从消息中取出OSS的文件路径,然后下载文件到本地,然后调用动态沙箱的文件送检API接口传递到下一个环节。然后等待沙箱回调函数,有回调消息后,获取沙箱的report,然后把相关信息填充到kafka Topic中向下传递。当然中间可以加数据补齐的流程等。在这有两个分支
分支一:把APICall信息传递给SparkMlib库做动态文件二分类器判断。这里主要是使用GBDT、XGBOOST (具体使用哪个算法需要看准确率、召回率 、F1_score 最终的结果选定)
分支二:网络流量从沙箱镜像出来,然后向网络重放一下。通过异常流量检测引擎,这四个检测又是4个ML&AI判断模型。
恶意SSL流量检测
特征工程,有具体意义特征->CNN
·flowMetadata[上行字节数/下行字节数/上行报数/下行包数/持续时间]
·sequence of packet[长度序列/间隔时间序列]
·Byte distribution[字节分布概率]
·TLS header[TLS加密套件/TLS扩展/公钥长度]
前N个包payload 直接转化成图像CNN
合并两个检测结果判断恶意SSL流量
DNS异常域名检测
通过LSTM聚类的方法,找出高度关联的域名和独立点。孤立点设为可疑域名。
DGA域名检测
特征工程主要包含以下3点
·域名随机性(随机性和熵)
·域名长度较长
·n-gram(bigram(相邻双字) )
隐藏通讯信道检测
使用随机森林算法
4、主程序同时需要做静态文件检测,根据不同文件类型送入到不同的类型静态文件分类器。
针对PE/ELF文件处理流程
需要通过yara文件简单判断一下是否加壳&加密。
未加壳&加密经过静态反编译服务中,计算出汇编序列,然后送入到静态PE/ELF分类器判断。
针对其它类型文件,需要不同的ML学习模型判断。
比如说脚本文件powershell,调研一般都有不同的操作码。这都需要深耕细作。
还有比如说webshell检测,也需要对不同的webshell做不同的处理。php马是一个很典型的例子,还有菜刀等。
5、检测结果都发往决策中心。根据多类决策树判断。得出最终结果发往恶意文件家族分类器。
恶意文件家族分类一般使用两种多分类器方法。
机器学习算法推荐使用k-means
深度学习方法建议使用卷积神经网络CNN算法
最后建议再过一遍聚类,找出孤立点。
6、形成恶意文件家族和未知恶意分类。最终存储到ElasticSearch方便提供给前端用户展示。
二、如何训练
通过上述全栈机器学习和深度学习算法的描述,所有模型加起来15+。那么这么多模型如何训练,如何更新是本次换“芯”最重要的部分。
1、那么针对机器学习部分,我们需要保存所提交的样本,无论什么形式都通过流量的形式发送到kafka最终存储到HIVE重,然后导入到spark mlib中进行模型计算。当然,还有一些公网中加入的黑白样本,也是通过同样的形式进入到这个循环中。
2、那些针对深度学习的模型,需要我们建立深度计算GPU服务集群,设备需求规格:24核128G内存/流量50Gbps(20% https流量) NVidia GeForceGTX1080 GPU https:7000QPS计算文本和图像加起来需要8台物理服务器。恶意软件病毒家族分类看规模大约8台可以满足目前带宽情况下的文件还原速度(25万个样本/day)。
3、在有限的资源下,大约1周更新一次所有模型。
0x03、总结
通过以上描述,大家可以基本了解未知威胁检测的ML&AI的大致原理。剩下的就是如何代码实现其功能。当然算法调优也是一个漫长的过程。最终实现提升态势感知产品自动化程度,以及实现安全能力的智能化输出。
转载于:https://www.cnblogs.com/bonelee/p/10214203.html
利用MLAI判定未知恶意程序——里面提到ssl恶意加密流检测使用N个payload CNN + 字节分布包长等特征综合判定...相关推荐
- 腾讯市值1个月蒸发1700亿美元;微软发布Windows 11 首个Beta版本; 恶意程序开发者转向新兴编程语言 | 架构视点...
推荐大家关注一个公众号 点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 It doesn't matter how ...
- 恶意程序利用Linksys路由器漏洞在路由器中传播
名叫TheMoon的恶意程序正利用Linksys路由器的一个漏洞在Linksys路由器中迅速传播和扩散.这个漏洞允许执行未授权代码,一旦感染了病毒,路由器会开始扫描寻找其它存在相同漏洞的路由器.病毒的 ...
- 一波未平,一波又起:“永恒之石”恶意程序利用七种NSA“网络武器”
继WannaCry席卷全球后,恶意软件永恒之石(EternalRock)浮出水面,该恶意程序利用了黑客组织从NSA窃取的七种"网络武器". NSA"网络武器"被 ...
- 恶意软件分析实战02-分析3个恶意程序
1. Lab03-01 vt上一搜发现鉴别为恶意软件. 拖到PEID内一查,加了一个壳PEncrypt 3.1 Final -> jnukcode. 我好气,脱了我一个多小时没脱下来.想想算了, ...
- [转载]中情局数千份机密文档泄露:各种0day工具、恶意程序应有尽有
转载:http://www.freebuf.com/news/128802.html 维基解密最近再度获取到了数千份文件--据说这些文件是来自CIA(中央情报局),文件细数了CIA所用的网络入侵工具及 ...
- 病毒木马查杀实战第026篇:“白加黑”恶意程序研究(上)
前言 众所周知,传统的恶意程序都是由单一文件构成的.从而实现某一种或者几种恶意功能. 而这类的恶意程序为了避免被发现以及被查杀,往往会採用五花八门的自我隐藏技术以及免杀技术,病毒程序的作者非常多时候也 ...
- 病毒木马查杀实战第027篇:“白加黑”恶意程序研究(中)
前言 这次讨论的是一个真实的非常典型的利用"白加黑"手段进行破坏的团伙,我能深刻地感受到它们在很多方面确实是花了一些心思的,也就是在隐藏自身行为,诱惑纯洁的大众进行点击从而得到运行 ...
- 网络安全专家发现了一款由微软数字签名的“FiveSys”新恶意程序
导读 Bitdefender 的网络安全专家近日发现了一款名为"FiveSys"的新恶意程序,它是一个 rootkit,实际上是由微软自己进行数字签名的. FiveSys 恶意驱动 ...
- 无需宏,PPT也能用来投递恶意程序
近日,网络犯罪者开发出了一种新型攻击技术,它可以利用发送PPT文件和鼠标悬停来让用户执行任意代码,并下载恶意程序. 使用经过特制的Office文件--特别是Word文档来传播恶意软件其实并不少见,此类 ...
最新文章
- Matlab与线性代数 -- 方阵的行列式
- 青龙羊毛——飞鸽花转省毛毛(搬运)
- Qt中关于undefined reference to `vtable for故障总结
- java资源争夺_所有满足类似需求,争夺同类资源的组织和个人统称为( )。...
- kaggle(01)-泰坦尼克号问题
- linux 防御***
- [C++]用VC++来设置获得注册表的键值(问题解决)
- 鸿蒙电视应用市场,任正非:鸿蒙系统已上线,未来将被应用到手机、平板、电视系列产品上...
- php删除对象中的一个数组,PHP:从数组中删除对象
- 沫沫金:EasyUI 固定列
- 二叉树遍历之层次遍历算法入门详解
- html涂鸦画板插件,sketchpad-简单的HTML5 Canvas涂鸦画板插件 -HTML5功能
- Android攻城狮四大组件之Service
- 基于搜狗微信爬取微信公众号的文章
- 入门级前端选手半路接手vue项目实录
- 系统非功能需求(质量属性)
- 实验6-4 单词首字母大写 (15 分)
- android 计步器 开发,Android计步器开发
- css设置背景图片随滚动缓慢滚动_h5页面背景图很长要有滚动条滑动效果的实现...
- sklearn Gaussian Processes(高斯过程)
热门文章
- go语言学习,channel消费者和生产者
- Linux strace 跟踪进程信息
- c#获取父类_C#——父类中的this的指向,及用反射获取当前类所在的Type | 学步园...
- java script 6 折线_Java Script学习 6(转)
- 光遇自动弹琴脚本代码_光遇弹琴辅助软件下载-光遇自动弹琴脚本代码下载v1.0_86PS软件园...
- 计算机基础知识考试模拟试题,计算机基础知识模拟试题及答案
- oracle11g到底是什么6,Oracle11g六个重要进程
- 二进制补码求值用c语言,C语言程序设计第2章数据类型.运算符与表达式.ppt
- 关于修改session的生存时间以及回收机制
- Java的this和super关键字详解