在2019 年,安全研究人员发现 Atlassian JIRA 中存在安全配置错误,这是一款全球超过 100,000 家组织和政府机构使用的项目管理软件。JIRA 配置错误允许任何人通过简单的搜索查询访问敏感信息,包括企业员工姓名、电子邮件地址和有关内部机密项目的机密详细信息。安全配置错误已成为十分常见的问题,也导致成千上万的企业组织容易遭受严重的网络攻击和数据泄露。 那么什么是安全配置错误呢?企业应当如何发现、修复和避免安全配置错误?阅读本文,带你一探究竟。
什么是安全配置错误?
当基本安全设置未实施或实施时出现错误时,就会出现安全配置错误。此类错误会造成危险的安全漏洞,使应用程序及其数据(以及企业组织本身)容易受到网络攻击或破坏。这些错误可能发生在应用程序堆栈的任何级别,包括:
- Web 或应用程序服务器
- 数据库
- 网络服务
- 自定义代码
- 开发平台和框架
- 虚拟机
- 云容器
什么会导致安全配置错误?
大多数配置错误的发生是因为系统管理员未能更改设备或应用程序的默认配置(或“开箱即用”的帐户设置)。保留临时配置也可能导致错误配置和漏洞,而及时更改这些设置可以最大限度地减少攻击的可能性。这里我们将列举几个安全配置错误的常见原因。
未修补的漏洞
恶意攻击者利用未打补丁或过时的软件来未经授权访问企业系统的功能或数据。有时,未修复的漏洞可能会导致整个系统遭到攻击和破坏。
未使用的页面和不必要的服务/功能
未使用的页面和不必要的功能或服务还允许攻击者未经授权访问企业应用程序或设备。如果任其发展,这些问题可能会导致严重的问题,例如命令注入和暴力攻击等。
访问控制不足
恶意攻击者可以使用默认密码、未使用的用户帐户或管理员未更新或删除的未使用访问权限来进入网络基础设施。过于宽松的访问规则具有极大的安全隐患,包括恶意软件攻击和数据泄露。
未受保护的文件和目录
不受强大安全控制保护的文件和目录容易受到网络攻击。攻击者可以识别使用易于猜测的名称和位置的平台和应用程序,以获取有价值的系统信息并策划有针对性的攻击。可预测的文件名和位置还可以暴露管理界面,并允许对手获得特权访问、配置详细信息或业务逻辑,甚至添加、删除或修改应用程序功能。
薄弱的代码和易受攻击的 XML 文件
Java web.xml 文件中可能会出现许多安全配置错误。可能未配置自定义错误页面或 SSL,或者代码可能缺少基于 Web 的访问控制。代码错误可能允许攻击者通过非 SSL 访问部分 Web 应用程序并发起会话劫持攻击。使用 URL 参数进行会话跟踪或不设置会话超时也可能导致这些攻击。同样,没有 HttpOnly 标志的 cookie 会增加跨站点脚本 (XSS) 攻击的可能性。
禁用杀毒软件
有时,如果杀毒软件覆盖了特定操作(例如运行安装程序),用户会暂时禁用防病毒软件。如果在完成安装后忘记重新激活防病毒软件,就会使企业容易受到攻击和数据泄露。
硬件管理不足
攻击者使用路由器、交换机和端点等设备,通过利用不安全的端口、过于宽松的网络流量规则以及未充分修补和维护的硬件来访问企业应用程序和数据。
安全配置错误的影响
配置错误会造成安全漏洞,给恶意攻击者可趁之机。这里我们列举出了几类安全配置错误的影响。
敏感数据暴露
配置错误几乎总是会导致对敏感信息的未授权访问。据统计有近 73% 的企业至少有一个严重的安全错误配置,可能会暴露敏感数据、系统或服务。
目录遍历攻击
Web 应用程序中的目录列表允许威胁行为者浏览和自由访问文件结构并发现其安全漏洞。他们可以利用这些漏洞修改应用程序的某些部分,甚至对其进行逆向工程。
对移动应用程序的攻击
根据 OWASP,配置错误对于移动应用程序来说是个严重的问题,因为业务没有部署在企业控制下的专有服务器上。代码被部署在移动设备上,而攻击者可以物理访问、修改或进行逆向工程。
远程攻击
一些严重的错误配置允许攻击者远程访问服务器并禁用网络和信息安全控制,例如防火墙和 VPN。未使用的开放管理端口还会将应用程序暴露给远程攻击。
云配置错误
云配置错误不断增加,给企业带来众多安全挑战。云端多达70%的安全问题是由于配置错误造成的,从而导致未经授权的应用程序访问。同时还可能导致关键任务信息的泄露、业务损失、监管罚款和其他处罚,以及巨大的财务和声誉损害。
企业如何避免安全配置错误
安全配置错误是一个普遍存在的问题,可能发生在任何网络、系统、设备或应用程序中。我们建议企业通过遵循以下最佳实践来规避或将发生的可能性降到最低。
重视警告提示
配置错误通常会产生管理员和开发人员应注意的警告提示和信号。包括多次登录尝试的通知、自行安装软件的设备以及用户的网络搜索被重定向到意想不到的网站。
定期修补所有设备和软件
定期的安全补丁和更新对于查找和修复配置错误至关重要。管理员可以定期修补正确配置的虚拟机,并将其部署到整个环境中。
加强远程访问控制
具有入侵检测系统、权限区域、防火墙和虚拟专用网络 (VPN) 的分层远程安全方法可以限制远程用户造成的漏洞。一般来说,本地数据中心和云环境中的所有文件和目录都必须根据需要具有强大的访问控制。
网络安全培训
缺乏网络安全知识会导致不安全的行为和人为错误,从而增加安全风险。员工需要接受有关高强度密码的必要性、影子 IT 的危险以及处理敏感数据规则的培训。强大的安全文化对于提高对安全威胁、可疑活动和适当的威胁响应的认识也至关重要。
遵循安全编码实践
安全编码实践对于防止错误配置问题至关重要。开发人员必须确保在代码中进行正确的输入/输出数据验证,配置自定义错误页面和 SSL,设置会话超时,绝不绕过身份验证和授权,并避免使用 URL 参数进行会话跟踪。在将自定义静态代码集成到生产环境之前,通过安全扫描器运行自定义静态代码也是一种很好的做法。
其他方式
避免安全配置错误的其他一些方法还有:
- 定期监控 Web 应用程序安全和漏洞
- 定义和监控应用程序和程序的非默认安全设置
- 删除未使用的应用程序、程序和功能
- 更改所有默认帐户、用户名和密码
- 加密静态数据和传输中数据
参考链接: https://logicbomb.medium.com/one-misconfig-jira-to-leak-them-all-including-nasa-and-hundreds-of-fortune-500-companies-a70957ef03c7 https://www.threatstack.com/blog/73-of-companies-have-critical-aws-security-misconfigurations https://www.trendmicro.com/en_us/research/21/a/the-top-worry-in-cloud-security-for-2021.html