“刷票”检测

近期写了一个无聊的程序,帮别人刷票,或许是“胆小”,总怕被主办方发现,在编写中不断的思考,如何躲避检测,其实主办根本不“在乎”,明显的刷票让投票成为笑话。

刷票的特点

刷票有两种,一种是bot程序刷票,一种人肉拉(shua)票,无论那种,本质是资源有限,要么不受控制、要么严格按照程序执行,几乎没有中间地带,也就为检测提供可能

  • 投票目标单一、量大
  • 投票时间集中
  • IP分布不符合人口分布
  • 间隔不符合正态分布
  • 请求页(xing)面(wei)顺(mo)序(shi)相似
  • 请求设备集中

检测

需要记录的数据

  • 源IP 或x-forword-for的数据
  • 请求时间
  • refer
  • user-agent
  • 投票内容
  • 请求的url
  • header字段顺序
  • 错误的请求

统计分析检测点

  • 单个参数是否符合幂律分布
  • 筛选投票的top10,检测投票的星期内周期、24小时周期
  • 检测IP的TOP10、投票内容TOP10、refer的top10
  • 检测IP的分布、设备型号的分布、浏览器的类型和版本分布、时间间隔的分布
  • 检测投票时间间隔是否符合指数分布、较长周期是否符合正态分布
  • 检测出错类型及频率是否为人为错误(人总会犯错的)
  • 引入机器学习模式,检测数据

防范措施

  • 增加对行为模式的数据获取,如鼠标、键盘、手势信息等
  • 增加请求页面的检测,增加隐藏表单
  • 增加对页面停留时间的检测
  • 通过html5等获取设备指纹,检测设备运行能力
  • 增加提交投票表单的检测值,按照时间不定期进行变换,若过渡期后,提交旧则报警
  • 变化投票数据或模式,让投票失效,特定的模式亦可作为报警
  • 使用跳转,必要时可生成多次跳转、为bot生成循(la)环(ji)链接
  • 随机错误:-)

以上可随机出现,采用打分的方式,可以动态调整敏(fa)感(zhi)度,防止“刷票”人员试探检测模式,部分检测或防范模式也可用于检测爬虫

对于“刷票”行为,通过一种方式可能难以检测,但通过不同的视角,肯定可以发现其中的不正常之处,要让数据多个层面符合特征,这画面太美我不敢看(ps:或许n年后,人工智能发展后,呵呵)


本文遵守知识共享协议:署名-非商业性使用-相同方式共享 (BY-NC-SA 4.0) 协议

你可能感兴趣的:(“刷票”检测)