如何保护平台即服务(PaaS)环境?
您是否正在使用PaaS来开发应用程序,但不确定如何确保其安全性?
平台即服务(PaaS)是一种云计算模型,提供了一个平台,客户可以在其中开发、保护、运行和管理Web应用程序。它提供了一个优化的环境,团队可以在不购买和管理基础IT基础设施和相关服务的情况下开发和部署应用程序。
一般来说,该平台提供了支持软件开发和部署的必要资源和基础设施,同时允许开发人员和用户通过Internet从任何地方访问。 PaaS的好处包括但不限于简单易用、方便、成本较低、灵活性和可扩展性。
通常,保护PaaS与传统的本地数据中心有所不同,我们将会看到。
PaaS环境依赖于共享安全模型。提供商保护基础设施,而PaaS客户有责任保护其托管在平台上的账户、应用程序和数据。理想情况下,安全性从本地到身份边界安全模型的转变。
这意味着PaaS客户需要更多关注身份作为主要安全边界。需要关注的问题包括保护、测试、代码、数据和配置、员工、用户、身份验证、操作、监测和日志。
这需要做很多事情,不是吗?
别担心,让我一步一步地指导您。
保护应用程序免受常见和意外的攻击
其中一种最佳方法是部署能够快速并且自动进行实时保护的解决方案,具备检测和阻止未经授权访问、攻击或泄露的能力。PaaS订户可以使用平台提供的安全工具,或寻找适应其需求的第三方选项。
理想的工具应该能够检测异常活动、恶意用户、可疑登录、恶意机器人、账户劫持以及可能导致威胁的其他异常情况。除了使用工具,还需要将安全性建设到应用程序中,以便它具备自身的保护能力。
保护用户账户和应用资源
每个交互点通常都是潜在的攻击面。预防攻击的最佳方法是减少或限制未经信任用户访问的应用程序漏洞和资源的暴露。定期和自动地修补和更新安全系统也非常重要,以减少弱点。
尽管服务提供商保护平台,但客户对于保护账户和应用程序有更大的责任。这意味着使用一组安全策略,如内置平台安全功能、附加组件和第三方工具的组合,可以增强账户、应用程序和数据的保护。此外,还要确保只有授权的用户或员工可以访问系统。
另一项措施是将具有管理员权限的员工数量保持在最低限度,并建立审计机制以识别内部团队和授权外部用户的风险活动。
管理员还应强制执行最低用户特权。采用这种方法,用户只能拥有能够正常运行应用程序或执行其他角色所需的最低权限。这减少了攻击面、滥用访问权限以及特权资源的暴露。
扫描应用程序以发现安全漏洞
进行风险评估,以确定应用程序及其库中是否存在任何安全威胁或漏洞。利用这些发现来改进所有组件的保护。理想情况下,建立一个regular scanning并计划每天自动运行或者根据应用程序的敏感性和潜在安全威胁来定期运行。
如果可能,使用可以与其他工具集成的解决方案,如通信软件,或者具有警报相关人员的内置功能,每当发现安全威胁或攻击时。
测试和修复依赖项中的安全问题
通常,应用程序将依赖于直接和间接的依赖项,这些依赖项大多是开源的。如果不解决这些组件中的任何缺陷,可能会在应用程序中引入安全漏洞。
一个好的做法是分析应用程序的所有内部和外部组件,进行API渗透测试,检查第三方网络等等。修复漏洞的一些有效方法包括升级或替换依赖项为安全版本,打补丁等等。
值得一试的是使用Snyk来监控依赖项中的安全漏洞。
进行渗透测试和威胁建模
Penetration testing有助于在攻击者发现并利用它们之前识别和解决安全漏洞或漏洞。由于渗透测试通常是具有攻击性的,它们可能会被误认为是DDoS攻击,因此与其他安全团队进行协调以避免产生虚假警报是至关重要的。
威胁建模包括来自受信任边界的可能攻击的模拟,这有助于验证攻击者可以利用的设计缺陷。该建模为IT团队提供了威胁情报,他们可以利用该情报来增强安全性,并制定对抗任何已识别弱点或威胁的措施。
监控活动和文件访问
监控特权账户使安全团队能够获得全面了解用户如何使用平台。它使安全团队能够确定特权用户的活动是否存在潜在的安全风险或合规性问题。
监控和记录用户对权利的使用以及文件上的活动。这样可以查找可疑访问、修改、异常下载或上传等问题。文件活动监视还应提供访问文件的所有用户的列表,以防需要调查违规行为。
一种正确的解决方案应具备识别内部威胁和高风险用户的能力,包括查找并发登录、可疑活动以及许多次失败的登录尝试等问题。其他指标包括在奇怪的时间登录、可疑的文件和数据下载或上传等。在可能的情况下,自动化的缓解措施将阻止任何可疑活动,并提醒安全团队调查违规行为并解决任何安全漏洞。
保护静态和传输中的数据
最佳实践是在存储期间和传输时加密数据。保护通信渠道可以防止可能的中间人攻击,因为数据在互联网上传输。
如果尚未实施,通过启用TLS certificate来实现HTTPS以加密和保护通信渠道以及数据的传输。
始终验证数据
这可以确保输入数据处于正确的格式、有效且安全。
所有数据,无论是来自内部用户还是来自外部受信任和不受信任的来源的安全团队,都需要将数据视为高风险组件。理想情况下,在数据上传之前在客户端执行验证和安全检查将确保只有干净的数据通过,同时阻止受到损害或感染病毒的文件。
代码安全
在开发生命周期中分析代码的漏洞。这始于初始阶段,开发人员应仅在确认代码安全后将应用程序部署到生产环境中。
强制使用多因素身份验证
启用多因素身份验证可以添加额外的保护层,提高安全性,并确保只有授权用户可以访问应用程序、数据和系统。这可以是密码、OTP、短信、移动应用程序等的组合。
执行强密码策略
大多数人使用容易记住的弱密码,并且除非被迫,否则永远不会更改它们。这是一种安全风险,管理员可以通过执行强密码策略来将其降至最低。
这应该要求使用在一定时间后过期的强密码。另一个相关的安全措施是停止存储和发送明文凭据。理想情况下,应对身份验证令牌、凭据和密码进行加密。
使用标准的身份验证和授权
最佳实践是使用标准、可靠和经过测试的身份验证和授权机制和协议,如OAuth2和Kerberos。尽管可以开发自定义身份验证代码,但这些容易出现错误和漏洞,从而可能将系统暴露给攻击者。
密钥管理流程
使用强加密密钥,避免攻击者可以预测的短或弱密钥。此外,使用安全的密钥分发机制,定期更换密钥,始终按时更新密钥,在必要时撤销密钥,并避免将密钥硬编码到应用程序中。
自动和定期密钥轮换可以提高安全性和合规性,同时限制风险的加密数据量。
管理对应用程序和数据的访问
制定并执行可管理和可审计的安全策略,设定严格的访问规则。最佳方法是仅授予授权员工和用户所需的访问权限,而不超过需求。
这意味着仅为他们执行职责所需的应用程序和数据分配适当级别的访问权限。此外,还应定期监控人们如何使用分配的权限,并撤销那些他们滥用或不需要的权限。
持续运营
有几件事要做。
- 执行持续测试、定期维护、打补丁和更新应用程序,以识别和修复新出现的安全漏洞和合规问题。
- 为资产、用户和权限建立审计机制。安全团队应定期审查这些内容,以识别和解决任何问题,此外还应撤销用户滥用或不需要的访问权限。
- 制定和部署应对威胁和漏洞的应急响应计划。理想情况下,计划应包括技术、流程和人员。
自动收集和分析日志
应用程序、API和系统日志提供了大量信息。部署自动工具进行日志分析collect and analyze the logs可以提供有用的见解。通常,作为内置功能或第三方附加组件提供的日志记录服务非常适合验证与安全策略和其他法规的合规性,以及进行审核。
使用与警报系统集成、支持应用程序技术栈并提供仪表板等功能的日志分析器。
保留并审查审计日志
最佳实践是存储用户和开发者活动的审计日志,如成功和失败的登录尝试、密码更改和其他与账户相关的事件。自动功能可以使用计数器来防止可疑和不安全的活动。
审计日志对于调查违规行为或怀疑攻击非常有益。
结论
一种PaaS模型可以消除购买、管理和维护硬件和软件所带来的复杂性和成本,但将确保账户、应用程序和数据的安全责任交给了客户或订阅者。这需要一种基于身份的安全方法,与公司在传统的本地数据中心使用的策略不同。
有效的措施包括将安全性纳入应用程序中,提供足够的内部和外部保护,以及监控和审核活动。评估日志有助于识别安全漏洞和改进机会。理想情况下,安全团队必须在攻击者看到并利用它们之前,早期解决任何威胁或漏洞。