写点什么

AI 与 Android 漏洞挖掘那些事儿

  • 2017-11-30
  • 本文字数:3041 字

    阅读完需:约 10 分钟

11 月 17 日,由阿里云主办的首届先知创新大会在京举行。来自量子技术、信息安全和人工智能等领域的技术专家齐聚一堂共同探讨中国原创安全技术,大会的初衷是希望成为中国原创安全技术的舞台,让安全研究者看到未来,让他们在安全技术上获得更多的创新和突破。更重要的是,为产业带来贡献助力解决社会问题是阿里一直以来对技术研究的坚持。

当前,最热门的技术非 AI 莫属,事实上,AI 已经在一些领域上展示了自身的应用潜力,在美国国防部高级研究计划局举办的“网络安全挑战赛”上,我们已经看到 AI 在网络安全上的应用,那么在移动端的安全方面,AI 可以发挥怎样的效力呢?蚂蚁金服巴斯光年安全实验室技术专家仲花和此彼就在本次先知创新大会上发表了《漏洞挖掘的工业时代尾声,Android 系统代码审计新思路与 AI 漏洞挖掘的结合》的主题演讲,介绍了一种批量挖掘 Android 系统漏洞的全新角度,关注被忽视的底层数据结构,以及通过代码审计发现 Android 系统中攻击面的方法,并展示相关实例。本文是对两位老师演讲后的专访整理。

受访嘉宾简介:

仲花 (温瀚翔),专注于 AOSP 漏洞挖掘与制作提权漏洞利用。发现并报告 CVE-2017-0418,CVE-2017-0665, CVE-2017-0681,CVE-2017-0737 等多个 Android 系统漏洞并获得 Google 致谢。现于蚂蚁金服巴斯光年安全实验室从事 Android 漏洞挖掘及利用相关研究。​

此彼 (吴潍浠) ,专注于研究 Android 安全。第一位 Google Android 安全奖金获得者。2016 年用自己发现的 Android 漏洞成功 root 当时 Google 官方搭载最新的 Android 系统的手机 Nexus 6 。曾从事 Android 恶意软件分析、反混淆、加密和漏洞挖掘利用等,现于蚂蚁金服巴斯光年安全实验室从事 Android 漏洞挖掘及利用相关研究。

Android 的漏洞有哪些?

仲花和此彼两位老师主要从 Android 漏洞的类型、高发点和触发途径为我们介绍了当前 Android 系统中的安全问题。

漏洞类型

Android 系统常规漏洞类型有内存拷贝不当导致的堆栈溢出、计数器溢出导致的整形溢出、越界的读和写、UAF、类型混淆、TOCTOU 等,还有一种是缺少权限检查,不过这种漏洞一般出现在 framworks 层的代码中,让我们比较容易地以高权限执行代码。

漏洞高发点

Android 系统漏洞的高发点一般在系统服务进程如 system_server 或 mediaserver 中;应用所依赖的一些 framework 层调用比如 WiFi 的 API 调用,跨平台的第三方库如 Skia,以及各种多媒体解码库,还有厂商的一些硬件相关的音视频编解码以及图形图像加速解决方案的支持库。

漏洞触发路径

触发路径主要有以下三种:

  1. 浏览器中的漏洞。这是最具有攻击性的,可以远程触发还可以造成代码执行;
  2. 文件解析漏洞。这种漏洞在 stagefright 后已经被 Android 系统的安全策略不断削弱,会造成影响但却不容易进行远程代码执行。
  3. 在手机本地的提权。应用程序通过与高权限的进行进行 Binder 通信,从而尝试以高权限进程的上下文执行代码。

AI 怎么进行漏洞挖掘?

AI 用于漏洞挖掘是基于遗传算法,遗传算法需要找到一个用例,能触发漏洞。首先,有一个用例的集合,变异函数就是先把一个或一个以上用例拿出来变异,放到适应函数里面进行运算,看这个新变异出来的用例是否是有价值的,如果有价值,就放到用例集合里面去,这是模拟生物进化的原理,通过变异和适应函数来筛选用例,即生物繁殖和适应环境。变异筛选逐渐把用例演化成能走入未走过的代码的用例,我们直接就相当于攻击者,就像军事演习一样,自己攻击自己的代码,模拟攻击者,攻击自己的软件,找出薄弱点即安全漏洞。

