GitHub 给安全行业的四大启示
直到今天,安全行业才逐渐开始意识到开源社区已信奉多年的天条:协作才是创新的关键所在。
即使你不是软件开发人员,你也可能听说过全球最大的代码托管服务GitHub的大名,如今有800万用户使用GitHub进行社会化协作开发,事实上GitHub已经改变了软件开发的游戏规则,甚至非开发人员也能使用GitHub对产品的功能和bug进行反馈。
但是很少有人注意到,GitHub本身的安全开发和运营实际上正在改变企业安全的游戏规则,通过GitHub安全团队成员Roberts的介绍,我们了解到GitHub正在从以下几个方面改变信息安全的游戏规则:
重新定义的团队协作
与现代企业中的团队不同,GitHub的雇员来自全球各地。例如GitHub的安全团队中Scott Roberts来自俄亥俄州,负责网络安全监控、事件响应和威胁情报,而安全团队的其他成员则散布在自科罗拉多、伊利诺伊和路易斯安那等州。
Roberts有一天想为事件响应任务找一个好用的OS X审核工具,他在GitHub上查到了一个项目OSXAuditor 能非常好地满足他的需要,于是Roberts开始Fork这个项目,在发送Pull Request提交贡献的同时也认识了项目的作者@jipegit。数月后Roberts在巴黎与jipegit共进晚餐时感慨万千:GitHub的魅力 在于,它能让这个世界上互不认识的人也能达成协作,甚至成为朋友。
可以说,GitHub重新定义了团队的边界。而且类似GitHub的开源社区最大的优势就是本身就是一个极佳的众测环境——用户和潜在团队成员的多 样化和多元化,他们会在各种古怪和极端的环境中测试你的产品,最大限度地发掘你产品中可能有的各种漏洞或bug,甚至提交代码贡献。
基础架构的改变
GitHub的服务器主要运行Ubuntu,都通过Puppet管理,自动化配置是关键所在,这样才能快速实现任何修改,尤其是安全更新和新功能发布方面。
Roberts认为,抛开运营团队不谈,GitHub网络最牛逼的是GitHub自己开发的聊天机器人程序——Hubot,可以完成图片查找、日志 搜索等各种任务。从某种程度上,Hubot完全改变了GitHub的运营方式。GitHub的安全团队还在OS X桌面系统使用Puppet(Github开源项目Boxen),可以管理散布于不同地理位置的笔记本电脑,方便开发者的项目协作。
安全方法与工具的改变
对于任何一个提供软件下载的站点,人们首先会质疑这个网站是作何确保软件没有被植入恶意程序。对于GitHub这样的代码托管站点,这个问题尤为突出。
GitHub采取的方法是重点保护项目的创建者和管理者,增加了两步认证等安全访问控制手段,没有授权访问,恶意用户就无法向代码库中注入恶意代码或木马程序。
对于那些突破认证环节的例外事件,GitHub的安全团队会快速响应,与项目拥有者、整个社区和支持团队一起分析被感染代码,并尽快下架。
在日常工作中GitHub的安全团队使用的工具既有商业化的,也有开源的,甚至还包括自行开发的内部工具。
例如GitHub的安全团队喜欢使用Splunk分析日志,同时也使用ELK进行分析,数据分析方面还经常使用Graphite。GitHub的应用安全团队还经常使用Brakeman、Burp proxy以及大量定制化的代码和工具。事件响应方面GitHub的安全团队喜欢使用Maltego进行调查,使用Cuckoo Sanbox进行恶意软件分析,使用OSXCollector和Autopsy进行取证分析,同时还在研究Google的GRR项目在远程取证方面的应用。
未来的计划:大量的自动化
正如GitHub中托管的不计其数的项目每天都会收到更新请求一样,GitHub团队每天也会收到大量关于GitHub本身的功能更新和改进请求,其中就有包括安全性方面的。
Roberts表示他接下来的工作重点就是将尽可能多的安全工作自动化。“我的目标是:如果你第二次做同样的工作是一种巧合,但第三次做重复工作的 时候你就应当开动脑筋,看看能不能把这个任务自动化。我们用Hubot自动化了大量工作,Boxen提供了Hubber系统的自动化水平,而Puppet 则负责服务器端的自动化。
在Roberts看来,安全团队的第一要务是应急响应,为了更好地完成这个任务,就必须确保不被一些相对简单的事情牵扯过多精力。
稿源: 安全牛