访谈|Shota Shinogi : 如交战般有趣和似行走般自然

[他多次在Black Hat会议上担任讲者,是出生在法国又在十岁回乡的日本人,将编程视为至大乐趣的程序员,喜欢C++和汇编语言但不会强加个人喜好的自由派,碰到困扰会先笑起来的绅士。本文主角,如果让他自己用一个词形容,大概是:正在前进的安全工程师]

一周后他将在美国Black Hat 2015大会上做演讲,一天前他在日本家中测试程序的新功能。而现在他站在位于香港岛湾仔的,香港会展中心的某一层,刚刚结束了自己在一场科技大会上的演讲。

这是他第二次来到香港,上一次来是八年前,那时第一代iPhone才刚出现。本次成行原因是Web Summit——一个起源于都柏林的创业聚会——联系了他,希望他成为他们亚洲首场活动(RISE)中的讲者。虽然这个安全工程师之前只在Black Hat大会和安全研究活动上发表过演说,从来没有听过这一创业圈的聚会,但听说和科技相关,还是迅速同意了。

他决定像往常一样讲讲自己开发的ShinoBot Suite。

什么是ShinoBot Suite?

ShinoBOT Suite是一套包含文件传输和密码截取等行为在内的,用于检测安全产品性能的远程攻击模拟器。用比较浅显的话讲,既是通过模仿病毒来观察防御软件的反应。

这个定义已经是他演讲主题中最容易听懂的部分,在他开始详细介绍Shinobot.exe会采取的具体操作以及它和Shinobot.com间的信息交换时,大部分在场观众,那些更喜欢在融资数目和商业模式上鼓掌的人,都已经陷入了云里雾里的状态。

他自己也注意到了这种情况。大约两小时后,他将在聊天时一边笑着猜想到底有多少人听懂了,一边调出由随行的侄子拍摄的现场照片,向对面的人一一指出观众里前排两三个看起来全部听懂了的人,和后排一两位甚至已经睡着了的先生。

他现在就在舞台边等着那个对面的人,虽然按照之前的约定,那人在他演讲结束前就应该在观众席里等他了。

那人,很抱歉,就是在下我。

[如交战般有趣]

活动开始前几天,我在讲者名单中注意到了Shota Shinogi以及他那个和场内其他演讲相差甚远的技术主题,于是发邮件希望谈谈此类技术话题在网路创业类聚会上的作用。

邮件在东京时间凌晨3点45分发出。3点48分,邮箱里就出现了他的完整回复,之后我们在半小时内确定了具体的时间安排。工作狂,大概是我对他的第一印象。

然而在我迟到了10分钟出现在舞台边时,这位工作狂只是很自然地结束了和观众的对话,笑着和我握了握手,又介绍了一起来的侄子。我们边寒暄边往回走,在人满为患的media village找了两个座位,正式谈了起来。

首先当然是ShinoBOT Suite的更新。

(一) 新版本

他拿来我的本子,在上面画下简易的示范草图。


[由于我们又在背面写了很多字,原来的草图可能看不清楚。左边是笔者做的简略说明图]

ShinoBot的用户,通常都是安全软件业从业人员或互联网公司里维护系统的人。 在之前的版本里,他们需要连接软件和网站(Shinobot.com)进行操作。但这个网址并不被大型安全网站,比如知名安全产品公司McAfee的TrustedSource, 列为可信任的网址,所以时常被拉入黑名单。

[TrustedSource页面上的ShinoBot]

因此,他开发了ShinoProxy作为中介,从软件(ShinoBot.exe)到网站的信息交换将通过这个中介进行,从而避开黑名单的限制。这个新功能也将是他本次在Black Hat 2015上演讲的重点之一。

在那之前,他正如很多攻击类黑客常干的那样,通过加密包含网址的关键字符串(比如"shinobot.com"),以避开安全软件的侦测。加密或者说字符串变换的方式有多种,他在官方网站上说明这点时举了一个例子,是用Ascii代码进行字母变换。

[Shota在网站上提供的加密方式的例子]

当然,未被列出的其他算法应该会比这种编程入门作业程度的加密手段复杂一点。至少复杂到如他所说,不易被小型防御软件破解的程度。

不过如你所见,这类掩藏关键代码的手段只能应付一些基本的, 基于特征来识别病毒的模式识别防御(pattern recognition)。 他的最终目的是让程序在电脑里运作,测试安全软件的行为检测(behavior detection)功能。

不断测试来比较不同的安全软件,并思索应该怎么调整,才是他一开始独自开发这套工具的原因。


(二) 如交战的攻防乐趣

“你有什么爱好?”

Shota想了半天,犹犹豫豫地说:“看F1赛车”。他稍后又解释,自己从来没开过,喜欢看是因为赛场上有竞争,很有乐趣。

