当前位置: 首页 > 科技观察

隐藏在网站CSS中的窃取脚本

时间:2023-03-19 16:02:55 科技观察

近两年,网络犯罪分子利用各种方法在网上商城的各个地方隐藏信用卡的信息窃取代码,以防止安全检测程序,而这些信息窃取代码也称为WebSkimmer或Magecart脚本。此前,研究人员曾在网站徽标、缩略图图标、内部图像、实时聊天窗口、社交媒体共享按钮和流行的JavaScript库中发现WebSkimmer。但是,最近发现的恶意代码宿主涉及CSS文件。CSS文件代表层叠样式表。在浏览器中使用CSS文件可以加载各种规则来定义网页元素的样式。这些CSS文件通常包含相关代码,描述各种页面元素的颜色、文本大小、各种元素之间的填充、字体设置等。然而,今天的CSS已不是2000年代初期的样子。在过去的十年中,CSS语言已经发展成为一种强大的实用工具,网络开发人员现在正在使用它来创建强大的动画,而很少甚至没有人会选择使用JavaScript。CSS语言最近增加的一项功能是添加了CSS变量,可以用来存储某些需要重复使用或稍后调用的内容。据荷兰安全公司SanguineSecurity(SanSec)的创始人WillemdeGroot称,目前至少有一个网络犯罪团伙正在使用CSS变量进行攻击。Web窃取团伙首先获得在线商店的访问权限,修改其CSS和JavaScript文件,然后向其中注入恶意代码。在CSS代码中,他们会添加一个CSS变量来存储他们在被攻击商店中加载WebSkimmer代码所需的URL地址,这个CSS变量将传递一个看似无害的JavaScript代码(注入到在线商店的其他地方)。下图显示了CSS文件中的CSS变量:下图显示了一段调用CSS变量的JavaScript代码:Web安全工具通常只扫描JavaScript代码,而不扫描CSS文件。此外,它们只扫描静态版本的JavaScript代码,并不实际执行JavaScript脚本。这样做是为了避免在在线商店中创建空购物车或影响在线商店的分析平台。这也意味着隐藏在CSS变量中的恶意代码在大多数平台上都不会被发现,即使这些站点使用强大的Web应用程序防火墙和Web安全扫描器也是如此。WillemdeGroot表示,他们在新发现的WebSkimmer代码中发现了一个标准的键盘记录器。在通过Twitter发布报告后一小时,它似乎已下线。“我们还发现了其他一些在线商店被这种技术感染,但是该基础设施自今年9月以来似乎一直在运行,因为它也被用于十几种传统攻击,”他说。由此我们推断,这些CSS文件似乎是攻击者尝试新技术的一部分。”虽然这种通过使用CSS规则作为代理来加载WebSkimmer代码的技术无疑是一项创新,WillemdeGroot还表示在线商店所有者或者在线购物者真的不需要太担心。他说:“虽然大多数研究都涉及JavaScriptskimming攻击,但大多数skimming发生在服务器上,我们无法观察到服务器上的相关攻击行为。在我们今年进行的取证调查中,我们发现在65%的攻击案例中,服务器端skimmer代码隐藏在数据库、PHP代码或Linux系统进程中。”正如ZDNet在周一的一篇文章中解释的那样另一项SanSec调查的结果,购物者保护自己免受WebSkimmer攻击的最简单方法是使用专为一次性付款设计的虚拟支付卡。这些卡由一些银行或在线支付提供商提供,允许购物者存入固定金额虚拟卡上的钱在一次交易后或短时间后过期。如果卡的详细信息被攻击者窃取,一旦虚拟卡过期,卡数据将不再有效。