22行代码的JS脚本导致英国航空公司38万乘客数据泄露
9月6日,英国航空公司( British Airways,以下简称英航)发布声明称因遭黑客攻击从而导致其乘客数据被盗。在BBC的采访中,英航指出,经初步调查,约有38万乘客数据在此交数据泄露事件中受到影响,这些被盗数据信息包括个人基本信息和付款记录,但不包括个人护照信息。
随后,英航在其网站上发表了一篇文章,解释了该事件的相关细节和一些乘客担心的问题,该篇文章涉及的技术细节较少,但包括了以下信息:
通过英航官网进行付款操作的乘客相关信息受到影响
通过英航手机APP应用进行付款操作的乘客相关信息受到影响
受影响的付款乘客时间段大约为2018年8月21日晚22:58至2018年9月5日晚21:45
英航在文中表明,攻击者从其官网和移动应用程序中窃取了以上乘客数据信息,但并未提及更多数据库或服务器被入侵的有价值线索。因为英航的被盗信息仅与乘客的付款记录相关,考虑到信用卡数据窃取的前科,我们对臭名昭著的网络犯罪集团Magecart有了怀疑。
在此之前,英国老牌票务网站Ticketmaster就报告过一起与英航类似的数据泄露事件,之后,我们RiskIQ调查清楚了整个事件。因为我们可以对涉事方官网进行网页抓取和互联网行为分析,因此我们团队可以扩展涉事时间段,发现比一些公开报告更多的被攻击网站。本文中,我们将对9月6日公开的英航数据被盗事件,进行前后15天的时间线扩展调查。
Magecart: 一个臭名昭著的网络犯罪集团
自2016年以来,RiskIQ对进行网络信用卡窃取的组织Magecart进行了多次报道。传统上来说,犯罪份子会使用一种卡片读取器的东西,隐藏附加在我们平时用到的ATM机、加油站和其它刷卡设备中,以此来窃取用户信用卡信息,并进行卡片盗刷或个人信息转卖。而现在,Magecart使用的是各种在线电子窃取方式来实现用户信息盗取。
Magecart会对一些在线用户支付网站注入脚本,或入侵一些支付相关的第三方供应商网站,以此来窃取用户数据。近期,Magecart攻击者就通过入侵了一个第三方功能应用,然后在英国票务网站Ticketmaster上植入了一个在线的信用卡读取脚本,从而导致了Ticketmaster大量数据泄露。证据表明,在Ticketmaster之后,Magecart把攻击目标转向了英国航空公司(British Airways)。
英航数据泄露事件调查
网站用户信息窃取
调查刚开始,利用我们自己的Magecart检测模式,我们把Magecart和英航数据泄露事件进行了适配关联。对我们来说,Magecart的攻击非常常见,以至于在调查刚开始,几乎每小时都能响应到Magecart向英航网站植入的卡片读取代码。
对RiskIQ的分析后端来说,其页面抓取规模是一项值得肯定的能力,我们每天的网页抓取量会达到20亿页,并能自动累积,另外由于很多现代网站倾向于使用JavaScript来实现架站服务,所以,我们只需加载英航公司网站的20个左右脚本和30个左右的预订子页面就可以了。30个页面虽然不多,但其中大多都是缩小的有数千行代码的脚本页面。
在该事件分析中,我们决定集中精力识别英航公司网站上的每个脚本,验证网站上的所有独特脚本,并在该过程中检查脚本的各种变化行为。最终,我们捕获到了其中一个脚本modernizr-2.6.2.min.js的变化行为,根据抓取记录显示,该脚本是Modernizr JavaScript库2.6.2的一个更改版文件,英航公司网站的乘客行李认领页面会加载该脚本。modernizr-2.6.2.min.js的加载流程如下:
该脚本明显的变化在其底部代码,这是攻击者惯用的修改JavaScript文件,实现功能破坏目的的技术。其中一些小的脚本标签引起了我们的注意(红框部分):
之后,我们在英航公司网站服务器发送的“服务器头信息”中发现了更多证据,其中的 ‘Last-Modified’ 表明了文件静态内容的最近一次修改时间。根据我们的抓取记录显示,正常的英航公司网站modernizr-2.6.2.min.js文件的头信息中,‘Last-Modified’日期为2012年12月18日。
但在英航公司当前网站的,经过修改的恶意modernizr-2.6.2.min.js文件中,其头信息中的 ‘Last-Modified’ 时间戳与英航调查后给出的数据泄露时间点一致-2018年8月21日:
以下是恶意的modernizr-2.6.2.min.js脚本文件图示,它只有22行JavaScript代码,但却让38万乘客数据遭到窃取:
实际来说,该脚本非常简单实用,文件中的每个元素加载完成之后,将会进行以下操作:
用以下回调代码把mouseup和touchend事件捆绑到submitButton按钮上:
用id为paymentForm的形式将数据序列化到一个字典中
用id为personPaying的形式把页面条目序列化,并归类为paymentForm信息,并归入之前的同一个字典中
用这些序列化数据制作出一个文本字符串文件
用JSON形式把文件数据发送到攻击者架设的baways.com网站
在实际操作中,mouseup和touchend事件代表了在线用户在网页或手机APP中,点击或提交了某个按钮操作,然后放开鼠标或离开手机屏幕之后的操作。也就是说,一旦用户点击了英航公司网站或APP进行付款按钮提交之后,其付款表单中的信息将会被恶意代码提取,会复制一份发送到攻击者的架设服务器baways.com中。
9月6日,英国航空公司( British Airways,以下简称英航)发布声明称因遭黑客攻击从而导致其乘客数据被盗。在BBC的采访中,英航指出,经初步调查,约有38万乘客数据在此交数据泄露事件中受到影响,这些被盗数据信息包括个人基本信息和付款记录,但不包括个人护照信息。
随后,英航在其网站上发表了一篇文章,解释了该事件的相关细节和一些乘客担心的问题,该篇文章涉及的技术细节较少,但包括了以下信息:
通过英航官网进行付款操作的乘客相关信息受到影响
通过英航手机APP应用进行付款操作的乘客相关信息受到影响
受影响的付款乘客时间段大约为2018年8月21日晚22:58至2018年9月5日晚21:45
英航在文中表明,攻击者从其官网和移动应用程序中窃取了以上乘客数据信息,但并未提及更多数据库或服务器被入侵的有价值线索。因为英航的被盗信息仅与乘客的付款记录相关,考虑到信用卡数据窃取的前科,我们对臭名昭著的网络犯罪集团Magecart有了怀疑。 本文来自无奈人生安全网
在此之前,英国老牌票务网站Ticketmaster就报告过一起与英航类似的数据泄露事件,之后,我们RiskIQ调查清楚了整个事件。因为我们可以对涉事方官网进行网页抓取和互联网行为分析,因此我们团队可以扩展涉事时间段,发现比一些公开报告更多的被攻击网站。本文中,我们将对9月6日公开的英航数据被盗事件,进行前后15天的时间线扩展调查。
Magecart: 一个臭名昭著的网络犯罪集团
自2016年以来,RiskIQ对进行网络信用卡窃取的组织Magecart进行了多次报道。传统上来说,犯罪份子会使用一种卡片读取器的东西,隐藏附加在我们平时用到的ATM机、加油站和其它刷卡设备中,以此来窃取用户信用卡信息,并进行卡片盗刷或个人信息转卖。而现在,Magecart使用的是各种在线电子窃取方式来实现用户信息盗取。
Magecart会对一些在线用户支付网站注入脚本,或入侵一些支付相关的第三方供应商网站,以此来窃取用户数据。近期,Magecart攻击者就通过入侵了一个第三方功能应用,然后在英国票务网站Ticketmaster上植入了一个在线的信用卡读取脚本,从而导致了Ticketmaster大量数据泄露。证据表明,在Ticketmaster之后,Magecart把攻击目标转向了英国航空公司(British Airways)。
英航数据泄露事件调查
本文来自无奈人生安全网
网站用户信息窃取
调查刚开始,利用我们自己的Magecart检测模式,我们把Magecart和英航数据泄露事件进行了适配关联。对我们来说,Magecart的攻击非常常见,以至于在调查刚开始,几乎每小时都能响应到Magecart向英航网站植入的卡片读取代码。
对RiskIQ的分析后端来说,其页面抓取规模是一项值得肯定的能力,我们每天的网页抓取量会达到20亿页,并能自动累积,另外由于很多现代网站倾向于使用JavaScript来实现架站服务,所以,我们只需加载英航公司网站的20个左右脚本和30个左右的预订子页面就可以了。30个页面虽然不多,但其中大多都是缩小的有数千行代码的脚本页面。
在该事件分析中,我们决定集中精力识别英航公司网站上的每个脚本,验证网站上的所有独特脚本,并在该过程中检查脚本的各种变化行为。最终,我们捕获到了其中一个脚本modernizr-2.6.2.min.js的变化行为,根据抓取记录显示,该脚本是Modernizr JavaScript库2.6.2的一个更改版文件,英航公司网站的乘客行李认领页面会加载该脚本。modernizr-2.6.2.min.js的加载流程如下:
该脚本明显的变化在其底部代码,这是攻击者惯用的修改JavaScript文件,实现功能破坏目的的技术。其中一些小的脚本标签引起了我们的注意(红框部分):
之后,我们在英航公司网站服务器发送的“服务器头信息”中发现了更多证据,其中的 ‘Last-Modified’ 表明了文件静态内容的最近一次修改时间。根据我们的抓取记录显示,正常的英航公司网站modernizr-2.6.2.min.js文件的头信息中,‘Last-Modified’日期为2012年12月18日。
但在英航公司当前网站的,经过修改的恶意modernizr-2.6.2.min.js文件中,其头信息中的 ‘Last-Modified’ 时间戳与英航调查后给出的数据泄露时间点一致-2018年8月21日:
无奈人生安全网
以下是恶意的modernizr-2.6.2.min.js脚本文件图示,它只有22行JavaScript代码,但却让38万乘客数据遭到窃取:
实际来说,该脚本非常简单实用,文件中的每个元素加载完成之后,将会进行以下操作:
用以下回调代码把mouseup和touchend事件捆绑到submitButton按钮上:
用id为paymentForm的形式将数据序列化到一个字典中
用id为personPaying的形式把页面条目序列化,并归类为paymentForm信息,并归入之前的同一个字典中
用这些序列化数据制作出一个文本字符串文件
用JSON形式把文件数据发送到攻击者架设的baways.com网站
在实际操作中,mouseup和touchend事件代表了在线用户在网页或手机APP中,点击或提交了某个按钮操作,然后放开鼠标或离开手机屏幕之后的操作。也就是说,一旦用户点击了英航公司网站或APP进行付款按钮提交之后,其付款表单中的信息将会被恶意代码提取,会复制一份发送到攻击者的架设服务器baways.com中。
www.wnhack.com