尽管鼻梁被碰坍陷,牙齿被撞裂,“伤痕累累”的沈明星依然喜欢对抗运动,他从骨子里觉得:“男人就应该拼一点,偶尔争强好斗下。”
沈明星是网易云安全首席架构师,他主要从事安全防御体系建设、安全应急响应、云安全、安全服务产品化等工作,目前正致力于实践传统企业在向云进行迁移时,利用云安全服务解决企业的安全需求。
作为网易云安全首席架构师,他的大部分精力在管理上,偶尔看到下属碰到难解的问题,经过多轮努力仍无解时,他往往因为好胜心,抵不住诱惑一头扎入其中,再次回到“篮球场”上。也正是如此,他带领着团队自研出网易独有的NDS抗D架构,稳定性上达到99.99%;同时,自研的“自适应DDoS攻击深度检测和防御系统”也入选了工信部公示的网络安全示范项目。
照片背后的故事:手里拿着有相机,想拍点东西,正好看到沈明星在前面指导同事,于是捏了这张照片
他说,安全是需要不断造轮子的。言论乍听之下骇世惊俗。不要重复造轮子——Stop Trying to Reinvent the Wheel,这是程序员被告知最多的行为准则,然而当听他静静讲完,则觉得安全行业应当如此。
和他的访谈中,沈明星讲了很多挑战,技术上有人质疑他:“这玩意不实用。”安全云化对外服务后,他遭遇瓶颈,有点玩不转了……然而越是挑战,越是让他在这种技术和人生的对抗中找到了乐趣。
现在,我们一起认识下这位技术专家——沈明星。
王伟撞击事件、911和闭塞环境
浙江杭州,美丽的钱塘江畔、六和塔边的月轮山峦下是浙江大学之江校区。2001年9月9日,沈明星拖着厚重的行李箱来到这里报道。
对入学日期之所以记得特别清楚,“是因为过两天就是911。”
那时的之江校区比较闭塞,楼板都是木头铺的,甚至可以从上面看到下面。交通不便的环境,让沈明星更加得以沉心学习计算机基础知识。为什么学计算机,沈明星说自己内心深处从高中开始就有一股好奇心和求知欲驱动:“红警、CS这些游戏,计算机是如何去构建和表达的?”
大学他的专业是计算机科学与技术,更多的是计算机基础知识和研发层面的东西,与安全无关,似乎是幂幂之中注定,一些因缘让他和安全牵在了一起。
第一个是他的室友。沈明星的室友出身大城市,接触计算机比较早。“当时就有板砖一样厚的康柏电脑,它的内存是32M。”对于细节沈明星记得特别清楚。重点当然不是他这个室友的电脑,而是这位兄弟可以破解软件,能够免费使用,这引起了沈明星的兴趣。
第二个是大环境,沈明星高中、大学那个阶段,国际政治事件频发,比如北约轰炸中国驻南联盟大使馆、王伟撞机事件(4·1中美南海撞机事件),夹杂在大事件一起的还有中美黑客大战。尽管那个时候的沈明星只能算作一个爱国青年,在网络上洒了点“热血”——在网吧里跟着大家“打酱油”,但爱国情怀下的对抗带来的影响却是深远的。
接下来就是“知行合一”,沈明星做了不少算是“出格”但也很刺激的事:黑进教务系统,逛逛服务器,看看数据;中国移动动感积分的兑换话费有漏洞,通过抓包修改,可以让扣500积分,变成增加积分;公交卡、门禁卡信息都是写到卡上的,通过破解读卡器的加密算法,修改金额……
尽管有很多可以占便宜的机会,但三观很正的沈明星只是浅尝辄止。他在采访中强调:“做安全的人,可以去尝试,测试自己的能力,但不能利用自己的安全知识去谋利。”
被安全“盯”上
真正让沈明星走上安全道路,是在他工作的第三年。
他硕士期间就开始在美国道富银行浙江研发中心实习,一开始他做的是研发工作,后台、Web系统、报表、数据库等。随着业务越来越大,安全也成了这个研发中心不得不投入大量资源的领域。
沈明星就这样被盯上。
“牵头组建部门时,首先就想到了我。”因为和那帮人都很熟悉,再加上安全方面有积累、兴趣强烈,沈明星立马就被安全团队拉入伙。
谈及沟通过程,沈明星形容是“一拍即合”。他说自己非常看好安全行业的发展:“信息那个时候已经从线下跑到了线上,安全的工作非常重要。更何况是跟钱相关的业务,因此道富银行对安全非常重视。”
来到安全领域,似鸟投林。沈明星做了很多有价值的事情,比如说,开发出一套漏洞扫描系统。大的金融公司解决安全问题,一般都是购买乙方的产品和服务。但问题点是,商业化的东西,不一定贴合自己业务,而更为关键的是商业化的东西可控性比较差。碰到问题,做改动、提需求、沟通、发新版本、验证……往往一两个月就过去了,这种时间跨度,对敏捷开发、响应是一种灾难。
“我们需要有更多的把控性。”面对现实,沈明星暗暗下定决心。
于是,他们把一些外包出去的安全工作,拿回来自己做。基于一些开源的组件,他们研发出了属于自己的漏洞扫描系统,与此同时,也把漏洞的生命周期管理给做了起来。以前购买的安全服务,只能扫漏洞,但漏洞下一步谁处理、多长时间修复、怎么复查漏洞…这些都很混沌。但现在从漏洞发生、修复、给方案、复查、关闭,整个漏洞生命周期的管理都给做起来了。
“这大大降低了公司的风险。”沈明星说。
来到猪厂
2011年,沈明星加入网易。网易安全部当时内容安全做的特别好,网络安全攻防这块需要补足下,这对沈明星而言这是一个非常好的机会。
在网易七年多的时间,沈明星做了很多事情。主导了漏洞扫描器、入侵检测系统、应用层 DDoS 智能防御系统、流量清洗系统、安全运维平台、网易安全应急响应中心等平台的建设和维护,以及推动了一系列安全制度和策略的落地实施。
中间有遇到很多问题,比如说运维流程上的问题。网络安全跟运维耦合性非常高,但网易有很多运维团队:游戏、有道、邮箱等,不同团队技术标准、底层架构、监控技术和框架都不一样,沟通成本非常高,而且交付质量参差不齐。沈明星就带领团队做了安全运维的流程化、标准化和自动化。这样人的工作经验都沉淀到系统上来了,而不是依赖工程师个人的水平和责任心,从而导致交付东西的质量参差不齐。
流程化、标准化和自动化的另外一个好处则是,便于衡量和考核KPI,比如100个漏洞里,是不是可以要求机器发现的漏洞得占到70%,逻辑的漏洞是不是可以有个20%等。
过程看起来顺理顺章,但真正入手做,又是另外一码事。
举一个小例子:发现一个问题,很难快速定位这个负责人是谁。找人的这个动作中间出现的时间窗口,往往风险很大,随时会有人进来肆意妄为。其次是,大部分开发都没有安全背景且忙着推进自己的业务进度,漏洞很难引起他们的特别重视。
如何解决?对于时间窗口,沈明星是在技术方案能达到的地方会去打上一个虚拟补丁,“这个虚拟补丁并没有真正修复漏洞,但可以挡一挡,为后面的修复争取时间。”漏洞重视的问题,他是深挖——把漏洞的后果直接展示给业务方,业务方往往一般都是以惊讶收尾。“这有一个好处是,提升安全部门在公司的影响力,也推进安全流程的落实。”
创新——DDoS “Docker化”
后来,沈明星又负责DDoS的研发工作,也正是这个阶段有人直接挑战他,认为他做的还不够。
今日的DDos与往日早已不同,随着联网的设备越来越多,带宽的增加非常快,以前几十M、一两G就已经很大了,现在最大的攻击已经达到数T级别了。其次,以前DDoS更多的是单机,发起的攻击资源非常少,现在越来越多的攻击是模拟真实用户请求,打CC,这对防御和算法的要求比较高。再者,随着数字化的进一步发展,互联网的变化和挑战越来越大,技术要求之外,带宽资源的要求越来越欲壑难填。
而传统的抗D设备实际上算是一个单进程的网络设备,只有一个服务源服务所有用户,如果这个服务源“请假了”——比如某一个用户量特别大,导致服务不过来,进程挂掉,所有用户都会受影响。
喜欢打篮球的沈明星,最享受的就是对抗的过程,因为这种直面问题、解决问题的方式让他很兴奋,他喜欢这种斗争。如何通过创新,把DDoS做到极致,是沈明星想拼下的一个点。沈明星思考,是不是可以做一个隔离方案,对每一个用户分配一个服务源:给每一个用户起一个进程,单个进程分配一个资源额度。
“这样,A用户挂掉,就不会影响到B用户,做到资源的隔离。”沈明星说,这等于把DDoS服务Docker化。
按照这个思路,他把产品中做出来了,但紧接着又遇到另外一个问题。有人挑战他:“这玩意不实用。”也的确是如此,进程启动多了,就很容易崩溃,一开始只能达到50多个。
如何破?沈明星又和资源的分配策略斗争起来,他重新写了相关底层的代码,把CPU、内存、网卡等做了一个新的资源池管理,并对每一个设置一个最高值。“如果需求更多资源,则从空闲的资源池里拿。”凭借这个,进程数一下子翻了100倍,稳定达到5000多个进程,并通过极端情况下的流量严格的压测。而这为网易云带来的效益也是明显的,一台机器可以服务很多个客户,并且相互之间不会有任何影响,一年为网易在设备上节省投入上千万元。
架构上做了创新之外,沈明星也在思考能否帮助企业做用户体验上的改善。很多企业尽管用了抗D服务,并且在受到攻击时抗D服务也能够扛住,但还是有部分用户会受到影响,无法享受正常的服务,沈明星好胜的心里就又多了这么一个目标,一有时间就琢磨。
有一天,他突然想到,我们是不是可以做一个插件,和用户的业务做一个轻量级耦合。“用户请求登录,强验证因子证通过后,就可以认定你不是一个攻击的人。”他接着思考,可以做一个插件,对这个过程提取特征码,并加白,后续就不需要验证了,这样就能保证遭到特大规模攻击时,在线的用户不会失去服务。
想通之后,沈明星都有点自恋,他佩服自己的这个想法。随后团队赶紧去研发和测试,效果符合预期。后来就有不少客户受益这个技术,其中有位客户还送来非常名贵的茶叶,“原因就是这些定制的插件,保证了他在极端DDoS攻击的情况下,真正的客户端发来的数据几乎是零误杀 ,提升了特殊情况下的用户体验。”
向前一步
2016年8月份,网易云官网正式上线,对外提供场景化云计算服务,易盾的DDoS作为场景化服务的重要一环,也如期上线。
对外提供云安全服务后,沈明星有点“玩不转”了。玩不转倒不是因为有什么技术难题,而是他习惯和技术难题掰扯,但是现在解决技术难题还不行,他还得和销售、市场去打交道;与此同时,他也得维系好形形色色的客户。
“并不是说没有技术挑战,而是说对外服务要做好的并不仅仅是技术。”沈明星解释,比如说易盾专家对客户的响应时间是:工作日十五分钟之内响应,非工作时间三十分钟之内响应。“这样的标准,还是有客户嫌慢,他们希望找到你,一分钟内就能响应。”他说,这对技术专家挑战和干扰蛮大的,因为他们更多的是希望能有静心搞研究的时间。
后来他想了下,还是自己过于局限于技术人思维里了。于是他开始转换思维,从用户视角出发,因此他有同理心了,能够理解客户:“出现问题了放任何人身上都会急得不得了,的确得应该第一时间解决。”
安全服务云化后仅几十天,他就开始调整构建起“三化体系”,希望能提高用户体验,解决用户痛点,三化分别是:
1.FAQ化:将常见问题、典型难题整理到官网上;
2.多责任化:之前是技术专家7x24小时直接面对客户,后来培训一批售后技术人员,让他们先去解决。如果解决不了,说明问题还是有难度的,售后正好把整理后的需求传递给易盾专家,技术专家再及时衔接上。
3.沟通常态化:不少客户对安全认识不足,对基本技术理念理解不到位,他只描述下需求,其他都指望你来搞定,但殊不知安全是双方共同推进的。沈明星就化身布道师,对客户做安全知识的宣贯,包括线下活动、上门分享、官网、用户手册等。
这样一来,充分利用资源的同时,用户体验也提高了,对技术的压力也小了很多,技术专家也可以更加专注于创新和一些疑难杂症了。
但沈明星后来发现,做到这些仍然还不够,他发现个别客户不按常理出牌。
有一个客户为了省安全的服务费,使用共享套餐时就有了“创新”。比如说,把高防IP挂在CDN后面,在CDN后面后就会导致高防接收的IP就是CDN回源的IP了,“这就有一个问题,我们对于IP级别的很多策略就会受到影响或失效。”他接着指出背后的问题:“CDN回源的IP比较集中,这会导致基于频率的统计会失效,有很多IP就不能盲目地封。”
他暗忖,这样的做法虽然不符常理,但也不能说客户做的就是错的。因此他选择从技术角度出发,开发了特定的安全插件,根据DPI(包的深度分析)做特定的适配,解决IP级策略失效的问题。
安全云化的“乐趣”
在适应了前期的一些商业化转型后,沈明星渐渐发现安全云化后的乐趣。
用他的话来说就是,刷新了对生态的认知。他说,虽然网易做的业务比较主流,但安全云化对外提供服务后,让他看到了一些特有的需求,对互联网生态和产业链的了解进一步加深,这是之前只做内部支撑时所看不到的。
其次,他也非常享受被认可的感觉。有一家初创企业,创始人是老司机,业务刚刚起步时就提前预料到会有各种风险,他找到沈明星团队提前做了接入和适配。因为介入的比较早,沈明星除了提供安全服务之外,也在技术和架构上提供了技术咨询,当做易盾自己的业务去对待。
随着业务的增长,初创企业受到的攻击越来越大,最近的一次DDoS达到近500G。这次攻击是持续性对抗,大部分自动系统可以识别出来,但易盾技术专家也适时介入,因此他的业务没有受到任何影响。“有的时候凌晨一两点,也会盯着不断发出蓝光的屏幕,根据攻击的特征加入了新的规则和策略,保证攻击平稳过渡。”
事前、事中、事后,易盾的抗D服务都及时推送通知,把攻击方式展示、报表发给他们,有什么疑惑,沈明星也第一时间响应和回复。这样的效果和服务,让他们的创始人非常认可易盾,也送了特别的礼物来感谢。
沈明星原本的志愿是学医,但随着自己在高中接触电脑,以及后来在计算机世界里越来越Enjoy那种热血的感觉,于是他高考志愿填报了计算机专业,踏上了一条兴奋不已的“对抗”路。在网易把安全能力云化对外服务后,这种兴奋感又开始不断涌来。
他喜欢遇到挑战,喜欢不断的对抗。
有一次,沈明星遭遇一次很特殊的CC攻击。一般的CC攻击,在下一条攻击上会有明显的特征,但他们团队所负责的一个客户,攻击端不仅量很大,而且很多僵尸网络发过来的包很先进、很离散,找不到一个很好的特征去做拦截。常规的302跳转,JS挑战都无效,它都能正常响应,并绕过去。
试了很多办法无效后,他引入人工智能来解决。通过一个算法,对连接数、新建连接数、一些奇怪的重传率等很多维度去打分,最终对整个行为建立一个模型。如果分数大于500分,那么这个身份验证的人就是坏蛋,那么低于500分,那么进行身份验证的人就是一个好人。
逻辑是这样,但实际对抗中,需要不断的去调整分数的预值,直到能扛得住,也没有大量的用户反馈被误杀。有人说,网易是猪厂,他们的食堂能让人一年长胖二十斤,而在这个过程中,整天埋头思索的沈明星,却瘦了数斤。
被老虎追,不一定要跑成第一,但千万不要成最后一个
有不少程序员被告诫,不要重复造轮子。
原因主要是以下两点:
1.复杂点的轮子特别费劲,而且道阻且长,很有可能半途而废;
2.最终造出来的轮子,维护成本更高,且漏洞百出。
但在沈明星看来,安全必须要造轮子,因为这能在攻防对抗上增加把控度。他举了一个简单的例子——网易考拉类似于双11的商品大促销。他说,黑灰产往往在你开始之前就已经分析好你现有的安全方案,写好秒杀器等着你。
“如果用的是一个标准化的方案——比如AES、3DES算法,黑灰产们根本不需要看算法内容,只需要找密钥在哪里,调一下就立马破解。”那么造轮子自写加密算法,是如何起作用的?沈明星说:“我们会造一堆轮子,在活动之前挂的可能是方案1,但真正上线时就会切换成方案6。过程中,也不会不断的去变,并且这些都不是标准的东西。”通过造轮子,让对方分析成本变高。
“安全本身就是一个对抗的过程,任何一个方案都做不到绝对的安全,更多的是双方的成本比拼,把攻击门槛提高,当攻击方发现攻击的成本和收益不对等时,自然就不会攻击了。”他强调,这并不是代表他攻不破,而是他们也得考虑本钱。
沈明星举了一个例子形容黑灰产:“一群人被老虎追,要做的就是不一定非要跑成第一,但千万不要成为最后一个。”他说,黑灰产说到底都是为了钱,他们的资源和精力也是有限的,他们也会评估成本,攻击找的一定是找最弱的。“如果你做的比其他人好,垒的墙足够高,他们自然而然会去找别的。”
沈明星认为,未来DDoS攻击的流量越来越大的同时,流量也会越来越复杂,这对DDoS的识别挑战会比较大
谈及DDoS的预防,他建议容易遭到攻击的企业应该增加自身的实力,他说DDoS是资源的对抗,因此要做系统的储备、系统的优化;在设计应用时,可以做有些动静分离,把一些静态的资源分拆到CDN,动态的资源微服务化,不要有很重的请求——特别耗资源的话,会成为短板,黑客就会死揪这个短板。
除此之外,也可以考虑外围的帮助(比如说网易云易盾高防的产品等),尤其是在有人特意搞破坏的情况下。哪怕平时不用,也可以当做储备,遇到大流量攻击时,就可以甩到云端的清洗上去,做到一个立体的多层次防护。
一次分享中,沈明星为大家展示DDoS攻击的行业比例
“安全没有银弹,玩的是纵深防御,是一道道防线,不存在搞一个东西就能把所有问题解决。”因此,沈明星建议,防线多做几道,即使破了一道两道,也不会被攻透,导致底裤都被看到。
否则损失的就不是这点钱了,而是无形的品牌价值和用户的信任,特别是互联网金融产品——用户会担心这是不是要跑路的征兆……
结束语
沈明星是一个看起来文质彬彬的技术人,他特别喜欢身体对抗的活动,喜欢流汗的感觉,年轻时身体因此也伤痕累累,而这笔者却浑然看不出。
沈明星说,WAF他们是通过分析参数个数、长度、分布、频率等维度,用统计学方法筛选出异常
这种“冲突”,也发生在眼前。问经历,他像是一个腼腆的邻家男生,一旦涉及到技术问题以及细节时,像是换了一个人——专注度、气场、解释力,和之前判若两人。
谈及人工智能,他说人工智能可以从一些关系中找到规律出来,“但今天所谓的人工智能,仍旧需要大量的人工辅助,才能做出智能的效果出来。”因为今天互联网流量中,机器人异常的比例非常大,所以他们团队也投入了大量的人力,把正常流量标记出来,提高人工智能的精准度。
对于接下来的目标,喜欢看历史书籍的他没有透露太多,一开始只讲了七个字:“超越过去,比下去。”沈明星说:“我们会顺应形势,站在更大的视角去看待问题;发展上会寻求差异化,揪住一个点,由点及面,做大做强。”
历史上有很多以弱胜强的例子,也有很多微小事件导致重大历史的转折。
末了,他点题到:一是从骨干网层面去做一个业界的联合;二是在服务质量、技术指标上达到一个更高的层次。