本周,我们回顾了Unicode漏洞,它允许对代码进行恶意编码,使其在编译器和人眼看来有所不同。我们还将讨论容器安全和一个我们认为需要注意的脆弱的WordPress插件。
木马来源 (CVE-2021-42574)
剑桥大学的两名研究人员最近发表的一篇论文显示,在代码中独特地使用Unicode方向性覆盖字符可能会导致人类读者误以为代码是安全的,同时允许恶意行为者在代码库中引入逻辑更改。研究人员创建了一个GitHub仓库,以展示这些字符如何在不同的编程语言中得到利用。
#!/usr/bin/env python3
def sayHello():
print("Hello, World!")
def sayHello():
print("Goodbye, World!")
sayHello()
你能知道哪个函数会运行吗?编译器可以!
这个问题可能会产生多种安全影响。恶意代码可以被引入到一个看起来很安全的公共资源库,用于供应链攻击。从公共论坛复制的代码也可能包含这些恶意的逻辑改动。论文中提到,大多数编译器都容易受到这些问题的影响,即使一些社区已经承认了这个问题(见Rust和GitHub),但众所周知,大多数编译器仍然是脆弱的。
容器安全的最佳实践
根据Docker的说法,容器是一个标准的软件单元,将代码及其所有的依赖性打包。该应用程序在一个计算环境中快速可靠地运行。这允许在不同的主机操作系统上部署一个应用程序镜像,而不需要做出改变。虽然这些容器图像与底层操作系统隔离,但根据sysdig的综合容器安全指南,容器内可利用的漏洞会危及你的整个云基础设施。根据2020年云原生计算基金会(CNCF)的调查,生产中使用容器的比例已经增加到92%,这意味着保护这些实例的安全比以往任何时候都更加重要。
我们提供了我们自己的容器安全指南,进一步详细介绍了使用推荐的工具和程序来构建安全的Docker镜像。我们建议遵循这些最佳实践来更好地保护你的容器:
- 定期更新图像以减少容器中的漏洞数量。
- 经常使用漏洞扫描工具(如Trivy)扫描漏洞,Trivy是一个为此目的建立的免费和开源的工具。
- 为运行容器创建有限的用户,尽可能避免以根用户的身份运行容器。在使用容器时,行使最小权限原则是很重要的。
- 限制容器使用的CPU和RAM。硬件使用限制极大地缓解了攻击者在特定容器上进行密码挖掘的能力。这也有利于通过减少分配给一个容器的不必要的资源量来提高性能。
最后,你可以查看由开放网络应用安全项目(OWASP)提供的Docker安全骗局,以快速了解这一问题。
OptinMonster WordPress插件 (CVE-2021-39341)
根据该插件的WordPress页面,OptinMonster是一个帮助其用户建立弹出式窗口以实现读者订阅的插件。截至目前,它已经有超过一百万的活跃安装量。
这个插件使用API 端点来运作。根据WordFence的文章,这些API 端点大多存在漏洞,允许未经认证的攻击者导出敏感信息并向使用该插件的WordPress网站注入恶意的JavaScript代码。该插件2.6.4之前的版本对这些攻击是开放的,强烈建议将该插件更新到最新版本。OptinMonster团队已经重置了被攻击的API 密钥,用户可能需要重新生成他们的API 密钥才能继续使用该插件。
通过准备这些摘要,我们旨在与我们的读者分享有用的信息。如果你学到了新的东西,请随时在下面留言,并继续关注安全方面的最新消息。
注释