竞争的乐趣让他迈入了安全行业。虽然这个行业看上去并不属于会让普通人,甚至普通程序员产生激情的地方。

在我直接提及一些程序员会觉得做安全比较无聊时,他做出了个“一山更比一山高”的手势(用两只手不断往上叠,把彼此压下去):“在这个行业里,你可以不断想一个攻击的方法,然后想怎么防卫它,然后再想那怎么调整攻击,然后再...”。

解释这个以矛攻盾的循环过程让他笑了起来。也正是在循环的某一段里,为了检测市面上各家安全软件在行为检测上的性能,他开发了ShinoBot这个模拟攻击工具。之后不断根据模拟攻击的结果以及用户反馈调整ShinoBot,并再针对调整版研究防御者应该如何优化防守。

他神采飞扬地比比画画,看起来仅从这一项里就已得到莫大的满足。

[似行走般自然]

的确是。我稍后问他除了看F1外,有没有日常生活中的爱好,比如工作结束后做什么,他毫不犹豫地回答:“编程(coding)”。实际上,在收到我邮件的那个凌晨,他也正默默在电脑前调试着ShinoBot。

但是编程不属于工作吗?他大笑起来,说自己总是在编程的,然后停下来,似乎想要想出个更能被常人称为爱好的东西,但没有成功。

我依照程序员的一般癖好提示,玩游戏吗? 他玩,但通常是那个业内人士基本都参与的CTF(Capture The Flag,网络安全人员间进行的技术竞技比赛)。

[CTF起源于知名黑客聚会DEF CON,之后在全球各地都有大大小小的赛事。配图来自DEF CON网站]

