一、什么是风控
风控全称是风险控制,是一种用于检测、评估和防止不规范行为的技术。
它通过多种技术手段和数据分析,识别潜在的风险和异常行为,特别是针对不规范的爬虫行为。
爬虫通过模拟人类用户的行为来访问网站并获取数据,不规范的爬虫行为可能会对网站造成危害,例如爬取大量数据导致服务器宕机,或者窃取敏感信息等。风控技术可以帮助互联网厂家来检测和限制这些不良行为。
二、常见风控后果
风控技术广泛应用于各类厂商的网站和应用中。它通过获取用户特征和行为信息,在后端进行分析判定用户的风险等级,并根据不同的风险等级,做出相应的反应。
风险等级通常分为三种:无风险、中低风险和高风险。
- 无风险的用户,他们可以正常访问和使用数据。
- 中低风险的用户,系统可能会进行一些简单的验证或限制。例如要求用户完成点选、滑动、旋转、逻辑等验证码,或者引导用户登录,甚至返回蜜罐数据(假数据)。
- 高风险的用户,系统会实施更严格的验证和限制措施。例如要求用户进行短信验证或语音验证,严重的话会导致IP封禁、设备封禁、账号封禁。
三、常见风控检测手段
1. 终端检测
终端检测指在APP中或代码逻辑中,直接进行检测和判断风险。
1.1 APK签名
APK签名检测是一种常见的安全措施,用于验证应用程序的完整性和来源。
检测对比签名证书哈希值与预期的签名证书哈希值是否一致,以验证APK的签名是否正确。当检测出来签名不正确时,可以被认定为重打包,直接标记高风险,限制APP的功能或强杀APP。
1.2 模拟器
模拟器检测,通常包括检查设备操作系统属性(系统指纹和制造商信息)、内核版本信息(模拟器的内核版本信息可能包含“generic”或“x86”等标识)、文件系统特征(例如“/dev/socket/qemud”和“/system/bin/qemu-props”等文件)、传感器信息等。
1.3 设备环境
1.3.1 ROOT环境
检测设备上是否存在特定的ROOT相关文件和目录,如/system/xbin/su
、/system/bin/su
等;或者通过端口、包名、maps等方式检测是否安装了Magisk、LSPosed等应用。
1.3.2 HOOK框架
Frida
检查frida包名类名、frida-server进程、maps检测(frida-agent.so的内存信息)、路径检测、端口检测(27043)等。
Xposed
检查Xposed的包名类名、maps检测(XPosed字符串)等,亦或者是构造异常报错,读取异常堆栈中是否包含Xposed字符串等等。
2. 后台检测
后台检测指通过在APP上收集用户行为信息,通过网络发送到后端,进行分析和判断风险。
2.1 lP
IP 检测通常包括:
-
IP代理检测
识别用户是否使用了代理服务器进行访问,防止恶意用户隐藏真实IP地址进行攻击。
-
IP行为分析
通过对IP地址的历史访问行为进行分析,识别异常行为模式,如频繁请求、异常访问路径等,以便及时发现和阻止恶意攻击。
-
IP地理位置识别
通过IP地址的地理位置信息,对用户的访问进行识别和验证,判断是否存在异常或风险,比如说北京的用户ip不太可能每天都访问许多上海的POI。
系统根据历史数据和风险评估模型,将高风险的IP地址列入黑名单,限制其访问或进行其他安全措施。
2.2 用户行为
大厂会在app中对用户的行为进行埋点上报,收集统计不同纬度的行为信息,比如说点击频率和点击间隔规律性、操作路径合理性等。
当用户在页面某个位置进行点击时,这些点击操作会被实时上报到后台,后台能够清晰地监控当前用户的行为信息。后台将用户的操作模式、指纹信息、地理位置、登录行为等数据进行综合分析,通过AI算法去识别判断异常行为。
2.3 心跳包
心跳包通常以TCP长连接的方式覆盖App整个生命周期,固定时间间隔从客户端发送到服务器,用于维持连接状态和检测连接的有效性。
如果攻击者通过RPC或算法还原协议请求方式调用接口,可能会导致心跳包遗漏。当出现心跳包缺失、频率异常、包内容篡改时,可能就会触发验证码、ip封禁、重新登录等手段。
2.4 指纹信息
2.4.1 请求指纹
每个请求都有其独特的特征和属性,例如请求参数中的USERAGENT、USERID、DEVICESID等参数。
一些非登的接口往往会通过这些请求指纹,检测请求频率、总数等维度,来判断请求的合法性和风险程度。
2.4.2 设备指纹
每个设备都有其独特的硬件和软件配置,这些特征可以用于识别和区分不同设备。
- 设备属性识别
检测操作系统版本、浏览器类型、屏幕分辨率、设备型号等,来判断设备的类型和性能。 - 设备行为分析
检测设备的使用聚集性、操作方式、网络环境等,来判断设备的合法性和风险程度。 - 设备历史记录
检测设备的历史访问记录,包括登录历史、操作记录等,来判断设备的信任度和风险情况。 - 设备关联分析
检测设备之间的关联关系,如多个设备使用同一个账号、多个设备在同一时间段内进行操作等,来判断设备的真实性和风险程度。
目前市面上各大厂商对设备指纹检测都不尽相同,且常会检测一些更为隐秘的字段。
四、总结
总的来看,风控技术大体分两部分,直接在客户端上检测分析风险,又或者是将用户行为信息发送到后端分析风险,进而决定是否正常响应。
在一些大厂的风控系统中,一般不会单凭某一种异常行为进行反应,而是通过对多种手段分权重检测,综合应用到风险评估中,并且通常还借助AI技术不断提升检测的精准度和效率。特别是在用户行为分析和设备指纹识别方面,AI的应用使得风控系统具备自动化和精细化的能力。