• 邮件反馈
  • 支持 TK
  • 那年今日
  • 微博

    • 看看最新
    • 那年今日
    • 随便看看
    • 过去一年
  • 文章

    • 皮相专栏
    • 百度空间
    • 焦点博客
  • 探索

    • TK猴子

  • 支持
上个页面过去一年
下个页面百度空间

点右侧微博标记去微博订阅真爱粉群👉

加入tk真爱粉群
微信公众号

皮相专栏

共 69 篇文章

武德丰沛孔夫子

2019-07-29

我最近在想办法劝娃多喝牛奶多运动。因为之前跟他讲了不少论语,所以顺着“你要向孔子学习”的思路总结了一些宣教素材。写在这儿,没准你们教育娃的时候也能用上。 王者荣耀里的老夫子人物原型是孔子。看起来似乎有点不搭。因为在大众的印象里孔子是个慈祥的胖老头,是教人学问的先生。所以不会跟人打架。即使打起来肯定也是个战五渣。 其实历史上的孔子武力值很高。形象可能也和项羽、赵云差不多,是个彪形大汉。 孔子出身军人世家。他父亲叔梁纥就是个又高又壮的大力士。据说身高十尺,打仗时曾双手托起城门让士兵通过,堪称鲁国海格力斯。孔子遗传了他爹。《史记》里说孔子身高九尺六寸。海昏侯墓出土的屏风上说是七尺九寸。那时候一尺大约二十三厘米。所以即使按七尺九寸算,也得一米八朝上。所以当年胡玫导演请一米八三的周润发来演孔子还是很恰当的。古代生产力水平低,老百姓鸡鱼肉蛋吃得少,人普遍比现在矮。但孔子一来遗传基因好,二来家里富裕,吃得起肉,本人又特别爱吃肉,所以长成了一个彪形大汉。 关于孔子的武力值,古书里有几个描述。 一是“举国门之关”。国门之关是啥呢?就是城门的门闩。古代一般屋子的门闩也就胳膊粗细。但城门的门闩要能扛得住攻城锤的撞击,所以非常粗。基本上是用一整颗树的树干做的。而孔子能把这种门闩举起来。

图片描述 by gemini-3-flash-preview

二是“勇服于孟贲”。孟贲是战国时的著名猛人,看过《芈月传》的应该知道。据说孟贲力能举鼎,还能给牛劝架。他看到两头牛打架,就一手按一个牛头,把牛给分开了。其中一头牛不服,还挑衅。他就用手一掰,生生把牛角掰断,就这么猛。而孔子比孟贲还猛,你想想得有多猛。 三是“足蹑郊兔”。也就是说孔子不但个儿高,力气大,跑得还快,能追上野兔。用武侠小说里的话说就是不但“天生神力”还“轻功了得”。 除了身大力不亏,腿长跑得快之外,孔子的武艺也是可以的。当然,那会儿没有少林拳、八卦掌。孔子教弟子们的内容主要是“六艺”。而“六艺”里有三分之一是武艺,也就是射箭、驾驶战车。据说孔子表演射箭的时候,围观群众能围成了人墙。而孔子本人似乎对自己驾车的本领比射箭还更自信些。所以,“孔夫子”的英文是“Confucius” ,其实叫“Kungfucius”完全没问题。

图片描述 by gemini-3-flash-preview

王者荣耀里的老夫子有两件武器:戒尺、明灯。戒尺自然是教书先生的用具。而明灯应该是从“天不生夫子,万古如长夜”的意思里来的。这对应的是大众心目中的孔子,而非历史上的孔子。如果真还原历史的话,我们会看到一个身材高大的猛士驾驶着战车在王者峡谷上下驱驰。一技能射箭,二技能加速,三技能召唤车上的子路手持长戈帮他砍人。
阅读全文

从医学院进入网络安全行业的经历

2019-07-02

