Category Archives: 生活

2014年总结

2014年的整体情况是,为了一件事,把几乎所有的学习、产出和生活都放弃了。结果还算不错,运气也还好。

入:

  • 换了个东家,也换了个国家
  • 几乎没读几本书、没看几篇论文
  • 英语能力和生活能力有了一点提高
  • 意外进入一个新的领域:OS X安全

出:

  • 只在HITCON和XCON两个会议上做了报告(XCON是合作议题,我没到场),拒绝了其他的邀请,也只去其他三个会议晃了一圈:Bsides SF, RSA, and QCon Beijing
  • 翻译完两本书,以后不打算再做翻译
  • 发现、分析和报告了几个iOS和Android的恶意代码,囊括了全年iOS平台新发现恶意代码中的一半,Oldboot、WireLurker和CoolReaper这三个比较有技术特点,算是完成了去年写下的“做出一些remarkable的成绩”的目标
  • 拿到了全球1500多家媒体的报道,涵盖了所有顶级媒体
  • 写了2个美国专利
  • 写了几千行值得留下的代码
  • 没写个人博客
  • 停用或者减少使用几个SNS网站账号(所以和我联系的最好方法是邮件)
  • 给《程序员》写了一篇很长的总结文章

喜欢:

  • 书:硅谷百年史、Android Security Internals、Android Hacker’s Handbook、百年追求:台湾民主运动的故事、Make: Electronics
  • 纪录片/电视剧:南太平洋、侣行、Silicon Valley、Halt & Catch Fire、帝企鹅日记
  • 设备:Tecsun PL-880(很能感受到世界的存在)、Bose SoundLink Mini、PlayStation 4、Hakko FX-888D、Dell P2815Q、小米移动电源、Bose QuiteComfort 15
  • 软件:JEB、PyCharm、Dash、010 Editor、IDA Pro、Evernote、Reeder

明年:

  • 保持身份
  • 弥补整个CS基础薄弱的问题
  • 学点EE玩
  • 在英文会议上作报告、发论文

2013年总结

入:

  • 进入2个新的领域:开源硬件、iOS安全
  • 在旧金山、硅谷和台北生活了一个月,逛了许多创业公司、计算机历史博物馆、诚品书店
  • 去了国内的7个城市
  • 将全部的系统和软件更换成正版
  • 读了102本书——9月之后数量显著降低
  • 看了24部电影或电视
  • 用Evernote写了280份笔记
  • 玩了12种开源硬件和可穿戴设备
  • 读了30多篇论文和40多份幻灯片

出:

  • 在9个会议或活动上做报告,包括HITCON、XCON、CNCERT和ISC
  • 向Google报告了Android系统的4个漏洞,向Facebook上报了1个漏洞,给阿里上报15个漏洞
  • 翻译了1本书,给1本书写了前言
  • 被Fast Company、CCTV-1、CSDN采访和报道
  • 继续幸运地没有写任何垃圾专利和垃圾论文
  • 发表了1篇技术文章(好少)、7篇博客(还是好少)
  • 写了8个开源项目代码,但是基本都没有复用价值
  • 写了3000行值得留下的代码
  • 给5种开源硬件或可穿戴设备写了代码
  • 发了301条微博
  • 更新了100多次wiki.secmobi

喜欢:

  • 书:沃兹传、林达系列、重生手记、Practical 3D Printers
  • 电影:遗愿清单、砰然心动
  • 设备:RepRap、Leap Motion、Arduino、wifi.io、Google Glass

明年:

  • 更加专注于少数方向,做出一些remarkable的成绩

2013年台湾黑客大会回顾: 如何组织听众为中心的技术活动

7月19日和20日,受主办方邀请和看雪安全论坛推荐,我有幸前往台北参加今年的台湾黑客大会(Hacks In Taiwan Conference, HITCON)并作演讲。

HITCON是亚太地区安全界最好的技术性会议之一,由台湾民间安全组织chroot主办。今年的会议邀请到7个国家或地区的30多位讲师带来30场长达50分钟的精彩报告,其中,大陆的安天实验室、金山网络、奇虎360、绿盟、IBM和上海交大等公司或高校均有研究人员受邀成为讲师。

