工作量证明如何拦截97.42%异常机器流量?

2023-10-27

近期休闲小游戏“羊了个羊”火爆朋友圈,这款第二关难度系数极高且带有省份和个人排名的小程序游戏甚至在最高峰时段热度指数超过了和平精英和英雄联盟。但不管是MOBA手游英雄联盟还是休闲小游戏羊了个羊,在繁荣的背后游戏外挂脚本屡见不鲜。

 羊了个羊游戏脚本

面对此类业务遭受计算机自动化作弊的情况,企业应该如何应对、避免损失及无效运营无疑成了当下最应该重视的问题。

目前,针对以上风控问题,极验作为负责企业业务安全的服务商已根据不同问题类型给出解决方案,即在易出现自动化作弊的场景部署验证码。极验安全专家表示:目前黑灰产利用自动化脚本作弊的技术手段不断进步和成熟,与黑产博弈最有效的办法便是提高黑灰产作弊成本。极验现行的解决方案中应用了工作量证明技术的行为验4.0就可以最大程度地提高黑灰产的攻击成本。这项技术通过加大电脑CPU的计算量、延长计算时间的方法防御高频次的交互,但对低频次且账户安全性高的正常用户则毫无影响。以下为具体详细说明:

一、工作量证明原理

工作量证明,(Proof of Work,以下简称“PoW”)顾名思义就是证明你所做过的工作。当应用在验证码中时,它指的是验证码厂商的服务端向用户的客户端调取计算机完成指定量工作的证明,该证明一般为提交了正确的哈希算法的字符串答案。在这一过程中,极验服务端除了可以迅速验证客户端的答案外,工作量证明的数量多少也有且仅有它可以规定。

因PoW的作用就是限制高频次的请求,所以通常情况下极验会通过主动监测以发现高请求量且不符合客户业务规律的流量时开启PoW共识防御机制。

二、效果显著,有效拦截97.42%异常流量

下图为某一网站开启PoW前后的数据对比情况。我们可以看到在下午14:00时该网站的验证交互量达到了历史峰值:244,785。随后验证请求量、交互量等四项数据都有所下降,但从曲线图中仍然可以看出数量远远超过该网站的正常交互量。在14:52分左右我们监测到网站的异常数据。根据以往的经验我们大体判断出这是黑灰产在使用计算机脚本大批量进入网站并进行了高频次的交互验证,随即我们开启了PoW进行防御。

 下午14:00各项数据

8分钟后即15:00当我们再次查看各项数据指标时,虽然验证请求量和交互量居高不下,但通过开启PoW,验证通过量已从213,046骤降到127。再对比网站受到攻击前凌晨4:00的数据,这时的通过量已回到正常水平,通过计算我们得出PoW开启后有效阻止了约97.42%的异常流量进入,拦截效果十分显著。

 下午15:00各项数据

 凌晨4:00各项数据

三、高频交互成本高,低频交互零影响

极验主要采用一种 Hash 运算的方法来用作验证码的PoW工作量证明,该方法主要利用HASH运算的复杂度,通过给定的初始值,进行复杂的值递增规律,利用HASH碰撞原理,直到找到特定的碰值,可以通过调节碰撞值的长度,实现对于工作量的调节(碰撞值越长,所需要的运算量越大)。在目前的认知中,黑产除了穷举尝试,无法很快的找到满足条件的签名串。黑产在发送请求时就需要进行N次递增生成新的签名串,直到生成了符合极验服务端要求的签名串,即可完成工作量证明。

极验设计的 Hashcash 的签名串如下:

Hashcash msg: version|bits|hashfunc|datetime|id|lot_number|ext|rand

示例如下:

PoW_msg: 1|16|2021-12-14T14:15:21.167233+08:00|647f5ed2ed8acb4be36784e01556bb71|b3af6a9f47bc4e4a825715e20622a307||hijwiakgwjAIDL

PoW_sign = hashfunc(PoW_msg)

字段意思解释:

  • version: Hashcash 格式版本. 目前版本为1。

  • bits: 散列之后得到的字符串有多少bit前缀是0,代表计算的强度。0越多,代表需要计算的强度越大。

  • hashfunc: 支持的散列函数md5、sha1、sha256

  • datetime: 消息生成的时间,格式iso8601: YY-MM-DDTHH:mm:ss+08:00. (这里是使用时间字符串还是时间戳?)

  • id: 验证码服务的id

  • lot_number: 验证码服务的流水号

  • ext: 额外扩展

  • rand: 随机字符串, 使用 base-64 编码

