当前位置: 首页 > news >正文

恶意Bot流量识别分析实践

1、摘要

随着互联网的发展,自动化工具和脚本(Bots)的使用越来越普遍。虽然一些善意 Bots 对于网站的正常运行和数据采集至关重要,但恶意 Bots 可能会对网站带来负面影响,如爬取敏感信息、恶意注册、刷流量等。因此,检测和分析 Bot 流量变得至关重要。

Bot恶意流量检测手段大致可分为前端检测和后端数据分析,前端包括设备指纹获取、浏览器插件信息获取等,后端主要是制定检测模型,与威胁情报、IP信誉等手段结合。在整个恶意流量识别过程中,前端与后端的两者相辅相成。

在这篇文章中,我们将基于网宿自身站点的访问日志分析,探讨如何使用后端基础检测方案来分析识别恶意Bot流量,包括 IP 情报、 User-Agent、 TLS 指纹、 请求头特征等。

2、情报与检测策略

威胁情报是支撑后端检测模型最重要的数据之一,通过这些信息,安全专家可以更好地预防、检测和应对网络攻击。持续更新和共享威胁情报是防范恶意Bot攻击的关键步骤,能够大幅提升整体防御水平,保障网络的稳定和安全。我们可以通过以下方式来检测恶意Bots请求:

IP情报

IP作为互联网的身份标识,一直是黑灰产竞争最激烈的资源。随着防护手段的升级,黑产技术也在快速发展,秒播代理、4G代理代理、动态住宅代理成为当前主流的黑产IP资源,大量应用于各种Bot场景中,包括恶意刷量、注册、抢票、薅羊毛等,由于其代理的隐匿性较高,特征难以被发现,因此对互联网安全存在较高的威胁。因此如何收集IP情报以及使用IP情报在恶意Bot流量检测中显得尤为重要。

特性秒播IP4G代理动态住宅代理
来源数据中心服务器移动运营商4G网络互联网服务提供商(ISP)
隐匿性较低,易被识别为代理IP高,难以被识别为代理IP高,难以被识别为代理IP
动态变化可以快速切换,但仍较易被识别高频率动态变化,隐匿性强动态变化,隐匿性强
带宽和性能高带宽和高性能,适合大规模数据传输带宽有限,性能受移动网络环境影响较低带宽,受家庭网络环境限制
成本较低较高较高
应用场景数据抓取、网络营销、自动化测试账号注册登录、广告点击、投票、反爬虫绕过反爬虫绕过、广告验证、访问受限内容

对IP特征和行为上分析有助于我们持续定位和收集威胁情报:

地理位置过滤:正常用户的访问通常来自全球各地,而恶意Bot可能集中在特定的国家或地区。例如,短时间内来自同一个IP段的访问,如图1所示。

图1 异常IP段

ISP和数据中心过滤:普通用户通常使用家庭宽带或移动网络,而恶意Bot 流量IP通常来自于云厂商或者数据中心,识别这些ISP信息,可以帮助过滤潜在的恶意流量,如图2所示。

图2 数据中心IP

DDoS攻击源:DDoS攻击场景与恶意Bot场景通用需要使用代理或者僵尸网络,同一批恶意IP通常不会只发起一次攻击,而是会被多次使用,如图3所示。

图3 DDoS攻击源

TLS指纹

TLS指纹是一种极其有效的工具,通过对TLS客户端client hello包中的不同字段进行深入分析,我们可以生成独特的JA4指纹并利用这些指纹来识别特定的恶意Bot流量。此前我们已着重对TLS指纹进行深度分析,在本文中不再赘述,感兴趣的读者可以访问文章:https://www.freebuf.com/articles/web/393136.html

TLS策略详情描述
Chrome 指纹异常User_agent为Chrome,但是实际tls指纹不匹配
Firefox 指纹异常User_agent为Firefox,但是实际tls指纹不匹配
MS Edge 指纹异常User_agent为Edge,但是实际tls指纹不匹配
Safari 指纹异常User_agent为Safari,但是实际tls指纹不匹配
IE 指纹异常User_agent为IE,但是实际tls指纹不匹配
Opera 指纹异常User_agent为Opera,但是实际tls指纹不匹配
不常见的指纹tls指纹异常并且很少见

HTTP请求头检测策略