我小时候读的书,一大半是科技类。生物、化学、医学、物理、地理、冶金、机械,等等。也没什么特别的想法,就是单纯地喜欢科技本身。曾有人问我看这些乱七八糟的有什么用,我开玩笑说:如果末日来临,我起码能把你们带回 19 世纪的工业文明。所以考大学填志愿的时候,我对父母说随便报什么理工科的专业都可以,我都愿意学。但不要报文科——倒不是我不喜欢文科,主要是我觉得文科的东西想学可以自己买书读,理科的东西需要实验环境,不容易自学。 大学二年级,学校开了计算机课。接触计算机后,我发现这东西非常不同。虽然也属于科技领域,但对实验环境的要求非常简单。只要一台计算机,就可以探索各种相关的知识,里面可以学的东西无穷无尽。我如获至宝,就把之前投入在其他方面的业余精力全都转移到了对计算机的学习上。 我们医学院的计算机课程很简单,就是教一教文字处理、数据库操作,便于将来写病案、查文献、整理病例。所以甚至我们计算机课的老师也不太懂计算机。有一次机房的计算机坏了,要重装系统。我看到老师拿出一个小本子,上写的是重新安装系统的步骤——格式化敲什么命令,安装系统敲什么命令。然后老师就看一眼小本子,敲一条命令。 随着对计算机的了解逐渐加深,我感受到了数字世界的非同寻常,觉得这是一个全新的世界,是一个未来大家都会生活在里面的世界,但又极其混乱,缺乏秩序,如同当年美国的西部荒野。我觉得生活在这个世界里,有必要学一些防身的本领。这个朴素的想法就是我学习信息安全技术的初衷。 当时我身边没有任何人精通计算机,更不用提懂信息安全技术。有个堂兄,会安装 Windows,懂一些系统配置,就是我的入门老师了。但好在全市唯一一家计算机书店就在我们学校附近,我可以经常过去看一看,买几本书。 当时我们学校机房没有接入互联网。所以一开始,我不但身边没有可交流的人,而且无法从网络上获取信息,也无法通过互联网进行交流。学习所需的各种软件和技术资料主要来自路边小贩卖的光盘。 一无网络,二无老师,自己一个人学习还是比较困难的,但对知识的强烈渴望,能压倒对未知和困难的恐惧。记得小学 6 年级时读《电工原理》,同时自己琢磨万用表的使用方法。一开始完全看不懂,但硬看了一个暑假,就懂一些了,万用表也基本会用了。因为从小就经常这样一个人啃硬骨头,所以学习中虽然走了很多弯路,但能一直坚持走下去。 医学院的课程很重。后来去了医院实习,就更忙了。不过好在那时候年轻,身体能扛得住。我常常在医院干到晚上 9 点,回来搞计算机到夜里 2 点,第二天早上六点再起来赶去医院参加科室查房。 后来家里申请了拨号上网,又打开了一扇新世界的大门。我一边惊讶于互联网上竟然有这么多知识,一边整个网站整个网站地学习。拨号上网是按时间计费。为了省钱,我把一些安全网站镜像到硬盘上看。就这样,到 2001 年,我差不多把当时国内的所有安全漏洞信息、所有安全技术文章都读了一遍,所有安全工具的用法也都学了一遍。 把这些技术资料都看完后,我发现有很多东西还没人研究,一些现有研究也不够深入。于是我开始试着把自己的研究写成文章,投稿给安全网站。结果发现文章都很受欢迎,被广为转载。有些还被收录到了互联网应急中心的月度公告中。这给了当时正在医院实习的我很大鼓励。然后就有一些搞安全的朋友通过邮件和我联系,讨论技术。由此,我开始和安全社区有了交流。 后来有几家安全企业联系到我,问我是否愿意加入,从事安全行业的工作。我对医学虽然也很喜欢,但医学探索有个很大的问题就是对研究条件的要求太高了,也不能随便拿人去做实验。所以相比较来说,我自然更愿意去做计算机领域的探索。同时,通过和安全社区的交流,我发现自己的能力似乎也是可以在行业中立足的。于是就决定了毕业后加入安全公司,而放弃本专业。 加入安全行业后,我和之前的学习探索过程一样,对各种新鲜尝试都来者不拒。虽然本职工作一直是技术研究,但其它部门遇到难处理的问题时,会找我们部门支持。可能因为我胆子也比较大,没接触过的东西也敢现学现卖,再加上沟通能力略好一些,所以基本来自外部的各种支持需求,领导都会交给我。所以我有机会参与了很多渗透测试、应急响应、售前交流、客户培训、产品设计、招聘宣讲等各类工作。 虽然做了大量本职之外的事情,但我觉得都很有意思。在这些工作中也学到了很多东西。比较值得骄傲的是,在十年的时间里,我做应急响应等各种客户服务无一失败,每次都能顺利帮客户解决问题。出去做技术交流,反响也都很好。所以现在很多年轻人只知道我是搞漏洞研究的,其实早年的口碑主要是做安全业务攒下的。后来销售们带客户到公司来参观,我的工位也成为了一个景点。 那些年做一点漏洞研究也主要是为产品服务,丰富安全产品的检测能力。所以没有特别追求每年要挖多少漏洞,或者做出多么厉害的研究成果。当时领导说每年全部门能发两个 CVE 就可以了。所以在工作的前十年,我投入到漏洞研究上的精力不算很多。 到 2011~2012 年,国内漏洞研究的氛围已经起来了。我觉得自己其实也可以在这方面做更多的事,就像当年在大学里一样。当时微软在漏洞防御上已经研究积累了近十年,推出的一系列安全防御技术组合让漏洞利用变得非常困难。全世界的漏洞研究人员都在思考怎么突破这套防御。我也决定挑战一下圣杯。 研究一段时间后,我终于发现了一种方法可以突破微软的防御,而且是一种实现起来很简单的方法。2013 年我带着这项技术去温哥华参加了 CanSecWest 大会。这也是我第一次出国演讲。 再后面的故事,很多文章里都写过,就不重复了。
阅读全文