在验证码流程中,验证码问题加载返回id、lot_number、datetime、bits、version。客户端生成随机字符串组成Hashcash msg,然后使用散列算法来来对此进行散列,直到找到符合 bits 数量前缀的 0 开头的串,即可视为完成了工作量证明。在验证码回答时,和答案一起传入PoW_msg, PoW_sign作最终校验。

对于客户端来说,需要调整随机字符串,找到 bits 位前缀为 0 的的散列串才能完成工作量证明。以bits为16来说,平均找到一个目标串需要随机生成字符串 rand 并散列二的十六次方次(65536),此过程满足几何分布。以电脑为3.6Ghz的CPU举例, 三种散列算法分别需要以下时间进行一次散列运算。

对于 md5 散列方法:

65536 * 572 ns = 37486592 ns = 37.486592 ms

因为散列算法不可逆,所以任何客户端只能进行多次尝试找到目标串。平均查找时间在数十毫秒,对正常的客户端没有太大影响,但是对于恶意的客户端端就必须多花费CPU找到相应的PoW_sign串来通过检测,这样就可以限制恶意客户端的行为。同时可以结合我们的风控体系,对异常用户提高 PoW 的强度,对正常用户降低 PoW 的强度。

四、行为验4.0给网站一个“Buff”

在与黑灰产多年博弈的过程中我们发现他们还会利用外接打码平台和秒拨IP(利用国内家用宽带拨号上网的原理,每一次断线重连就会获取一个新的IP)入侵网站、软件或是H5小程序。面对这些准备充分、资源充足的黑灰产,若是不使用应用了PoW的验证码,大概率只能束手无策。

然而PoW的好处在于它不依赖IP规则而避免误封可能性,哪怕黑灰产以上述手段破解验证码,客户端依旧需要完成由极验服务端发出的计算工作,打码平台和秒拨IP无法帮助黑灰产完成计算工作。对于黑产而言,想要抢占正常用户的业务资源,势必要发出远超正常用户的请求,堆积在黑产处的高频请求带来的就是超高的计算工作,来保障接口服务的公平性。

以下为极验目前应用了PoW的行为验4.0产品和行为验3.0的业务流程对比图,我们可以明显看出开启PoW后发生了从极验服务端返回客户端输出PoW版本、哈希方法、PoW难度;随机生成16位字符;运算源数据处理;获取签名串等7项关键步骤的变化。PoW在原有的验证码防御机制上进一步使黑灰产付出的成本高于所获利润,他们也因此放弃破解,减少攻击,从而实现了有效拦截97.42%异常流量的成绩。显然,给网站上加的这个行为验4.0“Buff”在保护业务安全中发挥了关键作用。 

 行为验3.0与行为验4.0PoW业务流程对比

以电商、游戏和区块链为代表的行业最容易受到黑灰产业链中大规模薅羊毛的影响,从而造成直接且无法估量的金额损失。据不完全统计,目前已部署极验行为验4.0的用户近20万,其中包含滔博运动、TapTap、OKcoin、IBOX、金数据、微博、keep等知名企业。

 行为验4.0示例

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

工作量证明如何拦截97.42%异常机器流量? 的相关文章

