技术开发 频道

敏捷开发的今天,如何保证应用程序安全?

  【IT168 评论】在软件开发的任何阶段忽略不安全代码的风险都是不负责任的,就算一再升级防病毒解决方案和防火墙,也并不会对应用程序起到保护作用。现在,很多公司似乎都在努力成为一家软件公司。软件的生存和发展过程对自动化日益依赖,尽管整体的大环境越来越恶劣,但本质来说,不安全的代码编写才是首当其冲的安全风险。

  应用安全自动化需求

  随着软件逐渐占领这个世界,软件的安全性变得越来越重要。你写的每一行代码都可能会受到攻击。不安全的软件导致2015年有约82%的金融违约,并且是过去九年总体违规的主要原因。几乎每个研究都表明,很多Web应用程序和移动APP都有严重的漏洞。

  但问题的规模实在太过庞大,导致人为难以控制,这时就需要自动化上场了。我们需要能够帮助新手开发者可靠地构建和操作安全应用程序和API的工具。我们必须将纸质的安全政策和指导转变为“安全代码”,而不破坏现代化的高速软件开发。

  不幸的是,安全的应用程序开发通常不能以所需的速度和规模操作。现在的产品迭代速度十分快,敏捷开发是开发者的必备技能。传统的安全方法可能会很完备,但破坏了软件生命周期,这些程序往往很依赖某些专家,工具仅供专家使用。当将技术和人力成本相结合时,这些应用每年的成本从50,000美元到100,000美元不等。

敏捷开发的今天,如何保证应用程序安全?

  软件安全越来越难以确保

  让我们来看看难以确保现代软件安全的一些因素:

  首先,自从依赖管理工具(如Maven)诞生以来,框架和库开始爆炸式增长,这导致应用程序有几百个库,而不仅仅是几个。这种大规模的增长使得更难找到漏洞。因此,必须知道这些库的作用及其如何通过自定义应用程序代码实现。

  此外,还存在使用API(REST,SOAP,RPC等)来创建Web 应用和移动应用的趋势。这些API很难评估和保证,因为它们的通信结构难以理解。除非有好的工具可以理解,否则不会产生很好的效果。

敏捷开发的今天,如何保证应用程序安全?

  最后,高速软件开发实践(如敏捷开发和DevOps)已经破坏了传统的安全方法。以前的公司一般是等到部署之前,一次性做一个深入的安全审查,可能需要几个星期才能完成。然而,当项目按每周,每天或每小时部署时,就完全没时间进行深入安全审查了。我们需要一种不同的方法和工具。

  在现代软件项目中自动化应用程序安全的非常好的实践

  现代软件开发需要持续的安全性以及持续集成、交付、部署。简而言之,挑战就是在现在的开发流程中保证软件的安全可靠。

  1、选择应用程序安全工具,以提高速度,易用性,准确性和可扩展性。实时反馈和易用性至关重要。Appsec工具可在开发和操作中使用,而无需有安全经验。

  2、将安全直接集成到管道中。为了缩短反馈周期,寻找能够将结果直接提供到已使用的工具中的,例如Slack,HipChat,JIRA,Maven,Jenkins,SIEM和PagerDuty,使安全问题看起来就好像是开发或操作中遇到的普通问题。

  3、检测漏洞。现代软件开发过程需要对漏洞快速反馈,传统静态(SAST)和动态(DAST)扫描仪难以自动化反馈并容易生成假警报。可以使用较新的交互式(IAST)工具,使用最新的技术从内部评估应用程序。

  4、避免被攻击。应用程序防攻击保护不仅仅是针对已知攻击的防御,它提供了一种快速和灵活的方式来阻止未知攻击。传统的Web应用程序防火墙(WAF)创建网络架构的方式既复杂又不准。幸运的是,运行时应用程序自我保护(RASP)得到了广泛采用,其灵活部署和准确性令人印象深刻。

  5、使用威胁情报和安全研究来改善安全架构。使用通用工具搜索出较差的编码是一个好的开始。但是当程序逐渐成熟,你可能希望你的工具自动执行预先选择的安全模式。这是一种“积极”的安全方法。最终,你希望能够自动验证所有应用程序是否具有正确的安全防御措施,所有防御措施是否正确,以及这些防御措施是否已在适当的位置使用。

敏捷开发的今天,如何保证应用程序安全?

  好消息是,现代的应用程序安全工具可以即时反馈漏洞和攻击,可以创建一个软件开发流水线,可靠地保护代码和应用程序操作过程的每个阶段。

0
相关文章