望京“黑客”图鉴

摘要: 不是所有黑客可以登顶望京阿里中心 A 座 34 楼。

本文转载自雷锋网宅客频道。

最近《北京女子图鉴》很火。不过看这篇文章之前,你要做好几个心理准备:

1.这篇文章不是讲黑客男主如何在北京遇上12个女主“打怪升级”的故事。

2.因为我们的采访地点在望京的阿里中心,所以我。。。稍微开了个脑洞,取了这个标题,但标题和文章这次终于是相关的了。

在这篇《望京黑客图鉴(一)》中,我只重点讲讲两个白帽黑客的故事,并不能代表整个望京地区的黑客形象。如果你读完觉得不尽兴,欢迎推荐望京、通州、西北旺、丰台。。。甚至是深圳、杭州、四川等祖国大江南北的黑客给我,说不定(二)(三)(四)就出来了。


1

在《北京女子图鉴》里,女主林可在这几集中遇到了好不容易下定决心买房,但是限购政策一出来,梦想泡汤的困境。

对阿里安全猎户座实验室的蒸米来说,这不是一个问题。

三年前,蒸米从香港中文大学博士毕业时,接到了好几个互联网巨头企业的offer,最后,他从1万多名应聘者中脱颖而出,成为了阿里当年录取的1000多个应届生中唯二的“阿里星”,不仅每年有和阿里高层吃饭谈心的机会,还顺利地跨过了在北京长期发展的最关键的门槛——北京户口,并在北京买了一套房。

如果“望京黑客图鉴”的价值观是“成功、钱、户口”的话,蒸米在北京闯荡的起点要比很多人高,按照他自己的话来说,就是“简直不能更顺了,这可能才是这些年他遇到的最大挫折”。

但是,我们要讲的并不是一个这样的故事。

采访前,我印象中的蒸米浑身闪着“blingbling”的光:阿里安全猎户座实验室研究成员,OverSky、 蓝莲花和 Insight-lab 的成员,他还分析并命名了 XcodeGhost 和 WormHole 。

哦,对了,他是新浪微博上有 4 万活粉的互联网博主。

看上去,“安全网红”这个标签是撕不掉了。

事实正相反,蒸米展现出的这一面是:对抗、不服、执拗,拥有随时随地 diss 一切的“反骨”特质,但这些特质背后,也许与他一直追求的东西有关。

2

蒸米从小就习惯了对抗。

那时候的他太爱玩游戏,父母不允许,设了各种系统密码,甚至把那个电脑电源藏起来,蒸米因此学会了焊接、破解,最后无论父母怎么设置,他都能把上了锁的电脑复原,继续玩游戏,父母直接怒了,就让蒸米转学了。

这次对抗的直接后果是,蒸米和初恋女朋友分手了,游戏和女孩之间,他选择了前者,被扔到了“没有个人电脑”的寄宿学校。

他不甘心,和寄宿学校的机房老师打好了关系,天天跑到机房打游戏。“为了能打游戏,我学习了很多的黑客技术。”这就是这名望京黑客的故事开端,更是一名黑客“对抗”历程的开始。

这一次,他要“对抗”的是破解的寂寞、“局限的视野”以及开发人员的“人性”。

比如,针对XcodeGhost 病毒样本的分析,他花了一天,这个影响1亿人的重大安全事件背后,并不是发现者的“运气爆棚”,因为针对这一类东西,他都会第一时间进行分析,每一个都没有错过,“总会碰上重大的东西”。

“你要有一颗耐得住寂寞的心,要深入,能够在某一点上坚持做研究,不能浮躁。”蒸米觉得,自己还在“三级黑客”的通道上攀爬着,也没达到这个点。

当然,这里的“三级”跟一些演员没什么关系。在他眼中,初级黑客只能挖洞,不知道为何会有漏洞,如何利用漏洞;二级黑客懂得如何夺取控制权,不但知道为什么这个漏洞会使系统崩溃,还知道如何利用这个漏洞来控制整套系统;三级黑客对系统非常熟悉,甚至比开发人员还要清楚系统如何运作,不但能发现漏洞、利用漏洞,还能够发现新类型的漏洞,找到系统的缺陷。

蒸米觉得,太多人被局限在了初级和二级黑客的视野中,登顶一览众山的黑客实在太少。

他对这种“局限”有着强烈反抗,diss 一切停留在开始而不往上攀登的行为。

在实验室里,蒸米和他的搭档小龙(化名)主要研究 iOS 和 macOS 的系统特点,不断与苹果的开发人员较量。

蒸米把这种工作称之为一种“对抗”,“开发人员可能只追求效率和完成任务,但不考虑一些系统机制上的风险。”

