DevOps和DevSecOps是应用程序开发和安全团队在过去几年中非常熟悉的术语,特别是当因特网连接用户需要不断更新和改进应用程序时。
事实上,DevOps正在被更多组织使用,最近的一项调查发现,49%的公司已经采用或计划采用DevOps策略。即使在尚未实施DevOps的人中,另有33%的人正在考虑这一点。
并且有充分的理由;有用。
同样的调查发现,几乎所有实施DevSecOps(97%)的人都看到了一些改进,包括更好的协作和生产力,减少编码错误,以及内部团队成员更好的士气。
仔细研究DevOps和DevSecOps之间的区别 - 以及DevSecOps的优势和最佳实践 - 演示了这种理念如何帮助开发和安全团队更好地协同工作,同时为应用程序开发过程提供额外的好处。
什么名字? DevOps与DevSecOps
这个名字说明了一切。 DevOps是软件应用程序设计和开发的开发方和操作方(服务器,网络,存储等的安装和配置)的组合。随着在云中构建和管理更多应用程序,这种混搭自然而然地发展,这为敏捷应用程序提供了更高的更新频率。
但是高频更新需要两件事:1)您的开发团队有一些值得更新的东西; 2)您的IT运营团队能够在不破坏应用程序的情况下实施这些更新。这只有在传统上将开发和运营团队分离的墙壁崩溃,创造一个真正的协作环境时才能实现 - 这正是DevOps所完成的。它打破了存在的传统孤岛,并将用户置于应用程序开发过程的中心。
但后来提出了一个重要问题:“安全性怎么样?”在开发结束时解决应用程序安全性的传统模型没有与DevOps的高频更新模型相匹配。安全性也需要成为流程中不可或缺的一部分,确保快速发布不会危及应用程序的安全性。
DevOps和安全性的结合导致了DevSecOps。这种理念维护着DevOps的一切,并将安全团队添加到流程中。它承认整个软件开发生命周期中安全的重要性,并注意开发过程中每个步骤的安全性。
这确实有其挑战。从历史上看,安全团队被视为反对障碍,阻碍发展并使得在确定问题并需要修复问题时更难以达到最后期限。
很多时候,开发人员试图忽视安全对手,开拓进取。开发人员有时会保持改变代码的意图,以防止可能存在的漏洞。不幸的是,安全性不容忽视,或者您的应用程序容易受到攻击者的攻击。
必须在开发和安全之间创建协作和沟通的环境,并考虑两个目标:
- 快速部署。
- 识别并纠正问题。
DevSecOps的好处
- 改进协作与合作 - DevSecOps宣言的第一行完美地总结了这一优势:“通过安全作为代码,我们已经并将了解到,像我们这样的安全从业者有更好的方式来运营并以更少的摩擦贡献价值“DevSecOps理念汇集了开发,运营和安全的目标,因此这三个领域都朝着快速安全部署的目标迈进。当安全团队从一开始就参与其中时,就不再被视为阻挠者;他们在团队中,而不是有意见的观众。
- 更好的应用程序安全性 - 通过将安全性集成到整个开发过程中,可以更快地识别问题并立即解决。应用程序不易受到攻击,增加了应用程序的成功率并提高了声誉。
- 提高了上市速度 - 这适用于初始版本和所有应用程序更新。 DevSecOps的灵活性不仅可以让您的应用程序更快地进入市场,而且还可以实现快速更新。由统一的DevSecOps团队支持的应用程序可以快速协调新功能和特性,从而延长应用程序的使用寿命。长期不断改进和扩展的应用程序有更长的有效窗口来赚取收入,因此您的应用程序更具竞争力,并保持这种状态。
- 节省成本 - 当涉及的代码较少时,在开发过程早期修复问题的成本更低。等到你的整个源代码完成是一个耗费更多的努力,耗尽资源。部署后修复错误是一个更大的麻烦,因为您还冒着失去客户和玷污您声誉的风险。
成功实施DevSecOps的最佳实践
- 在他们的环境中工作 - 安全团队应该熟悉开发人员正在使用的工具。这些工具应该用于在发现安全问题后立即进行通信。当安全团队在开发人员首选环境中工作时,问题更有可能得到解决。它使开发人员可以轻松查看需要修复的内容并跟踪修复的进度。
- 创建文化 - DevSecOps是一种文化。企业领导者需要灌输流程,程序和思维方式的转变,即安全性与开发一样重要。双方都需要了解对方的重要性,因此安全性了解保持开发的优先顺序,并且开发人员明白发布不安全的应用程序更新不是一种选择。
其目的是建立一种文化,在这种文化中,开发人员不会因安全问题而放慢速度;理想情况下,这也是安全专家采取措施加速应用程序安全测试过程并提高其效率的环境。整个公司必须理解这个概念并接受它,并使开发和运营的双方有效地协同工作。
但创造这种文化在很大程度上依赖于管理者和管理层。他们需要了解需要根据安全性和开发来管理最后期限。销售和营销还需要适当地设定客户的期望,以确定应用程序或更新何时准备就绪。
- 不断教育和培训员工 - 如果开发人员和安全团队成员对另一方正在发生的事情有充分的了解,他们将会更好地相互理解。围绕安全性的定期教育和培训可以帮助开发人员理解其重要性,甚至可以帮助减少首先要解决的错误。安全团队的一些基础发展教育(特别是开发人员用于跟踪进度的工具)有助于安全团队了解开发过程。安全性还可以使用开发人员首选的工具来记录问题。这是一个双赢的局面。
- 自动化 - 高效的DevSecOps方法可在开发,操作和安全性之间自动执行尽可能多的流程。这有助于团队更快地构建,测试和发布应用程序和更新。自动化在很大程度上依赖于DevSecOps安全工具和应用程序安全测试工具的使用,这些工具将在下面讨论。
DevSecOps安全测试和工具
DevSecOps要求在整个开发过程中持续执行应用程序安全性测试,以便立即解决问题。 DevSecOps方法还要求使用多种类型的应用程序安全性测试工具,以便您的应用程序在整个开发过程中获得全面的安全性。
使用的工具类型包括:
- 静态应用程序安全性测试(SAST)工具
- 动态应用程序安全性测试(DAST)工具
- 交互式应用程序安全性测试(IAST)工具
- 威胁建模工具
有关这些工具的详细信息,请参阅我们最近的博客文章。
以下是有关如何在DevSecOps环境中提高应用程序安全性测试效率的一些提示:
- 创建应用程序安全性测试级别 - 每个版本都可以进行更一般的测试,并在设定的时间表上进行更深入的测试。这样可以始终保持流程中的安全性,同时保持更新快速移动。
- 使用聊天工具促进沟通 - 诸如Slack之类的即时消息传递工具可以帮助开发,运营和安全团队成员在工作完成时进行通信。可以交换想法,并且通信线路始终是开放的。请务必在正式的问题跟踪工具(如Jira)中记录任何重要信息或决策。
- 使用应用程序漏洞管理器 - 这是一个管理应用程序安全测试工具结果并简化应用程序安全测试过程的工具。应用程序漏洞管理器具有以下优点:
- 重复使用多个工具的结果,大大减少了调查结果的数量,使安全团队更易于管理,以确定哪些威胁是最重要的,应首先解决。
- 可以自动检查代码是否符合规定,例如HIPAA,DISA-STIG和PCI DSS。标记违反的代码行,使修复更容易。
- 报告选项可以轻松地对结果进行排序和组织。报告还可用于跟踪补救进度,因此您可以确保您的开发团队始终处于安全问题之上。
- 标记包含错误的代码行,可以从一个中央控制台轻松分配和跟踪问题。
- 与开发工作流程集成允许您的安全团队在开发人员习惯的环境中工作。例如,一个好的工具将与Eclipse和Jira集成,因此开发人员可以轻松跟踪问题,而无需离开他们喜欢的开发环境。
- 有些工具提供混合分析,它可以比较SAST工具和DAST工具的结果,以快速确定哪些漏洞实际可利用。这样可以自动完成冗长且昂贵的确认过程,并提供一系列高优先级漏洞。
DevSecOps是创建有竞争力的创收应用程序的理想方法。在DevSecOps文化中,所有方面都有效地协同工作,因此应用程序和未来的更新是安全的并且可以快速发布。创建一个有效的DevSecOps文化确实需要一些工作,但是如果有正确的态度和正确的工具,它就可以实现。
原文:https://codedx.com/how-devsecops-boosts-cooperation-on-your-team/
讨论:请加入知识星球或者小红圈【首席架构师圈】
Tags
最新内容
- 1 day ago
- 1 day 2 hours ago
- 1 day 3 hours ago
- 3 days 18 hours ago
- 4 days 2 hours ago
- 4 days 2 hours ago
- 4 days 3 hours ago
- 4 days 3 hours ago
- 1 week 1 day ago
- 1 week 1 day ago