查看原文
其他

韩锴:《技术雷达之构筑软件安全DNA 》

2016-05-31 韩锴 思特沃克

作为一家服务于全球不同类型客户的IT专业服务公司,ThoughtWorks一直追求最卓越的技术,并用它们来解决客户实际的问题。而为了体现技术卓越,ThoughtWorks全球技术委员会(TAB)定期讨论技术战略,分析对行业产生重大影响的最新技术趋势,这便是我们看到的每年两度的《ThoughtWorks技术雷达》


2016技术雷达峰会不仅能为您解读最新版《ThoughWorks技术雷达》四大主题之外,还希望能覆盖更多更具实践价值的专题,为您提供更多选择,也为各个优秀实践提供多一个展示和分享的平台。


● ● ●


《JavaScript技术爆炸下的项目选型何去何从》- 刘尚奇 

《技术雷达之微服务架构》- 王健

《Cloud Enabled Stack Management》- 孙建康 

《Docker打造App-Centric交付》- 钟健鑫 

《技术雷达之构筑软件安全DNA 》- 韩锴 今日分享!

《海航集团的数字化转型》- 龙旭东,海航生态科技集团CTO

《企业内部开源及社交化编程:连接与聚合》- 林鼎军,某世界500强电信企业业务部产品SE

《Ruff,JavaScript 硬件开发新领地》- 郑晔,Ruff CTO

《实践演进式设计》- 袁英杰,ThoughtWorks首席咨询师

《传统企业的微服务架构转型》- 杨波,丝芙兰Sephora首席架构师

《通过CI/CD来保障数字化转型》- 刘宇峰,ThoughtWorks首席咨询师


● ● ●


今天我和大家聊一聊关于安全的话题。刚才几位同事介绍了一些酷炫的技术,这些技术都是软件开发中的“0”,我现在要讲的安全是前面的“1”。如果没有安全,所有技术都是白搭的。随着移动互联网的兴起,应用数量呈现激增的趋势。这给我们生活带来很大的便利同时,也让我们暴露在更严峻的安全风险下。我们来看一组数据,“3930”,这是有记录的数据库泄露的事件,在这些数据库泄露事件里一共73600000条数据被泄露了。这两个数据是从一个侧面反应了互联网安全的严峻性。


ThoughtWorks在近几年帮助客户实施系统研发应用的过程中,很早就开始关注安全问题。我们也把对安全的关注写到技术雷达里。ThoughtWorks技术雷达第一次出现安全的话题是在2014年1月的一期,第一个条目是关于OWASP TOP10的问题。最新的一期里技术雷达已经包含18条涵盖不同安全领域的条目。2015年里技术雷达连续两期把安全问题列为值得业界关注的一个趋势。在这里我们想通过技术雷达传达给业界的声音是,我们认为安全是每个人的事儿,因为他涉及到软件开发了所有的角色,安全也是每分钟的事,我们在软件交付生命周期里的每个过程都应该关注安全。接下来带领大家深入看一下技术雷达里有哪些关于安全比较有意思的内容。


回到2014年的1月,在这一期我们发布了第一个关于安全的条目,“忽略OWASP TOP10”,这是OWASP组织发布在网上关于互联网流行程度最高的十个安全风险。该列表是OWASP从7家安全公司的50多万个漏洞里统计出来的,这个是非常权威的,这个列表里不仅包含漏洞,还对漏洞严重程序进行排序,2010年的时候排了一次,2013年的时候又进行了修改。我们可以看一下排在第二的安全风险,“失效的身份认证和会话管理”。这个我们不必深入探讨如何进行身份认证的会话管理,我们来看看这些选项框,大多数的Web应用都有,需不需要记录用户登录行为。


在座的各位大多都应该开发过Web系统。如果你们的用户没有勾选登录状态的框在使用系统的过程中关掉浏览器再重新打开的时候是不是保留了这个状态,实际情况是我们在帮助客户做安全审查的时候这个问题并不乐观。这是个看上去是非常简单的问题,但是有相当多数量的系统都没有正确实现这个功能。而它可能是一个很严重的缺陷,又容易发现它。这是排在第二的原因,这个问题会导致我们的用户在公共场合使用服务的时候带来非常大的安全隐患,这是值得我们关注的。OWASP TOP10里的其他九个条目,每个都值得我们反复回味,对于不具备安全意识和能力的团队,在初步导入安全的时候,OWASP TOP10这个非常好的起点,操作性非常强。