“可是,你们的对手是苹果的开发人员。”我强调了一次。蒸米毫不忌讳地说:“对,这样才让我们的工作有挑战性。”

从我之前采访一些黑客的经历看,很少有人直接把“被研究对象和公司”摆在自己的对立面,因为“黑客”这一词有时被太多负面标签所束缚,如果不想给自己的研究职业造成阻碍,“帮助对方进行安全建设”是一种风险较小的说法——事实也是如此,有着正经安全研究工作和真正黑客精神的人从来不屑于做“真正对抗”的事情。

与蒸米特质相反的小龙立马给他“找补”:“其实,也不能说是苹果的开发人员是我们的对手,我们是帮助苹果团队。我觉得说跟人是对立面这个点,其实不是特别确切。准确地说,是跟人的常识的对立。”

同为 89 年生的小龙从清华博士毕业,与蒸米搭档了半年,两人一激烈一沉稳的性格形成鲜明对比。两人正处在“甜蜜搭档期”,还好他和小龙性格互补,不然就会“干起来”,如此截然不同的两个人倒是对“对抗人性与常识”认知一致。

小龙说:“程序毕竟是人写的,每个人写程序时,都有一些自己的理解和经验,或多或少放进自己的一些习惯。我们要做的事情,就是找到人的习惯可能产生的问题。这种问题经常发生,以我们要对抗人的常识,用反方向思路攻破。把整个系统攻破只是一个结果,最主要目的,是希望能让整个业界对我们所做的系统安全有更新的认知。”

比如,很多人协作写一个系统,因为这个程序是这个人写的,他对这个程序的感悟是这样的,但他不会把所有感悟都交给下一个人,导致两个人的思路完全错开。这种时候,就会现安全漏洞。

我反问小龙和蒸米:“你们也要搭档搞破解,你们的思路就一定完全对得上吗?”

蒸米:“不能,我们也是人啊。”

“对,但这有一个问题,我们是做攻击技术研究的,研究过程中,如果出问题了,只是导致攻击失效。但是,如果开发人员沟通之间出了问题,就会导致这个系统出错。我们只是让攻击失效,这一点无所谓。”小龙说。

3

蒸米和小龙最近在欧洲信息安全会议HACK IN THE BOX(HITB)完成了一个“小项目”:macOS 的两个漏洞和利用机制,简单来说,是在最新版的苹果macOS上,利用一个普通用户的权限拿到内核控制权,然后再操控整台电脑。

这对他们而言不是什么难事,但项目内外依然是“对抗”。

苹果的开发人员最近给试图挑战的黑客提升了破解的门槛,比如,他们设计了内核地址随机化,里面很多值在开机时是随机的。如果黑客试图突破系统,猜错一次值,系统会重启崩溃。

这样的难度相当于在茫茫大海里捞出一根针。开发人员在猜对手的能力:这样你都能猜到?不太可能的。

蒸米和小龙则在对抗这种“随机”,就像蝴蝶轻轻煽动一下翅膀,就可能引发一场暴风雨。一切看上去不确定的因素之间有没有某种关联,从而导致“随机数”就是“随机数”?

他们发现,有些东西可以反推出合格随机数,这是漏洞之一。

再者,因为之前提到的开发人员为了提升效率,百密也有一疏:某些关键值没有加锁,第二个漏洞产生了。在正常情况下,一个函数执行没有问题,但是,如果有多个线程同时执行某个函数,函数中一些共享的资源则可能出现问题。

就像两个人都要喝这杯水,在正常情况下,苹果要先加锁,另一个人在前一个人已经申请拿到这杯水的同时不能碰这杯水。但是,苹果忘了加锁,导致两个人同时在伸手拿水。

这就触发了问题。

小龙说,这意味着黑客还能在用户不知不觉的情况下,把他以为要拿到手里的水替换成一杯毒药。也就是说,黑客利用这两个漏洞,不仅可以完全获取macOS的内核控制权,调取隐私信息,还能植入恶意的应用。

项目内,是高手过招,关于系统安全的对抗。

项目外,则是博弈。这项成果是他们认为的“一个伟大的项目当中的一个阶段性成果。”这两个黑客手中,还有更多 iOS 的漏洞,蒸米和小龙并不想把这些漏洞都放出去。一则这些漏洞详情一旦被披露,很多同一系列的、类型的洞就会被开发人员修复——他们并不在意一城一地的得失,但是“持久地博弈”才能让自己像开发人员一般思考,甚至比开发人员更了解这个系统,这才是促进整个系统越来越安全的动力所在。

他们不满足于仅仅做一个“提升安全”的黑客,他们的野心还要更大一些——也许是成为系统的设计师。

