基于浏览器的网络威胁已成为当今网络安全面临的较大问题之一。
在所有使用的软件中,浏览器暴露最多。他们不断与外界联系,并经常与网络犯罪分子感染恶意软件的网站和应用程序进行交互。浏览器是功能强大,数据丰富的工具,如果受到威胁,可以为黑客提供大量有关您的信息,包括您的个人地址,电话号码,信用卡数据,电子邮件,ID,密码,浏览历史记录,书签等。
浏览器也是网络犯罪分子在您的设备,个人网络和业务系统上建立立足点的理想工具。浏览器依赖于许多第三方插件(如JavaScript,Flash和ActiveX)来执行各种任务。但是,这些插件通常带有安全漏洞,网络犯罪分子利用这些漏洞来访问您的系统。这些漏洞允许黑客通过安装勒索软件,泄露数据和窃取知识产权等方式造成严重破坏。
在过去一年左右的时间里,我们看到网络威胁急剧增加,专门用于利用基于浏览器的漏洞。这种受欢迎程度的提高不仅因为浏览器在战略上是理想的黑客目标,而且因为很难检测到基于浏览器的Web威胁。大多数恶意软件检测和防护技术通过检查下载或附件等文件来工作。但是,基于浏览器的威胁不一定使用文件,因此传统的安全控制无需分析。除非组织实施不依赖于分析文件的高级工具,否则基于浏览器的威胁可能不会被发现。
鉴于基于浏览器的威胁功能强大且难以发现,因此很容易理解为什么它们变得如此突出。他们只是工作。
基于浏览器的网络威胁如何运作
作为基于浏览器的威胁如何工作的示例,请考虑一个Windows用户访问看似良性但现在是恶意网站的情况,可能是他或她之前访问过的网站,或者是诱人电子邮件的结果。一旦发生连接,用户的浏览器就开始与站点进行交互。假设系统使用的是JavaScript,根据像Web Technology Surveys这样的研究公司,94%的网站都有,而且超过90%的浏览器都启用了它,浏览器会立即从恶意网站下载并开始执行JavaScript文件。
该JavaScript可以包含恶意代码这是能够捕获受害者的数据,改变它,并注入新的或者不同的数据到他们的Web应用程序,所有的背景和对用户不可见。例如,恶意软件作者用于实现此目的的一种方法是在JavaScript中嵌入混淆的文件。Flash经常被使用,因为它看似永无止境的漏洞。以下是典型情况的代表:
- Flash代码调用PowerShell,这是一个功能强大的OS工具,可以执行管理操作并存在于每台Windows机器上。
- Flash通过其命令行界面向PowerShell提供指令。
- PowerShell连接到黑客拥有的隐藏命令和控制服务器。
- 命令和控制服务器将恶意PowerShell脚本下载到受害者的设备,该设备捕获或查找敏感数据并将其发送回黑客。
- 在黑客达到目标后,JavaScript,Flash和PowerShell脚本将从内存中删除,基本上没有任何违规记录。
打击基于浏览器的网络威胁
大多数恶意软件检测系统通过验证链接的信誉或安全性以及评估已知威胁的附件和下载等文件来工作。在此处描述的基于浏览器的威胁中,安全系统可能没有任何要分析的链接或文件,因此传统的反恶意软件技术通常无效。尽管如此,仍有一些方法可以抵御基于浏览器的威胁。即使没有文件,恶意软件检测技术也可以评估JavaScript和Flash数据。这些创新工具从设备的内存中提取JavaScript和Flash内容,并检查静态和动态异常,例如:
(1) 静态 - 结构异常
- 数组或字符串中存在不寻常的shellcode
- 缺少或添加细分
- 嵌入文件
- 可疑的函数参数
- 代码注入的证据,如隐藏的iframe或异常标记
- 代码混淆的迹象,例如编码,或特定的JavaScript函数,如加密或指纹识别
- 利用的迹象 - 结构相似性,签名
(2) 动态 - 行为异常
- 异常进程行为 - 代码可能不会丢弃文件但可能会导致网络连接异常,或者尝试启动异常进程
- 堆喷涂 - 通过利用浏览器漏洞将代码插入预定位置
- 尝试修改系统文件或组件
- 与已知恶意站点或命令和控制中心的连接
- 逃避战术如拖延
虽然通过分析组织员工遇到的每一点JavaScript和Flash内容,当然可以查找上面列出的所有可能的异常,但这是不切实际的。对每个实例进行全面测试至少需要一定程度的行为分析,这可能需要60秒或更长时间。鉴于典型公司的员工每天都会遇到大量的JavaScript和Flash,因此对所有员工进行全面的行为分析是不可行的。幸运的是,我们没有。
过滤方法可以评估基于浏览器的威胁
良好的恶意软件检测引擎可以分阶段评估代码,而不是让每个JavaScript实例都进行完整的静态和动态分析。在初始阶段,引擎仅执行静态分析,不需要执行代码。由于恶意软件检测系统可以实时执行此操作,因此可以在此级别评估所有JavaScript和Flash内容。成功通过此过滤器的代码,大部分将在正常操作期间执行,无需进行其他测试。
在恶意软件检测引擎在初始静态分析阶段遇到异常的情况下,它可以更密切地检查代码。最严格和耗时的测试只需要在以前所有测试都表明存在大量恶意软件风险的罕见情况下进行。例如,静态分析可能会识别可能是恶意的功能,例如数据加密。可以加密数据的代码可能是勒索软件。在这种情况下,系统还将执行动态分析,以确定代码是否确实是恶意行为,或者是否以良性和适当的方式使用加密功能。
静态分析可以有效地检测各种异常,例如异常宏,丢失或添加的结构或段,与网络犯罪分子使用的命令和控制服务器的对应等等。其中一些功能非常表明恶意,系统可以立即将对象评为高风险。如果有任何疑问,系统还会执行动态分析来测试代码执行时实际执行的操作。
如果静态分析没有发现任何可疑之处,系统可以以高准确率将对象评分为低风险并绕过动态分析。
通过使用这种分阶段的方法,系统可以完全测试所有可疑对象,从根本上消除误报。结合仅在必要时执行动态分析所获得的效率,测试所有JavaScrip文件是否存在恶意软件变得可行。
恶意软件不断发展,我们必须这样做
网络犯罪分子一直在努力寻找新的更有效的方式来渗透我们的计算机,设备和网络。基于浏览器的网络威胁最近的演变是一个难以检测和有效的恶意新技术的尖锐例子。
由于传统的反恶意软件产品几乎不可能有效地评估所有JavaScript和类似的基于浏览器的对象,因此企业通常容易受到这些新威胁。为了有效地保护自己,组织还必须不断发展并不断升级其威胁防御工具,以应对恶意软件的变化。一种方法是实现过滤方法,实时评估所有代码,并使用完整的动态分析测试可疑代码。