与其他安全会议不同,除了分享技术,HITCON的另一大宗旨是让来宾体验真正的黑客文化。这一特色定位让它的各个环节、各类活动和会议组织方法都与众不同。因此,在这里,我不打算过多地介绍技术报告,也不打算探讨安全技术的趋势和动态,而是计划从几个角度去分析HITCON的主办方如何组织这个会议、为什么要这样组织、怎么做到的。这样的回顾也许会为我们举行其他技术会议和社区活动提供参考与借鉴。

还需要说明的是,后面的内容主要来自我与会务人员的单独交流、以及个人的观察与思考,并不代表会议主办方的观点。我只是一个听众和讲师,没有真正参与会议组织,所以认识难免片面、思考难免局限,希望大家理解。

资金和场地

HITCON的资金来源主要是赞助和门票,两者大约各占一半,每年的开销可以维持收支平衡。

相比于相同水平的会议(例如SyScan),HITCON的门票非常便宜,今年第一阶段报名票价折合人民币约600元,学生更是有进一步的半价。这样的高性价比让800张门票在开放注册后三分钟内售罄,速度堪比Apple和Google的开发者大会。

另一方面,会议得到了当地许多信息安全公司、IT公司、网络运营商、银行的赞助。值得称道的是,主办方坚持无论是否赞助商的议题,绝不允许出现各种形式的软广告,而只能是真正的技术分享;讲师们也很好地遵守了这一要求。其中一个花絮是,今年本来没有主动联系微软公司赞助,但微软自己找上门来希望继续成为最顶级的赞助商,并且不要求安排议题或发言。我想,之所以能形成这样良好的局面,与HITCON品牌的成功树立有莫大的关系。

HITCON的组织有许多细节的地方值得学习,对赞助商和协办方的尊重是其中之一。在官方网站的Sponsor页面,主办方为长期合作方的大logo打上了不同的标签,比如“提供报名系统3年”、“连续补助场地4年”、“连续设计网站3年”、“连续赞助9年的辉煌荣耀!!”等,大部分赞助商都能感受到自己的与众不同。

前面提到,会议一共销售了800张门票。这个参会人数是受限于场地的。近年来,HITCON的会场选择了中央研究院的人文社会科学馆,技术议题一共占用了其中三个会议厅。也就是说,三个分会场并行地进行演讲。会场的硬件设施极好,每个座位均有麦克风、网线口和电源插座。实际上,整个活动使用了五个会议厅,其他两个用于后面将要介绍的“算命摊”和Wargame。

图1 会场的每个座位有麦克风、电源插座和网口,提供了许多方便

人员和议题

HITCON的会务人员绝大部分是当地的志愿者,其余的则基本是chroot组织的成员。热情洋溢的志愿者是这个会议最亮丽的风景。一个同去参会的朋友回到北京后还在微博上大力称赞志愿者,其他一些赴会的朋友也都深有感触。

HITCON的志愿者中有公司职员,也有在校学生。我不知道具体有多少人,但是在会议结束时,主办方介绍会务人员并邀请上台表示感谢,光是按照分工来介绍、没有念详细的名单,就花费了十多分钟。我与几位负责讲师招待的志愿者聊天时了解到,她(他)们的招募主要是通过口口相传完成的,并未找专门的志愿者组织或者做大范围的宣传。我想,HITCON的持续品牌效应、与高校计算机专业的长期良好关系、chroot这一老组织的深厚而广阔的人脉网络,是能找到如此多积极、主动、热情、负责的志愿者的主要原因。

图2 会场的工作人员主要是志愿者

图3 这只是其中一组志愿者

除了会务人员,另一批为听众服务的就是讲师了。HITCON在讲师邀请上并不主要看其头衔,更重要的可能还是考虑其是否处于技术一线、是否在业内保持活跃,以及最关键是议题本身的质量。两天的会议中,甚至只有一个象征性的5分钟keynote,就直接进入了三个并行的分论坛,非常务实。而30个议题分到三个分论坛,一共两天的会议时间,这样每个议题都有50分钟的时间。在这样的安排下,在演讲的时候,我终于有机会把一个技术话题彻底讲透了,感觉非常爽;作为听众的时候,我也可以尽心地进入其他话题的上下文状态,并且真正有机会了解技术细节,而不仅仅停留在快速的话题转换和概念描述阶段。

图4 充足的时间可以让讲师深入细节介绍

图5 志愿者们也很好学

