如今,网络安全威胁无处不在,持续不断。随着我们生活中越来越多的方面被数字化,网络犯罪分子面临的风险就越高——有太多代码无法保证安全,私人数据也太有价值了。而且,好吧,在部署程序后试图跟上并防御攻击面的各个方面几乎是不可能的。
某些方法可缓解部分症状,当精明的组织采纳基础设施即代码(IaC)理念时,其中一种方法便显而易见。当然,如同任何开发工作,存在若干安全陷阱需要解决。而且,由于开发人员正在研究生成用于托管应用程序的重要基础设施代码,因此安全意识在流程的每个阶段都至关重要。
那么,初次接触云服务器环境的开发人员究竟该如何提升技能、学习技能,并在增强安全意识的前提下进行构建呢?我们创建了《Coders Conquer Security》系列的下一部内容,旨在解决常见的IaC漏洞。接下来的几篇博客将重点介绍您(开发人员)可采取的步骤,开始在自己的组织中以代码形式部署安全基础设施。
让我们开始吧。
美国旧西部流传着一个寓言,讲述了一个偏执狂的故事。他坚信土匪会袭击并抢劫他的家园。为此,他投资了各种安全措施,例如安装了超坚固的前门,登上了所有的窗户,以及将大量枪支放在触手可及的地方。有一天晚上他在睡觉的时候还被抢劫了,因为他忘记锁侧门。土匪只是找到了失效的保安人员,并迅速利用了这种情况。
在基础架构中禁用安全功能就像这样。即使您的网络拥有强大的安全基础架构,如果禁用了某些元素,也无济于事。
在我们潜入之前,让我提出一个挑战:
访问上述链接,您将进入我们的游戏化培训平台,可立即尝试攻破禁用的安全功能漏洞。(请注意:该平台将在Kubernetes环境中启动,但您可通过下拉菜单选择Docker、CloudFormation、Terraform或Ansible进行操作)。
你做得怎么样?如果你还有一些工作要做,请继续阅读:
安全功能可能因各种原因被禁用。对于某些应用程序和框架,它们可能在默认情况下处于禁用状态,必须先开启才能开始运行。管理员也可能禁用特定安全功能,以便更轻松地执行某些任务,而不会频繁受到挑战或封锁(例如公开AWS S3存储桶)。任务完成后,他们可能忘记重新启用那些被禁用的功能。他们可能更愿意将其关闭,以便将来更轻松地完成工作。
为什么禁用的安全功能如此危险
禁用一项或多项安全功能是不妥的,原因有二。首先,安全功能被部署在基础设施资源中,旨在防范已知的漏洞、威胁或缺陷。若将其禁用,则无法为您的资源提供保护。
攻击者总是会首先尝试找到易于利用的漏洞,甚至可能使用脚本修复常见漏洞。这与小偷检查街上所有汽车以查看是否有门被解锁没什么不同——这比砸窗户容易得多。黑客可能会惊讶地发现常见的安全防御措施处于非活动状态。但当这种情况发生时,他们很快就会利用它。
其次,设置良好的安全性后再禁用会产生虚假的安全感。如果管理员不知道有人禁用了这些防御措施,他们可能会认为自己能够免受常见威胁的侵害。
作为攻击者如何利用已禁用的安全功能的示例,可以考虑阻止公有访问的 AWS S3 安全功能。借助 Amazon S3 屏蔽公有访问权限,账户管理员和存储桶所有者可以轻松设置集中控制来限制对其 Amazon S3 资源的公开访问。然而,部分管理员在访问 S3 存储桶时遇到问题,为尽快完成任务而决定将其公开。若他们忘记启用该安全功能,攻击者将完全访问存储在该 S3 存储桶中的信息,这不仅会导致信息泄露,还会因数据传输费用产生额外开销。
让我们比较一些现实世界的代码;看看以下 CloudFormation 片段:
易受攻击:
企业存储桶:
类型:AWS::S3::Bucket
属性:
公共访问区块配置:
blockPublicACLS:错误
BlockPublicy:错误
ignorepublicacls:错误
restrictPublicBuckets:
版本控制配置:
状态:已启用
存储桶加密:
服务器端加密配置:
-默认情况下服务器端加密:
SSE算法:“AES256”
安全:
企业存储桶:
类型:AWS::S3::Bucket
属性:
公共访问区块配置:
blockPublicACLS:对
BlockPublicy:没错
ignoreRepublicacls:
restrictPublicBuckets:
版本控制配置:
状态:已启用
存储桶加密:
服务器端加密配置:
-默认情况下服务器端加密:
SSE算法:“AES256”
防止禁用安全功能
阻止禁用的安全功能对您的组织造成负面损害既是政策问题,也是实践问题。应制定一项坚定政策,规定只有在非常特殊的情况下才能禁用安全功能。必须记录因解决问题或更新应用程序而需临时禁用功能的事件。所需工作完成后,应检查功能以确保已完全重新激活。
如果必须永久禁用安全功能以简化操作,则应为受影响的数据提供其他保护措施,以确保在没有默认保护的情况下,黑客将无法访问该功能。如果所需的保护功能已被禁用,那么攻击者找到未锁定的门并利用这种情况只是时间问题。
了解更多,挑战自我:
来看看安全代码勇士博客页面,详细了解此漏洞以及如何保护您的组织和客户免受其他安全漏洞和漏洞的破坏。
现在你已经阅读了这篇文章,准备好发现并修复这个漏洞了吗?Secure Code Warrior 尝试iMac游戏化安全挑战 Secure Code Warrior 让您的所有网络安全技能持续精进并保持最新状态。
这是每周一次的系列文章,涵盖了我们排名前八的“基础设施即代码”漏洞;下周回来查看更多信息!