引言
卡巴斯基实验室的安全服务部门每年都会为全球的企业开展数十个网络安全评估项目。在本文中,我们提供了卡巴斯基实验室2017年开展的企业信息系统网络安全评估的总体概述和统计数据。
本文的主要目的是为现代企业信息系统的漏洞和攻击向量领域的IT安全专家提供信息支持。
我们已经为多个行业的企业开展了数十个项目,包括政府机构、金融机构、电信和IT公司以及制造业和能源业公司。下图显示了这些企业的行业和地区分布情况。
目标企业的行业和地区分布情况
漏洞的概括和统计信息是根据我们提供的每种服务分别总结的:
外部渗透测试是指针对只能访问公开信息的外部互联网入侵者的企业网络安全状况评估
内部渗透测试是指针对位于企业网络内部的具有物理访问权限但没有特权的攻击者进行的企业网络安全状况评估。
Web应用安全评估是指针对Web应用的设计、开发或运营过程中出现的错误导致的漏洞(安全漏洞)的评估。
本出版物包含卡巴斯基实验室专家检测到的最常见漏洞和安全缺陷的统计数据,未经授权的攻击者可能利用这些漏洞渗透公司的基础设施。
针对外部入侵者的安全评估
我们将企业的安全等级划分为以下评级:
非常低
低
中等偏下
中
中等偏上
高
我们通过卡巴斯基实验室的自有方法进行总体的安全等级评估,该方法考虑了测试期间获得的访问级别、信息资源的优先级、获取访问权限的难度以及花费的时间等因素。
安全级别为非常低对应于我们能够穿透内网的边界并访问内网关键资源的情况(例如,获得内网的最高权限,获得关键业务系统的完全控制权限以及获得关键的信息)。此外,获得这种访问权限不需要特殊的技能或大量的时间。
安全级别为高对应于在客户的网络边界只能发现无关紧要的漏洞(不会对公司带来风险)的情况。
目标企业的经济成分分布
目标企业的安全等级分布
根据测试期间获得的访问级别来划分目标企业
用于穿透网络边界的攻击向量
大多数攻击向量成功的原因在于不充分的内网过滤、管理接口可公开访问、弱密码以及Web应用中的漏洞等。
尽管86%的目标企业使用了过时、易受攻击的软件,但只有10%的攻击向量利用了软件中的未经修复的漏洞来穿透内网边界(28%的目标企业)。这是因为对这些漏洞的利用可能导致拒绝服务。由于渗透测试的特殊性(保护客户的资源可运行是一个优先事项),这对于模拟攻击造成了一些限制。然而,现实中的犯罪分子在发起攻击时可能就不会考虑这么多了。
建议:
除了进行更新管理外,还要更加注重配置网络过滤规则、实施密码保护措施以及修复Web应用中的漏洞。
利用Web应用中的漏洞发起的攻击
我们的2017年渗透测试结果明确表明,对Web应用安全性的关注仍然不够。Web应用漏洞在73%的攻击向量中被用于获取网络外围主机的访问权限。
在渗透测试期间,任意文件上传漏洞是用于穿透网络边界的最广泛的Web应用漏洞。该漏洞可被用于上传命令行解释器并获得对操作系统的访问权限。SQL注入、任意文件读取、XML外部实体漏洞主要用于获取用户的敏感信息,例如密码及其哈希。账户密码被用于通过可公开访问的管理接口来发起的攻击。
建议:
应定期对所有的公开Web应用进行安全评估;应实施漏洞管理流程;在更改应用程序代码或Web服务器配置后,必须检查应用程序;必须及时更新第三方组件和库。
用于穿透网络边界的Web应用漏洞
利用Web应用漏洞和可公开访问的管理接口获取内网访问权限的示例
第一步
利用SQL注入漏洞绕过Web应用的身份验证
第二步
利用敏感信息泄露漏洞获取Web应用中的用户密码哈希
第三步
离线密码猜测攻击。可能利用的漏洞:弱密码
第四步
利用获取的凭据,通过XML外部实体漏洞(针对授权用户)读取文件
第五步
针对获取到的用户名发起在线密码猜测攻击。可能利用的漏洞:弱密码,可公开访问的远程管理接口
第六步
在系统中添加su命令的别名,以记录输入的密码。该命令要求用户输入特权账户的密码。这样,管理员在输入密码时就会被截获。
第七步
获取企业内网的访问权限。可能利用的漏洞:不安全的网络拓扑
利用管理接口发起的攻击
虽然“对管理接口的网络访问不受限制”不是一个漏洞,而是一个配置上的失误,但在2017年的渗透测试中它被一半的攻击向量所利用。57%的目标企业可以通过管理接口获取对信息资源的访问权限。
通过管理接口获取访问权限通常利用了以下方式获得的密码:
利用目标主机的其它漏洞(27.5%)。例如,攻击者可利用Web应用中的任意文件读取漏洞从Web应用的配置文件中获取明文密码。
使用Web应用、CMS系统、网络设备等的默认凭据(27.5%)。攻击者可以在相应的文档中找到所需的默认账户凭据。
发起在线密码猜测攻击(18%)。当没有针对此类攻击的防护措施/工具时,攻击者通过猜测来获得密码的机会将大大增加。
从其它受感染的主机获取的凭据(18%)。在多个系统上使用相同的密码扩大了潜在的攻击面。
在利用管理接口获取访问权限时利用过时软件中的已知漏洞是最不常见的情况。
利用管理接口获取访问权限
通过何种方式获取管理接口的访问权限
管理接口类型
建议:
定期检查所有系统,包括Web应用、内容管理系统(CMS)和网络设备,以查看是否使用了任何默认凭据。为管理员帐户设置强密码。在不同的系统中使用不同的帐户。将软件升级至最新版本。
大多数情况下,企业往往忘记禁用Web远程管理接口和SSH服务的网络访问。大多数Web管理接口是Web应用或CMS的管理控制面板。访问这些管理控制面板通常不仅可以获得对Web应用的完整控制权,还可以获得操作系统的访问权。获得对Web应用管理控制面板的访问权限后,可以通过任意文件上传功能或编辑Web应用的页面来获取执行操作系统命令的权限。在某些情况下,命令行解释程序是Web应用管理控制面板中的内置功能。
建议:
严格限制对所有管理接口(包括Web接口)的网络访问。只允许从有限数量的IP地址进行访问。在远程访问时使用VPN。
利用管理接口发起攻击的示例
第一步 | 检测到一个只读权限的默认社区字符串的SNMP服务 |
---|---|
第二步 | 通过SNMP协议检测到一个过时的、易受攻击的思科IOS版本。漏洞:cisco-sa-20170629-snmp(https://tools.cisco. com/security/center/content/CiscoSecurityAdvisory/cisco-sa-20170629-snmp)。 该漏洞允许攻击者通过只读的SNMP社区字符串进行提权,获取设备的完全访问权限。利用思科发布的公开漏洞信息,卡巴斯基专家Artem Kondratenko开发了一个用来演示攻击的漏洞利用程序(https://github.com/artkond/cisco-snmp-rce)。 |
第三步 | 利用ADSL-LINE-MIB中的一个漏洞以及路由器的完全访问权限,我们可以获得客户的内网资源的访问权限。完整的技术细节请参考https://kas.pr/3whh |
最常见漏洞和安全缺陷的统计信息
最常见的漏洞和安全缺陷
针对内部入侵者的安全评估
我们将企业的安全等级划分为以下评级:
非常低
低
中等偏下
中
中等偏上
高
我们通过卡巴斯基实验室的自有方法进行总体的安全等级评估,该方法考虑了测试期间获得的访问级别、信息资源的优先级、获取访问权限的难度以及花费的时间等因素。安全级别为非常低对应于我们能够获得客户内网的完全控制权的情况(例如,获得内网的最高权限,获得关键业务系统的完全控制权限以及获取关键的信息)。此外,获得这种访问权限不需要特殊的技能或大量的时间。
安全级别为高对应于在渗透测试中只能发现无关紧要的漏洞(不会对公司带来风险)的情况。
在存在域基础设施的所有项目中,有86%可以获得活动目录域的最高权限(例如域管理员或企业管理员权限)。在64%的企业中,可以获得最高权限的攻击向量超过了一个。在每一个项目中,平均有2-3个可以获得最高权限的攻击向量。这里只统计了在内部渗透测试期间实践过的那些攻击向量。对于大多数项目,我们还通过bloodhound等专有工具发现了大量其它的潜在攻击向量。
这些我们实践过的攻击向量在复杂性和实践步骤数(从2步到6步)方面各不相同。平均而言,在每个企业中获取域管理员权限需要3个步骤。
获取域管理员权限的最简单攻击向量的示例:
攻击者通过NBNS欺骗攻击和NTLM中继攻击拦截管理员的NetNTLM哈希,并利用该哈希在域控制器上进行身份验证;
利用HP Data Protector中的漏洞CVE-2011-0923,然后从lsass.exe进程的内存中提取域管理员的密码
获取域管理员权限的最小步骤数
下图描述了利用以下漏洞获取域管理员权限的更复杂攻击向量的一个示例:
使用包含已知漏洞的过时版本的网络设备固件
使用弱密码
在多个系统和用户中重复使用密码
使用NBNS协议
SPN账户的权限过多
获取域管理员权限的示例
第一步
利用D-Link网络存储的Web服务中的漏洞。该漏洞允许以超级用户的权限执行任意代码。创建SSH隧道以访问管理网络(直接访问受到防火墙规则的限制)。
漏洞:过时的软件(D-link)
第二步
检测到思科交换机和一个可用的SNMP服务以及默认的社区字符串“Public”。思科IOS的版本是通过SNMP协议识别的。
漏洞:默认的SNMP社区字符串
第三步
利用思科IOS的版本信息来发现漏洞。利用漏洞CVE-2017-3881获取具有最高权限的命令解释器的访问权。
漏洞:过时的软件(思科)
第四步
提取本地用户的哈希密码
第五步
离线密码猜测攻击。
漏洞:特权用户弱密码
第六步
NBNS欺骗攻击。拦截NetNTLMv2哈希。
漏洞:使用NBNS协议
第七步
对NetNTLMv2哈希进行离线密码猜测攻击。
漏洞:弱密码
第八步
使用域帐户执行Kerberoasting攻击。获得SPN帐户的TGS票证
第九步
从思科交换机获取的本地用户帐户的密码与SPN帐户的密码相同。
漏洞:密码重用,账户权限过多
关于漏洞CVE-2017-3881(思科IOS中的远程代码执行漏洞)
在CIA文件Vault 7:CIA中发现了对此漏洞的引用,该文档于2017年3月在维基解密上发布。该漏洞的代号为ROCEM,文档中几乎没有对其技术细节的描述。之后,该漏洞被分配编号CVE-2017-3881和cisco-sa-20170317-cmp。
该漏洞允许未经授权的攻击者通过Telnet协议以最高权限在思科IOS中执行任意代码。在CIA文档中只描述了与开发漏洞利用程序所需的测试过程相关的一些细节; 但没有提供实际漏洞利用的源代码。尽管如此,卡巴斯基实验室的专家Artem Kondratenko利用现有的信息进行实验研究重现了这一高危漏洞的利用代码。
关于此漏洞利用的开发过程的更多信息,请访问 https://kas.pr/fk8g, https://kas.pr/amv7。
最常用的攻击技术
通过分析用于在活动目录域中获取最高权限的攻击技术,我们发现:
用于在活动目录域中获取最高权限的不同攻击技术在目标企业中的占比
NBNS/LLMNR欺骗攻击
我们发现87%的目标企业使用了NBNS和LLMNR协议。67%的目标企业可通过NBNS/LLMNR欺骗攻击获取活动目录域的最大权限。该攻击可拦截用户的数据,包括用户的NetNTLMv2哈希,并利用此哈希发起密码猜测攻击。
安全建议:
建议禁用NBNS和LLMNR协议
检测建议:
一种可能的解决方案是通过蜜罐以不存在的计算机名称来广播NBNS/LLMNR请求,如果收到了响应,则证明网络中存在攻击者。示例:https://blog.netspi.com/identifying-rogue-nbns-spoofers/,https://github.com/Kevin-Robertson/Conveigh 。
如果可以访问整个网络流量的备份,则应该监测那些发出多个LLMNR/NBNS响应(针对不同的计算机名称发出响应)的单个IP地址。
NTLM中继攻击
在NBNS/LLMNR 欺骗攻击成功的情况下,一半的被截获的NetNTLMv2哈希被用于进行NTLM中继攻击。如果在NBNS/LLMNR 欺骗攻击期间拦截了域管理员帐户的NetNTLMv2哈希,则可通过NTLM中继攻击快速获得活动目录的最高权限。
42%的目标企业可利用NTLM中继攻击(结合NBNS/LLMNR欺骗攻击)获取活动目录域的最高权限。47%的目标企业无法抵御此类攻击。
安全建议:
防护该攻击的最有效方法是阻止通过NTLM协议的身份验证。但该方法的缺点是难以实现。
身份验证扩展协议(EPA)可用于防止NTLM中继攻击。
另一种保护机制是在组策略设置中启用SMB协议签名。请注意,此方法仅可防止针对SMB协议的NTLM中继攻击。
检测建议:
此类攻击的典型踪迹是网络登录事件(事件ID4624,登录类型为3),其中“源网络地址”字段中的IP地址与源主机名称“工作站名称”不匹配。这种情况下,需要一个主机名与IP地址的映射表(可以使用DNS集成)。
或者,可以通过监测来自非典型IP地址的网络登录来识别这种攻击。对于每一个网络主机,应收集最常执行系统登录的IP地址的统计信息。来自非典型IP地址的网络登录可能意味着攻击行为。这种方法的缺点是会产生大量误报。
利用过时软件中的已知漏洞
过时软件中的已知漏洞占我们实施的攻击向量的三分之一。
大多数被利用的漏洞都是2017年发现的:
思科IOS中的远程代码执行漏洞(CVE-2017-3881)
VMware vCenter中的远程代码执行漏洞(CVE-2017-5638)
Samba中的远程代码执行漏洞(CVE-2017-7494 - Samba Cry)
Windows SMB中的远程代码执行漏洞(MS17-010)
大多数漏洞的利用代码已公开(例如MS17-010、Samba Cry、VMwarevCenter CVE-2017-5638),使得利用这些漏洞变得更加容易
常见的内部网络攻击是利用Java RMI网络服务中的远程代码执行漏洞和Apache Common Collections(ACC)库(这些库被应用于多种产品,例如思科局域网管理解决方案)中的Java反序列化漏洞实施的。反序列化攻击对许多大型企业的软件都有效,可以在企业基础设施的关键服务器上快速获取最高权限。
Windows中的最新漏洞已被用于远程代码执行(MS17-010 永恒之蓝)和系统中的本地权限提升(MS16-075 烂土豆)。在相关漏洞信息被公开后,全部企业的60%以及接受渗透测试的企业的75%都存在MS17-010漏洞。应当指出的是,该漏洞不仅在2017年第一季度末和第二季度在这些企业中被发现(此时检测到该漏洞并不令人惊讶,因为漏洞补丁刚刚发布),而且在2017年第四季度在这些企业中被检测到。这意味着更新/漏洞管理措施并没有起到作用,并且存在被WannaCry等恶意软件感染的风险。
安全建议:
监控软件中被公开披露的新漏洞。及时更新软件。使用包含IDS/IPS模块的终端保护解决方案。
检测建议:
以下事件可能意味着软件漏洞利用的攻击尝试,需要进行重点监测:
触发终端保护解决方案中的IDS/IPS模块;
服务器应用进程大量生成非典型进程(例如Apache服务器启动bash进程或MS SQL启动PowerShell进程)。为了监测这种事件,应该从终端节点收集进程启动事件,这些事件应当包含被启动进程及其父进程的信息。这些事件可从以下软件收集得到:收费软件EDR解决方案、免费软件Sysmon或Windows10/Windows 2016中的标准日志审计功能。从Windows 10/Windows 2016开始,4688事件(创建新进程)包含了父进程的相关信息。
客户端和服务器软件的不正常关闭是典型的漏洞利用指标。请注意这种方法的缺点是会产生大量误报。
在线密码猜测攻击
在线密码猜测攻击最常被用于获得Windows用户帐户和Web应用管理员帐户的访问权限。
密码策略允许用户选择可预测且易于猜测的密码。此类密码包括:p@SSword1,<公司名称> 123等。
使用默认密码和密码重用有助于成功地对管理接口进行密码猜测攻击。
安全建议:
为所有用户帐户实施严格的密码策略(包括用户帐户、服务帐户、Web应用和网络设备的管理员帐户等)。
提高用户的密码保护意识:选择复杂的密码,为不同的系统和帐户使用不同的密码。
对包括Web应用、CMS和网络设备在内的所有系统进行审计,以检查是否使用了任何默认帐户。
检测建议:
要检测针对Windows帐户的密码猜测攻击,应注意:
终端主机上的大量4625事件(暴力破解本地和域帐户时会发生此类事件)
域控制器上的大量4771事件(通过Kerberos攻击暴力破解域帐户时会发生此类事件)
域控制器上的大量4776事件(通过NTLM攻击暴力破解域帐户时会发生此类事件)
离线密码猜测攻击
离线密码猜测攻击常被用于:
破解从SAM文件中提取的NTLM哈希
破解通过NBNS/LLMNR欺骗攻击拦截的NetNTLMv2哈希
Kerberoasting攻击(见下文)
破解从其它系统上获取的哈希
Kerberoasting攻击
Kerberoasting攻击是针对SPN(服务主体名称)帐户密码的离线暴力破解攻击,其Kerberos TGS服务票证是加密的。要发起此类攻击,只需要有域用户的权限。如果SPN帐户具有域管理员权限并且其密码被成功破解,则攻击者获得了活动目录域的最高权限。在20%的目标企业中,SPN帐户存在弱密码。在13%的企业中(或在17%的获得域管理员权限的企业中),可通过Kerberoasting攻击获得域管理员的权限。
安全建议:
为SPN帐户设置复杂密码(不少于20个字符)。
遵循服务帐户的最小权限原则。
检测建议:
监测通过RC4加密的TGS服务票证的请求(Windows安全日志的记录是事件4769,类型为0x17)。短期内大量的针对不同SPN的TGS票证请求是攻击正在发生的指标。
卡巴斯基实验室的专家还利用了Windows网络的许多特性来进行横向移动和发起进一步的攻击。这些特性本身不是漏洞,但却创造了很多机会。最常使用的特性包括:从lsass.exe进程的内存中提取用户的哈希密码、实施hash传递攻击以及从SAM数据库中提取哈希值。
使用此技术的攻击向量的占比
从lsass.exe进程的内存中提取凭据
由于Windows系统中单点登录(SSO)的实现较弱,因此可以获得用户的密码:某些子系统使用可逆编码将密码存储在操作系统内存中。因此,操作系统的特权用户能够访问所有登录用户的凭据。
安全建议:
在所有系统中遵循最小权限原则。此外,建议尽可能避免在域环境中重复使用本地管理员帐户。针对特权账户遵循微软层级模型以降低入侵风险。
使用Credential Guard机制(该安全机制存在于Windows 10/Windows Server 2016中)
使用身份验证策略(Authentication Policies)和Authentication Policy Silos
禁用网络登录(本地管理员帐户或者本地管理员组的账户和成员)。(本地管理员组存在于Windows 8.1/ Windows Server2012R2以及安装了KB2871997更新的Windows 7/Windows 8/Windows Server2008R2中)
使用“受限管理模式RDP”而不是普通的RDP。应该注意的是,该措施可以减少明文密码泄露的风险,但增加了通过散列值建立未授权RDP连接(Hash传递攻击)的风险。只有在采取了综合防护措施以及能够阻止Hash传递攻击时,才推荐采用此方法。
将特权账户置于受保护的用户组,该组中的成员只能通过Kerberos协议登录。(Microsoft网站上提供了该组的所有保护机制的列表)
启用LSA保护,以阻止通过未受保护的进程来读取内存和进行代码注入。这为LSA存储和管理的凭据提供了额外的安全防护。
禁用内存中的WDigest存储或者完全禁用WDigest身份验证机制(适用于Windows8.1 / Windows Server 2012 R2或安装了KB2871997更新的Windows7/Windows Server 2008系统)。
在域策略配置中禁用SeDebugPrivilege权限
禁用自动重新登录(ARSO)功能
使用特权帐户进行远程访问(包括通过RDP)时,请确保每次终止会话时都注销。
在GPO中配置RDP会话终止:计算机配置\策略\管理模板\ Windows组件\远程桌面服务\远程桌面会话主机\会话时间限制。
启用SACL以对尝试访问lsass.exe的进程进行登记管理
使用防病毒软件。
此措施列表不能保证完全的安全。但是,它可被用于检测网络攻击以及降低攻击成功的风险(包括自动执行的恶意软件攻击,如NotPetya/ExPetr)。
检测建议:
检测从lsass.exe进程的内存中提取密码攻击的方法根据攻击者使用的技术而有很大差异,这些内容不在本出版物的讨论范围之内。更多信息请访问https://kas.pr/16a7。
我们还建议您特别注意使用PowerShell(Invoke-Mimikatz)凭据提取攻击的检测方法。
Hash传递攻击
在此类攻击中,从SAM存储或lsass.exe进程内存中获取的NTLM哈希被用于在远程资源上进行身份验证(而不是使用帐户密码)。
这种攻击成功地在25%的攻击向量中应用,影响了28%的目标企业。
安全建议:
防止此类攻击的最有效方法是禁止在网络中使用NTLM协议。
使用LAPS(本地管理员密码解决方案)来管理本地管理员密码。
禁用网络登录(本地管理员帐户或者本地管理员组的账户和成员)。(本地管理员组存在于Windows 8.1/ Windows Server2012R2以及安装了KB2871997更新的Windows 7/Windows 8/Windows Server2008R2中)
在所有系统中遵循最小权限原则。针对特权账户遵循微软层级模型以降低入侵风险。
检测建议:
在对特权账户的使用具有严格限制的分段网络中,可以最有效地检测此类攻击。
建议制作可能遭到攻击的账户的列表。该列表不仅应包括高权限帐户,还应包括可用于访问组织关键资源的所有帐户。
在开发哈希传递攻击的检测策略时,请注意与以下相关的非典型网络登录事件:
源IP地址和目标资源的IP地址
登录时间(工作时间、假期)
此外,还要注意与以下相关的非典型事件:
帐户(创建帐户、更改帐户设置或尝试使用禁用的身份验证方法);
同时使用多个帐户(尝试从同一台计算机登录到不同的帐户,使用不同的帐户进行VPN连接以及访问资源)。
哈希传递攻击中使用的许多工具都会随机生成工作站名称。这可以通过工作站名称是随机字符组合的4624事件来检测。
从SAM中提取本地用户凭据
从Windows SAM存储中提取的本地帐户NTLM哈希值可用于离线密码猜测攻击或哈希传递攻击。
检测建议:
检测从SAM提取登录凭据的攻击取决于攻击者使用的方法:直接访问逻辑卷、Shadow Copy、reg.exe,远程注册表等。
有关检测凭据提取攻击的详细信息,请访问 https://kas.pr/16a7。
最常见漏洞和安全缺陷的统计信息
最常见的漏洞和安全缺陷
在所有的目标企业中,都发现网络流量过滤措施不足的问题。管理接口(SSH、Telnet、SNMP以及Web应用的管理接口)和DBMS访问接口都可以通过用户段进行访问。在不同帐户中使用弱密码和密码重用使得密码猜测攻击变得更加容易。
当一个应用程序账户在操作系统中具有过多的权限时,利用该应用程序中的漏洞可能在主机上获得最高权限,这使得后续攻击变得更加容易。
Web应用安全评估
以下统计数据包括全球范围内的企业安全评估结果。所有Web应用中有52%与电子商务有关。
根据2017年的分析,政府机构的Web应用是最脆弱的,在所有的Web应用中都发现了高风险的漏洞。在商业Web应用中,高风险漏洞的比例最低,为26%。“其它”类别仅包含一个Web应用,因此在计算经济成分分布的统计数据时没有考虑此类别。
Web应用的经济成分分布
Web应用的风险级别分布
对于每一个Web应用,其整体风险级别是基于检测到的漏洞的最大风险级别而设定的。电子商务行业中的Web应用最为安全:只有28%的Web应用被发现存在高风险的漏洞,而36%的Web应用最多存在中等风险的漏洞。
高风险Web应用的比例
如果我们查看每个Web应用的平均漏洞数量,那么经济成分的排名保持不变:政府机构的Web应用中的平均漏洞数量最高;金融行业其次,最后是电子商务行业。
每个Web应用的平均漏洞数
2017年,被发现次数最多的高风险漏洞是:
敏感数据暴露漏洞(根据OWASP分类标准),包括Web应用的源码暴露、配置文件暴露以及日志文件暴露等。
未经验证的重定向和转发(根据OWASP分类标准)。此类漏洞的风险级别通常为中等,并常被用于进行网络钓鱼攻击或分发恶意软件。2017年,卡巴斯基实验室专家遇到了该漏洞类型的一个更加危险的版本。这个漏洞存在于Java应用中,允许攻击者实施路径遍历攻击并读取服务器上的各种文件。尤其是,攻击者可以以明文形式访问有关用户及其密码的详细信息。
使用字典中的凭据(该漏洞在OWASP分类标准的身份验证破坏类别下)。该漏洞常在在线密码猜测攻击、离线密码猜测攻击(已知哈希值)以及对Web应用的源码进行分析的过程中发现。
在所有经济成分的Web应用中,都发现了敏感数据暴露漏洞(内部IP地址和数据库访问端口、密码、系统备份等)和使用字典中的凭据漏洞。
敏感数据暴露
未经验证的重定向和转发
使用字典中的凭据
漏洞分析
2017年,我们发现的高风险、中等风险和低风险漏洞的数量大致相同。但是,如果查看Web应用的整体风险级别,我们会发现超过一半(56%)的Web应用包含高风险漏洞。对于每一个Web应用,其整体风险级别是基于检测到的漏洞的最大风险级别而设定的。
超过一半的漏洞都是由Web应用源代码中的错误引起的。其中最常见的漏洞是跨站脚本漏洞(XSS)。44%的漏洞是由配置错误引起的。配置错误导致的最多的漏洞是敏感数据暴露漏洞。
对漏洞的分析表明,大多数漏洞都与Web应用的服务器端有关。其中,最常见的漏洞是敏感数据暴露、SQL注入和功能级访问控制缺失。28%的漏洞与客户端有关,其中一半以上是跨站脚本漏洞(XSS)。
漏洞风险级别的分布
Web应用风险级别的分布
不同类型漏洞的比例
服务器端和客户端漏洞的比例
漏洞总数统计
本节提供了漏洞的总体统计信息。应该注意的是,在某些Web应用中发现了相同类型的多个漏洞。
10种最常见的漏洞类型
20%的漏洞是跨站脚本类型的漏洞。攻击者可以利用此漏洞获取用户的身份验证数据(cookie)、实施钓鱼攻击或分发恶意软件。
敏感数据暴露 -一种高风险漏洞,是第二大常见漏洞。它允许攻击者通过调试脚本、日志文件等访问Web应用的敏感数据或用户信息。
SQL注入 - 第三大常见的漏洞类型。它涉及到将用户的输入数据注入SQL语句。如果数据验证不充分,攻击者可能会更改发送到SQL Server的请求的逻辑,从而从Web服务器获取任意数据(以Web应用的权限)。
很多Web应用中存在功能级访问控制缺失漏洞。它意味着用户可以访问其角色不被允许访问的应用程序脚本和文件。例如,一个Web应用中如果未授权的用户可以访问其监控页面,则可能会导致会话劫持、敏感信息暴露或服务故障等问题。
其它类型的漏洞都差不多,几乎每一种都占4%:
用户使用字典中的凭据。通过密码猜测攻击,攻击者可以访问易受攻击的系统。
未经验证的重定向和转发(未经验证的转发)允许远程攻击者将用户重定向到任意网站并发起网络钓鱼攻击或分发恶意软件。在某些案例中,此漏洞还可用于访问敏感信息。
远程代码执行允许攻击者在目标系统或目标进程中执行任何命令。这通常涉及到获得对Web应用源代码、配置、数据库的完全访问权限以及进一步攻击网络的机会。
如果没有针对密码猜测攻击的可靠保护措施,并且用户使用了字典中的用户名和密码,则攻击者可以获得目标用户的权限来访问系统。
许多Web应用使用HTTP协议传输数据。在成功实施中间人攻击后,攻击者将可以访问敏感数据。尤其是,如果拦截到管理员的凭据,则攻击者将可以完全控制相关主机。
文件系统中的完整路径泄露漏洞(Web目录或系统的其他对象)使其他类型的攻击更加容易,例如,任意文件上传、本地文件包含以及任意文件读取。
Web应用统计
本节提供有关Web应用中漏洞出现频率的信息(下图表示了每种特定类型漏洞的Web应用的比例)。
最常见漏洞的Web应用比例
改进Web应用安全性的建议
建议采取以下措施来降低与上述漏洞相关的风险:
检查来自用户的所有数据。
限制对管理接口、敏感数据和目录的访问。
遵循最小权限原则,确保用户拥有所需的最低权限集。
必须对密码最小长度、复杂性和密码更改频率强制进行要求。应该消除使用凭据字典组合的可能性。
应及时安装软件及其组件的更新。
使用入侵检测工具。考虑使用WAF。确保所有预防性保护工具都已安装并正常运行。
实施安全软件开发生命周期(SSDL)。
定期检查以评估IT基础设施的网络安全性,包括Web应用的网络安全性。
结论
43%的目标企业对外部攻击者的整体防护水平被评估为低或非常低:即使外部攻击者没有精湛的技能或只能访问公开可用的资源,他们也能够获得对这些企业的重要信息系统的访问权限。
利用Web应用中的漏洞(例如任意文件上传(28%)和SQL注入(17%)等)渗透网络边界并获取内网访问权限是最常见的攻击向量(73%)。用于穿透网络边界的另一个常见的攻击向量是针对可公开访问的管理接口的攻击(弱密码、默认凭据以及漏洞利用)。通过限制对管理接口(包括SSH、RDP、SNMP以及web管理接口等)的访问,可以阻止约一半的攻击向量。
93%的目标企业对内部攻击者的防护水平被评估为低或非常低。此外,在64%的企业中发现了至少一个可以获得IT基础设施最高权限(如活动目录域中的企业管理权限以及网络设备和重要业务系统的完全控制权限)的攻击向量。平均而言,在每个项目中发现了2到3个可以获取最高权限的攻击向量。在每个企业中,平均只需要三个步骤即可获取域管理员的权限。
实施内网攻击常用的两种攻击技术包括NBNS欺骗和NTLM中继攻击以及利用2017年发现的漏洞的攻击,例如MS17-010 (Windows SMB)、CVE-2017-7494 (Samba)和CVE-2017-5638 (VMwarevCenter)。在永恒之蓝漏洞公布后,该漏洞(MS17-010)可在75%的目标企业的内网主机中检测到(MS17-010被广泛用于有针对性的攻击以及自动传播的恶意软件,如WannaCry和NotPetya/ExPetr等)。在86%的目标企业的网络边界以及80%的企业的内网中检测到过时的软件。
值得注意的是JavaRMI服务中的远程代码执行及许多开箱即用产品使用的Apache Commons Collections和其它Java库中的反序列化漏洞。2017年OWASP项目将不安全的反序列化漏洞包含进其10大web漏洞列表(OWASP TOP 10),并排在第八位(A8-不安全的反序列化)。这个问题非常普遍,相关漏洞数量之多以至于Oracle正在考虑在Java的新版本中放弃支持内置数据序列化/反序列化的可能性1。
获取对网络设备的访问权限有助于内网攻击的成功。网络设备中的以下漏洞常被利用:
cisco-sa-20170317-cmp或CVE-2017-3881(CiscoIOS)。该漏洞允许未经授权的攻击者通过Telnet协议以最大权限访问交换机。
cisco-sa-20170629-snmp(Cisco IOS)。该漏洞允许攻击者在知道SNMP社区字符串值(通常是字典中的值)和只读权限的情况下通过SNMP协议以最大权限访问设备。
思科智能安装功能。该功能在Cisco交换机中默认启用,不需要身份验证。因此,未经授权的攻击者可以获取和替换交换机的配置文件2。
2017年我们的Web应用安全评估表明,政府机构的Web应用最容易受到攻击(所有Web应用都包含高风险的漏洞),而电子商务企业的Web应用最不容易受到攻击(28%的Web应用包含高风险漏洞)。Web应用中最常出现以下类型的漏洞:敏感数据暴露(24%)、跨站脚本(24%)、未经验证的重定向和转发(14%)、对密码猜测攻击的保护不足(14%)和使用字典中的凭据(13%)。
为了提高安全性,建议企业特别注重Web应用的安全性,及时更新易受攻击的软件,实施密码保护措施和防火墙规则。建议对IT基础架构(包括Web应用)定期进行安全评估。完全防止信息资源泄露的任务在大型网络中变得极其困难,甚至在面临0day攻击时变得不可能。因此,确保尽早检测到信息安全事件非常重要。在攻击的早期阶段及时发现攻击活动和快速响应有助于防止或减轻攻击所造成的损害。对于已建立安全评估、漏洞管理和信息安全事件检测良好流程的成熟企业,可能需要考虑进行Red Teaming(红队测试)类型的测试。此类测试有助于检查基础设施在面临隐匿的技艺精湛的攻击者时受到保护的情况,以及帮助训练信息安全团队识别攻击并在现实条件下进行响应。
参考来源
https://www.bleepingcomputer.com/news/security/oracle-plans-to-drop-java-serialization-support- the-source-of-most-security-bugs/
*本文作者:vitaminsecurity,转载请注明来自 FreeBuf.COM