数字空间和信息安全的进化论

2017-01-25

(2016年11月9日在中国互联网安全领袖峰会的演讲) 今天有两件大事:第一件大事是美国人民正在选他们的领袖,第二件就是我们在这里参加中国互联网安全领袖峰会——开个玩笑,不过两件事其实真有点关系。2008年的美国大选,通常被认为是互联网第一次影响了大选;而今年的美国大选,则是信息安全问题第一次影响了大选的结果。 现在大家应该都可以接受这样一个观点:我们同时生活在两个空间,一个是物理空间,一个是数字空间。自计算机和互联网诞生,这么多年过去,我们对数字空间的依赖不断加深,我们在物理空间中活动也不断向数字空间转移,而这两个空间的交融也变得越来越深入,数字空间对人类的影响越来越大。

图片描述 by gemini-3-flash-preview

刚才讲到物理空间,大爆炸理论认为是150亿年前一次大爆炸形成了宇宙。宇宙中的物质最早是基本粒子,然后基本粒子形成了最早的星际物质,星际物质形成了星球,星球形成了星系,150亿年之后有了我们今天这样的宇宙。这是一个由简单到复杂的过程。

图片描述 by gemini-3-flash-preview

当然还有一种观点,认为宇宙其实是由神创造的。但是不管宇宙是谁创造的,不管物理空间是谁创造的,数字空间一定是我们创造的,这也是我们作为人类的荣耀。 我们回顾创造数字空间的过程,回顾数字空间前几十年的发展历史,会发现:数字空间也有一个类似物理空间这样由基本粒子一步步演化的发展过程。而在数字空间的创世早期,安全问题也大多数是一些微观层面的问题。 早期的安全问题往往是由什么而引起的呢?可能是某一处代码有问题,某一处配置文件有问题,或者是某一个变量设定有问题,是一些微观层面的问题形成了微观的安全问题,影响了一个微观的对象。 现在我们看一张比较鲜艳一些的图。这张图展示的是生物演化的过程,从一个单细胞生物的诞生,一直到产生了地球上最为复杂,最为壮观的生命,那就是我们人类。

图片描述 by gemini-3-flash-preview

