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

news2024/9/22 1:00:24

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大礼包:《网络安全入门&进阶学习资源包》免费分享(安全链接,放心点击)

特别声明:

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

训练YOLOv9-S(注意:官方还没有提供YOLOv9-S的网络,我这是根据网络博客进行的步骤,按照0.33、0.50比例调整网络大小,参数量15.60M,计算量67.7GFLOPs)

文章目录 1、自己动手制造一个YOLOv9-S网络结构1.1 改前改后的网络结构(参数量、计算量)对比1.2 一些发现,YOLOv9代码打印的参数量计算量和Github上提供的并不一致,甚至yolov9-c.yaml代码打印出来是Github的两倍1.3 开始创造YOLOv…

参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning

参数高效微调PEFT(一)快速入门BitFit、Prompt Tuning、Prefix Tuning 目前,模型最全的网站是HuggingFace,但是国内需要魔法流量才能访问。另外,现在大模型权重文件都较大,也会浪费不少流量,因此这里推荐使用魔搭社区下…

深入探索C++模板进阶:掌握非类型参数、特化技巧与分离编译的艺术

目录 非类型模板参数 类模板的特化 概念 函数模板特化 类模板特化 全特化 偏特化 类模板特化应用示例 模板的分离编译 分离编译概念 模板的分离编译 解决方法 模板总结 非类型模板参数 模板参数可分为类型形参和非类型形参。 类型形参: 出现在模板参数列表中&am…

华为云之Zabbix监控平台部署实践

华为云之Zabbix监控平台部署实践 一、本次实践介绍1.1 实践环境简介1.3 本次实践完成目标 二、 相关服务介绍2.1 华为云ECS云服务器介绍2.2 Zabbix介绍 三、环境准备工作3.1 预置实验环境3.2 查看预置环境信息 四、登录华为云4.1 登录华为云4.2 查看ECS状态4.3 连接ECS弹性云服…

CMake-gui中选择vs编译器没有指定版本解决办法

CMake-gui中选择vs编译器,但是没有指定版本怎么办? 正文 cMake-gui中选择vs编译器时,有Visual Studio 2008、2013、2015、2017、2019,但就是没有的2022的版本,如图: 因为小编目前使用的Visual Studio版…

由于找不到d3dx9_39.dll,无法继续执行代码的5种解决方法

在现代科技发展的时代,电脑已经成为我们生活中不可或缺的一部分。然而,由于各种原因,我们可能会遇到一些电脑问题,其中之一就是“d3dx9_39.dll丢失”。这个问题可能会导致我们在运行某些游戏或应用程序时遇到错误提示,…

机器学习入门指南:Jupyter Notebook实战

前言 机器学习作为人工智能领域的核心组成,是计算机程序学习数据经验以优化自身算法、并产生相应的“智能化的“建议与决策的过程。随着大数据和 AI 的发展,越来越多的场景需要 AI 手段解决现实世界中的真实问题,并产生我们所需要的价值。 机…

eDNA热门应用案例一网打尽

一份环境样品中,可包含的DNA片段能达到上千万个,而每一个物种能携带的DNA又是独一无二的。将从样品中获得的遗传标记序列与DNA数据库中的序列相比对,从而确认分析的DNA来自什么物种,这就是环境DNA宏条形码技术(eDNA Me…

拼多多商品详情商品标题sku等信息抓取接口API调用步骤演示

接口名称:item_get_app_pro 公共参数 名称类型必须描述keyString是调用key(必须以GET方式拼接在URL中)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_sho…

低代码的原理、发展历史、使用场景和优势。

在数字化转型的浪潮中,低代码开发平台(YDUIbuilder)以其独特的优势迅速崛起,为各行各业带来了创新的解决方案。本文将深入探讨低代码的原理、发展历史、使用场景以及它所带来的优势。 gitee下载:yduibuilder: 快速开发…

Spring AOP失效的场景事务失效的场景

场景一:使用this调用被增强的方法 下面是一个类里面的一个增强方法 Service public class MyService implements CommandLineRunner {private MyService myService;public void performTask(int x) {System.out.println("Executing performTask method&quo…

LeetCode题练习与总结:将有序数组转换为二叉搜索树--108

一、题目描述 给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵平衡二叉搜索树。 示例 1: 输入:nums [-10,-3,0,5,9] 输出:[0,-3,9,-10,null,5] 解释:[0,-10,5,null,-3,null,9] 也将…

流程引擎之compileflow idea 2024.*插件支持

之前有使用过多种类型工作流,但最近研究工作流引擎对比各有优劣,compileflow内存支持性能不错,但在idea新版本使用的时候发现插件不支持,干脆自己修改源码手撸一个(当前版本2024.1验证可用,如果有其他版本不…

Vue框架动态引入省份个性化代码

项目需求有产品的功能,但是功能下部分小功能每个省份有不同的控制,所以需要引入省份个性化代码。 思路是,页面一开始加载产品化的代码,有个性化的代码就加载个性化的逻辑,个性化代码是产品化代码的重写,所…

QT如何将生成的exe文件打包成安装包

一、生成exe文件 1、生成exe文件 QT编译模式选择release,然后点击编译: 2、找到exe文件 在开发文件夹下找到build-xxxxxxx-Release文件夹里面找到exe文件 3、相关依赖dll文件查找 新建个空文件夹将exe文件拷贝进去: 然后找到如下程序…

数据结构-二叉树系统性学习(四万字精讲拿捏)

前言 这里我会从二叉树的概念开始讲解,其次涉及到概念结构,以及堆的实现和堆排序。 目的是,堆比二叉树简单,同时堆本质上是二叉树的其中一种情况,堆属于二叉树顺序结构的实现 最后完善二叉树的讲解,也就是…

SpringBoot 结合 WebSocket 实现聊天功能

目录 一、WebSocket 介绍 二、源码 2.1 pom.xml 2.2 WebSocket配置类,用于配置WebSocket的相关设置 2.3 自定义WebSocket处理器类,用于处理WebSocket的生命周期事件 2.4 自定义WebSocket握手拦截器,用于增强WebSocket的握手过程 2.5 Ses…

网络编程-TCP

一、TCP的相关IP 1.1 SeverSocket 这是Socket类,对应到网卡,但是这个类只能给服务器使用. 1.2 Socket 对应到网卡,既可以给服务器使用,又可以给客户端使用. TCP是面向字节流的,传输的基本单位是字节. TCP是有连接的,和打电话一样,需要客户端拨号,服务器来听. 服务器的内核…

夏日将至,给手机装个“液冷”降温可行吗?

夏天出门在外,手机总是更容易发热,尤其是顶着大太阳用手机的时候,更是考验手机的散热能力。如果你也是一个对手机体验有追求的人,比较在意手机的温度,那么可以考虑入手一个微泵液冷手机壳。 【什么是微泵液冷壳&#…