“万变不离其宗。其实所有操作系统都差不多,如果我们能够研究出一种安全机制,更好做一些系统防护,虽然在Windows、iOS、安卓上具体实现不一样,但这个机制的本质是一样的,如果它能在所有系统上都这么用,对安全防护的帮助是很大的,并且对于系统的性能影响比较小。”蒸米说。

4

不是所有黑客可以登顶望京阿里中心 A 座 34 楼。

他们各自行路,一边作伴,也都有负重。

小龙博士毕业后,从学术界转向工业届半年,顾不上看周围人怎么行走,还在奋力攀爬,不断探究系统问题产生的根本原因是什么——小龙认为,这种思路区别于着眼于漏洞,就只看到漏洞的角度,至少,对于他们上述的大计划和系统设计师的梦想是有益的。

对阿里这个电商帝国而言,所有安全工作,甚至包括研究都要围绕业务来做。这意味着,你看到的他们的研究成果也许只是其工作的三分之一,另外那些则要在庞大体系里与不同团队磨合。

无论是在阿里的安全人员,还是已经从阿里走出开始下一段精彩的安全从业者,都曾告诉我,能将安全与业务炼化得炉火纯青的人少之又少,要达到这个程度一定会“备受折磨”,但成功者会感激那段独特的“试炼”。

安全跟商业化之间,可能不是那么容易转换,蒸米还在“磨练”。
但外人不曾这么想。

蒸米认为,自从挖人风气大涨后,一些人“比着狮子大开口”,但能力却没有相应提升,好像一切都唾手可得一样。还有一些以前颇有成就的“老人”停了下来,没有跟上最新的研究。

在这种浮躁的氛围中,他时不时“掐”自己一把,“你可千万不能成为这样的人,哪怕将来再有钱,再厉害,也不能忘记了要搞安全研究”。

原文链接

干货好文,请关注扫描以下二维码:



本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521900.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决:'webpack-dev-server' 不是内部或外部命令,也不是可运行的程序 或批处理文件。

webpack-dev-server错误法则: 前往项目根目录删除node_modules文件夹,然后在项目根目录路径下的终端运行"npm install"等待安装完之后,再次运行“npm run dev”,有些人的是马上就可以了,然而往往还会有人&am…

GPU云服务器深度学习性能模型初探

摘要: 本文根据实测数据,初步探讨了在弹性GPU云服务器上深度学习的性能模型,可帮助科学选择GPU实例的规格。1 背景得益于GPU强大的计算能力,深度学习近年来在图像处理、语音识别、自然语言处理等领域取得了重大突破,GP…

HDC.2019后再发力,AppGallery Connect服务新升级

不久前,华为2019开发者大会在东莞松山湖圆满落,来自全球的1500多个合作伙伴、5000多名开发者汇聚一堂,共同探讨未来科技发展,其中华为应用市场AppGallery Connect服务也在大会上重磅亮相,引起了广大开发者的关注。如今…

idea 利用vue.js插件创建vue初始化项目

IDEA 构建出的 Vue 项目是不含 node_modules 的,所以要先调出终端,执行 npm install 运行完成后,输入 npm run dev 即可。 vue初始化项目完成!!! 另外 IDE 嘛,总是在 UI 上下了很多功夫&am…

Tensorflow快餐教程(4) - 矩阵

摘要: Tensorflow矩阵基础运算矩阵矩阵的初始化矩阵因为元素更多,所以初始化函数更多了。光靠tf.linspace,tf.range之类的线性生成函数已经不够用了。可以通过先生成一个线性序列,然后再reshape成一个矩阵的方式来初始化。例&…

为什么阿里程序猿纷纷在内网晒代码?

摘要: 大家知道,阿里有两万多名可爱的程序员。 他们也没什么别的爱好,就是多才多艺了一点:这帮阿里程序猿在改变世界前 要先撼动歌坛 就是热心肠了一点:阿里有个程序员,因为闯红灯上新闻了 虽然怕老婆但也能…

从七个方面,面试大厂高级工程师

戳蓝字“CSDN云计算”关注我们哦!在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间。我的标准其实不复杂:第一能干活;第二Java基础要好;第三最好熟悉些分布式框架。我相信其它公司招开发时&a…

Java需要掌握的底层知识_Java程序员应该掌握的底层知识