到了2015年,这段时间技术雷达又发布了更多关于安全的条目,它的关注点有很大的变化,从初期针对技术和个人的关注慢慢演化到针对团队和流程的关注。比如左上角的“安全三明治”。我们注意到很多团队在研发系统的时候针对安全问题只有两个活动,一个是项目启用初期的时候做一次很“隆重”的安全评审,项目接近交付的时候做一次入侵测试。我曾经参加过一个团队的安全评审,在这个团队里,我们跟客户的安全部门拿了一个70多页的Excle文档,文档里还有大量超链接。在这个会议上我们花了几个小时探讨这个文档,到最后已经没有人知道文档里写的是什么了。


我在去年参加了一个金融系统的开发,这个客户是每年做一次入侵测试,我参加这个项目的时候入侵测试刚刚开始,大家猜猜直到所有入侵测试发现的问题被修复,一共花了多少时间?我们这个团队入侵测试从发现到全部修复花了两个月,我们是在临近上线的时候做入侵测试,它对产品上线发布产生非常大的影响。这是安全三明治所讲到的。这个场景是不是非常耳熟?很像我们以前经常说这个瀑布模型、延迟交付、延迟测试等等。我们在软件开发里无数次碰到类似的问题,这时候我们可以通过自动化测试持续集成等等这些实践把这些风险前置,在安全领域如何解决安全三明治这样的问题,我们可以用类似的思路,通过技术雷达里提到的工具方法,把安全检查的动作提前做、自动化地完成。


接下来到了2016年4月,在最新的一期的技术雷达里有更多新鲜的条目加进来,比如“将个人信息托管于欧洲境内”。这里有一些上下文。欧盟和美国对于信息安全数据的处理一直是存在分歧的——欧洲倾向于要保护境内公民的个人信息数据,但是美国更倾向于以更开放的态度处理这些数据。当欧洲和美国进行贸易往来的时候,美国互联网公司希望获得欧洲境内公民的数据,而欧盟原则上不同意将这些数据保存到美国的服务器上。


所以美国和欧盟签署了一个“安全港协议”,加入了这个协议框架的美国公司可以自由地欧盟之间进行个人数据的交换。欧盟认为如果一个公司是属于安全港协议,欧洲部门的协议在这个里面是安全可靠的。这个协议是签署于2000年12月份。而在2013年的时候,斯诺登揭露了美国的棱镜计划,美国政府在利用数据监控公民。奥地利有一个法律学者起诉了当地的Facebook,他认为Facebook侵占了自己的个人信息,可是奥地利本地的政府驳回了上诉,就因为这个安全港协议,所以法院没有受理,最后这位学者把这个问题弄到了欧盟最高法院,最终欧盟把安全港协议结束了。


这个条目本身不是技术条目,更像一个政治新闻,但是它对于我们做技术选型的时候会带来很大的影响。美国的很多公司像Facebook谷歌在选择存储数据的时候会面临很大的问题,现在面临往欧洲进行迁移,像谷歌亚马逊有很多用户,有全球各地的用户,这些用户也收到了这样的影响。安全问题已经从技术问题影响到一个公司的运营安全,甚至影响到公司的命脉,这些是以后产品研发服务的时候需要考量的因素。


我快速带大家浏览一下在技术雷达里的与安全相关的条目。现在我问大家一个问题,是不是当我们使用了这些工具以后,我们的应用就彻底安全了?我们是不是可以高枕无忧了?


回到刚才讲安全三明治的那个客户,我们帮助客户花两个月的时间修复了安全问题,然后我跟那个他们的开发总监聊了一下,我问他,现在所有的问题都修复了,你现在感觉放心吗?他说“No, complete not!”。他觉得更担心的是他的员工会偷取客户数据卖出去,这样公司会面临灭顶之灾。这里面不仅仅有金钱的风险还有法律上的风险。我们现在带讲安全的时候不仅仅是技术上的问题,这个案例里,从技术上讲是非常无懈可击的,但是它的流程有漏洞。这样例子并不少见,大家经常看到关于诈骗短信的新闻,电信运营商的系统有问题吗?没有,只是在使用这个系统的流程上存在漏洞,所以依然给公司带来非常大的风险。


基于这些考虑,ThoughtWorks把关于安全的所有思考放在大的架构里,我们认为安全是每个人的事儿也是每一分钟的事,我们在个软件开发流程在每个环节和决策都要拉紧安全这根弦要考虑安全问题,技术雷达提供了非常多的参考,有大量的工具和实践可以帮助我们在软件开发每一个流程里进行辅导,我们把这个过程叫Build Security In,把安全构建在DNA里,我们简称之为BSI。



- 小编推荐 -

《BA的广度和深度》

本周末北京&成都&武汉活动

微信界面回复005,加入微信粉丝群



2016技术雷达峰会

PPT下载 / 视频观看(剪辑中)/ 活动介绍

▼  请点击【阅读原文】

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存