热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

《Web安全之机器学习入门》一1.4人工智能在安全领域的应用

1.4 人工智能在安全领域的应用

人工智能在安全领域的应用还属于起步阶段,各大安全公司以及互联网巨头都投入大量的人力物力,试图使用人工智能的技术来颠覆安全这个行业,目前在黄反鉴定、恶意链接、业务风控领域、病毒分析、APT检测方面都取得了不错的进展,典型案例的就是2015年的一次数据挖掘比赛。
2015年,微软在Kaggle上发起了一个恶意代码分类的比赛,并提供了超过500G的原始数据。有意思的是,取得第一名的队伍三个人都不是搞安全出身的,所采用的方法与我们常见的方法存在很大不同,展现了机器学习在安全领域的巨大潜力。早期的反病毒软件大都单一的采用特征匹配的方法,简单的利用特征串完成检测。随着恶意代码技术的发展,恶意代码开始在传播过程中进行变形以躲避查杀,此时同一个恶意代码的变种数量急剧提升,形态较本体也发生了较大的变化,反病毒软件已经很难提取出一段代码作为恶意代码的特征码。Kaggle比赛中最重要的环节就是特征工程,特征的好坏直接决定了比赛成绩。在这次Kaggle的比赛中冠军队伍选取了三个“黄金”特征:恶意代码图像、 OpCode n-gram 和 Headers 个数,其他一些特征包括 ByteCode n-gram ,指令频数等。机器学习部分采用了随机森林算法,并用到了 xgboost 和 pypy 加快训练速度,最终他们检测的效果超过了常见传统检测方式,取得了冠军。
1.恶意代码图像
这个概念最早是2011年由加利福尼亚大学的 Nataraj 和 Karthikeyan 在他们的论文 Malware Images: Visualization and Automatic Classification 中提出来的,思路非常新颖,把一个二进制文件以灰度图的形式展现出来,利用图像中的纹理特征对恶意代码进行聚类。此后,有许多研究人员在这个思路基础上进行了改进和探索。就目前发表的文章来看,恶意代码图像的形式并不固定,研究人员可根据实际情况进行调整和创新。

  1. OpCode n-gram
    n-gram 是自然语言处理领域的概念,早期的语音识别技术和统计语言模型与它密不可分。 n-gram 基于一个简单的假设,即认为一个词出现的概率仅与它之前的n-1个词有关,这个概率可从大量语料中统计得到。例如“吃”的后面出现“苹果”或“披萨”的概率就会比“公路”的概率大(正常的语料中基本不会出现“吃公路”这种组合),可以看出 n-gram 在一定程度上包含了部分语言特征。

将 n-gram应用于恶意代码识别的想法最早由Tony等人在2004年的论文 N-gram-based Detection of New Malicious Code 中提出,不过他们的方法是基于 ByteCode 的。2008年 Moskovitch 等人的论文 Unknown Malcode Detection Using OPCODE Representation 中提出利用 OpCode 代替 ByteCode 更加科学,如图1-6所示。

《Web安全之机器学习入门》一 1.4 人工智能在安全领域的应用

在移动应用领域,使用类似的思路也取得了不错的成绩,我的同事王磊使用深度学习识别恶意APK,准确率达到99.96%,召回率达到了80%,2016年,反映该研究成果的论文“AI Based Antivirus: Can Alphaav Win The Battle in Which Man Has Failed?”被享誉国内外的Blackhat会议收录并做了相关演讲。
恶意APK伴随移动互联网井喷式的发展,其数量在近几年几何级别增长,如图1-7所示。传统的基于规则的检测技术已经无法覆盖如此大量的恶意程序。

《Web安全之机器学习入门》一 1.4 人工智能在安全领域的应用

王磊团队在大量的人工分析恶意APK的工作中发现,人工分析的过程很类似图像识别的过程。深度学习在图像识别领域有着成熟的应用,是否可以通过提取APK特征,通过深度学习的方法来自动化识别恶意APK呢?如图1-8所示。

《Web安全之机器学习入门》一 1.4 人工智能在安全领域的应用

王磊团队对APK的特征提取主要分为三大类特征:
结构化特征,包括APK申请的权限的个数,资源文件中包含的图像文件个数和参数大于20的函数的个数等。
统计类特征,包括近千条统计特征。
长期恶意APK检测的经验总结的特征,包括资源文件中是否包含可执行文件,assets文件夹中是否包含APK文件等。
特征提取过程如图1-9所示。

《Web安全之机器学习入门》一 1.4 人工智能在安全领域的应用

归一化处理一千多个特征,取值控制在-1和1之间,如图1-10所示。

《Web安全之机器学习入门》一 1.4 人工智能在安全领域的应用

使用深度学习网络训练,训练过程如图1-11所示。

《Web安全之机器学习入门》一 1.4 人工智能在安全领域的应用

整个训练过程中使用超过了15万个样本,训练使用了百度开源的深度学习框架Paddle。本书的第二部中关于深度学习的案例也主要使用Paddle和TensorFlow框架编写。


推荐阅读
  • 技术分享:从动态网站提取站点密钥的解决方案
    本文探讨了如何从动态网站中提取站点密钥,特别是针对验证码(reCAPTCHA)的处理方法。通过结合Selenium和requests库,提供了详细的代码示例和优化建议。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • Python 异步编程:ASGI 服务器与框架详解
    自 Python 3.5 引入 async/await 语法以来,异步编程迅速崛起,吸引了大量开发者的关注。本文将深入探讨 ASGI(异步服务器网关接口)及其在现代 Python Web 开发中的应用,介绍主流的 ASGI 服务器和框架。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 在 Windows 10 中,F1 至 F12 键默认设置为快捷功能键。本文将介绍几种有效方法来禁用这些快捷键,并恢复其标准功能键的作用。请注意,部分笔记本电脑的快捷键可能无法完全关闭。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • PHP数组平均值计算方法详解
    本文详细介绍了如何在PHP中计算数组的平均值,涵盖基本概念、具体实现步骤及示例代码。通过本篇文章,您将掌握使用PHP函数array_sum()和count()来求解数组元素的平均值。 ... [详细]
  • 微软Exchange服务器遭遇2022年版“千年虫”漏洞
    微软Exchange服务器在新年伊始遭遇了一个类似于‘千年虫’的日期处理漏洞,导致邮件传输受阻。该问题主要影响配置了FIP-FS恶意软件引擎的Exchange 2016和2019版本。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
  • 本文深入探讨了HTTP请求和响应对象的使用,详细介绍了如何通过响应对象向客户端发送数据、处理中文乱码问题以及常见的HTTP状态码。此外,还涵盖了文件下载、请求重定向、请求转发等高级功能。 ... [详细]
author-avatar
左文欣936
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有