源码审计

应用安全分析按照使用场景分为四类方向:

  • 静态AST(SAST)技术通常在编程和/或测试软件生命周期(SLC)阶段分析应用程序的源代码,字节代码或二进制代码以查找安全漏洞。

  • 动态AST(DAST)技术在测试或运行阶段分析应用程序的动态运行状态。 它模拟针对应用程序(通常是支持Web的应用程序和服务)的攻击,分析应用程序的反应,从而确定它是否易受攻击。

  • 交互式AST(IAST)技术同时结合了SAST和DAST的元素。 它通常作为测试运行时环境中的代理实现(例如,测试Java虚拟机[JVM]或.NET CLR),用于观察操作或攻击并识别漏洞。(可以发现iast类似于rasp,可以同扫描器结合起来将安全检测融入产品,通过类似于打桩的机制判断漏洞真实性。)

  • Mobile AST对字节或二进制代码执行SAST,DAST,IAST和/或行为分析,以识别移动应用程序中的漏洞。

根据我司目前的情况coverity工具只是做静态代码扫描,而对标的成熟公司、产品在各个阶段均有完整的参与。业界在规划、设计、实现、验证、发布、回归阶段中关注源码扫描参与的点有:

  • 静态应用安全分析-找到并修复代码中的软件漏洞与质量缺陷;

  • 软件组件分析:查找开源代码组件或者第三方组件是否包含安全漏洞与法律问题;

  • 如何在自动集成阶段建立安全质量gate?保证发布前的应用安全

公司实践:

google

使用gerrit这样的代码review系统基本保障质量,Error Prone用在Google的Java构建系统中,发现并减少各种严重Bug。

阿里

消息显示阿里内部SDL推行较早,但很难做到位,虽然他们一直在做推进安全编码,也有自研源码扫描器。主要是项目周期短,发布快,项目又多,安全人员少,只能尽量走自动化路线,但是像漏洞和代码分析,架构设计安全审计这些,自动化目前还无法办到。

细分领域产品厂商:

gartner关于应用安全测试方面的魔力象限:

coverity

Synopsys即coverity厂商,在软件和半导体领域提供多种产品。 去年Synopsys完成对Black Duck的收购(关于开源产品的安全检测)。 公司对应用安全产品的整合有–Cigital,Quotium的Seeker IAST和Condenomicon,Protecode和Coverity,为Synopsys提供IAST,SAST和SCA功能。

领先优势:

  • Seeker仍然是最广泛采用的IAST解决方案之一,提供广泛的语言覆盖和良好的SDLC集成。 Synopsys为Seeker引入了仅限代理的IAST,不需要导入器。 支持了一些IAST提供的被动测试模式。

  • SecureAssist非常适合DevOps模式,因为它提供了与IDE的强大集成,可以在开发阶段早期提供SAST拼写检查器。 Synopsys利用Coverity引擎在SecureAssist中引入了对JavaScript分析的支持。

  • Synopsys提供了一整套适用于各种用例的AST产品,包括通过Defensics提供的各种模糊功能(输入模糊,协议等)。

  • Synopsys在IoT AST领域处于优势地位,它支持各种协议,如XMPP,MQTT,CoAP和AMQP(通过Defensics)。

fortify:

Micro Focus是Fortify品牌下AST产品和服务的全球供应商。产品在北美以及欧洲和亚太地区市场拥有强大的影响力。Fortify提供静态代码分析器(SAST),WebInspect(DAST和IAST),软件安全中心(其控制台)和Application Defender(监控和RASP)。 Fortify通过Fortify on Demand(FoD)将其AST作为产品以及云中的产品提供。Mobile AST通过FoD提供。 Fortify的SAST可以通过Eclipse IDE中的拼写检查器(称为安全助理)利用实时在线漏洞检测功能。

在过去的一年中,Micro Focus Fortify为WebInspect引入了增量扫描功能,以便仅对Web应用程序的更改内容进行持续测试。 多线程功能被引入到SAST产品中以帮助提高扫描时间。 另外,通过机器学习辅助审计对漏洞验证的改进降低了SAST周转时间。Micro Focus Fortify的AST产品应该被寻求全面的AST功能的企业所考虑,无论是作为产品还是服务,或者两者兼而有之,都具备企业级报告和集成功能。

