IOS漏洞频出!世界上真的存在没有漏洞的手机吗?
CVE-2016-0844,这串毫不性感的代码是一个漏洞的名字。
通过这个漏洞,黑客可以拿到 Android 手机内核最高权限,在主人不知情的情况下翻看查看聊天记录、银行卡密码、随时静默拍照、向任意号码发信息、打电话。
为此,谷歌向这个漏洞的发现者——冰刃实验室——发去了一封致谢函。如果你是网络安全爱好者,冰刃(IceSword)这个字眼一定在你心中占据着一席神坛。2004年,这款几乎可以查杀所有木马的软件在圈子里声名鹊起,引起了各大网络安全公司的注意。而它的作者,竟然是一位在校的学生。他就是潘剑锋。
冰刃的简洁和灵性散发出一种出只有黑客们才可以欣赏的美。如今在各大论坛上,还依然有诸多仰慕者追随着潘神的名号,传扬着他的传说。而潘神却低调地走出光环之外,修炼至今。
冰刃实验室,正是他的回归。
【IceSword 冰刃软件截图】
{潘神的迷宫}
潘剑锋坐在雷锋网(搜索“雷锋网”公众号关注)记者对面,一脸平静地说,其实这个漏洞并没有太多可说的,只是一个新的“系统提权漏洞”而已。
事实上,“系统提权漏洞”是拿到Root权限的最后也是最难的一跃,在谷歌的评价体系里毫无争议地属于高危级别漏洞。根据谷歌的致谢数据,每年这一级别的漏洞致谢仍是屈指可数。但在潘神眼里,这种形式的漏洞是一个经典形式,他只是为这个漏洞家族又添了一个新丁而已。这大概像一个学霸,看到大家都考95分,自己又有什么可高兴的呢?
对于这个曾经把对X86操作手册倒背如流,对系统内核技术如痴如醉的“技术宅”来说,他的目标并不是找到那个最坚固的攻城武器,而是制造出无人可破的防御系统——一个让图谋不轨的黑客永远迷失的迷宫。
对系统底层技术的了解,增加了他制定这个目标的底气。他把操作系统被拆分为逻辑背后的一组组代码。就好像一位建筑家,可以把摩天大厦拆分成钢筋水泥肌理下的每一条砖。
既然如此,他必须解释一个终极问题——漏洞因何而存在?
【Android 系统内核,一般指最底层的 Linux Kernel】
{漏洞的本质}
任何程序都是交互的过程:输入信息,得到反馈。而从本质上来说,这些交互可以被拆分为“一问一答”,也就是“输入输出”的单元。
黑客往往通过构建一些异常的输入。只要程序处理不正确,就会产生相应的问题,例如造成程序的崩溃。而通过精心构造提问的方式,可以实现意想不到的效果,甚至让程序走入你制定的逻辑。
这是漏洞的基本逻辑。
当然,现在越来越完善的系统对于绝大多数的“问题”都能够给出毫厘不差的“答案”。只有在极其特殊的情况中,才会出现漏洞。例如:
某次会议规定,与会者必须喝光面前的水才能离开,而偏偏有一个迟到的童鞋没有听到这个规矩,在杯中留了半杯水。当会议结束后,有机器人自动把所有杯子重新填满。这时,在原本没有喝光的水上面再加一杯水,就会造成溢出。整个桌子都会因此被打湿,设定好的程序就会发生错乱,漏洞出现。
某个电梯规定,不能同时容纳两个人。所以每当一个人进去之后,应当首先锁好电梯的门。但是如果一个人忙得晕头转向,忘记锁门,就可能出现第二个人突然闯进来的结果。这样一来电梯就会发生坠落。漏洞又出现了。
虽然没有锁门、没有喝水,这样的“失误”发生概率非常小,然而它们发生的条件却是确定的,只不过这种条件相当苛刻,在正常的运行过程中几乎不会发生。所以,寻找漏洞变得很简单:只要把一个程序运行过程中的所有“偏执”的可能性都一一尝试,就可以排查掉所有意外发生的条件。这种情况下,这套系统不就成为了一个没有漏洞的完美系统吗?
{世界上所有的回答}
好了,接下来我们要做一件浪漫的事,问出“这个世界上所有的问题”。
面对一个系统,我们原则上可以画出它的“控制流图”。也就是说,假设我们的计算能力无限,对于每一个逻辑,我们输入不同的值,计算出在怎样的值下面,系统会给出怎样的回答,把这些回答归纳为所有的可能性,再进一步对每一种可能性重复如上的操作。
如此一来,我们就可以画出巨幅的逻辑树,见到一个分叉路口就尝试每一个可能,最终我们的足迹会遍及逻辑树的所有枝杈,把从一个原点开始的所有可能都囊括进去。
【逻辑树示意图】
潘神解释,这种方法被称为“约束求解下的具体执行”,在这种情况下,会把所有的情况——哪怕是概率极小的事件——都进行预演。从而排查是否存在程序错乱的情况,进而发现漏洞所在。
然而,这样的计算远不像说起来这么简单。潘神说:
看到岔路,计算什么情况下往左跑,什么情况下往右跑。是一个特别难于解决的问题。而且如果完全计算所有逻辑上的可能性,对于数十万行代码的操作系统来说,时间要求过大。纵然在理论上成立,在现实中也没有可能实现。
所以,潘神实际上给出了一个悲伤的答案:
我们没办法穷尽世界上所有的问题,也就没办法验证世界上所有的答案。
在现实世界里,安全仍然必须有所取舍。用有限的资源去对抗无限的可能。而正因为安全是一个无法抵达,只能无限接近的顶峰,它才变得无比迷人。
本文转自d1net(转载)

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
数据库中的事务、存储过程和触发器的简单使用
什么是事务(Transaction)指访问并可能更新数据库中各种数据项的一个程序执行单元(unit)--也就是由多个sql语句组成,必须作为一个整体执行这些sql语句作为一个整体一起向系统提交,要么都执行、要么都不执行语法步骤:开始事务:BEGIN TRANSACTION事务提交:COMMIT TRANSACTION事务回滚:ROLLBACK TRANSACTION判断某条语句执行是否出错:全局变量@@ERROR;@@ERROR只能判断当前一条T-SQL语句执行是否有错,为了判断事务中所有T-SQL语句是否有错,我们需要对错误进行累计;例:SET @errorSum=@errorSum+@@error存储过程---就像数据库中运行方法(函数)和C#里的方法一样,由存储过程名/存储过程参数组成/可以有返回结果。前面学的if else/while/变量 等,都可以在存储过程中使用优点:执行速度更快允许模块化程序设计提高系统安全性减少网络流通量系统存储过程由系统定义,存放在master数据库中名称以“sp_”开头或”xp_”开头自定义存储过程由用户在自己的数据库中创建的存储过程系统存储过程...
- 下一篇
微软Word安卓版为Excel安卓版打广告
根据OSnews报道,微软移动办公应用的广告据称第一次出现在Android操作系统的通知栏当中。这则广告内容是Excel安卓版,然后又出现一则广告,其内容是PowerPoint安卓版。令人惊讶的是,出现在Android操作系统通知栏当中的广告居然由和Excel安卓版一起安装在用户Nexus 6P手机当中的Word安卓版所发出。 原贴作者对这种行为表达了自己的担忧。现在看来是一个微软APP为另外一个微软APP打了广告,而2个微软APP都已经安装在原帖作者的手机当中。显然这种行为已经违反了谷歌应用程序通知指导方针。目前,Word,Excel和PowerPoint都属于微软Office套件的组成部分。 总体而言,这种广告显示微正在软件上持续努力,以深入移动生产力市场,尤其是当竞争比以往任何时候都要激烈的时候。但是这次为已经安装的APP打广告的行为,显示微软在正确实施移动广告方面还有很长的路要走。 本文转自d1net(转载)
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Windows10,CentOS7,CentOS8安装MongoDB4.0.16
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- MySQL8.0.19开启GTID主从同步CentOS8
- Mario游戏-低调大师作品
- CentOS7安装Docker,走上虚拟化容器引擎之路