如今,无服务器架构在企业中越来越流行,因为该架构可以帮企业节省大量基础架构维护时间,把更多时间和精力放在软件开发、营销和部署上。
但是与其他企业基础设施一样,无服务器架构同样面临严峻的安全问题。从DDoS攻击、数据注入到业务逻辑操作,威胁无处不在,只需瞟一眼OWASP十大威胁列表,您就会知道需要解决的麻烦有多多,这些还只是已知威胁。
这也是为什么企业对市场上众多安全工具和资源(尤其是开源工具)如饥似渴的原因,这些工具可以节省大量的系统手动维护时间,减轻安全人才匮乏的压力,增强企业基础设施的安全性。
好的安全工具可以帮助我们在生产阶段的早期发现威胁,防止将来造成更大的商业损失或复杂局面。而且安全工具有助于提高安全自动化水平,帮助企业安全团队在敏捷的环境中进一步加快无服务器的安全防护和维护速度。总之,安全工具可以帮助企业安全团队跟上敏捷开发或者业务的脚步,帮助企业在更短的期限内部署和升级应用程序,提高数字化转型效率和竞争力。
最好的无服务器开源安全工具
近年来,市场上涌现了很多无服务器安全工具,包括开源和商业工具。以下我们推荐五个最好的、最具代表性的产品:
1. Snyk
Snyk是一款出色的开源工具,可维护无服务器项目的安全性。您可以通过Snyk自动化整个安全和维护过程,将其直接集成到CI/CD系统中。你只需要在CI/CD系统中设置“Snyk test”。
Snyk最擅长的是检测依赖项中的漏洞,帮助团队尽快检测并处理这些漏洞,避免将来应用程序出现问题。Snyk会持续监控你的应用程序,并通过定期的PR检查披露安全威胁。Snyk还支持用户自定义应用程序的测试频率。Snyk最方便的功能之一就是能够通过电子邮件或Slack配置通知,用户不需要一次又一次地手动检查工具是否存在风险。
Snyk与多个第三方云服务兼容。该公司最近还宣布与AWS和Azure集成。
2. Docker-Lambda
Docker-Lambda是另一个有效的开源无服务器工具。对于迭代而言,效率和快速性等因素在很大程度上取决于本地框架的全面性和健壮性。Docker-Lambda有助于实现快速迭代,这要归功于Docker容器,它们无缝地模拟了生产环境的Amazon Web Services Lambda函数功能。
该工具沙盒化的本地执行生态系统复制了Lambda函数的配置和功能,包括:
- API和库;
- 权限和用户名;
- Lambda函数的调用上下文。
Docker-Lambda的容器提供了在发布之前了解代码行为所需的环境。反过来,这也反映了无服务器应用程序的可维护性和可靠性。
Docker-Lambda是在以下场景的理想选择:
- 当您需要快速的本地重现时;
- 当您不打算为了测试一下Lambda软件包就触发实时Lambda时;
- 无需启动Amazon Linux EC2实例时。
3. Protego
Protego是基于Web的应用程序,可在应用程序的整个生命周期(从开发、部署到运行时)中增加安全性。
Protego支持AWS、Google Cloud Platform和Azure。它还支持使用通用编程语言和框架(包括Node.js、Python和Java)开发的功能。Protego还提供了仅对应用程序的相关功能提供最小必要权限的“最小化权限”模型。它还允许您设置自定义安全策略,可以根据这些策略测试应用程序。
Protego最招人喜欢的功能是能够监视应用程序的各个方面并生成在系统访问、触发器、外部通信等方面的“良好行为”白名单。您可以预测部署前的威胁和故障并迅速修复。Protego声称会根据更新的CVE资源和算法不断更新其“漏洞列表”。
Protego还支持与其他报告工具的本机集成,从而使其更加便捷。
4. Lumigo CLI
如果您正在开发基于事件的分布式应用程序,那么建议考虑使用Lumigo CLI,因为它有一套全面的工具,能够简化分布式应用程序的开发和管理过程。
Lumigo CLI建立在AWS SAM和无服务器框架中提供的一些工具之上,能提供与部署过程集成的扩展服务。Lumigo CLI的两个主要优点是:可以将其无缝集成到开发管道中,可以帮助用户定义和维护无服务器架构。
Lumigo CLI的其他一些优点包括:
其他优点:
- 以控制台为中心的UI,允许您列出lambda函数。
- 支持检索SNS主题,可简化故障排除。
- 简化了DynamoDB或Kinesis流中事件的跟踪方式。
5. AWS无服务器开发人员工具(AWS Serverless Developer Tools)
尽管不是专门的无服务器安全工具,但AWS Serverless Developer Tools是AWS聚合的,有关无服务器开发的一些最有用资源的汇编。通过该工具,你几乎可以找到与无服务器应用程序开发和部署有关的任何内容。
其中的一些功能包括对无服务器应用程序开发框架的全面编译;持续部署/集成工具(例如AWS Codestar和AWS CodePipeline);用于记录,监视和调试目的的工具,例如AWS X-Ray和Amazon CloudWatch;以及诸如AWS Sam Local和AWS Cloud9之类的创作和开发工具。
结论
市场上有许多无服务器安全工具,能够帮助你有效地缓解已知和隐藏的安全威胁。转型无服务器架构的用户可以根据自身的应用场景和安全需求,从以上的推荐中选择一款“趁手”的工具,提升整个软件开发生命周期的安全性。
【本文是51CTO专栏作者“安全牛”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】