利用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的大致原理。剩下的就是如何代码实现其功能。当然算法调优也是一个漫长的过程。最终实现提升态势感知产品自动化程度,以及实现安全能力的智能化输出。

如若转载,请注明原文地址: http://www.4hou.com/technology/13181.html

转载于:https://www.cnblogs.com/bonelee/p/10214203.html

利用MLAI判定未知恶意程序——里面提到ssl恶意加密流检测使用N个payload CNN + 字节分布包长等特征综合判定...相关推荐

  1. 腾讯市值1个月蒸发1700亿美元;微软发布Windows 11 首个Beta版本; 恶意程序开发者转向新兴编程语言 | 架构视点...

    推荐大家关注一个公众号 点击上方 "编程技术圈"关注, 星标或置顶一起成长 后台回复"大礼包"有惊喜礼包! 每日英文 It doesn't matter how ...

  2. 恶意程序利用Linksys路由器漏洞在路由器中传播

    名叫TheMoon的恶意程序正利用Linksys路由器的一个漏洞在Linksys路由器中迅速传播和扩散.这个漏洞允许执行未授权代码,一旦感染了病毒,路由器会开始扫描寻找其它存在相同漏洞的路由器.病毒的 ...

  3. 一波未平,一波又起:“永恒之石”恶意程序利用七种NSA“网络武器”

    继WannaCry席卷全球后,恶意软件永恒之石(EternalRock)浮出水面,该恶意程序利用了黑客组织从NSA窃取的七种"网络武器". NSA"网络武器"被 ...

  4. 恶意软件分析实战02-分析3个恶意程序

    1. Lab03-01 vt上一搜发现鉴别为恶意软件. 拖到PEID内一查,加了一个壳PEncrypt 3.1 Final -> jnukcode. 我好气,脱了我一个多小时没脱下来.想想算了, ...

  5. [转载]中情局数千份机密文档泄露:各种0day工具、恶意程序应有尽有

    转载:http://www.freebuf.com/news/128802.html 维基解密最近再度获取到了数千份文件--据说这些文件是来自CIA(中央情报局),文件细数了CIA所用的网络入侵工具及 ...

  6. 病毒木马查杀实战第026篇:“白加黑”恶意程序研究(上)

    前言 众所周知,传统的恶意程序都是由单一文件构成的.从而实现某一种或者几种恶意功能. 而这类的恶意程序为了避免被发现以及被查杀,往往会採用五花八门的自我隐藏技术以及免杀技术,病毒程序的作者非常多时候也 ...

  7. 病毒木马查杀实战第027篇:“白加黑”恶意程序研究(中)

    前言 这次讨论的是一个真实的非常典型的利用"白加黑"手段进行破坏的团伙,我能深刻地感受到它们在很多方面确实是花了一些心思的,也就是在隐藏自身行为,诱惑纯洁的大众进行点击从而得到运行 ...

  8. 网络安全专家发现了一款由微软数字签名的“FiveSys”新恶意程序

    导读 Bitdefender 的网络安全专家近日发现了一款名为"FiveSys"的新恶意程序,它是一个 rootkit,实际上是由微软自己进行数字签名的. FiveSys 恶意驱动 ...

  9. 无需宏,PPT也能用来投递恶意程序

    近日,网络犯罪者开发出了一种新型攻击技术,它可以利用发送PPT文件和鼠标悬停来让用户执行任意代码,并下载恶意程序. 使用经过特制的Office文件--特别是Word文档来传播恶意软件其实并不少见,此类 ...

最新文章

  1. Matlab与线性代数 -- 方阵的行列式
  2. 青龙羊毛——飞鸽花转省毛毛(搬运)
  3. Qt中关于undefined reference to `vtable for故障总结
  4. java资源争夺_所有满足类似需求,争夺同类资源的组织和个人统称为(   )。...
  5. kaggle(01)-泰坦尼克号问题
  6. linux 防御***
  7. [C++]用VC++来设置获得注册表的键值(问题解决)
  8. 鸿蒙电视应用市场,任正非:鸿蒙系统已上线,未来将被应用到手机、平板、电视系列产品上...
  9. php删除对象中的一个数组,PHP:从数组中删除对象
  10. 沫沫金:EasyUI 固定列
  11. 二叉树遍历之层次遍历算法入门详解
  12. html涂鸦画板插件,sketchpad-简单的HTML5 Canvas涂鸦画板插件 -HTML5功能
  13. Android攻城狮四大组件之Service
  14. 基于搜狗微信爬取微信公众号的文章
  15. 入门级前端选手半路接手vue项目实录
  16. 系统非功能需求(质量属性)
  17. 实验6-4 单词首字母大写 (15 分)
  18. android 计步器 开发,Android计步器开发
  19. css设置背景图片随滚动缓慢滚动_h5页面背景图很长要有滚动条滑动效果的实现...
  20. sklearn Gaussian Processes(高斯过程)

热门文章

  1. go语言学习,channel消费者和生产者
  2. Linux strace 跟踪进程信息
  3. c#获取父类_C#——父类中的this的指向,及用反射获取当前类所在的Type | 学步园...
  4. java script 6 折线_Java Script学习 6(转)
  5. 光遇自动弹琴脚本代码_光遇弹琴辅助软件下载-光遇自动弹琴脚本代码下载v1.0_86PS软件园...
  6. 计算机基础知识考试模拟试题,计算机基础知识模拟试题及答案
  7. oracle11g到底是什么6,Oracle11g六个重要进程
  8. 二进制补码求值用c语言,C语言程序设计第2章数据类型.运算符与表达式.ppt
  9. 关于修改session的生存时间以及回收机制
  10. Java的this和super关键字详解