对听众来说,三个分论坛并行地举行,如何选择听哪一个呢?大陆的会议往往是将每个分论坛设立一个明确的主题,并且在会议手册上介绍几十上百字的讲师身份、经历和议题内容,由听众自己选择。HITCON的做法则有所不同。它的三个分论坛并没有明确的主题;在大会主办方致辞中,花了许多时间来对今年的议题做分类,用一条主线将各个不同的议题串起来进行介绍;每个听众还会在注册时领到一本厚厚的幻灯片打印件,所有议题的幻灯片都在其中,听众可以参照完整的内容做出更准确的判断和选择。最后,在议题进行期间,听众还能利用一个便捷的渠道实时交流各个会场的现状,这个渠道是——IRC。

基于IRC的听众交互和交流

大陆的技术人员现在已经很少使用IRC交流了,我们甚至会认为这种早期的群聊方式早就被即时通信软件、微博、微信等取代。然而,在其他国家和地区的技术圈里,IRC还在被日常使用,比如一些开源项目就在freenode有固定的频道。HITCON也使用IRC用于参会人员之间的实时交流。在每个会场,主办方都在前台放了两块大屏幕,左边一块投放IRC频道的聊天记录,右边一块投放当前的幻灯片。看起来很像我们近几年常用的微博墙?下面即是两者的区别。主办方和听众用IRC来做这些事情:

  • 听众在IRC里交流对当前议题的看法和评价,对一些演讲细节提出问题和互相讨论,指出可能的错误,或者赞赏其中不错的细节,对搞笑的片段哈哈大笑,以及一起补充与议题相关的资源。因此,虽然有三个会场同时讲,但每一位听众都可以实时地了解到三场演讲的真实情况,包括讲得怎么样、话题有没有趣等。当出现一个超级棒的演讲时,其他两个会场的听众会马上知道并且跑过去听;另一方面,也会出现讲师比较“水”,IRC里嘘声一片的情况。这样的实时交谈能力是微博墙难以达到的。

图6 火爆的议题就会这样

  • 听众在IRC里讨论其他技术话题,互相认识和了解彼此,每一句话的受众面也覆盖到全场,不会有一对一和陌生人聊天的羞涩和低效。
  • 主办方用它来发布会务信息、失物招领信息、Wargame进展情况等等。
  • 主办方通过IRC的讨论了解听众对讲师和议题的真实感受,获得最直观和有效的反馈。
  • 最好玩的是,由于会场提供了开放的WiFi网络,不加密的网络会话可以被监听,因此主办方搞了一个“绵羊墙”,也就是设立了一个IRC bot,它会监听整个WiFi网络,抽取其中明文传输的账号、密码和URL,自动发到IRC频道里(当然,账号和密码打上了部分掩码)。我在现场看到,绵羊墙上平均每分钟都会发出一到两个HTTP会话和邮箱登陆的账号密码,这既让大家真正感受到无线网络攻击的危险,也主动地让一些可能遭到攻击的听众发现问题,还让一些没做好加密的网络服务和客户端软件原形毕露。比如在第二天,绵羊墙上发布了一家大型企业后台phpMyAdmin的root账户登陆密码,整个IRC频道瞬间沸腾了起来。

图7 绵羊墙上抓到了新的密码

  • 最后,一个当地的朋友在会后告诉我,他有其他事情没能来参会,但全程用手机参与了IRC频道的聊天,依然感觉收获很多。

图8 两块屏幕,左边是实时的IRC聊天兼绵羊墙

我们再回想一下,大陆地区会议的微博墙,能很好地完成这些功能吗?那种基于会议标签搜集微博并集中展现的设计,仔细思考,其实更像是主办方的一种品牌宣传方式,而实际上难以调动现场观众的相互交流。

这一次的台湾之行,我们看到台湾人除了普遍使用对应于人人的Facebook、对应于微博的Twitter(他们也常用微博)、对应于微信的Line,还会在Yahoo开博客、用IRC聊天、用一个名为PTT的无所不包的BBS聊生活、用邮件组等等,就连出租车司机都和我讨论Yahoo香港的博客服务和Facebook的日志在排版格式上各有什么优劣。反之,我们在过去的几年里已经快速赶上了IT产业的一波又一波浪潮,抛弃了IRC、BBS、邮件组、博客,开始使用微博、微信等更加时尚和便捷的服务。对此,一个同行的前辈如是评价:在这种技术选择上,台湾的人秉承了一贯作风,以缓慢而略微守旧的节奏缓慢变革,保留了许多传统的东西;而大陆则更为激进,大步高速向前发展,如果把握不好,损失可能更大。

