网络安全至关重要,组织致力于对敏感的信息资产建立有效的控制及保护,关注的重点在核心的业务系统、内部办公系统、财务系统、人事系统…这一切可归为组织的生产环境。与之不同,测试环境更像一个过客,会阶段性的出现在组织内部,而人们往往对其不会有足够的关注。
在交付技术产品或服务之前,组织通常会搭建测试环境,以确保在不影响正常业务的情况下,可控、高效、安全的完成测试或开发,这是当前公认的最佳实践。在理想状态下,这些“非生产”或测试环境应该与生产环境完全隔离,以防出现安全事故。在现实中,应只有公司内部人员了解测试环境的情况,对公众来说,完全没有必要公开。然而,在安全研究中,经常可以发现暴露的测试环境凭证,这可能会导致严重的后果。
测试环境带来的风险
测试环境自身对于攻击者的价值,远大于我们的认识,测试环境可以反应出组织当前数字业务的部分情况,会存在比生产环境更多的漏洞,承载的信息还可帮助攻击者更好的利用社会工程学攻击。
相比生产环境来说,测试环境凭证更好获得,对漏洞的管理也更加松懈,给攻击者留下了更多的机会,盗窃测试环境中的数据对攻击者来说也更加容易。在某些场景下,例如因为伪造的数据无法达到测试效果,测试者会在测试环境中使用生产数据,这些数据可能是客户信息、公司的机密数据、一旦暴露,不仅会面临监管机构的罚款,对公司声誉带来的影响,更是无法估量的损失。
此外,尽管测试环境不应与生产环境关联,我们也应重视对其的保护。一旦测试环境同生产环境“重叠”,那么测试环境则成为了进入生产环境的通道,测试环境存在的漏洞也即成为了生产环境的漏洞。攻击者可以此为跳板,利用社会工程获得对组织内部系统的更大访问权限。
如何降低测试环境带来的风险
- 测试环境应该始终使用与生产环境不同的凭证,这样即使泄漏,测试凭证也不能用于访问生产环境。
- 测试凭证应该遵循权限最少的原则,只能使用测试凭证进入测试环境而不能进入其他系统。
- 在测试环境中启用多因素身份验证(MFA),以创建另一道防线以阻止攻击者访问公司的系统。
- 避免在测试环境中使用真实(生产)数据,尽可能使用或开发工具为测试环境生成虚假数据。如果必须使用生产数据,在使用前尽可能的脱敏。
- 实现技术控制,如网络分割:健壮的网络安全更利于保护系统,无论是生产环境还是测试环境。
- 关注供应商风险:以上几条均是通过组织内部的调整以达到降低使用测试环境风险的目的,但我们也不能忽略一个关键的角色,提供服务or技术的供应商。即使内部的防范再到位,若凭证从供应商、甚至供应商的合作伙伴手中流失,给组织带来的伤害是一样的。