博客

确保应用程序安全首先要确保 SDLC 管道安全

Lori MacVittie 缩略图
洛里·麦克维蒂
2019 年 8 月 19 日发布

现代开发实践日益使开发生命周期自动化。 从 IDE 到代码库,从自动构建和扫描到发布到生产中,这些工具串联在一起形成持续交付流水线。

存储库既是存储代码的地方,也是启动构成交付过程的事件的地方。 当提交代码时,它可能会运行安全扫描。 当配置发生变化时,它可以自动推送到适当的基础设施进行立即部署。

这些工具正在加快开发、交付和部署过程——而且它们越来越多地“在云端”。 那些驻留在本地的设备通常可以通过互联网访问,以支持日益增多的远程开发人员社区。 虽然大多数组织都具有足够的安全意识,要求获得存储库的凭证访问权限,但他们不一定会采取相应的措施来确保访问权限免受现代威胁。

其中一个现代威胁是撞库攻击。 通常情况下,这会对企业资源构成风险,但事实上,任何可通过互联网访问的凭证系统都存在被入侵的风险。 开发人员应用安全密码实践的可能性与其他 IT 专业人员一样,没有高下之分。 在互联网上重复使用密码的情况很常见,数十亿个凭证的暴露使攻击者能够利用丰富的资源来访问各种系统。 请看一下这篇揭示这句格言的文章: “ Lastline2018 年伦敦信息安全大会上的 306 名信息安全专业人士进行的一项调查显示,45% 的人犯下了最大的安全大忌之一 — — 跨账户重复使用密码。” 如果近一半的安全专业人员都在重复使用密码,想象一下 IT 社区中其他成员(包括开发人员)的状况会是什么样子。

从现实角度来看,美国臭名昭著的数据泄露事件 2014 年开始的针对美国人事管理办公室 (OPM) 的攻击就是由成功窃取特权用户凭证的攻击者实施的。 一旦攻击者成功窃取这些凭证,他们不仅可以访问 OPM 服务器中包含的敏感信息,还可以横向进入美国的服务器和基础设施。 内政部也在那里造成了严重破坏。

通过访问组成 SDLC 的系统和服务,攻击者可以毒害井水。 如果人们能够接触到源代码,那么注入恶意行为或者窃取创意就很容易了。 

为了应对这种威胁,组织应该考虑将零信任架构的概念扩展到其软件开发流程中的工具中。 从 IDE 到云管理控制台再到代码存储库,使用特权用户访问可以基于 MFA/CAC 实施强大的安全实践。

特权用户访问和 SDLC 管道

特权用户访问(PUA) 基本上是没有 SAML 的联合,也不需要应用支持某种特殊的身份验证方法。 它能够将零信任原则扩展到传统应用程序并支持现代基于 Web 的应用。

该解决方案基于 F5 访问策略管理器 (APM) 作为凭证代理的能力以及自动通用临时凭证的能力。 简而言之,用户根据公司凭证存储(域控制器、LDAP)进行身份验证,然后 APM 生成可用于登录受保护系统的临时凭证。 对于开发流程来说,这可以是代码存储库,例如BitbucketGitHubGitLab 。 这种方法可以更严格地控制对存储库的访问,而不会给开发人员带来大量的流程开销。 

普阿-sdlc

  1. 用户向 BIG-IP 提供凭证
  2. BIG-IP 根据 IaaS 或本地目录服务验证用户凭证
  3. BIG-IP 为经过身份验证的用户提供临时凭证
  4. 通过 IDE 或浏览器将临时凭证发送到存储库
  5. 存储库将用户名和临时凭证传递给 BIG-IP 进行验证
  6. BIG-IP 返回验证
  7. 用户已成功登录到存储库

敏感数据应该包括代码。 这意味着与数据一样,代码访问也应该受到保护。 代码是数字业务的核心,交付渠道越来越被视为攻击媒介。 通过建立特权用户访问模型,您可以更加确信凭证及其背后的用户都是合法的。

您可以在此处了解有关 F5 APM的更多信息。