虽然今天的地球上仍然存在着单细胞生物,但整个演化过程总体还是变得越来越复杂,个体的功能变得越来越多样。同时还有一点:就是个体的脆弱点也同样变得越来越复杂。虽然人类是万物之灵,但是人类无论是精神还是肉体都是非常脆弱的,比很多动物都脆弱。而且很多的这种脆弱到现在还搞不清楚。因为在演化过程中,不光这些对象演化了,对象的弱点也会演化。 今天人们在数字空间中,操作的对象颗粒度变得越来越粗,对象之间的联系也变得越来越复杂。所以今天很多安全问题已经不再是某一行代码的问题,或者说某几处代码之间的问题。而是一个协议和一个协议之间的问题,或者是某些协议共同作用发生的问题。甚至是一个设备和一堆设备之间的问题,一个系统和一个系统之间的问题,而且甚至这些对象它们相互之间看不到特别明显的关系。这些其实就是演化的结果。传统那些安全问题是否还存在?就像今天地球上仍然存在单细胞生物一样,这些问题仍然存在,但是新的问题已经演化出来了。有个非常典型的例子,是很多电商系统都犯过的一个错误。当我们去电商网站买一样东西的时候,在付款的过程中会进入到交易结算的系统,交易结算的系统和电商系统通常是两个系统,甚至于是隶属于不同的公司所有。这两个系统在产生关系的时候,就有可能发生问题。交易系统的设计是由一组人员去完成的,而结算支付系统往往是另外一组人员去完成的。无论他们之间怎么去约定,怎么沟通,这种沟通都是不能达到百分之百透彻的。所以出现过这样一种情况:攻击者可以在购买完成之后结算的时候将交易金额修改成一个非常小的数字;而电商系统只是判断了这个交易结算系统返回的信息是否交易成功,它并不知道交易数字到底是多少,就是说他不知道攻击者买一台冰箱到底是花了2千元还是花了1元。所以攻击者就可以用1元买下冰箱。以前很多电商网站都犯过这样的错误。还有个例子比较新一些。前几年很多运营商向用户提供了一种叫做“短信保管箱”的服务,这是完全正常的一种业务。但是这种业务引起了什么样的后果呢?他破坏了我们用手机短信作为第二验证因子的这样一种安全设计。因为手机短信在以前是被认为相对可信的另外一重因子。但当运营商把短信存储到服务器上,可以在电脑上登陆去查看的时候,实际上就已经把双因子又变成了单因子。本来是出于一个美好的初衷设计出来的美好的业务,和网银业务遭遇后,就可以被网络犯罪者用来窃取用户网银上的资金。这事儿已经发生了很多起了。 最后的结果是什么?运营商逐渐取消了这个业务。这是运营商和银行两个看起来没有关系的对象,关联产生出来的这样一套问题。 刚才的例子里银行是作为受害者。下面要说的例子中银行扮演的就不是受害者了。现在很多银行搞了叫做“虚拟卡”的业务。有一家银行的虚拟卡业务遭遇了苹果的应用商店之后,被人找到了其中结合上的问题。后果是什么呢?就是利用虚拟卡业务的某些特性,不花钱就可以在苹果的应用商店里充值。还有一个案例,可能前一阵子大家都听说过:美国的FBI为了解锁一个苹果手机,费了很大的力气。可能很多朋友也遇到过身边的朋友手机被窃,偷手机的人用了很多的方法试图去解锁这个手机。当然,我们知道苹果对手机的安全性做了很多很好的设计,去保护用户手机中数据的安全。即使被窃取之后,仍然可以通过云端对手机的数据进行删除,把这个手机清空,包括窃取的小偷也无法直接的去解开这个手机的密码。但现在犯罪分子找到了一条通道。当你的手机丢失的时候,随着手机一起丢失的还有什么?你插在手机里的SIM卡。虽然SIM卡插在这台手机里是不能使用的,但是把它拔出来,装到另外一台手机上,这个SIM卡可以打电话,可以收发短信,而且是你的号码。我们知道很多的网络服务为了安全性,它会要求用户跟他的手机号码绑定。所以你用手机号可以重置很多网络服务的密码。这些窃贼们拿到你的手机之后,虽然他不能直接用这个手机,但是他可以用这个SIM卡,通过SIM卡可以去控制你的某个网络服务,比如说你的邮箱。如果你苹果的ID是用绑定这个手机号的邮箱注册的,那么他通过控制这个邮箱就可以控制你的苹果ID。如果你通过苹果的iCloud把手机清空了,清空之后这台手机就可以用你的苹果ID进去。所以现在这套机制被很多的盗窃手机的犯罪团伙在使用。我们看这整个的过程里面,包括我之前举的这些例子,看起来谁都没有犯错误,动机都是美好的,每个对象的设计单独看起来也是美好的,大家都在为用户服务,都想把产品做好。但是这些问题纠缠在一起之后,就变成了我们要面临的新的安全问题。所以我们说,今天信息安全问题和网络空间中其它的对象一样发生了演化,我们抛开软件或者硬件这样的视角,将网络空间中的这些我们与之进行互动的对象抽象出来,同样可以发现这些对象之间的安全问题如同生物进化一样,今天他们进化成了一种非常复杂的形态,而这种形态的安全问题用传统的方法是难以进行发现、分析和防御的。相应的我们也必须随之进化。作为防御者,作为安全研究者,我们需要随之进化。当一切都进化的时候,你不进化是没有办法去应对这种新的情况的。当然这种情形是一种非常大的挑战,但是我相信这里面也一定蕴含着非常大的机会。 谢谢大家。
阅读全文