正常用户的请求通常带有丰富的HTTP头信息,包括用户代理(User-Agent)、浏览器版本、操作系统等信息,而恶意爬虫往往使用伪造或异常的User-Agent字符串,甚至可能缺少其他必需的头信息。

3、策略模型

诚然,在Bots对抗场景中,仅基于特征来识别Bots未免有些太小儿科,也容易被攻击者通过通过伪造特征的方式绕过检测手段,因此,多特征模型检测的重要性不言而喻,它不是单一维度的检测,而是基于多维度数据分析进行综合评估,不仅有助于提高识别效率,也同时能降低误报的风险。

在情报和检测策略的基础上,我们可以制定策略的权重和得分,当一个请求发起的时候,根据命中的策略进行评分,本方案设置三个区间:可疑、中风险、高风险,并根据风险等级进行不同的处置动作,各风险等级的分数如下:

可疑:0-20分
中风险:20-60分
高风险:大于60分

Bot对抗过程中,除了识别准确率之外,误报率是衡量一个模型是否可靠的重要性指标,虽然恶意Bot流量给网站带来很大的影响,但是误报可能给业务带来灾难性的后果,因此Bot检测模型设计的时候,在保证准确率的同时更应尽量避免误报的发生。

使用评分方式来设计模型的好处在于具备一定的容错率,通常情况下一个恶意的Bot请求会有多个异常特征,而正常的请求不可能具备多个异常特征。因此在进行高风险处置的情况下,准确性较高,误报率较低。

图4 检测模型

4、流量分析

数据过滤

通过第三步的检测模型,对线上流量进行统计分析,选取部分模型结果为高风险的IP进行验证,筛选的高风险IP对应的得分如图5所示:

图5高风险IP

数据验证

验证模型输出结果的准确性以及是否误报,借助国内知名威胁情报中心对高风险IP进行查询,结果如图所示,7个IP中2个为恶意,3个可疑,2个未知。

图6 威胁情报查询

为了进一步验证准确性,将2个未知风险IP:111.170.14.*(IDC服务器)、106.15.73.*(阿里云IP) 进一步分析。

通过异常指纹情报库查询发现IP:111.170.14.* 在6月7号-6月9号出现过异常指纹特征,并伪造了Chrome95、69、114,如图7所示。IP 106.15.73.* 则更为活跃,并伪造了多种类型的浏览器进行异常访问,如图8所示。

图7 异常指纹情报

图8 异常指纹情报

通过上述模型过滤,可以得出风险较高的请求,通过结合其他处置动作,例如验证码等操作,可以有效过滤恶意流量,从而保障业务的安全和稳定。

5、结语

在当今数字化时代,恶意Bot流量已成为威胁网络安全和数据隐私的主要挑战之一。通过对IP地址、请求头和TLS指纹的综合分析,我们能够更有效地识别和防范恶意Bot的活动。这些技术手段不仅有助于提升网站和应用的安全性,还能优化用户体验,防止合法用户受到不必要的影响。

在本文中,我们探讨了如何利用这些关键数据点来检测和分析恶意Bot流量。通过详细的案例研究和实验,我们展示了多层次防御机制的重要性,以及不同方法的协同作用。虽然恶意Bot的技术手段不断进化,但通过持续的研究和技术创新,我们有能力保持在这场网络安全攻防战中的主动地位。

未来的研究方向可能包括更多的机器学习算法应用、更精细的指纹识别技术,以及跨平台的协同防御机制。我们相信,随着技术的不断进步和安全社区的共同努力,互联网将变得更加安全和可靠。

总的来说,恶意Bot流量的分析和防护是一项复杂但至关重要的任务。通过不断更新和优化我们的检测和防御策略,我们能够更好地保护网络环境,确保互联网的健康发展。

相关文章:

恶意Bot流量识别分析实践

1、摘要 随着互联网的发展,自动化工具和脚本(Bots)的使用越来越普遍。虽然一些善意 Bots 对于网站的正常运行和数据采集至关重要,但恶意 Bots 可能会对网站带来负面影响,如爬取敏感信息、恶意注册、刷流量等。因此&am…...

Java2 实用教程(第6版)习题2 第四题