随机推荐

  • 抖音热门游戏Fill one-line puzzle game解法的Python代码实现

    抖音热门游戏Fill one line puzzle game解法的Python代码实现 导语 思路 代码 验证 谢谢小李同学的提醒 加上了无解的判断 不然如果无解就进入死循环了 版权声明 原创文章 转载请注明出处 导语 最近刷抖音的时候
  • c++综合练习题六

    1 t1 txt文件中保存某超市不同商品的销售情况 读取文件中的数据 要求使用容器存放 使用迭代器输出输出所有数据 对获取到的数据按照销售额进行降序排序并输出 对降序后的数据存入到新的文本t2 txt中 方法一 int main fstre
  • 无监督学习和自监督学习的区别

  • 解决windows系统wifi图标不见了的问题

    前言 最近大家在使用win11的时候是不是常常会遇到一个情况 那就是在某一次开机时wifi图标不见了 是不是很惊讶 没有动什么东西呀 难道wifi模块坏了 上次关机时挺正常的呀 是不是心里面很多疑问 哈哈 恰巧我最近也遇到了这个问题 刚开始
  • 检查IP或端口是否被封

    遇到IP连接超时 想要确认是否被封 可通过以下几个方式检验 IP可用性检测工具 Tools大全在线工具 Ping mtr dig and TCP port check from multiple locations 端口扫描 站长工具
  • Eclipse下,LogCat(deprecated),显示不了内容,或者全部都是Unknown

    这张图片中的下面的LogCat deprecated 显示不了内容 或者全部都是Unknown 我的解决方法是打开LogCat 没有 deprecated 标志的那个 deprecated 意思为弃用 废弃 不赞成 这样就能使用了 但是有些
  • 2023最新Python阅读书籍推荐

    a byte of python 中文 简明 Python 教程 入门的书很多 但能让新手轻松看懂的就少了 作者写的思路非常清晰 对每一个知识点讲解的很到位 不多不少 对初学者来说 力道刚刚好 这本书是Python入门最好的书 A byte
  • Eclipse IDE for C / C++ 安装教程 之 eclipse的安装及配置

    下载eclipse 前提 安装配置好JDK 官网下载eclipse installer eclipse下载器 或者官方下载对应版本zip 优点 方便省事 缺点 下载速度比较慢 安装器是64位的 对32位的机器不太友好 或者选择 清华大学开源
  • Vue Luckyexcel 将文件流转成file文件后使用Luckysheet回显数据 - 附完整示例

    Luckysheet 一款纯前端类似excel的在线表格 功能强大 配置简单 完全开源 官方文档 快速上手 Luckysheet文档快速上手 Luckysheet文档Luckysheet 一款纯前端类似excel的在线表格 功能强大 配置简
  • Basic Level 1075 链表元素分类 (25分)

    题目 给定一个单链表 请编写程序将链表元素进行分类排列 使得所有负值元素都排在非负值元素的前面 而 0 K 区间内的元素都排在大于 K 的元素前面 但每一类内部元素的顺序是不能改变的 例如 给定链表为 18 7 4 0 5 6 10 11
  • OpenCV常用方法总结

    图像导入 import cv2 as cv src cv imread lena jpg cv namedWindow input cv WINDOW AUTOSIZE cv imshow input src cv imwrite save
  • 大事件项目

    目录 1 0 资源地址 1 项目前期的准备工作 1 1 初始化项目结构 1 2 使用GitHub管理大事件的项目 1 3 安装VSCode的Live Server插件辅助开发 2 登录注册 2 1 绘制login页面的基本结构 2 2 实现
  • 【前端】使用ffmpeg+vue3实现简单的视频编辑器

    使用ffmpeg vue3实现简单的视频编辑器 主要依赖 ffmpeg ffmpeg vue 实现功能 视频转码 添加文字水印 添加图片水印 处理进度条和用时 文件编码信息 生成序列帧 界面效果 ffmpeg演示 渲染成品 fmpeg渲染成
  • linux命令之split

    splilt命令的目的是将文件按照一定的规则切分 实战 我现在有一份文件觉得太大 想要切分 split 1000000 a1 kongke company 1000000是按照每100w行去切分 a1 是后缀只有一个 文件名称默认就是xaa
  • MySQL的count(*) ,count(1),count(id)的区别

    数据库查询相信很多人都不陌生 所有经常有人调侃程序员就是CRUD专员 这所谓的CRUD指的就是数据库的增删改查 在数据库的增删改查操作中 使用最频繁的就是查询操作 而在所有查询操作中 统计数量操作更是经常被用到 关于数据库中行数统计 无论是
  • 【Spring】Spring事务

    Spring事务 文章目录 Spring事务 0 事物的概念 1 Spring事务的配置方式 1 1编程式事务管理 1 2声明式事务管理 2 Spring事务的传播机制 3 事物的隔离级别 4 只读 5 事务超时 6 回滚规则 7 Spri
  • 【JVM篇】垃圾回收算法

    目录 1 前言 2 标记 清除算法 3 标记 整理算法 4 标记 复制算法 5 总结 1 前言 说起垃圾回收 Garbage Collection 本文简称GC 相信同时对C 和Java有了解的小伙伴都知道 C 在new完对象后 是需要手动
  • Centos7 宝塔升级swoole版本

    安装swoole 1 首先进入指定目录后下载指定swoole版本 cd usr local src wget https github com swoole swoole src archive v4 5 2 tar gz 2 下载下来后
  • linux c++ 第三章

    1 整型 int short long long long char unsigned int unsigned short 2 最值 include
  • 工作量证明如何拦截97.42%异常机器流量?

    近期休闲小游戏 羊了个羊 火爆朋友圈 这款第二关难度系数极高且带有省份和个人排名的小程序游戏甚至在最高峰时段热度指数超过了和平精英和英雄联盟 但不管是MOBA手游英雄联盟还是休闲小游戏羊了个羊 在繁荣的背后游戏外挂脚本屡见不鲜 羊了个羊游戏