打杂和搬砖

2017-01-17

前阵子做一个访谈,采访者说有人评价我“能在别人的领域里发现安全问题”。我听了虽然窃喜,却可惜不能领受,因为事实并非如此。 在一个方向做到比较深入的时候,是有可能从精研一术而悟万法之道,从形而下抽象出形而上,跨领域指导工作,给别人以指导和启发。但即使到了这个阶段,也不太可能自己直接跨领域出成果。内力再强,没见过的招数也是使不出来的。那位朋友说的“能在别人的领域里发现安全问题”,可能是指我在过去几年里,除了内存破坏类漏洞这个方向上的研究外,还搞过伪造指纹通过 iPhone 登陆验证、BadBarcode、BadTunnel 等研究。而他可能认为我一直在从事内存破坏类漏洞研究。刚进入安全行业的时候,我写了很长一段时间 IDS 签名。而且刚开始的时候主要是分析古老的漏洞和冷门的木马,然后写一些可能永远不会被触发的签名。这种工作现在通常被归作“搬砖”。但在这个过程里,我了解了各类漏洞的原理,看到了各种系统可能出问题的地方,学会了很多分析工具的使用方法,熟悉了大量通用的和私有的网络协议。所以像 BadTunnel 所涉及的 NetBios 协议,从协议设计到系统实现,我在 2003 年就开始研究了,2004 年发过一篇简单的研究成果:http://www.xfocus.net/releases/200408/a723.html。所以实在不是“别人的领域”,这就是我的领域。搞技术有诀窍,但没有捷径。曾有人问我是怎么想到某个特性可能存在安全问题的,我告诉他我曾把这个产品组历史上的所有 Blog 全看了一遍,研发负责人出去演讲的 PPT 也全都找来看了。搞安全研究,就要像跟踪狂对待疯狂爱恋的目标一样去收集研究对象的信息。这几天,IT 技术圈内出现好几篇从不同角度谈 IT 技术人员职业生涯的文字。正巧,我上周在滴滴安全沙龙分享了一个主题,叫《安全研究者的自我修养》。当时也讲了上面这个搬砖的事。年轻人刚参加工作的时候,可能会做一些搬砖和打杂的工作,但这对成长可能是有好处的。这个阶段是积累阶段。多接触一些东西,多学一些东西,将来路也会宽一些。这可能和求学类似。读小学、中学的时候,需要学很多方面的知识。到本科阶段,才会分一个专业。研究生、博士,才会聚焦在一个点上。早早就分专业的,那就是中专了。事实上,我在参加工作若干年之后,也仍然还承担了很多本职之外的前场支持工作:渗透测试、应急响应、培训交流、售前售后……前场技术部门没把握的事,最后会找我们支持。而百分之八十的情况下,这些工作会交给我。因为大部分做研究的人不擅长交流,需要接触客户的工作基本就交给了我。对此,我当时其实有不少意见,因为我一直希望能不被打扰,专心搞研究。但后来逐渐体会到在这些工作中的积累给自己带来的益处。一方面是能学习到很多知识,接触了很多业务和系统。更重要的是在行业里积累了口碑。慢慢地,有些客户开始点名要我去支持项目。最后发展到有些之前没接触过我的客户来公司参观,也要求到我的工位上来看看,令销售部门的同事大为惊讶。这还是相当有成就感的。在滴滴安全沙龙的分享里,我也提到了技术人员培养表达、沟通能力的重要性。搞技术的人常常会忽略这一点,甚至内心有抵触。然而,我年龄越大越体会到这类能力的重要。所以自己其实也一直还在默默地练习。在我们实验室内部培训中,我除了讲思维方法、学习诀窍,最常讲的就是沟通、表达能力的培养。因为到我这儿来的同学,我都希望他们将来能发展好,在行业里有一片天地,而不是希望他们老老实实当做干活的卒子。当然,即使在技术上做好了积累,又培养了多方面的综合能力,也没人能保证你一定能怎么样。这是必要条件,不是充分条件。只能说:欲练神功,挥刀自宫。虽然自宫,未必成功。若不自宫,必不成功。
阅读全文