缓存缓存行:缓存行越大,局部性空间效率越高,但读取时间慢缓存行越小,局部性空间效率越低,但读取时间快取一个折中值,目前多用:64字节public class CacheLinePadding { //执行时间在4s左右public…

(vue基础试炼_01)使用vue.js 快速入门hello world

文章目录一、需求案例二、案例实现2.1. 原始js写法2.2. 怎样使用vue.js &#xff1f;2.3. 使用vue.js 写法三、案例vue简述&#xff1f;四、案例趣味延伸五、表达值作用及嘱咐语一、需求案例 在页面显示hello world 二、案例实现 2.1. 原始js写法 <!DOCTYPE html> &l…

如何让机器理解汉字一笔一画的奥秘?

摘要&#xff1a;从智能客服到机器翻译&#xff0c;从文本摘要生成到用户评论分析&#xff0c;从文本安全风控到商品描述建模&#xff0c;无不用到自然语言技术&#xff0c;作为人工智能领域的一个重要分支&#xff0c;如何让机器更懂得人类的语言&#xff0c;尤其是汉字这种强…

Logtail从入门到精通(三):机器分组配置

摘要&#xff1a; 基于集团内数年来的Agent运维经验总结&#xff0c;我们设计了一种灵活性更高、使用更加便捷、耦合度更低的配置&机器管理方式&#xff1a;自定义标识机器分组。此种方式对于动态环境非常适用&#xff0c;尤其适用于弹性伸缩服务和swarm、pouch(阿里docker…

(vue基础试炼_02)使用vue.js实现隔2秒显示不同内容

接上一篇&#xff1a;&#xff08;vue基础试炼_01&#xff09;使用vue.js 快速入门hello worldhttps://gblfy.blog.csdn.net/article/details/103841156 文章目录一、原始js写法① 效果图② 2秒之后二、使用vue实现① 思考② vue写法③ 效果图三、vue总结一、原始js写法 <!…

适合小团队作战,奖金+招聘绿色通道,这一届算法大赛关注下?

大赛背景伴随着5G、物联网与大数据形成的后互联网格局的逐步形成&#xff0c;日益多样化的用户触点、庞杂的行为数据和沉重的业务体量也给我们的数据资产管理带来了不容忽视的挑战。为了建立更加精准的数据挖掘形式和更加智能的机器学习算法&#xff0c;对不断生成的用户行为事…

银行业AI:炒作背后的现实——“尽管对新技术感到兴奋,但银行业态度非常谨慎”

摘要&#xff1a; 在人工智能火热的今天&#xff0c;银行业是如何看待人工智能对其的影响呢&#xff1f;答案可能出人意料。随着人工智能的发展&#xff0c;越来越多的行业都或多或少会受到该技术的影响。在博主之前的文章中&#xff0c;分析了人工智能、大数据以及VR对教育行业…

tcp分包传图片 如何还原_技术控丨超详细解析TCP重传机制

作者&#xff1a;Zhang_Jiawen &#xff1b; 来自&#xff1a;Dell技术社区TCP 的主要任务是很简单&#xff1a;打包和发送数据。TCP 与其他协议的不同之处在于使用滑动窗口来管理基本数据收发过程&#xff0c;同时确保数据流的有效及可靠传输&#xff0c;从而不致发送速率明显…

超详细!上线一个机器学习项目你需要哪些准备?

摘要&#xff1a; Canvas是用于设计和记录机器学习系统的模板。它比简单的文本文档具有优势&#xff0c;因为Canvas用简单的部件通过部件之间的相关性来寻找机器学习系统的关键组件。这个工具已经很流行&#xff0c;因为它对复杂项目进行了可视化操作。 在本文中&#xff0c;我…

漫画:什么是插入排序?

戳蓝字“CSDN云计算”关注我们哦&#xff01;————— 第二天 —————————————————人们如何进行扑克牌的排序呢&#xff1f;举个例子&#xff0c;比如我手中有红桃6,7,9,10这四张牌&#xff0c;已经处于升序排列&#xff1a;这时候&#xff0c;我又抓到了一…

(vue基础试炼_03)使用vue.js实现TodoList

接上一篇&#xff1a;&#xff08;vue基础试炼_02&#xff09;使用vue.js实现隔2秒显示不同内容https://gblfy.blog.csdn.net/article/details/103841818 指令作用v-for循环数据v-on绑定事件v-model数据的双向绑定文章目录一、需求说明① 案例文档② 基础代码③ 基础效果图二、…

Python API快餐教程(1) - 字符串查找API

摘要&#xff1a; 字符串查找API 字符串处理相关API 字符串是7种序列类型中的一种。除了序列的操作函数&#xff0c;比如len()来求字符串长度之外&#xff0c;Python还为字符串提供丰富到可以写个编辑器的API. 查找类API 首先&#xff0c;下面的查找API都是为了查找位置&#x…

因吵架总被骂,阿里程序猿一气之下发明“情侣吵架神器”

摘要&#xff1a; 最近&#xff0c;阿里有个叫虎跑的程序猿&#xff0c;发明了一个“吵架神器”。 到底是个什么黑科技&#xff1f; 最近&#xff0c;阿里有个叫虎跑的程序猿&#xff0c;发明了一个“吵架神器”。到底是个什么黑科技&#xff1f;和很多情侣一样&#xff0c;虎跑…