人工漏洞挖掘 vs AI 漏洞挖掘

传统的漏洞挖掘其实就是人盯着源代码看,通过反汇编别人编译已经完成的产品,分析运行原理,推算在哪种情况下可能会出现问题,然后试着去实践一下看看是否会真的产生问题,如果会,说明这有安全问题,从而达到发现漏洞的目的。

而 AI 是基于遗传算法、进化算法,它是根据程序内部的反馈运行的。如果发现当前用例促使程序内部在工作流程上有新的动作,从而推测新的动作可能会发生一些问题,那么我就重复进行这样的动作,并在这种动作的基础上稍加修改,其实就是自我尝试改进的过程。

由于 AI 在每秒中都会尝试成百上千次,并且可以快速地进行迭代,而人在跟踪代码执行的过程是很缓慢的,人为了弥补这样的不足,一般会通过类似符号类符号执行来猜测,必须进行高度抽象地猜测,就像下围棋一样,要在很高的层次上进行判断,是自我感觉的过程。而 AI 不一样,它可以把全部可能走入分支都尝试去走。再者,AI 可以全天候地工作,这是人无法做到的。

为何选 Android 而不是 iOS

虽然在苹果系统和 Android 系统上的漏洞挖掘大体上没有什么区别,但目前来看,在实践和适配的过程中,由于苹果有一些黑盒的程序,还是需要大量的人工参与的,而因为 Android 是开放的,而且文档很丰富,操作起来更方便。而且由于 Android 一直开源,文档也多,所以攻击 Android 的成本要比 iOS 低,所以大家都比较热衷于攻击 Android,Android 上的安全问题也就更加险峻,所以目前暂时选择在 Android 上用 AI 进行漏洞挖掘。

AI 漏洞挖掘与逃逸攻击

所有的攻击都是有场景的,逃逸攻击也不例外,逃逸攻击的场景一般指存在一个判别网络,逃逸攻击就是欺骗这个判别网络,让他识别成另一个东西。而漏洞挖掘是挖掘自己产品的漏洞,在这个场景中攻击者并没有参与来进来,也没有使用神经网络的判别,所以就没有逃逸攻击的问题。

AI 未来还能在安全领域做些什么?

机器漏洞挖掘还将在 PC 端和服务器上进行大规模训练。还有就是 Google 在手机上引入的 TensorFlow——手机上用的训练网络, 可能会产生新的安全问题,因为 AI 本身也是一个系统,它本身也会产生安全问题,就像上文提到的逃逸攻击那样。AI 经过大量训练之后,它内部会有训练出来的类似于算法的一个东西,然后可以通过生成对抗网络,训练出这个算法的逆算法去跟它进行对抗。

AI 为何受热捧?

目前的算力已经达到了一个瓶颈,摩尔定律已经可能不起作用了,过去,算力在疯狂地膨胀,代码可以随便写写,可以不注重效率的方式,但是现在很多问题已经无法用算力解决,只能通过人工智能的方式,像经验主义,向实际的解决方法逼近,在这种情况下去近似地解决一个问题,不可能是完美解决。

从国家的层面上来讲,现在人工智能已经成为了国家的战略,这是一个新的时代方向,是一个大趋势,大家都在投入。一个新的技术的投入会导致什么呢?这个技术的门槛会大大降低,为什么这么说呢?众所周知,现在很多框架都有了,直接调算法就行了,你只需要判断这个环境是否适用于这个算法,然后再调参数就 OK 了,所以说它的门槛已经被大大降低了。

从行业的角度来看,谷歌、微软和国内互联网巨头 BAT 起到了很好的带头作用,他们搭建了一些好的平台给一些创业型企业使用,不仅打开自己的知名度,也培养了大量的 AI 人才,在这一点上,我们国家的人才实力是有机会超越美国的。

传统开发人员应何去何从?

未来既懂传统技术又懂人工智能技术的开发人员将会很受市场欢迎,在现实中,我们需要专精于一个技术,但同时是我们还需要了解人工智能技术,因为了解人工智能的某些算法在将来可能会在你这个领域派上用场。

虽然很多人工智能技术会取代人类之前低效的工作,但是它毕竟还没有发展到超过人类智慧的程度,人类看事情的纬度会比机器多,我们知道这个东西什么时候该适用于什么经验,然后调到一个合适的点让机器去学习经验而不是完全地委派出去。所以机器还不能完全取代人,开发人员能做的就是保持一颗积极向上的心态,继续学习,跟紧时代的步伐,而不是过多地忧虑。

