黑灰产攻防对抗——中睿天下代理秒拨IP防护研究

01网络攻击代理现状

随着攻击者防溯源和绕过防护意识的加强,攻击者进行网络攻击时常使用代理IP进行攻击,防止非法攻击时被追踪到身份信息。目前常见的代理方式有socks代理、HTTP/HTTPS代理、VPN、秒拨等。

对于企业来说,通过SOAR类平台可实现无人值守自动拦截,传统的代理方式在节点有限的情况下无法突破防御。所以秒拨、商业代理、自建IP池等技术越来越受攻击者青睐,此类技术一般基于大量IP的代理池通过socks、HTTP、HTTPS方式频繁的切换代理IP,IP资源可谓取之不尽用之不竭。即使被攻击单位能够对攻击IP进行自动封禁,但是面对海量IP的攻击,该防护方式依旧会显得十分被动;在秒拨技术的加持下,对攻击者来说,被攻击目标单位的拦截阻断策略相当于“失效”

目前代理技术可达到

1、 代理ip无法访问目标ip时自动切换ip;(对抗自动封禁);

2、 完成一次HTTP会话后自动切换ip;(对抗阈值类安全策略);

3、 产生定量的TCP会话后自动切换ip;(对抗阈值类安全策略);

4、 自定义时间周期切换ip;(对抗摸索到安全策略阈值的防护);

