近日,某互联网公司在使用永安在线API安全管控平台时捕获到一起数据泄露风险事件,攻击者使用大量动态代理秒拨IP对该公司某用户信息查询API进行低频的敏感数据爬取攻击。
永安在线API安全团队及时响应此次风险事件,定位到了有缺陷的API,并提炼了此次风险事件的攻击特征,帮助该公司及时调整安全应对策略,避免了大规模的用户信息泄露。
事件分析
据了解,该公司的网站面向公众提供考生信息查询的API,用户输入姓名与身份证号,便可获取到包括个人照片、分数、准考证号、证书编号、所属学校等考生相关的敏感信息。考生信息对于诈骗团伙用于电信诈骗、招生机构进行精准营销推广有着极高价值:
2016年,某学生被诈骗案,诈骗者掌握该考生信息,以助学金发放为理由,向该学生实施诈骗,使其不幸离世;2019年,某省普通话成绩查询网站由于配置不当将考生信息暴露在网站中,导致405名考生信息泄露;永安在线数据资产泄露风险监测平台在暗网和QQ群经常能监测到考生信息的数据在贩卖……
考虑到数据敏感性,从数据安全考虑,该网站信息查询API使用图片验证码进行人机校验,并采用了基于IP的限频策略,但这远远不够。攻击者在高价值数据的诱惑下,借助打码平台和大量的动态代理秒拨IP绕过该网站的安全防护策略,对信息查询API发起了低频的爬取攻击,以获取考生信息。
下面从多个角度来还原此次攻击情况:
1. 从攻击时间来看
攻击者的攻击趋势与工作时段高度重合,主要集中于白天攻击。
为让攻击流量看起来更“正常”,攻击者往往会在工作时段(即白天)发起攻击,并在晚上进行次数限制,防止异常时段(晚上)发起请求容易被企业感知到数据异常,从而长期获益。
2. 从攻击者使用的身份证和姓名信息来看
此次攻击使用的身份证/姓名组均一一对应,没有出现身份证对应多个姓名或者一个姓名对应多个身份证的情况,统计查询成功率为97%,由此排除暴力破解的可能。
通过分析发现,攻击者日均爬虫查得率在17.8%,推断这批身份证/姓名组可能是攻击者从其他平台获取到的,并在该平台进行爬取尝试攻击。
查询成功率:指身份证和姓名相匹配,能在网站上成功发起查询。
查得率:指成功发起查询后,网站成功反馈相应的考生信息。
3. 从攻击者使用的源IP信息来看
为了绕过IP限频的安全策略,攻击者借助打码平台和动态代理平台,每天使用12790个动态代理秒拨IP对该查询接口进行爬虫攻击,平均每个IP的攻击次数为1.96次,最高的攻击次数也才10次。
基于永安在线的风险情报,对此次攻击事件的源IP进行溯源分析,发现有93.79%的IP近一个月在阿布云平台中活跃,因此猜测攻击者大概率是使用阿布云代理提供的IP资源发起了这次攻击。
此外,从IP所属地域信息来看,将近一半的IP来自安徽省和江苏省,其他的零散分散在多个地方。
但通过对IP和身份证的地域一致性进行分析,在25146次的请求中,有23227次(占比92.37%)存在身份证归属与IP地理位置不一致,这说明攻击者在攻击时并没有精心构造身份证归属地和源IP的对应关系。
这类身份地址和IP地址不一致的比例信息很高是安全运营人员在日常的运营中需要特别关注的。
4. 从攻击者行为的维度来看
相较于正常用户的查询业务,攻击者缺少请求查询页面API的行为。此外,相较正常业务在调用获取图片验证码API与查询考生信息API时,会携带查询页面API的referer信息,而攻击者构造的攻击请求都没有referer字段。平台运营人员可以对该类非正常行为逻辑的请求进行限制。
5. 从攻击者使用的UA维度来看
推测存在两批攻击团伙,一个攻击团伙使用较新的浏览器版本进行攻击,另一个攻击团伙,伪造了一个老版本的Chrome浏览器发起攻击,由此看出在日常运营过程中,企业是需要重视这类老版本客户端发起的请求流量。
团伙一的User-agent:
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.107 Safari/537.36
团伙二的User-agent:
Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36
总结和安全建议
1.关于数据泄露
数据泄露在网络安全中属于是一个老生常谈的话题,根据 Imperva 发布的最新报告,自 2017 年以来,全球网络攻击泄露数据记录的数量平均每年增长高达 224%。仅 2021 年 1 月报告的泄露记录(8.78 亿)就超过了 2017 年全年(8.26 亿)。
根据永安在线数据泄露情报监测显示,数据泄露从早些年的系统入侵后拖库带来的泄露,到后来通过SDK上报、运营商的DPI和短信通道带来的泄露。随着企业安全措施的不断加强以及更多的企业数据数字化和在线化(越来越多的数据是通过API来进行流转),通过企业提供的API来爬取数据带来的数据泄露占比越来越高。
2016年,剑桥分析公司通过Facebook提供的开放API获得了多达8700万用户的个人信息;2020年,攻击者通过对某社交平台通讯录上传API进行暴力爬取,导致用户绑定手机号、ID、昵称、所在地和头像等5.3亿条个人信息泄露;2021年,攻击者通过某网购平台API 爬取了11亿条个人网上购物和商品评价信息……
Gartner在其“如何建立有效的API安全策略”报告中预测,“到2022年,API滥用将成为导致企业Web应用程序数据泄露的最常见攻击媒介。”
2.防御与检测
《数据安全法》、《个人信息保护法》先后正式实施,意味着国家对数据安全的重视及监管力度与日俱增。对企业而言,保护用户的信息安全是基本责任之一,泄露用户信息会缺失公信力,损毁公司品牌形象,建议企业从下面每一个小处开始,持续提升企业自身数据安全保护能力。
以下是针对API低频爬虫攻击的防御和检测的建议:
a. 加强API基础的防护措施
针对涉及到敏感数据的API,使用破解复杂度比较高的行为验证码,如滑块验证码、空间推理验证码等,虽然可以通过打码平台绕过,但在一定程度上提高了攻击的成本,减缓了黑产的攻击效率;
增加访问控制和授权管理,需要登录验证权限后才可以查询归属该账号权限的敏感数据信息;
针对一些特殊场景,还需要对查询者身份进行二次验证,实施诸如短信验证、指纹认证、人脸认证等多因素身份认证;
针对需要开放访问的API,可以采集访问终端环境信息和行为信息,从访问环境的聚类特征、历史访问频率、访问行为序列等方面构建爬虫检测模型识别异常爬取行为,通过构造虚假返回数据和动态验证码的方式来提高爬取的门槛。
b. 使用动态验签
可以对API的请求参数加上动态签名之类的信息,如服务器随机从多套已经准备好的加密算法中下发一套加密算法给到客户端,客户端对API请求的参数进行动态加密,再比较服务器端和请求端双方签名信息是否一致从而确保请求是否来自攻击者自动化攻击,由于加密算法是动态变换且做过混淆的,提高了攻击者自动化爬取敏感数据的攻击门槛。
c. 基于风险情报构建登录API攻击检测系统
针对海量IP低频的爬虫攻击,还需要借助基于IP风险情报、API攻击情报构建的API攻击检测和感知工具,确保及时预警数据爬虫攻击事件,尽早采取措施,避免大规模数据泄露。
例如,永安在线基于风险情报构建的API安全管控平台,能够梳理系统所有的敏感数据API,评估API的认证授权、数据暴露和脱敏不一致等设计缺陷,基于风险情报构建API异常行为基线模型实时监测数据爬取行为,及时发现并阻断低频爬虫攻击风险。
写在最后
数据资产逐渐成为了企业的基础生产要素,数据通过API来进行流通交换创造价值,流动中的数据安全保护是企业当前急需要解决的数据安全难题。面对海量IP的低频爬取攻击,防守方不仅要从多个维度来构建防御体系,更需要基于风险情报来构建攻击检测模型,做到及早感知及时防御,从而保障企业及其用户的数据安全。