【源文件的命名与书中的不同】 四、阅读程序题 1、上机运行下列程序&#xff0c;注意观察输出的结果。 public class E2_1 {public static void main(String args[]){for(int i20302;i<20322;i){System.out.println((char) i);}} } 运行结果&#xff1a; 低 住 佐 佑 佒…...

HashMap和ConcurrentHashMap的区别

1.是什么 HashMap和ConcurrentHashMap都是Java集合框架中的成员&#xff0c;它们用于存储键值对&#xff0c;但它们在并发场景下的表现和行为有很大的不同。以下是它们之间的一些主要区别&#xff1a; 1. 并发安全性 HashMap: HashMap不是线程安全的。如果多个线程同时访问Has…...

css 下拉框展示:当hover的时候展示下拉框 z-index的用法解释

代码如下&#xff1a; <template><div class"outer"><div class"left"></div><div class"aTest2"><div class"box">显示方框</div><div class"aTest3"></div></…...

spring装配笔记

spring装配是个大课题&#xff0c;能懂一点是一点吧。 关于代码链路&#xff0c;最后的方式就是倒序摸索&#xff0c;正序那么多逻辑&#xff0c;没有一百万也差不多少&#xff0c;所以就用倒序。 .(点号)和#井号是一个意思&#xff0c;下面代码可能不详细区分&#xff0c;复…...

vscode【实用插件】Notes 便捷做笔记

安装 在 vscode 插件市场的搜索 Notes点 安装 安装成功后&#xff0c;vscode 左侧栏会出现 使用 初次使用 需先选择一个本地目录 重启 vscode 后&#xff0c;得到 切换笔记目录 新建笔记 快捷键为 Alt N 默认会创建 .md 文件 配合插件 Markdown Preview Enhanced 预览 .md…...

中间件:maxwell、canal

文章目录 1、底层原理&#xff1a;基于mysql的bin log日志实现的&#xff1a;把自己伪装成slave2、bin log 日志有三种模式&#xff1a;2.1、statement模式&#xff1a;2.2、row模式&#xff1a;2.3、mixed模式&#xff1a; 3、maxwell只支持 row 模式&#xff1a;4、maxwell介…...

postman控制变量和常用方法

1、添加环境&#xff1a; 2、环境添加变量&#xff1a; 3、配置不同的环境&#xff1a;local、dev、sit、uat、pro 4、 接口调用 5、清除cookie方法&#xff1a; 6、下载文件方法&#xff1a;...

Spring Boot 中整合 Kafka

在 Spring Boot 中整合 Kafka 非常简单&#xff0c;Spring Kafka 提供了丰富的支持&#xff0c;使得我们可以轻松地实现 Kafka 的生产者和消费者。下面是一个简单的 Spring Boot 整合 Kafka 的示例。 1. 添加依赖 首先&#xff0c;在 pom.xml 中添加 Spring Kafka 的依赖&#…...

什么是开放式耳机?具有什么特色?非常值得入手的蓝牙耳机推荐

开放式耳机是当下较为热门的一种耳机类型。它具有以下特点&#xff1a; 设计结构&#xff1a; 呈现开放式的构造&#xff0c;不会完全堵住耳道。如此一来&#xff0c;外界声音能够较容易地被使用者听到&#xff0c;在使用耳机时可以保持对周围环境的察觉。比如在户外&#xf…...

编译 FFmpeg 以支持 AV1 编解码器以及其他硬件加速选项(如 NVENC、VAAPI 等)

步骤 1: 安装必要的依赖 sudo apt update sudo apt install -y \autoconf automake build-essential cmake git libass-dev libfreetype6-dev \libsdl2-dev libtool libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev \libxcb-xfixes0-dev pkg-config texinfo wget zlib1g-…...

解释一下Java中的多线程。如何创建一个新的线程?

在Java中&#xff0c;多线程是一种机制&#xff0c;允许一个程序同时执行多个任务或处理。每个任务被称为一个线程。 这种并行执行可以极大地提高应用程序的效率和响应速度。 例如&#xff0c;在开发一个桌面应用程序时&#xff0c;你可以使用一个线程来更新用户界面&#xf…...

Java语言程序设计基础篇_编程练习题**18.30 (找出单词)

题目&#xff1a;**18.30 (找出单词) 编写一个程序&#xff0c;递归地找出某个目录下的所有文件中某个单词出现的次数。从命令行如下传递参数&#xff1a; java Exercise18_30 dirName word 习题思路 &#xff08;读取路径方法&#xff09;和18.28题差不多&#xff0c;把找…...