从IRC这个方式出发,我不仅看到主办方采用了这种方式建立起听众之间有效的交流渠道,也能进一步感受到两岸IT产业对民众生活的不同影响和文化本身的差异。

特色活动:算命摊

HITCON网站上并没有对“算命摊”这个活动作重点介绍。从主办方致辞的介绍里,我以为这是搞了一个精通奇门八卦的老前辈在现场看着手相为每个人排忧解难,直到第二天早上主办方说邀请了林志玲过来当算命摊的助理,我信了,决定跑去看看。

美女自然没有见到。老前辈是Tim Hsu,台湾黑客界传说中的提姆大师。在会议第一天上午,Tim就做了一个名为Life of Coder: The adventure through the landscape of bugs的演讲,用包括Star Trek情节在内的多个案例作为引子来讲软件漏洞形成的原因,把早至94年的漏洞和今年的kernel漏洞联系到一起来,功力非常深厚。这样一个经验丰富又能说会道的人担任算命摊的主持人,自然很恰当。

图9 提姆大师

严格地说,算命摊真的不是摊位,而是第四个分会场。主办方租了顶楼的宴会大厅,摆满了桌椅,还有个很大的舞台,然后邀请了许多业界的前辈高人到台上介绍自己过去的经历和体会,比如CIH病毒的作者陈盈豪。这个活动实际面向的是两类人:一是学生,尤其是计算机专业和信息安全专业的学生,他们可能暂时还听不懂其他会场的技术议题,或者他们更想了解自己在这条道路上该如何前进和成长;二是其他听众,当三个分会场都很无聊时,至少还可以跑到算命摊来开心一下或者见见名人。因此,这个会场基本是爆满的,火热程度超过大部分其他议题。

图10 算命摊不只是满座,还有许多人站着听

这个活动有两点给我的感触很深。首先是,绝不只是前辈高人才有发言的机会,许多时候,主持人会邀请一些普通的技术人员来讲自己从高中自学计算机、大学读书、工作以后的经历等等。而听众也并没有因为讲的人不出名而退场或者做别的事,依然专注地听讲台的人人说着自己那些常见的故事。也许他们真正的理解了,只有真正和自己一样经历的人,经验才更有借鉴的价值。另一点是,台湾的信息安全界非常重视对高校学生的培养,虽然信息安全专业近年来在台湾日渐式微(缺少本土研发企业和良性的产业竞争环境),但学生的专业成长依然是每个人都非常关心的话题。在午餐时,被大陆第一代黑客公认的台湾导师coolfire津津有味地和我讨论刚刚听到的韩国人介绍韩国如何培养白帽黑客的议题,虽然他已经逐渐退出了安全的圈子。

特色活动:Wargame

除了通过算命摊来分享成长经历和学习经验,HITCON还很注重实战性的训练。于是最近几年设立了Wargame这个环节,也就是所谓的黑客大赛。这种比赛在安全界并不少见,目前国外的许多顶级会议都有设立,名字一般叫CTF(capture the flag,夺旗比赛),都是由多支自行组织的队伍对不同类型的实战场景发起安全攻击,类型包括Web渗透、可执行文件逆向、漏洞分析和利用、取证等,最后根据积分和时间排出名次并颁发奖励。在比赛结束后,各个战队通常还会在自己的博客上对经典的题目写出笔记来,互相学习和进步。

图11 Wargeme颁奖

这类比赛的组织需要专门的经验,我没有相关的经历,因此不能再做评说。最近两年,国内清华大学的蓝莲花战队(blue-lotus)异军突起,接连在国际CTF比赛夺得好名次,今年的战队积分排名已经位居全球第四、亚太第一。从他们的博客,可以了解到更多的相关内容。

搞笑的气氛

整个HITCON会议充满了各类搞笑,主办方和参会人员都很开心地渡过了两天的时光。下面是我记得的一些搞笑之处:

  • 在议程中,有专门的“和正妹聊天”、“抢茶点”的环节,其实是普通的茶歇而已:-)
  • 在介绍赞助商时,负责人将不同级别的赞助商logo打上不同程度的马赛克,越顶级赞助商的图标越清晰和巨大,并表示白银级的“明年要加油哦”
  • 大会专门设立了“黑客奇葩奖”,评选过去一年搞笑的安全事件和安全报道,最终奇葩事件奖颁给了一个砸掉许多电脑以清除病毒的政府,另一个奇葩奖的领奖者则浑身笼罩在黑布中只露出眼球一言不发地领奖走人——其实是会务人员假扮。