5、 根据目标ip/域名/url 的不同使用不同ip代理池和切换策略;(用精细化的方式对抗集中管控类安全防护策略,如api网关。

02安全防护现状

针对网络攻击的防护一般是通过WAF和防火墙等串联设备对攻击IP进行封禁,WAF通过应用层数据检测,发现攻击行为,从而对此次攻击行为进行单次TCP会话阻断或对攻击IP进行封禁;传统的防火墙通过录入IP的方式从网络层对IP进行封禁,目前安全建设做的较好的单位可以通过其他安全检测设备联动防火墙对攻击IP进行自动封禁。

无论是WAF还是防火墙,对于封禁IP的数量是有一定限制的,因为封禁IP数量越多对设备造成的性能压力会越大。该防护情况下,如果攻击者使用秒拨技术进行攻击,每攻击一次换一个IP,拦截设备不停的对IP进行封禁,很快就会到达性能瓶颈,失去防护能力。

0传统代理攻击防护

针对代理攻击,目前市面上常见的防护手法为通过验证码、浏览器用户行为、User-Agent头、访问频次、IP黑名单等方式,基本为黑白名单加真人/机器人识别的组合方式,策略的最终落脚点目标为IP,具体防护方法如下:

验证码识别真人用户

通过图片验证码对用户进行真人校验。该方式可有效拒绝非真人用户的访问,但是对于简单的图片验证码,可通过脚本实现自动化的识别进行绕过,而复杂验证码则会影响用户体验。并且验证码是基于IP判断的,对于能频繁更换IP的秒拨无效。

用户行为分析

在前端和后端对用户访问行为进行建模分析,发现异常访问行为并警示或阻断。例如通过判断客户端是否加载运行JavaScript代码判断是否为人为浏览器访问;特定页面需要某个入口才能访问,如果用户没有经过入口直接访问该页面,则判定访问行为异常。该方式需要针对业务系统进行定制化的分析建模,且有一定的开发量,对于业务系统较多且复杂的单位来说实现难度较大。

基于IP属性和情报研判

通过原IP属性和情报,定位访问用户的身份。例如原IP近期被标记为僵尸网络IP,原IP为IDC机房固定IP,则判断为代理IP访问。该方式对IP的属性和情报的时效性和可信度有较高的要求,容易出现误判。

访问者身份标识

传统的身份识别方式多数是基于账号或者IP识别的。由于IP的动态性和共用性,导致通过IP识别身份极为不准确;账号识别虽然相较于IP识别准确度较高,但是对于无需登陆的访问行为则无法识别访问者身份。

通过浏览器指纹追踪技术,基于访问者客户端信息对访问者进行身份锁定,则可以很好的识别访问者身份。

04新型代理攻击防护

对于具备团队作案和编程能力的攻击者组织来说,结合业务防护的特性编写定制化切换代理的黑客工具,可有效绕过上述的防护措施,所以如何高性价比的提高攻击者成本,是对抗代理ip攻击的核心目标。

通过客户端信息生成用户浏览器指纹绑定用户身份的方式,非IP或者账号绑定,进行用户身份锁定,即使用户更换IP后,依旧可以通过客户端信息识别到用户身份,从而针对有威胁行为的用户进行访问控制。

对于无法识别身份的用户,定性为非真人用户,异常访问,则可以进行访问控制。

1、通用指纹锁定用户ID身份进行无感拦截

2、概述

互联网绝大多数服务都是web服务,用户访问web服务都是通过浏览器进行访问。可通过javascript采集用户浏览器信息(包括无头浏览器)、操作系统信息、硬件信息、网络信息等,包括浏览器类型、浏览器版本、浏览器插件信息、操作系统版本、硬件供应商、屏幕分辨率、屏幕亮度、cpu型号、硬盘大小、互联网IP、时区等。

每个用户的上述信息不尽相同,结合这些信息通过一定算法可生成唯一用户ID对用户身份进行锁定。

3、防护方式

JavaScript是所有网站都会使用的开发语言,该语言可以在用户的浏览器运行,利用JavaScript运行在客户端的特性,可以使用该语言对用户的浏览器信息、操作系统信息和硬件信息进行采集,然后根据采集的信息进行运算,得到一个用户标识,该标识会一直对其对应的用户进行绑定。即使攻击者使用秒拨技术不停的更换IP、浏览器头,甚至更换脚本语言,只要攻击者无法破解生成用户ID的算法(或者破解该算法的成本过高), 即可以锁定该攻击者身份。

采集指纹的JavaScript可以配合应用层waf、负载均衡、api安全网关或者Envoyproxy之类的技术进行无感嵌入,该技术同样适用于嵌入CDN服务商作为增值服务,直接通过业务网站返回到用户的浏览器,也可通过反向代理的方式。

采集指纹的JavaScript到达用户浏览器后会自动执行,将采集的信息回传至服务端,此时服务端根据采集到的信息进行运算生成唯一用户ID,然后和当前已有的唯一身份ID对比,如果命中,则说明此次访问的用户以前访问过该业务系统;否则将其当作新用户访问,生成新的唯一身份ID,供后续该用户访问时进行身份识别。此时就实现了用户身份绑定。

实现用户身份绑定后,可以结合网络攻击行为检测,对有攻击行为的用户ID进行标识,此时即使攻击者更换IP依旧可识别其攻击者身份,配合串联的应用层代理设备进行应用层的阻断拦截,从而达到攻击者无限更换IP也无法继续访问的效果。

4、实践案例

在公网服务器搭建用户身份追踪系统,分别切换代理IP、浏览器User-Agent和浏览器无痕模式进行访问,最终得到的身份ID是固定不变的。

序号

切换客户端信息

身份ID

1

IP:36.xx.xx.43

72CCXQOEPFhe5yed2K7S

2

IP:34.xx.xx.71

72CCXQOEPFhe5yed2K7S

3

浏览器UA:Chrome

72CCXQOEPFhe5yed2K7S

4

浏览器UA:IE 10

72CCXQOEPFhe5yed2K7S

5

浏览器UA:WP 8

72CCXQOEPFhe5yed2K7S

6

无痕模式

72CCXQOEPFhe5yed2K7S

表 测试结果

图 实践案例演示

05其他同类型技术解决方案

01远程浏览器隔离技术(RBI)

RBI 系统的核心功能是将浏览器数据从远程浏览器流式传输到用户的本地端点,RBI 系统需要处理用户事件(击键、滚动、鼠标点击等),将它们与相应的网页元素匹配,检测打开的标签页的变化,并以视频或经过消毒的网页的形式发送给用户,目前市面对应用常用于防止企业内部人员点击恶意链接类(如钓鱼网站、水坑攻击),同时也可以反向用于对外服务网站的保护,在原有的远程浏览器流式传输的基础上加上JavaScript的重新渲染,从根本上解决可交互参数引发的漏洞、爬虫、越权等问题。但由于该技术导致的服务端性能成本高、可扩展性差和用户体验下降等问题尚未较好解决,目前还未有成熟的大规模推广。

02利用JavaScript进行真人识别

利用JavaScript的反爬虫技术判断请求是由真实的浏览器发起,还是由脚本或者bot发起,目前主流的有三种方式:

基于User-Agent:最简单的检测爬虫方法是检测请求HEADER中的User-Agent,防御方需要收集所有的爬虫,脚本语言,扫描器对应的User-Agent指纹,这种方法非常容易被绕过,几乎没有增加攻击成本。

基于JS-Injection:稍微进阶的爬虫检测方法,就是注入js,这个方法也是目前业界广泛使用的,在第一次访问请求时,返回注入的js,js执行一些计算逻辑,并将其放入cookie,再次发起请求验证,验证成功后,server向client发放一个token放在cookie里,以后的所有请求都需要携带该cookie标识已认证为非bot身份,同时也可以结合验证码认证。这种检测方法基于大部分非浏览器爬虫无法执行js脚本这个前提,攻击者如果分析注入的js的执行逻辑,然后用脚本去实现该逻辑运算,通过这种方法可以提供攻击成本,过滤很多不专业的工具/脚本攻击者。

基于Machine-Learning:通过机器学习,对访问请求进行建模,根据访问频率,访问路径,判断是否是爬虫行为,这种检测方法延迟较高,无法及时去主动防御,多数结合安全运营进行阶段性告警回溯。

上述的方法从技术原理来说和本次讨论的通过javascript收集用户信息通过算法进行唯一性指纹运算基本一致。

不同点分为三点

①是对于身份唯一id的生成在服务端运行,对攻击者来说算法不可见,绕过和破解难度更大;

②未来收集一定量访问的客户端信息后,可结合人工智能优化精确唯一身份的算法,更大程度提高了攻击成本,形成攻防不对等的局面;

③在安全开发阶段,可利用此技术将Web用户身份管理形成标准,嵌入开发流程,实现可跨系统,可分业务的用户画像追踪,解决收费账户共享、用户访问追踪的问题,也可以为后续的业务安全大数据计算提供数据支撑。

网络安全学习资源分享:

给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

因篇幅有限,仅展示部分资料,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,需要点击下方链接即可前往获取 

 读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

同时每个成长路线对应的板块都有配套的视频提供: 

大厂面试题

视频配套资料&国内外网安书籍、文档

当然除了有配套的视频,同时也为大家整理了各种文档和书籍资料

所有资料共282G,朋友们如果有需要全套《网络安全入门+进阶学习资源包》,可以扫描下方二维码或链接免费领取~ 

 读者福利 | CSDN大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

特别声明:

此教程为纯技术分享!本教程的目的决不是为那些怀有不良动机的人提供及技术支持!也不承担因为技术被滥用所产生的连带责任!本教程的目的在于最大限度地唤醒大家对网络安全的重视,并采取相应的安全措施,从而减少由网络安全而带来的经济损失。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/651339.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【爬虫软件】2024最新短视频评论区抓取工具

一、背景说明 1.0 采集目标 采集DOU音评论数据对引流截流和获客有很多好处。首先,通过分析DOU音评论数据,我们可以更好地了解用户对于产品或内容的喜好和需求,从而调整营销策略,吸引更多用户关注和点击。其次,评论数据…

Delft3D水动力-富营养化模型(水质模型)教程

原文链接:Delft3D水动力-富营养化模型(水质模型)教程https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247605459&idx5&sn105e94f09f0589172835ce8204519971&chksmfa821d34cdf59422b4f6c39b243373a23836d79841a1fcd19f9…

Java EE-Spring AOP 面向切面编程

Spring AOP https://www.cnblogs.com/joy99/p/10941543.html 超级详细版:Chapter 6. 使用Spring进行面向切面编程(AOP) AOP 原理 面向切面 ( Aspect Orient Programming ) 面向切面编程,是面向对象编程(OOP) 的一种补充。 在…

【海外app制作】海外短剧app系统搭建部署指南:多平台推广策略助力业务拓展,支付接口搭建部署。

海外短剧系统,顾名思义就是短剧系统海外版本。 教你三步完成一个海外短剧平台系统 首先我们看一下海外系统前端界面 首页就是我们展示剧的地方,可以根据地区不同,一键切换地区,比如中文切换为英文。那么界面语言就会变。可以设置…

字典推导式

自学python如何成为大佬(目录):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm1001.2014.3001.5501 使用字典推导式可以快速生成一个字典,它的表现形式和列表推导式类似。例如,我们可以使用下面的代码生成一个包含4个随机数的字…

DBeaver怎么将编辑栏内容放大

1、窗口–》编辑器–》放大 2、ctrl 3、页面结果展示

PS系统教学01

在前面几节内容基本介绍了PS的基本作用,简单的对PS中的某些基础功能进行介绍应用。 接下来我们进行系统的分享。 本次分享内容 基础的视图操作 接下来我们是对于PS工作区域的每个图标工具进行详细的分享 抓手工具缩放工具 这个图标是将工具栏由一列变成两列 一…

期权开户要多久的时间?能当天开好交易吗?

今天期权懂带你了解期权开户要多久的时间?能当天开好交易吗?期权,作为一种金融衍生品,它赋予了持有人在未来某个时间内购买或出售特定资产的权利,近年来在全球范围内得到了广泛的关注和应用。 期权开户要多久的时间&am…

Python操作MySQL数据库的工具--sqlalchemy

文章目录 一、pymysql和sqlalchemy的区别二、sqlalchemy的详细使用1.安装库2.核心思想3.整体思路4.sqlalchemy需要连接数据库5.使用步骤1.手动提前创建数据库2.使用代码创建数据表3.用代码操作数据表3.1 增加数据3.2 查询数据3.3 删除数据3.4 修改数据 一、pymysql和sqlalchemy…

服务高峰期gc,导致服务不可用

随着应用程序的复杂性和负载的不断增加,对JVM进行调优,也是保障系统稳定性的一个重要方向。 需要注意,调优并非首选方案,一般来说解决性能问题还是要从应用程序本身入手(业务日志,慢请求等)&am…

Python 机器学习 基础 之 模型评估与改进 【网格搜素】的简单说明

Python 机器学习 基础 之 模型评估与改进 【网格搜素】的简单说明 目录 Python 机器学习 基础 之 模型评估与改进 【网格搜素】的简单说明 一、简单介绍 二、网格搜索 1、简单网格搜索 2、参数过拟合的风险与验证集 3、带交叉验证的网格搜索 附录 一、参考文献 一、简单…

【Web】2024 京麒CTF ezjvav题解

目录 step 0 step 1 step 2 EXP1 EXP2 step 0 进来是一个登录框 admin/admin成功登录 访问./source jwt伪造 带着伪造的jwt访问./source,拿到题目源码jar包 step 1 pom依赖有spring、fj、rome 反序列化入口在./Jsrc路由 有两层waf,一个是明…

深入了解python的关键字“break”与循环退出策略

新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一、break关键字的基础理解与用途 二、通过案例理解break的应用 三、总结break在编程中的实…

Linux中ftp配置

一、ftp协议 1、端口 ftp默认使用20、21端口 20端口用于建立数据连接 21端口用于建立控制连接 2、ftp数据连接模式 主动模式:服务器主动发起数据连接 被动模式:服务器被动等待数据连接 二、ftp安装 yum install -y vsftpd #---下…

django-celery-beat自动调度异步任务

Celery是一个简单、灵活且可靠的分布式系统,专门用于处理大量消息的实时任务调度。它支持使用任务队列的方式在分布的机器、进程、线程上执行任务调度。Celery不仅支持异步任务(如发送邮件、文件上传、图像处理等耗时操作),还支持…

拥有这几个3dMax插件,科研绘图让我省时又省力!

DNAChain(一键生成DNA链) 3DMAX一键生成DNA链插件DNAChain,沿着线条路径一键生成DNA链条,你可以用它创建非常有趣的图案和效果。 3dMax不仅在影视动画、建筑室内、环境艺术等领域应用广泛,同样,它在科研绘图…

C++ AI 编程助手

这两年 AI 发展迅猛,作为开发人员,我们总是追求更快、更高效的工作方式,AI 的出现可以说改变了很多人的编程方式。 AI 对我们来说就是一个可靠的编程助手,给我们提供了实时的建议和解决方案,无论是快速修复错误、提升…

解决:java.util.concurrent.RejectedExecutionException

一 发现RejectedExecutionException错误 今天查看服务器的时候发现了一些java.util.concurrent.RejectedExecutionException错误,这个是由于线程池里的线程忙不过来报出的。如下图: 像这种 RejectedExecutionException 错误,表明在Java应…

vue中封装组件实例

本篇是一篇组件封装。因为要经常使用,特此封装并且记录下来,以供参考。 封装组件:封装组件是指将一段具有特定功能的Vue代码(包括模板、脚本和样式)封装成一个可复用的组件。这个组件可以作为一个独立的单元&#xff…

Java毕业设计 基于springboot vue考勤管理系统

Java毕业设计 基于springboot vue考勤管理系统 SpringBoot 考勤管理系统 功能介绍 员工 登录 个人中心 修改密码 个人信息 员工请假管理 员工出差管理 薪资管理 员工签到管理 公告管理 管理员 登录 个人中心 修改密码 个人信息 员工管理 员工请假管理 员工出差管理 薪资管理…