打破结界之战:“机器特工挑战赛”和“极棒跨次元 CTF”

2016-08-21

在中国象棋的世界里,有十横九竖共十九条线,相交成九十个点,中间又有“楚河汉界”。在这个世界里,马走日,象飞田,行动都有一定之法则。车虽厉害,也不能斜着走。 在围棋的世界里则纵横各有十九条线,相交成三百六十一个交叉点。棋子不分尊卑,一律平等,然而落下后就不能再动,无气之子要从世界里消失。这就是围棋世界的法则。 无论哪个世界,都有其法则。在世界之内,行事必受法则约束。然而,在一个世界里非常困难而几乎不可能的事,跳出来,从另一世界去看,却有无限的可能。 我们今天同时生活在两个世界,一个是物理世界,一个是数字世界。在物理世界,有一些很难做到的事;在数字世界,也有一些很难做到的事。但如果打破两个世界之间的结界,以高一维度的视角去看,可能情况会完全不同。所以,我为将在今年 10 月 24 日举办的“极棒” GeekPwn 1024 设计了两个打破结界的挑战。 从物理世界突破数字世界的——机器特工挑战赛 假设一台电脑没有任何安全漏洞,甚至完全不接入网络,还有可能被入侵吗?办公室的墙壁和门口的保安能保护台式机不被入侵者接触吗?人们常常担心手机和笔记本电脑遗失后带来的问题,却很少考虑台式机的物理安全。 办公室里有很多不起眼的小陈设、废纸箱,其中是否可能暗藏玄机?出差同事的快递会被人代收放在工位上,或者暂存在公司邮件中心,这可能带来什么安全隐患? 在“机器特工挑战赛”中,你可以制作一个能被远程控制并向控制者传送影像的机器人。机器人被装在快递包装箱里并能从内部自行打开包装箱,在远程控制下找到在地面上的台式机,然后将一个USB插头插到台式机面板上的USB口,再按下电源开关。机器人携带的USB插头的后面可以是一个USB存储设备和一个USB键盘。通过USB键盘的控制,可以让系统引导到USB存储设备所携带的操作系统中,然后就可以读取系统硬盘上的数据。 或者你也可以用能想到的任何其它方式来完成挑战。比如用无人机携带机器人从窗口投放进办公室——也许机器人完成任务后还可能全身而退。 从数字世界突破物理世界的——极棒跨次元 CTF 这可能是有史以来最好玩的 CTF。 传统 CTF 比赛,始于二次元,终于二次元。而在“极棒跨次元 CTF”中,每支参赛队会分配到一个无人机作战系统。大家不但要进行传统 CTF 比赛的网络攻防,争夺无人机作战系统的控制权,还要控制无人机发起对其他队伍作战基地的物理攻击。最后以物理攻击的结果论胜负。 当数字世界的攻防和物理世界的攻防结合在一起,无论是技术还是策略的比拼,都将变得更加火热和刺激。 提出“打破结界”,不仅是指打破物理世界和现实世界的结界,还希望打破技术的结界,让机器人社区、CTF 社区都能参与到“极棒” GeekPwn 1024 中来。社区间的跨界交流,也许能产生出更有趣的东西。 更详细的比赛说明将会在晚些时候公布。
阅读全文
1...891011121314