是谁抢了我的机票?

发布于 2020-08-23  10092 次阅读


近期,在GitHub上发现了针对某个航空平台的恶意代码,涉及到了注册、登录、下单等多个场景,从这些代码里,仿佛嗅到了阴谋的味道。

是的没错,在全球最大同性交友平台,总能找到奇奇怪怪的代码

代码分析

代码并不复杂,全部为Python编写,是那种Python小白也能看得懂的代码。

整个流程也很简单,目标就是下单占座。

接下来以代码为例详细介绍下流程。

注册账号

账号登录的过程也并不复杂,此步骤自动化添加乘机人信息,便于后续下单操作。

搜索航班

搜索航班的代码也用了同样的UA,航班信息也安排的明明白白

下单

下单涉及的参数过多,还包括了是否使用新人红包券、添加乘机人、校验乘机人等代码,代码流程上6的不行,能考虑的全都给考虑了,也符合新人用户的操作。

支付

代码里还写了用zfb支付,流程上拿捏的死死的,不给我们银行卡用户付款的机会。

整个代码流程并不复杂,行为与常规下单操作一致,只是部分参数都是硬编码的,如固定的UA,referer等。

而从这些代码里我们也可以看出,所有代码并不复杂,甚至门槛很低,培训班一周就可以速成。

下单都做了什么?

前面的代码我们也都大致看过了,而从这些代码中,我们并不能够非常清楚地知道注册账号下单的目的是什么。

代码里提供了明文的账号密码,轻轻松松就登录了这家航空公司的网站,连个短信验证都没有。而这个账号下的十余笔订单,均为“已取消”的状态,这也意味着,该账号的行为存在异常,无成功订单。

这种行为就是典型的黄牛占座行为,他们在航空公司允许的时间窗口内,先占票,再转售给真正需要购票的用户,和火车票黄牛如出一辙。

联想到疫情影响下出现的高价甚至天价机票,好像找到了答案。

如何防控黄牛占座

从代码中也发现了非常明显的特征,如:注册号码来自接码平台,固定UA、referer等。鉴于本文中分析的代码,我们提供以下防控意见:

  • 订单时间控制,目前很多航空公司对订单支付时间都进行了限制,控制黄牛占座行为
  • 接入手机号码黑库,从注册登录环节进行拦截
  • 登录环节接入短信验证,提高账号成本
  • 三要素验证,提高作案成本
  • 账号维度对短时间内频繁下单成功取消支付的行为进行限制,不给黄牛再次占座的机会
  • 设备维度风险识别,UA、referer、等参数校验,自动脚本识别
  • IP维度,机房IP、代理IP识别
  • 用户行为识别,可从用户行为维度,如鼠标点击、传感器等维度入手分析机器行为

为了坚持而坚持