其他只有和策略分析有关的电脑游戏,比如文明(全称Sid Meier's Civilization,曾经风靡一时的战略类游戏 )。那么世纪帝国(Age of Empires,和文明类似的战略类游戏)呢?  他也玩。于是我们聊了一会帝国各版本的不同,并伤感于没有新作出现的事实。

既然喜欢策略类游戏,那他或许也喜欢下棋? 这个问题突然又让他笑了起来,他说自己以前喜欢下,但后来很少了,因为: “Coding is much more interesting than Chess”。


(四)少年Shota与纸上程式

如果要问他何时发现了程序的有趣之处,他大概会回答一开始。一开始,既是中学时。

出生在法国的Shota十岁才回日本,以法语为母语的他第一冲击就来自日文在理解上的复杂度(他同时严肃强调汉字——日文中的Kanji——尤其难)。幸好有些东西是共通的,比如数学。

当时中学数学教材上附有一些介绍程序语言的资料,当然,由于不是正式内容,老师并不会在课上教授。然而中学生Shota却被吸引,翻完了整本册子,试着在纸上编程。

听到这里我想起了小学计算机组的老师。他经常以一种缅怀或是遗憾的语气怀念自己当年在纸带上打孔塞入机器来测试程序的日子(跟着怒斥我们太沉迷游戏不珍惜光阴)。于是我问是Shota是否也是如此。

不是。他所谓的纸上程式,真的就是字面意义上的纸。

他在纸上写下代码,然后在脑海里想象是否能运转顺利。 幸好,这种实在悲惨的日子没有持续多久,不停打工的中学生Shota终于存够了钱,在1997年买了部已经有四年寿命的二手电脑。

当时微软已经推出了比较成熟的,面向个人的操作系统Windows 95。 可惜,买完电脑后的钱并不够他买下系统软件,于是只能从MS-DOS开始。 听到这里,我告诉他自己小学刚开始用计算机的时候也是DOS,我们再次互相感叹一番,然后顺势转入了下一个话题。

关于喜好的话题。


(五)似行走的编程

对程序员而言,尤其是那些对command line有偏执的极端正统程序员而言,MS-DOS和Linux之类的系统会好过Windows吗?他马上明白了我的意思,说不会。 因为那类图像系统的出现让操作便捷了很多,也让普通人方便入门。

那么程序语言呢?作为程序员有自己最喜欢或者最常用的语言吗?

在那之前,也就是互相感叹过去的时候,他已经在我的本子上从Q BASIC (那是他最先学会的语言)开始列出了自己一路的过程。

现在,他盯着那列语言想了想,圈出了C++,解释说这算是他最喜欢的语言。 然后又圈出了PHP,因为“开发ShinoBot的时候有用上它”,最后又圈出了“x86 Assembler ” 和 “x64 Assembler” (常用汇编语言)。

我们又进入下一个热门讨论项,喜欢peer review吗? 这一硅谷和中国北京互联网公司常见的风气似乎没有浸染到他所在的公司。Shota认真理解了一番所谓捉对编程的概念后,又笑了起来,并庆幸自己没碰上这种事,因为他更习惯独自敲打代码。

这个非典型的,看起来似乎太温和的程序员又面临了下一个严峻的考验:对你而言,造就一个优秀程序员的是什么(What makes a great coder)?

他第一次出现了窘态,重复了遍问题,感叹说实在太难回答了。然后,似乎是在回答也似乎是在解释为什么回答不了的,开始说明自己对程序员的理解。

“对我而言,我编程就像我走路”。(I code like I walk)

这算是比较新颖的比喻。通常而言,程序员们更常说自己编程就像说话(code like I talk)——滔滔不绝,不需思考,手到擒来,简明易懂等等。

他用手比出一条平稳的线,说,就像走路那样自然,我在想编程的时候——不管那是什么时候——就编程,同时也用我习惯的方法来编程。比如说加注释,一些程序员会加很多注释,一些不喜欢加,我会在我需要加的时候加。

他打开了自己的笔记本电脑,给我看他前几天写的代码。 并指着其中的一部分。“比如我在用汇编语言指令时,会加详细的注释,不然自己以后肯定会忘了这些是什么意思。 但在一些其他的地方很少加,因为自己看得懂”。

我们就这么陷入了加注释的习惯这一话题,直到最后分别,都忘了和他确认,他心中造就好程序员的东西到底是什么。


(六)结尾与生活

他的侄子,二十二岁的在投资公司实习的大学生,以惊人的耐性(大概还有自娱自乐的能力)坐在我们旁边微笑了两个小时,终于在端来新的咖啡后决定离开去听一场喜欢的演讲。

Shota 接过侄子托管的尼康单反相机,开始极有趣味地向我展示它的性能。 比如对焦的准确度,放大远景后的高清画质等等。 他顺便又提起了侄子,他们会在活动结束后用一个下午去澳门玩玩,因为侄子二十二岁,可以进赌场了。

我们讨论了一些非常琐碎的问题,比如到底有没有必要去澳门和去澳门一晚上够不够玩等等。以及一些切实的问题,比如从小在法国长大并会流利法语给他带来了什么,常见的答案应该会和欧洲文化的魅力有关,不过Shota不是个常见的人。 他的回答是基本没什么,因为 “法国信息安全业不发达,法语研究资料不多”。

我们开始往会展门口走,他选择那里作为自己照片的拍摄背景,因为有个大大的RISE标志。标志前有一对参展团队也在拍照。等待时我对着玻璃幕墙边的人影和海景试拍了几张,然后开始问他一些关于这款相机的白平衡和景深的问题。

这些问题似乎给了他某种我很擅长摄影的错觉,所以在最后看到自己的纪念照时,露出了一种非常微妙的困惑表情。

[笔者技术有限,但相机真的是好相机]

我们向彼此客气地解释一番,比如拍到整个标志就会看不清人之类的,然后和平地再次握手告别。

这位安全工程师将把电脑放回住的酒店,然后或者写一会儿程序,或者早早为主办方晚上在中国会举办的晚餐换上衣服。他当时指着邀请函上的正式着装要求大笑了一番,但对于这个生于法国且一直频繁来回的人而言,穿得合适,肯定不会是个问题。


[后面的话:这是篇对一般读者而言技术性太强的访谈。实际上,此文的上一稿更加晦涩难懂。我当时考虑过干脆不发,但Shota对编程的那种“温和派的热爱” 实在充满了魅力,让人想起一些事实。

在选择越来越多,工具越来越复杂,大家习惯用喜欢的工具和语言站队并彼此鄙视时,我们可能都忘了,一开始,我们决定输入第一行代码,拍下第一幅照片,写下第一篇文章,都是因为那样做很有趣。

献给所有仍然在有趣中生活的人,以及各位长期被忽略的安全工程师。]

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,406评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,732评论 3 393
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,711评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,380评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,432评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,301评论 1 301
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,145评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,008评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,443评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,649评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,795评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,501评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,119评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,731评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,865评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,899评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,724评论 2 354

推荐阅读更多精彩内容

  • 本文把程序员所需掌握的关键知识总结为三大类19个关键概念,然后给出了掌握每个关键概念所需的入门书籍,必读书籍,以及...
    dle_oxio阅读 11,111评论 6 244
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,108评论 25 707
  • 一个人的武林
    土得掉渣阅读 77评论 0 0
  • 5月,在崇明的乡间,不时看到屋前屋后或水沟边栽种着三两棵枇杷树,树上挂着成熟的杏黄枇杷。街市上,也有淳朴乡...
    明烛天南_fdd7阅读 243评论 1 2
  • 百日行动从16日开始计时,过去了整整10天,回顾总结一下: 一、打卡情况,全部完成 01、如何在读完一篇文章后提出...
    绣一针阅读 114评论 2 3