图12 这位领奖嘉宾……

  • 有一个新加坡人的议题叫“OS X Rootkits Stuff”,会务组直接翻译成“那些洞,我們一起追的 OS X Rootkits”。
  • 第二天一大早,主办方跑出来说,大家昨天问美女在哪里,所以我们请来了林志玲做算命摊的助理……

图13 讲师也搞笑

也就是说,从会议举办前、开场时直到结束时,主办方都是把它当成了一件“好好玩”的事情来做,而没有在任何地方渲染官方、正式、权威的气息,让每一个人都能感觉到开心、感觉到自己的参与感和存在感。这种感觉,也是在大陆的许多技术会议中所难以找到的。

图14 算命摊上乐呵呵的听众

图15 讲师合影时……

一点思考

技术会议的组织总是让我们感觉困难重重,需要兼顾主办方、协办方、赞助方、讲师、听众的利益,在其中做出权衡和一定的倾斜。在国内的许多会议中,我们看到大部分的利益向赞助方和讲师倾斜,并致力于打造会议品牌,通过主办方和讲师的权威性来吸引听众,但听众真实反应如何,我们甚至难以知道。

与此相比,这一次在台湾,我们看到了一场组织良好的会议,它以听众为中心,成功地为亚太地区的安全技术交流做出了贡献,同时也塑造了自己的品牌,并让赞助方敢到满意。这其中,除了两岸文化差异和产业差异之外,我相信还有许多值得我们学习的思路和方法。

2013年1月

在1月最主要的变化是开始搞开源硬件。

受到去年RubyConfChina上一个议题的鼓舞,购买了Arduino开发板和一堆传感器,前几天又买了常用的零件和面包板。在这个板子上写代码确实很容易,扩展也很方便。在考虑:i. 和Android通过ADK的互动;ii. 固件怎么逆向。

受到Chris Anderson的Maker这本书影响,以及他的离职创业,我也跟风开始玩3D打印机。买了一台国产的Prusa Mendel,在一位朋友的帮助下花了一天半的时间组装起来。后来遇到板子烧坏、固件烧错的问题,加上中间几次出差和封闭开发,拖了一个月才终于完全组装好。前天和昨天打出了一些小玩意儿。其实买这个廉价的套件不是为了真打印出什么来(事实上,到现在打印平台的精度依然没调好),而是充分了解整个工具链和硬件,并试着做一点hack。

开始参加北京创客空间的活动。牛人很多,见识不少;讨论和研发的气氛非常不错。

因为出差较多,在路上读完了9本书。多看阅读是主要的途径,对这个平台的印象越来越好。比较喜欢的书是吴晓波的《浩荡两千年》和林达的近距离看美国系列之三。另外,抽空帮出版社校对了一本书。

1月找到了Android的一些漏洞,还没有上报(有够拖拉的)。其实大部分时间都是开会、出差、项目和封闭。很多事情其实可以效率更高。

最后,开始学iOS开发的公开课,写了个小计算器。

2012年总结

除小说以外,读了48本书,其中用Kindle、平板和手机读了23本。

看了28部电影/电视剧。

买了8个电子设备,难以计算的软件,21本电子书,33本实体书。

去了2个国家,10个城市。骑行了两次(东湖、西湖+龙井)。

写了72篇博客文章,其中中文55篇,英文17篇。新做了1个网站。

在《程序员》发表2篇技术文章。(幸运地)写了0个没价值的专利和0篇没价值的论文。

写了0本书,翻译了0本书,校对了2本书。

在4个公开会议做技术报告。加入了3个社区组织。提交了17个安全漏洞。

学习了1门语言,0门公开课程。

(汗颜地只)编写了1000多行值得继续留着的代码。

阅读了80多篇论文或技术报告。

喜欢的书:黎曼猜想漫谈,掘金黑客,The Ph.D. Grind,视觉之旅,历史深处的忧虑,中国近代史,寻路中国。

喜欢的电影:寿司之神,老男孩,触不可及,白兔糖。