MyBatis中 #{} 和 ${} 的区别

1. #{id}&#xff08;参数占位符&#xff09; 作用: 使用 #{id} 时&#xff0c;MyBatis 会将 id 参数绑定为 JDBC 的参数。这种方式能够有效防止 SQL 注入攻击&#xff0c;因为它会进行参数的预处理&#xff0c;将参数值作为数据类型的绑定&#xff0c;而不是直接插入到 SQL 语…...

Android Perfetto 学习

1、如何抓取性能日志 方式1、通过手机里的System Tracing抓取 1、点击Settings->System->Developer options->System Tracing->Record trace 打开 2、操作完成后&#xff0c;点击Settings->System->Developer options->System Tracing->Record trace…...

ES数据的删除与备份

背景 需要删除索引下满足指定条件的文档数据&#xff0c;并将删除的数据进行备份。 操作步骤 新建索引 该索引结构与映射关系与原索引一致 查看原索引设置 GET /tb/_settings结果&#xff1a; {"tb" : {"settings" : {"index" : {"ro…...

论文解读《Object-Centric Learning with Slot Attention》

系列文章目录 文章目录 系列文章目录论文细节理解 1. 研究背景2. 论文贡献3. 方法框架3.1 Slot Attention模块3.2 无监督对象发现架构 4. 研究思路5. 实验6. 限制 论文细节理解 supervised property prediction tasks是什么&#xff1f; Supervised property prediction tasks…...

YOLOv8+注意力机制+PyQt5玉米病害检测系统完整资源集合

资源包含可视化的玉米病害检测系统&#xff0c;基于最新的YOLOv8注意力机制训练的玉米病害检测模型&#xff0c;和基于PyQt5制作的可视玉米病害系统&#xff0c;包含登陆页面和检测页面&#xff0c;该系统可自动检测和识别图片或视频当中出现的七类玉米病害&#xff1a;矮花叶病…...

tcp、udp通信调试工具Socket Tool

tcp、udp通信调试工具Socket Tool ]...

MedPrompt:基于提示工程的医学诊断准确率优化方法

Medprompt&#xff1a;基于提示工程的医学诊断准确率优化方法 秒懂大纲解法拆解MedPrompt 提示词全流程分析总结创意视角 论文&#xff1a;Can Generalist Foundation Models Outcompete Special-Purpose Tuning? Case Study in Medicine 秒懂大纲 ├── 1 研究背景【描述背…...

日语AI面试高效通关秘籍:专业解读与青柚面试智能助攻

在如今就业市场竞争日益激烈的背景下&#xff0c;越来越多的求职者将目光投向了日本及中日双语岗位。但是&#xff0c;一场日语面试往往让许多人感到步履维艰。你是否也曾因为面试官抛出的“刁钻问题”而心生畏惧&#xff1f;面对生疏的日语交流环境&#xff0c;即便提前恶补了…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

恶补电源:1.电桥

一、元器件的选择 搜索并选择电桥&#xff0c;再multisim中选择FWB&#xff0c;就有各种型号的电桥: 电桥是用来干嘛的呢&#xff1f; 它是一个由四个二极管搭成的“桥梁”形状的电路&#xff0c;用来把交流电&#xff08;AC&#xff09;变成直流电&#xff08;DC&#xff09;。…...

密码学基础——SM4算法

博客主页&#xff1a;christine-rr-CSDN博客 ​​​​专栏主页&#xff1a;密码学 &#x1f4cc; 【今日更新】&#x1f4cc; 对称密码算法——SM4 目录 一、国密SM系列算法概述 二、SM4算法 2.1算法背景 2.2算法特点 2.3 基本部件 2.3.1 S盒 2.3.2 非线性变换 ​编辑…...

归并排序:分治思想的高效排序

目录 基本原理 流程图解 实现方法 递归实现 非递归实现 演示过程 时间复杂度 基本原理 归并排序(Merge Sort)是一种基于分治思想的排序算法&#xff0c;由约翰冯诺伊曼在1945年提出。其核心思想包括&#xff1a; 分割(Divide)&#xff1a;将待排序数组递归地分成两个子…...