对于中国人而言,时至今日春运抢票依旧是春节期间大家最关注的话题之一。央视财经报道,铁路部门表示第三方软件抢票的相关机器特征已经被识别并被实施限制措施。这意味着即使用户花钱在第三方软件购买加速服务,购票的成功率也绝对不会像各个抢票软件显示的一样。
12306为什么要限制第三方抢票软件?他们的技术如何?
限制抢票软件12306早有准备
春节期间全国交通运力与需求的不配以及铁路部门饱受质疑的购票系统让第三方软件成为了不少人购票的首选。这也带来了安全和公平性等问题,因此铁路部门在各方的压力下持续改进购票系统,最近,12306动作不断。
2018年11月3日,12306新版上线,新版网站界面UI更加清晰友好,移动页面属性更强,购票流程更加便捷,还增加了用户扫码登录功能。
2018年12月27日,铁路部门正式宣布12306正式上线候补购票功能,雷锋网了解到12306的候补购票功能指当旅客遇到车票售完的情况,在12306平台登记购票信息支付预购票资金后,如有退票、余票,12306系统将自动为其购票,其购票速度和成功率都要强于抢票软件。
更具体地说,在候补购票实行阶段试点的始发地和到达地支持候补购票的列车,当火车票售罄之后会自动开启候补购票。当然购票人首先需要通过人证验证,并提交候补票购票订单后售票系统自动安排网上排队候补,当对应的车次、席别因退票、改签等业务产生可供发售的车票时,系统自动兑现车票,并将购票结果通知旅客。
12306官方的候补购票功能上线之时就有不少人认为这是第三方抢票软件的大杀器。1月,铁路部门就表示已经对抢票软件进行了限制。
抢票软件的风险
央视财经在报道中提到,中国铁路总局之所以采取相关措施是因为第三方抢票软件存在安全隐患,个人隐私信息得不到保障。
新京此前报道,有乘客下载了一款抢票软件后,输入时间、车次等购票信息,没一会儿软件就提示“抢票成功”,但该乘客按照提示将个人信息包括银行卡和密码都输入进去,准备付钱买票时,突然收到银行发来的提示短信,银行卡里的数千元被刷走,联系抢票软件的客服,才发现是空号。
上面是买票不成反被骗的案例,然而还有很大的信息泄露风险。铁道部在2011年开始试水网络售票服务,并在2011年底兑现了网络售票覆盖所有车次的承诺。不过自网络售票服务开始,用户信息泄露一直都是12306的困扰。
2014年,报道称有超过13万12306的用户数据在互联网上传播售卖。不过,12306网站回应称,经核查,此泄露信息全部含有用户的明文密码,12306网站数据库所有用户密码均为多次加密的非明文转换码,网上泄露的用户信息系经其他网站或渠道流出。
12306还发布公告提醒乘客通过12306官方网站购票,不要使用第三方抢票软件购票,或委托第三方网站购票,以防止个人身份信息外泄。同时还提醒称,部分第三方网站开发的抢票神器中,有捆绑式销售保险功能,请乘客注意。
在利益的驱使下,信息泄露的问题并没有好转的迹象。2018年12 月 28 日,Freebuf 称,“圈内又在传一张疑似12306泄露数据暗交易的图,春运抢票高峰还没到,黑产分子就已经出手了”。据称,这份数据包括 60 万账户信息,详细到除了ID、手机号、密码之外,连姓名、身份证、邮箱、问题及答案然都有,根据安全问题很可能能够直接申诉获取其它平台账户的重要信息。
此外,还包括每个账户中添加的联系人信息,涉及姓名及身份证号,这些联系人数据总量高达410万。中国铁路微博当日辟谣称12306网站未发生用户信息泄露,同时再次提醒用户避免非正常渠道购票带来的风险。
雷锋网在当时的报道中指出,经多方了解,业内人士认为此次的数据泄露可能是第三方抢票软件被攻击或历史数据的清洗。要知道,第三方抢票软件不仅能获取核心的商业信息(如价格、用户信息等),还会扰乱正常用户的活动(如抢购、恶意刷票等),第三方会获得越来越多业务营收,但12306的信誉以及核心数据等方面则会遭受损失。
由此,我们就更能够理解12306为什么要上线候补购票的功能。
12306如何限制抢票软件
那么,铁路部门是如何识别第三方软件抢票的相关机器特征并被实施限制措施?由于12306并没有公布其具体的限制技术,因此雷锋网询问了业内专家,专家表示具体的原理不便讲,但可以判定的是抢票软件是程序(机器人)自动运行,属于爬虫一类。
因此我们可以参考防爬虫的对应方式,以防爬虫的四种思路:特征库直接封禁、JS无感人机识别、行为异常检测和威胁情报库去了解。
第一种需要借助安全人员丰富的经验,他们往往能很快从访问日志中看出有无异常行为,比如正常用户不会直接请求的页面访问却不带任何referer、从主域名跳转过来的请求不带任何cookie、request body中包含一个大量重复的手机号,这些明显或不明显的“特征”,都可以作为第一道爬虫检测策略——特征封禁。
除了访问控制,通过JS采集网页环境中的操作行为、设备硬件信息、指纹等特征来判断请求是否来自于自动化工具也是常见的思路。不过,虽然思路简单,但在没什么秘密的前端对抗环境中,确保采集到的信息和风险判断模型的准确性却是专业的安全团队投入相当大的精力来建设的能力。
但是,特征匹配因具备很强的对抗特征,是最容易绕过的防护规则,这就涉及到行为异常行为检测。说到行为,大部分人第一反应肯定是限速,不过限速有许多需要思考的细节问题。另外, 从UBA(UserBehavior Analysis)角度去建模也是一种不错的思路,机器学习能够综合多个观察角度和维度去识别爬虫,增加了绕过和对抗的成本,这是相对于规则类防护的一个优势。而且,针对一些精心构造的低频、离散IP,机器学习可以很好的弥补规则检测的短板。
威胁情报库用一个例子来说明,机票向来是爬虫重点关注的对象,一个黄牛或旅行社背后的爬虫往往会光顾各大航司以获取最全的票价信息,所以当检测到一个爬虫光顾了ABCDE航司后,他爬X航的概率大吗?当然。 这个不是假设,而是已经在实际的流量中发现的行为。
由此拓展开,基于一定的模型生成在多家航司网站上有过可疑行为的,实时的爬虫库,这就是典型的云上协同防御模型。这样对于新接入的X航来说,甚至可以用情报的思路把防护做到事前。
至于12306到底是采用了哪些技术,还需等待确认。
雷锋网认为,从安全性的角度看,从12306官方渠道确实相对更有保障,但相信许多用户不使用12306网站和APP是因为对其体验非常不满。因此,从需求的角度看第三方抢票软件仍有很强的需求,并且12306的限制与抢票软件的对抗将会一直持续,直到春运的关键问题发生变化。
本文参考阿里云安全公众号君扬作者的《一场无休止的战争 浅谈纵深防爬的”抗战“ 之路》