第1章 DevSecOps的演进与落地思考
随着技术的发展与市场竞争的日益激烈,传统SDLC的研发模式已无法满足当今传统行业和互联网行业的发展需求。作为金融巨头的德富银行与互联网行业龙头的灰石网络也面临着同样的挑战。随着一场内部事故的发生,就职于德富银行和灰石网络的两位发小之间的交流,也揭开了两家不同背景企业中DevSecOps推动与转型的序幕。
2017年10月的江南市已渐入深秋,凌晨的秋风透露着丝丝的寒意。此时,位于CBD德富广场的德富银行亚太运营中心已然是一幅热火朝天的景象。
“叮铃铃……”
一阵紧促的手机铃声在卧室响起,睡意朦胧的江宇宁摸起床头的手机,揉了揉眼。是公司老汪的电话,他所带领的安全运营中心一直有人值夜班,难道有事故发生?江宇宁心中暗暗道。
信息安全科班出身的江宇宁2006年研究生毕业后,就一直就职于德富银行亚太运营中心,先后在零售银行、信息安全等部门担任过多个职务。凭着出色的工作成绩,目前任职德富银行中国区信息安全团队的主管。老汪,全名汪泉,是宇宁在公司的老搭档了,他是德富银行中国区安全运营中心主任。
“喂,老汪?”
“宇宁,出事了!”
老汪的第一句话就印证了他心中的想法,此刻,他不由得一惊。
“怎么了?”
“你上公司内部论坛看看吧,我们的所有员工个人信息都被发布上去了。”
也许是刚从睡梦中惊醒的缘由,江宇宁现在脑袋还有点乱。
“15分钟前,公司的内部论坛上就陆续出现了数个帖子,批量发布了咱们德富银行中国区员工的个人身份信息,包括姓名、员工号、职级、联系方式,甚至还有家庭住址……”
许多画面在宇宁的脑海中闪烁着,他意识到了事态可能的严重性。
“但是……”
“但是什么?”江宇宁追问。
“我们发现信息是被处理过的。”老汪补充道。
“嗯?”
“比如员工姓名、联系方式、地址等,里面不少关键信息使用星号字符代替了。而且值班的同事也赶紧比对了可能的数据来源,目前高度怀疑这些信息泄露来自咱们公司的员工内部福利平台,所以我认为……”
“应该没错了,就是他们,这就是一个示警,相信明天一早就会有一份正式的报告发到刘总和咱们的邮箱了。”宇宁还没等老汪说完,就已经有了自己的判断,相信这也是老汪接下来想要说的话。
江宇宁所指的“他们”,正是德富银行内部前几年才成立的一个专业化蓝军团队。作为一家跨国金融机构,该团队成员分布于世界各地,由银行招募的各类精英白帽黑客组成。他们致力于搜寻与发掘银行机构各业务及系统中可能存在的漏洞及安全风险,并给予及时的通报预警。网络与信息安全重在预防,应力争在漏洞及风险暴露的早期去发现它、修复它,对于一家被强监管的金融机构来说更是如此。德富银行的蓝军团队正是发挥着这样的关键作用。但这同时也意味着对于业务与产品,甚至安全团队来说,需要承受的压力与责任也是前所未有的。
“哎,接下来咱们的任务重咯。”老汪叹了口气。
“这样吧,老汪,如无意外的话,明早组织早会,尽快对蓝军的报告进行分析与复盘,尽快定位事故源头,查找事故原因,并与相关业务团队保持沟通,尽快提出解决方案。”
“是的,我也这么想,咱们得尽可能地减小影响范围和影响程度。”
“老汪啊,我其实觉得是时候开始研究一下之前我和你提过的那个想法了。虽说咱们安全重在预防,但也不能总是这么被动嘛……”说到这,江宇宁又陷入了思考之中。
“宇宁你是说实施安全左移与DevOps结合的计划是吧?”
“对!咱们明天细聊吧。”
结束通话之后,江宇宁躺在床上辗转反侧。虽然这次蓝军攻击的是公司某个内部员工福利系统,无论从业务风险等级还是数据的重要性来评估,暂且还算不上严重“事故”。但即便如此,在外人看来,一个连自己员工个人信息都无法保护的公司,又谈何能被客户信任呢?再映射到现实生产环境中,又有多少在线的业务系统或产品还存在未知的漏洞呢?为什么对于有些漏洞利用,现有的常规安全审查手段依旧无法发现?我们可以在更早的阶段避免漏洞和各种安全风险的产生吗?
第二日,秋日的晨光显得十分柔和,江宇宁起床后的第一件事便是打开公司邮箱查找可能会收到的报告。果然,一份标记着黑鹰Logo的报告已送达收件箱,邮件除了发给安全团队主管、相关业务团队主管,还同时抄送了银行CIO、亚太区COO等高层,这足以体现出这次“事故”的严重性,同时也意味着江宇宁在接下来的工作中所面临的压力。
在上午的会议中,大家仔细分析了报告中所提及的各种问题。总的来说最突出的“事故”原因有三个,一是员工福利平台的系统设计存在漏洞,供系统用于访问数据库的服务账号凭证虽然在服务器上做了基于AES256的加密,但由于加密密钥管理设计存在缺陷,才给蓝军留下了乘虚而入的机会。二是编码上存在不符合规范的情况,由于该业务系统是一个纯粹面向公司内部的平台,无任何对外服务存在,使得开发人员在编码阶段没有严格遵循纵深防御的原则,在个别指令校验机制的编写上存在漏洞。其实这本质上也是安全意识薄弱所导致的。三是对于该类业务风险等级较低的面向纯内部服务的业务系统,在后期安全审查、测试等阶段存在系统性的管理缺陷。面对该类业务,安全审查、测试范围不够明确,也是导致“事故”的原因之一。
“看吧,如果咱们之前讨论的安全左移计划可以与DevOps同步实施,相信这类事故就不太可能会发生了。”会后,江宇宁对老汪说。
“是啊,但毕竟咱们现在也还只是个计划,当中还包括许多不成熟的想法,这些都需要去摸索怎么解决,而且诸多流程与制度的改变问题更是棘手。我们毕竟没有经验,在国内业界应该也没有人尝试过。”老汪回答道。
老汪所说,也正是宇宁的心中所忧。
其实在2017年年初,德富银行就确立了开展DevOps转型的目标。随着技术的发展与市场竞争的日益激烈,传统SDLC的研发模式已无法满足当今日益激增的业务发展需求。对于德富银行来说,无论是数字基础设施重构,拥抱人工智能、区块链还是物联网,都需要先完成自身的敏捷化,也离不开DevOps技术转型的实施。这无疑将成为未来几年金融数字化升级的必备条件。作为安全团队主管的江宇宁也意识到了一个问题的存在,即传统信息安全交付模式和现代DevOps的快速持续交付理念实质上是相冲突的,这使信息安全成为快速交付的瓶颈。而另一方面,没有考虑到信息安全的DevOps,会让产品更容易存在信息安全漏洞的风险。因此,要将信息安全的意识和职能进行左移,变被动为主动,才是打破这一瓶颈的正确方向。在江宇宁的心中,这一DevOps转型的契机又何尝不是一次同步开展安全左移计划的最佳机遇呢!
此刻的江宇宁又想起了周天——他的发小,或许从他那里能获得些灵感?
周天和江宇宁从小学到高中都是同一所学校,可以说是多年的“老铁”。后来大学期间,周天选择了出国深造,攻读软件工程。回国后的周天最终加入了灰石网络,担任高级研发效能专家,负责研发团队的DevOps推广和效能提高。同时,周天对应用安全也有着浓厚的兴趣,经常和江宇宁互相交流彼此在研发效能和应用安全方面的经验。周天工作的公司——灰石网络,可以算是国内首屈一指的网络游戏与社交平台,庞大的用户群体与多元化业务线注定了灰石网络始终处于各类网络与信息安全事件热点的风口浪尖。
周末,猫头鹰咖啡馆,这是江宇宁和周天常聚的地方。
“听说你们公司最近也在推进DevOps工作?”大家都是老相识了,宇宁直入主题。
“咳,别提了。最近我们才出了个岔子。”周天一脸的苦笑。
“有一台前置服务器被发现受到了非法入侵,还好检测报警及时,没造成什么严重后果。”
“这说明你们的安全防范措施还是到位嘛。”宇宁拍了拍周天的肩膀,紧接着问道,“那入侵原因找到了吗?”
“找到了,其实算是一个蛮低级的错误吧,很快就发布了修复版本。”
“嗯?”宇宁有点疑惑。
“产品开发中为了提高发布频率,引用了一个旧版本的第三方库,恰巧那个第三方库中包含了前段时间的一个高危漏洞。这不,刚好被黑客利用了呗。”周天解释道。
“趁着公司刚开始推行DevOps,我们在考虑能不能借着这一契机进化成DevSecOps。”周天接着补充。
“DevSecOps?”又一个问号在宇宁脑海中浮起。
“今年的RSA大会上有很多人提到了这个名词,其实核心也就是你之前和我聊过的如何将安全职能左移。它的核心理念是使安全成为整个IT团队,包括开发、运维及安全团队每个人的责任,需要贯穿从开发到运营整个业务生命周期的每一个环节。”
宇宁恍然大悟。是的,周天提到的DevSecOps不正是对自己想法的一个系统化概述吗?这让宇宁感到又惊又喜,惊的是没想到业界这么快就已经有了共识,喜的是这也对宇宁接下来的工作开展具有系统化的引导意义。
“既然DevOps通过研发运维的一体化来提升效能,那么我们现在的安全交付模式必定会和它有实践上的冲突。”周天接着说。
“呵呵,我可不希望成为DevOps转型路上的绊脚石,这也是为什么我一直坚信将安全职能左移与DevOps推进同时进行,用DevSecOps的方法来开展工作才是正确的方向!”周天带来的信息,也更加坚定了宇宁的想法。
随着讨论的深入,两人也分析了基于各自行业的DevSecOps进化可行性,毕竟以金融为代表的传统行业,与以互联网为代表的新兴行业都有各自的行业属性,业务与产品形态的不同注定了两者在未来DevSecOps进化蓝图上的差异。
一场轰轰烈烈的改革之路随之拉开序幕。