2023年6月13日

    移动DevSecOps:构建安全生命周期的每个阶段

    破碎的访问控制最近发现在手机银行应用程序钱的情人只是一个再熟悉不过的故事的另一个例子。今年早些时候,安全研究人员发现他们的共享钱包特性是漏水的交易数据。虽然泄露的数据仅限于电子邮件地址,交易,和其他元数据,还有潜在的威胁演员使用数据用于邪恶的目的。即使数据不会滥用,其品牌将在消费者的眼睛。

    尽管这样的故事,我们继续看到脱节的水平移动应用安全风险安全实践。缩小这个差距,开发人员必须将安全融入每一个阶段的移动应用软件开发生命周期(SDLC)。

    DevOps演变成DevSecOps

    DevSecOps代表发展、安全和操作。顾名思义,这是一个更安全的移动应用开发方法,安全工具和流程”左移位”或者是集成到生命周期的每个阶段。

    采用DevSecOps的好处包括:

    • 减少瓶颈时容易发生推迟安全开发生命周期的结束。
    • 通过自动化的安全测试优化安全,减少人为错误。
    • 轻松地记录符合监管要求。
    • 减少返工修正这些漏洞之前构建依赖于错误的代码。

    了解更多关于移动DevSecOps生命周期阶段和整个SDLC集成安全的最佳实践。

    移动DevSecOps生命周期的阶段

    看到如何战略性地将安全融入DevSecOps生命周期的每个阶段。

    第一阶段:计划

    迭代计划阶段,就像整个开发过程。收集反馈和要求从不同的利益相关者,包括主题专家(sme),产品负责人、客户和最终用户。

    这些都是翻译成功能性需求和目标为未来构建,他们评估的可行性和优先级。一些可能会优先考虑他人,添加到后来建立的积压,或完全拒绝。敲定后需求的列表,在写代码之前,开发团队将计划他们的积压和确定哪些需求将在未来版本优先或冲刺。

    第一阶段安全实践

    在此阶段,开发人员应该探索他们的移动应用程序发布后可能面临威胁,以及任何监管要求或行业标准可能是受。通过威胁建模,开发人员需要一个攻击者的角度更深入的了解他们的威胁。这个练习可以由安全专家组织,帮助开发团队在他们的计划和设计挑战。

    这个练习可以包括:

    • 准备常见的漏洞和威胁。
    • 处理特定于行业的威胁,如盗版和作弊游戏应用。
    • 映射过程和数据流。

    在确定他们需要准备什么攻击向量,开发人员应该评估移植和潜在的保护。OWASP MASVS这里是非常宝贵的,因为它提供了一个移动的框架设计安全需求映射到适当的补救或保护。

    阶段2:构建

    构建阶段通常是在sprint或迭代,这是当开发人员开始写作和提交代码的共享库。除了编写的代码,他们往往会集成第三方代码依赖项,如图书馆和sdk。这是一个常见的和接受实践允许开发者重新流行的组件,而不是从头开始。然而,这可能可以引入新的未知的漏洞。

    第二阶段安全实践

    在这个阶段,开发人员实现一个安全的设计,以及措施之一,他们发现了在阶段1和保护机制。虽然他们可能不会积极使用在这个阶段,应该建在保护或计入代码编写的。

    开发人员应该采用安全编码最佳实践。的OWASP安全编码实践指南是技术无关的,但原则适用于移动应用程序开发。资源包括输入验证、输出编码,系统配置,文件管理,等等。

    他们也应该遵循安全最佳实践在处理敏感数据,如身份验证凭证的管理存储在代码中,以防止其泄漏到生产版本。

    • 不要将未加密的证书存储为可读的字符串。
    • 不要使用一个共同的所有字符串加密密钥,防止单点故障。
    • 有明确的协议与服务器的通信进行安全专家。

    应用程序可以进一步保护实现开云app安全 将模糊的移动应用程序的内部逻辑。这可以包括代码混淆,比如加密或重命名类和其他变量,和删除特定的元数据。

    团队领导应该建立一个基线的安全知识和内部标准,包括验证流程、文档和培训。这不仅有助于整体构建的安全状况,但也确保开发团队将这些最佳实践更加一致。

    阶段3:测试

    在CI / CD管道,大多数测试应与每一个构建自动触发,包括功能、集成、回归,性能,和其他类型的测试。这是为了确保构建满足需求在第一阶段建立和早期识别错误,更快和更有效的补救。这些测试应该生成一个报告详述任何缺陷和(理想情况下)建议下一步。

    3级安全实践

    第三阶段的安全包括手动和自动安全测试,通过这个应用程序漏洞扫描,凭证存储为可读的字符串,或API令牌以后,可以利用。这些测试应该生成一个报告他们的发现,优先级级别,建议指导修复工作。

    静态应用程序安全性测试(科协)在这个阶段使用。分析了移动应用程序的源代码,寻找漏洞,允许威胁演员访问手机应用程序的内部逻辑。

    当所有的组件应用程序组装,它应该是在运行时进行测试。动态应用程序安全性测试(DAST)模拟外部攻击应用程序使用时,寻找任何额外的漏洞,允许一个威胁演员收集信息,逆向工程,或修改应用程序的预期行为。预发布,这是在测试设备上完成。

    其中手动可以在这里使用,以满足内部安全要求或规定的合规要求向监管更严格的行业。笔测试关注的端到端场景和寻找更复杂的问题,使他们一个伟大的补充安全测试上面列出的。

    阶段4:释放

    验证之前的版本是这个阶段的关键部分。开发团队工作,以确保所有错误和编码错误发现通过测试得到充分解决。

    第四阶段安全实践

    通过将安全离开,开发人员应该已经很多重活累活生命周期的早期阶段。现在,验证保护机制的重点是实现和正常监管要求被充分解决。

    即使其中DAST和手动实现在测试阶段,他们应该完成最终版本的代码来验证,没有最后的漏洞被添加到代码。

    应用程序的最初版本后,其中手动可能需要定期完成的整个生命周期内应用。这个过程太昂贵和耗时的实现在每一个构建或后续版本,但它需要验证应用程序满足(和保持)受到行业特定的安全需求。

    阶段5 & 6:操作和监控

    去的时间到了!移动应用程序已经发布和最终用户下载到他们的设备。在这个阶段,开发人员应监控使用,注意新功能请求,并释放补丁。

    阶段5 & 6安全实践

    而开发团队一直致力于改善整个SDLC安全状况,他们的大部分工作将完成后的应用程序已被释放。这两个积极监视功能运行在这个阶段。

    • 开云app安装 (锉)在运行时监控可疑行为,试图发现任何动态分析和篡改。
    • 威胁监视提供实时可见性和上下文可疑活动,新的威胁向量,使用模式等等。

    通过监控应用程序的使用和性能,开发人员可以理解实施安全措施而导致的任何问题,用它来调整未来构建的应用程序。威胁监测也将帮助开发者获得进一步了解真实世界的威胁,使他们能够改进他们的移动应用程序和应对实际的威胁模型在野外观察。

    设置您的开发团队成功

    教育

    许多开发团队正在迎头赶上的时候玩移动应用安全,很大程度上是由于缺乏专业知识。正在进行的网络安全的差距迫使开发人员接近安全在反复试验的基础上自己或寻求安全知识。

    这两个学科更有效的桥梁,公司应该促进安全最佳实践和额外的培训共同的威胁OWASP等专家。不仅employer-sanctioned培训演示组织的内部和外部各方致力于网络安全,但它也确保更一致和整个开发团队凝聚力的应用程序。

    技术与自动化

    学习和实施全面的移动应用安全是一个不小的任务。测试工具和保护解决方案在房子或从第三方购买基于内部资源和专业技能。

    工具和自动化功能应优先,因为他们有助于防止开发团队陷入困境与手工任务,确保安全流程是可重复的和可伸缩的。

    但开发人员应该仔细评估他们认为任何解决方案。例如,应用程序屏蔽和没有代码解决方案可能更容易在一开始,但是基于编译器解决方案提供更强有力的保护。

    找到合适的平衡

    DevSecOps看起来不同从一个组织到另一个基于他们的威胁模型,发布计划,相关的监管要求,等等。不管怎样,安全可以而且应该发挥重要作用在软件开发生命周期的每个阶段。

    虽然需要时间和实验安全问题之间找到合适的平衡,操作要求,和消费者需求,移动应用安全可以无缝集成到开发人员的工作流程,减少瓶颈和返工。

    通过主动调整人员、流程和工具背后的共同目标的一个健壮的安全姿势,移动应用开发团队能够更快地提供安全的应用程序。

    了解更多关于发展动态和多层次的移动应用交会策略深度防御:移动应用安全分层的方法。

    执行概要(TL;博士)

    • 移动DevSecOps进化是一个必要的DevOps地址增加和更复杂的威胁。
    • 在DevSecOps,移动应用安全编织成SDLC的每个阶段。
    • 教育、技术和自动化是确保您的实现的关键DevSecOps是成功的,你的手机应用程序保护。

    Guardsquare

    了解更多发展动态的、多层次的移动应用交会策略

    深度防御:分层的方法移动应用安全>

    你可能感兴趣的其他帖子

    Baidu
    map