领先优势:

  • Fortify是全球知名品牌。 在广泛的AST使用案例的客户名单中,特别是在需要多种测试技术的情况下。 它以提供创新产品和服务而闻名。

  • Fortify拥有最完整的SDLC集成之一 例如,为流行的IDE和CI / CD工具提供开箱即用的集成。(使用效果较好,称为workbench)

  • Fortify的SAST具有最广泛的语言支持,并提供一系列部署选项,使其非常适合复杂的测试用例。 其WebInspect DAST工具客户免费提供其WebInspect IAST for Java和.NET代理。

  • Fortify继续开发创新的自动化和基于机器学习的功能,以支持DevOps,例如使用安全助手在Eclipse IDE中进行实时分析。 内部部署和Fortify on Demand客户可以利用基于机器学习的审计助理来删除SAST调查结果,SmartFix功能将提供最佳修复位置。

  • Fortify具有全面的企业功能以及与主要SCA供应商的集成。 所有FoD SAST客户均可享受Sonatype评估,无需额外付费。

IBM

IBM提供SAST和DAST桌面工具,包括IBM Security AppScan Source,IBM Security AppScan Standard和企业平台(AppScan Enterprise)。 这包括一个集中管理控制台,使用户能够从第三方工具导入调查结果。 IBM针对SAST和DAST的云服务(IBM Security Application on Cloud)。 IAST通过AppScan(AppScan标准版,企业版和云版)中的Glassbox代理提供,免费提供给DAST客户,移动AST(MAST; IBM移动分析器)和SCA产品(IBM安全开放源代码分析器[OSA])。 对于SCA,他们从WhiteSource许可漏洞和修复数据库。 IBM还与Prevoty合作开发RASP。IBM改进了智能代码分析(ICA),并将智能调查分析(IFA)扩展到了本地客户,无需额外费用。 两者都提高了SAST扫描结果的速度和准确性。 ICA在语言和框架中检测API,并确定这些API的安全影响,以减少漏报。 IBM IFA使用机器学习来显着减少整体漏洞数量和误报数量,并将结果关联起来,并提出用于修复漏洞的最少数量的代码更改。IBM拥有相当可观的客户群,将SAST,DAST和IAST整合到一套产品和服务中。

领先优势

  • IBM一直在扩展功能,并着眼于DevSecOps的需求。 这包括扩展的语言支持,将DAST界面分为开发者模式和安全专家模式,并且运行更快,更轻的扫描以缩短周转时间。

  • IBM是一个完整的AST解决方案(SAST,DAST和IAST)和其他安全产品/服务的大型稳定提供商,具有多地区存在和交付能力。

  • IBM的应用程序安全管理提供以风险为中心的统一报告和仪表板功能以及IBM安全框架和风险评估,这是管理业务影响应用程序中的安全风险的基础框架。

  • IBM是少数几家允许导入第三方AST结果报告仪表板的供应商之一,例如手动代码审查,渗透测试,漏洞评估和竞争对手AST解决方案。

对标公司结果:

选择fortify产品线作为对标公司。理由:

  1. 公司本身是行业领头,对于J2EE项目的检测能力强于coverity。

  2. 数据流分析展示的workbench易于集成devlops环节,将源码扫描流程集成在sdlc各个环节中。

  3. 基于IDE的功能实现将源码检测步骤迁移。

  4. Apple、Microsoft、Amazon、gap、nsa均使用该公司产品。

参考资料:http://www.xiaotonghz.com.cn/Site/CN/Uploads/20171220/Fortify%E4%BA%A7%E5%93%81%E4%BB%8B%E7%BB%8D.pdf

http://infosecisland.com/blogview/24620-Understanding-the-Strengths-and-Limitations-of-Static-Analysis-Security-Testing-SAST.html

https://software.microfocus.com/zh-cn/products/static-code-analysis-sast/overview

https://www.quora.com/What-are-the-best-companies-ways-to-test-your-web-applications-security

https://privacy.google.com/your-security.html?categories_activeEl=sign-in

https://developer.apple.com/security/