020-29133788
    资 讯
    您的位置:首页 >> 资 讯 >> 软件应用 >> 编程开发 >> 正文
    twitter:结合多套开放原始码软体,让程式码安全作业自动化程度大幅提升

    点击:   发布日期:2013-06-24

    本文来自 www.020fix.com


    基于这些准则,Twitter的资安小组首要着手的部份,是将原本开发人员需要手动执行的安全处理程序予以自动化。这些都是很耗工却未必需要人工全程介入的作业,其中包括了程式码重新审视(Code Review)、渗透测试(Penetration Test )的发动,以及从外部环境所进行的安全评估报告(External Report)。

    而上述工作要做到自动化,Twitter认为,可以分别利用程式码的静态分析工具(Static Analysis Tools)、动态分析工具(Dynamic Analysis Tools),以及内容安全政策(Content Security Policy,CSP)。

    以程式码静态分析工具来说,执行时虽然可以将相关步骤自动化进行,但还是需要等待扫描作业完成,才能得到统计报表,接着你需要去解读报表内容,然后找到能够去负责修正这些问题的人,而且一旦程式码有所变动,这样的流程又要重新来一遍。因此,虽然是用自动化工具,然而实际上还要靠手动来完成许多程序。这也是Twitter想要进一步改善之处。而且透过减少需要人工操作的任务,既有的人员可以省下更多时间,来做更有创意的事情,以及检讨、改善目前的问题。

    为了要达成这个目标,Twitter的资安小组将程式码分析的机制,放到Jenkins这套持续整合伺服器软体的整合流程当中,但这还不够,于是他们建立了一套自动执行相关流程的系统,并取名为安全自动化仪表板(Security Automation Dashboard,SADB)。

    检阅程式码安全性有了分析工具的协助,手动处理仍少不了,因为这些工作须持续、反覆进行。Twitter现在建构了SADB的系统,将程式码分析、内容安全政策落实、安全社群的动态,以及报表审视工作分配,全部整合,可将结果自动通知开发与资安人员,让管理更为主动。

    SADB当中包含了多套开放原始码的软体功能与当中的安全性设定,例如Brakeman、Phantom Gang、CSP、ThreatDeck、Roshambo,而这些软体处理之后的结果,会以电子邮件的方式传送给Twitter的开发人员与资安小组。

    静态分析工具Brakeman
    Brakeman是特别针对Ruby on Rails开发环境,所设计的程式码静态分析的工具软体,Twitter将它纳入SADB系统中。Brakeman所产生的分析结果会传送到SADB,再由它将内容传给开发人员。

    这套工具主要是针对Ruby on Rails开发环境,与多数网页安全扫描机制相较,Brakeman的特色是可以检视到程式的原始码,因此,开发人员不需要为了用它而重新调整原本的应用程式架构,等到Brakeman完成扫描后,它会产生一份报告,当中将会记载所发现到的所有安全问题。

    在Twitter的开发流程中,每一次透过git push来提交程式码时,都会一起执行Brakeman,此时若发现有安全性漏洞,SADB会寄一封电子邮件通知开发人员,里面会提到该如何修正;当修正完成时,SADB会寄出一封电子邮件,恭贺修正这项安全性漏洞的人。

    像这样,把程式码分析作业整合到开发流程与持续改善生命週期是相当理想的,而且刚刚好是在这些程式码档案储存、提交的时间点,因此能够及时拦截安全性不佳的程式码。

    事实上,Brakeman可以开发流程中的任何阶段中执行,不只是储存程式码的时候,还包括程式码进行审查、品管或部署的时机。因此,当开发人员想要修正这些弱点时也会获得很大帮助,因为可以透过程式码静态分析的结果,了解到该如何着手。基于这些应用的好处,在Twitter资安小组的研究下,他们发展出在程式码开发初期阶段开始就能经常进行测试的模式。未来,Twitter也打算把Brakeman扩大应用到其他层面。