三年前,我作为首席安全工程师加入亚马逊云服务(AWS),首个项目是负责Amazon关系数据库服务(RDS)中PL/Rust的安全工作。该扩展允许用户使用Rust语言为PostgreSQL编写自定义函数,这些函数会被编译为原生机器代码。从安全工程师的角度看,“编译为原生机器代码”就像闪烁的霓虹灯标识,指向需要重点关注的Rust工具链。
系统组成
postgrestd是PL/Rust的核心Rust标准库。该库的设计包含防止数据库逃逸的机制,但在当时它还相对较新,尚未经过大规模生产环境的充分验证。更复杂的是,PL/Rust需要在数据库实例本地编译扩展,这就要求完整的工具链必须可用。
如果扩展可以访问完整工具链,潜在风险就会增加。构造不当的扩展可能影响数据库或主机实例,攻击者可能尝试绕过安全控制或破坏容器的写或执行(W^X)模型。为了安全地向客户提供PL/Rust功能,我们需要添加一系列缓解措施来应对这些新风险。
方法挑战
在AWS内部,我们极度关注系统运营方式,专注于自动化和弹性以确保兑现对客户的承诺。我们反复验证:简单往往是更好的选择。大规模运营已经足够复杂,不应再增加额外负担!
SELinux一直是多种解决方案中长期争论的选项。SELinux是一组内核功能和工具,可在Linux子系统上实施强制访问控制。通过SELinux策略,可以精确规定系统允许的操作,即使进程所有者拥有权限,也能阻止其写入特定文件。
简而言之,SELinux强制访问控制是在现有授权系统之上增加的保护层。如果进程对文件拥有权限,SELinux可以根据配置的策略阻止该操作,这是确保特定操作不会发生的确定性方法。
这种方法能显著提升操作系统安全性,但代价是降低了系统运营的灵活性,以及配置强制访问控制以满足安全需求所需的工作量。与任何安全控制一样,需要权衡利弊。
在PL/Rust案例中,SELinux的益处超过了缺点,它使我们能够以安全的方式向客户提供PL/Rust功能。
虽然说起来简单,但这实际上体现了AWS的文化。作为团队新成员,我提出这个想法后,高级领导层花时间认真倾听。讨论很激烈,我们都深入质疑这个想法及其实现。我们文化的一个方面是尝试预见问题,在发生前进行预测。
这种讨论和对想法的质疑有助于确保我们为客户做出正确决策。过程并不轻松,但值得付出。通过这些讨论,我们同意尝试SELinux方法。
构建完整解决方案
我们的构建和运营团队搭建了SELinux环境,并创建了适当的强制执行策略。这是重要的第一步,但并非故事最精彩的部分。
我们配置强制访问控制策略,将拒绝消息发送到遥测系统。AWS系统生成大量遥测数据,我们定期利用这些信息了解系统状态并改进运营和设计方式。
利用此基础设施,我们开始构建处理拒绝消息的流程。与蓝队合作,我们为Amazon RDS团队制定了专门的事件响应手册,并开始每季度举行演练日,让红队在系统上模拟攻击,我们则进行响应。
之后,所有团队共同评估和分析响应过程,努力识别瓶颈或改进领域。这种定期实践帮助我们的响应能力快速成熟。
至此,我们拥有了降低PL/Rust风险的强大解决方案、深入的系统监控以及经过充分测试的事件响应流程。
实践应用
功能上线后,我们使用监控系统为每个SELinux拒绝消息自动创建高严重性工单。这种跟进级别确保控制措施按预期工作,并为系统潜在风险提供宝贵洞察。
这种跟踪和调查可能问题的流程帮助团队确保提供客户期望的服务水平。当PostgreSQL或Rust发布新功能,或客户有新的数据分析需求时,我们希望安全控制能支持而非不必要地阻碍这些工作。
通过调查强制访问控制日志消息建立的反馈循环,帮助团队了解环境中尝试进行的活动。这不仅有助于捕获影响预期使用的问题,还充当入侵检测系统。
最近公开的一个案例体现了这种用途。十月份,我们的团队收到一个基于SELinux拒绝消息自动生成的高严重性工单。
快速检查确认我们在PL/Rust近期更新后未遗漏监控标准更新后,红队、蓝队和AWS安全团队立即行动。请注意,此活动是针对未成功的访问尝试触发的!虽然系统消息表明已阻止活动,但按照惯例,我们希望了解尝试的内容。
我们验证了SELinux策略已正确执行并阻止了相关活动。确认后,我们继续追查此问题。你可能会问为什么继续处理这个案例,答案很简单:我们持续寻找改进系统效力和效率的机会。
找到信号的根本原因并深入了解有助于调整方法。根据情况,我们可能完全避免潜在风险并减少警报量,或者发现推出新功能的机会,帮助客户实现目标而不降低系统安全性。
本次调查确定检测到的活动由Varonis Threat Labs研究团队发起。我们联系他们,告知检测到其活动,并提议合作,因为与研究社区的合作通常能带来惠及客户的安全改进。
此次初始阻止和检测验证了我们的安全方法。策略按预期工作,阻止了研究人员尝试完成的活动。
Varonis Threat Labs的研究人员Tal Peleg和Coby Abrams在BlackHat 2025上讨论了此案例,并在Varonis博客上发布了工作细节。
作为安全工程师,这十分令人欣慰。虽然我们测试和验证实施的控制措施,但看到这些工作如何惠及客户的具体实例,深感欣慰。