大规模数据泄露和批判性安全漏洞公司思考比以往任何时候都更安全。许多开发人员都熟悉OWASP前十名(https://owasp.org/www-project-top-ten/)。已经有许多资源通用缓解这些漏洞。所以,在本系列中,我介绍特定于AEM的安全问题和移植。在这最后一篇文章中,我将介绍内容配置过滤器,AEM作为云服务的变化,以及第三方依赖关系。
之前的文章系列:
内容处理过滤器
如果你允许用户将SVG图像上传到你的站点,您可能会创建一个弱点。多年查看SVG图像通过URL直接受到XSS攻击,因为这些图片也可以包含恶意的JavaScript。通常该JavaScript是由一个糟糕的演员,要么向远程服务器发送用户cookie和存储数据或创建一个合法的页面寻找网络钓鱼的目的。恶意用户可以联系这个文件存储在您的服务器不知情的受害者,这将来自你的领域。从安全的角度来看,最好的方式还是不允许SVG上传,或者至少以编程方式从SVG文件中删除所有JS在服务器端保存它们。如果这是不可能的在您的业务需求或太大的范围,还有另一个解决方案,将帮助。
AEM的内容处理过滤器https://experienceleague.adobe.com/docs/experience-manager-64/administering/security/content-disposition-filter.html?lang=en通常是用来控制资产直接访问AEM是否显示在浏览器或下载。在这种情况下,您可以配置它时总是要求用户下载SVG图像链接在你的网站上,而不是呈现在浏览器中。
这将减少恶意JavaScript以两种方式的有效性。一是希望用户将更加谨慎下载文件不仅仅是观看的内容直接呈现在浏览器中。第二,如果你已经正确配置了歌珥不允许本地主机,将无法下载的恶意脚本加载几个网站资源,因为它将不再请求从您的域。这阻碍了恶意尝试打扮SVG资源作为一个合法的网站页面。需要注意的是,这并不涵盖所有情况,但这是一个容易和快速AEM内配置更改。
AEM云服务
AEM的云服务(AEMaaCS),本系列文章中介绍的几个潜在的漏洞已不再可能由于一些关键架构变化。
- AEMaaCS接收正常,自动从Adobe而不需要手动更新补丁实现团队的过程。
- /应用程序/ libs路径现在不可变的。你必须重新部署整个通过云管理器实例。
- 这使得一些持久的XSS技术(如JSP页面写入JCR)和JCR-based远程代码执行不再可能。
- 你仍然需要更新调度规则集在您的应用程序代码库如果有任何进一步的吊索解决漏洞发现。
- 前面的OSGI web控制台现在无法访问。
- 因此妥协账户可用较少的行为他们可以采取使问题变得更糟。然而,有一个新的,只读的,开发人员控制台服务仍可能包含敏感信息,根据您的实现。
- 更多细节在OSGI开发人员控制台可用:https://experienceleague.adobe.com/docs/experience-manager-learn/cloud-service/debugging/debugging-aem-as-a-cloud-service/developer-console.html?lang=en
- 用户生成的内容通常是不通过直接写入JCR处理。
- 这可以降低持久XSS的机会,因为资源不再是直接通过吊索。
- 你仍然需要结合写类型、权限和速度限制在你的服务,写入数据库。
- 您的应用程序代码必须通过Adobe的SonarQube规则集可以部署之前,抓住一些漏洞之前,QA和刺激。
因此,尽管这些变化有助于显著,仍然有很多工作要做,以确保您的AEM实例是安全的。
第三方依赖关系
安全岗位5周后,还有一个关键的安全话题我没有讨论,这是一个最简单的小姐,它也可以说是最可能的恶意行为目标。这是3理查德·道金斯方应用程序和平台依赖性。恶意参与者倾向于关注这些库和框架的几个原因。一个是代码通常是开源的,这是比黑盒应用程序更容易寻找漏洞。另一个是漏洞在多个应用程序而不是一个可采,导致更高的支出。
让我们看看一个著名黑客作为这可能变得多么糟糕的一个例子。2017年May-July Equifax被黑客攻击,导致历史上最大的一个数据泄露。攻击者窃取姓名,地址,社会安全号码、出生日期大约1.43亿人。漏洞?这不是在应用程序代码,但在一个不安全的版本的Apache Struts的依赖。
代码审查、自动化代码扫描,应用最佳实践不足以赶上这种类型的问题。此外,如果Equifax团队与Struts保持最新安全补丁发布几个月前的3月7日th,违反是可以避免或大大限制。
因此我的建议如下:
- 选择第三方依赖安全审查,广泛应用,积极发展社区。
- 有一个预定的进气过程的关键AEM和3理查德·道金斯安全补丁。使它成为一个优先级测试和安装它们。
- 使用一个自动化的应用程序依赖扫描仪窝。这很容易运行这些扫描一次或每周两次和手动检查所有依赖项。
- 写自动化安全测试(单元测试和功能)和常规的测试用例。
到现在,谢谢你加入我这个安全系列。如果你喜欢这种类型的内容和AEM安全希望看到更多,我想听到你的声音。更多信息关于Perficient可以帮助你实现你的AEM安全目标数字体验,并实现你的梦想
接触Perficient开始你的旅程。