公众号推荐:

2024 年 1 月,InfoQ 研究中心重磅发布《大语言模型综合能力测评报告 2024》,揭示了 10 个大模型在语义理解、文学创作、知识问答等领域的卓越表现。ChatGPT-4、文心一言等领先模型在编程、逻辑推理等方面展现出惊人的进步,预示着大模型将在 2024 年迎来更广泛的应用和创新。关注公众号「AI 前线」,回复「大模型报告」免费获取电子版研究报告。

AI 前线公众号
2017-11-30 18:002139
用户头像

发布了 83 篇内容, 共 46.8 次阅读, 收获喜欢 187 次。

关注

评论

发布
暂无评论
发现更多内容

数据仓库分层架构及元数据管理

五分钟学大数据

数据仓库

YARN资源调度三种模型介绍

五分钟学大数据

YARN

MapReduce

xujiangniao

如何高效率的度过一天?

程序员海军

效率 方法论

从操作系统底层的IO原理入手讲解,同时提供高性能开发的实战案例!美团大佬最新总结的1053页Java高并发核心编程笔记!

Java架构之路

Java 程序员 架构 面试 编程语言

Java面试:BIO,NIO,AIO 的区别,别再傻傻分不清楚

Java大蜗牛

Java 程序员 面试 编程语言 后端

全靠这套大厂Java面试题目指南,让我成功斩获 25*16 薪资的offer

飞飞JAva

Java

区块链是什么意思?源中瑞开发BaaS平台促进企业数字转型升级

源中瑞-龙先生

企业数字化转型 #区块链# 源中瑞 Baas

架构实战营详细架构设计文档模板

Geek_e0c25c

北大学霸!手抄万字Java数组笔记,2小时吃透,你确定不拿走?

牛哄哄的java大师

Java 后端

前端项目配置ts,axios,router,vuex

Vue js ts vuex VueRouter

专家解惑 | 关于华为云盘古大模型,你想问的都在这里~

华为云开发者联盟

计算机视觉 nlp 华为云 盘古大模型 预训练

HDFS

xujiangniao

yarn的多租户配置实现资源隔离

五分钟学大数据

YARN

zookeeper的架构

大数据技术指南

zookeeper 5月日更

架构训练营-作业三(消息队列详细架构设计文档)

eoeoeo

架构实战营

Python打包后的EXE文件,如何获取同级目录

IT蜗壳-Tango

5月日更

Golang 实现 RTP

天黑黑

音视频 rtp Go 语言

HDFS的HA以及Yarn的HA高可用

五分钟学大数据

hdfs YARN 5月日更

深入了解 JavaScript 对象

程序员海军

JavaScript 大前端 对象

谷歌大佬的LeetCode算法刷题笔记,详细讲解了刷 LeetCode 时常用的技巧。

Java架构之路

Java 程序员 架构 面试 编程语言

Vue 组件通信的 8 种方式

程序员海军

Vue 大前端 组件通信 引航计划

模板格式不统一?百度AI产品经理为你讲解如何高效构建定制化OCR模型

百度大脑

百度 AI OCR

2021金三银四(拿下5个offer)面试经历,附阿里4面+京东4面【面经分享】

Java 编程 程序员 面试 计算机

京东丨阿里丨携程面试总结,已成功拿到京东offer

Java架构师迁哥

一个江南皮鞋厂的小故事带我理解透了——什么是“代理模式”

Java架构师迁哥

破茧成蝶!从投简历石沉大海到收割5个大厂offer,我只刷了这套面试题!

Java架构追梦

Java 阿里巴巴 架构 面试 offer

spring boot项目TPS压测性能优化

李日盛

Spring Boot 性能调优

涵盖了Java基础+JVM+多线程并发编程+spring全家桶+Linux+数据结构+数据库+nginx+分布式,这份Java技术成长笔记太强了

Java架构之路

Java 程序员 架构 面试 编程语言

所谓软件测试工作能力强,其实就是这5点

程序员阿沐

软件测试 自动化测试 测试工程师 黑盒测试 白盒测试

架构师实战营,模块三:架构设计详细文档

ifc177

#架构实战营

AI与Android漏洞挖掘那些事儿_Android/iOS_覃云_InfoQ精选文章