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

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

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

相关文章

RK3568平台(网络篇)MAC地址烧录

一.max地址简介 MAC地址(Media Access Control Address)也称为硬件地址或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。在OSI模型中,第二层数据链路层则负责MAC位址 。MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都…

JAVA零基础入门——面向对象

1.继承 1.1 继承概念 继承的概念:继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。我们将"继承概念"分为两类:…

Kotlin cancel CoroutineScope.launch的任务后仍运行

Kotlin cancel CoroutineScope.launch的任务后仍运行 import kotlinx.coroutines.*fun main() {runBlocking {val coroutineScope CoroutineScope(Dispatchers.IO)val job coroutineScope.launch {var i 0while (i < Int.MAX_VALUE) {iprintln(i)}}// 2ms 取消协程delay(…

输电线路缺陷检测数据集(绝缘子自爆,破损,闪络,鸟巢,防震锤脱落五种缺陷)

输电线路数据集&#xff08;绝缘子自爆&#xff0c;破损&#xff0c;闪络&#xff0c;鸟巢&#xff0c;防震锤脱落五种缺陷&#xff09;包括&#xff1a; 1.绝缘子自爆 2.绝缘子破损绝、闪络 3.鸟巢 4.防震锤脱落 数据增强后的数量 对应数量&#xff1a;1828&#xff0c;1467&a…

新手学习Python第八天——学习笔记

今天08&#xff1a;10才到实验室&#xff0c;昨天晚上感冒了又没睡好所以就来晚了。 师弟送了我一袋感冒灵&#xff0c;希望尽快好。 开始复习昨天的内容 08&#xff1a;29 刚刚弄完建模大赛的报名和校内举办的游园会 一看10&#xff1a;00 1. 递归函数&#xff1a; 1.…

【GESP】C++一级练习BCQM3008,审题更重要,printf的格式化输出

跟BCQM3005一样&#xff0c;都是printf的格式化输出练习题。不过从题目描述过程来看&#xff0c;审题过程比题目本身更重要。 BCQM3008 题目要求 描述 雪花 一片两片三四片&#xff0c; 五片六片七八片&#xff0c; 九片十片无数片&#xff0c; 飞入梅花看不见。 试编一程序…

【C++】C++11-包装器

目录 1、function包装器 2、function包装器包装成员函数指针 2.1 静态成员函数 2.2 非静态成员函数 3、bind包装器 3.1 调整参数顺序 3.2 调整参数个数 1、function包装器 包装器是用来包装可调用对象的&#xff0c;这里的可调用对象主要有函数指针、仿函数、lambda表达…

基于Delphi的题库生成系统

基于Delphi的题库生成系统是一个复杂的项目&#xff0c;涉及到多个模块的设计和实现。以下是一个简化的代码案例&#xff0c;展示了如何使用Delphi构建一个基本的题库生成系统。 1. 数据库设计 首先&#xff0c;你需要设计一个数据库来存储试题信息。一个简单的数据库设计可…

缓存穿透 问题(缓存空对象)

文章目录 1、缓存穿透2、缓存空对象3、AlbumInfoApiController --》getAlbumInfo()4、AlbumInfoServiceImpl --》getAlbumInfo()5、RedisConstant6、请求缓存不存在的数据 1、缓存穿透 2、缓存空对象 3、AlbumInfoApiController --》getAlbumInfo() GetMapping("getAlbumI…

经济基础决定上层建筑,好芯片构建好音质——模拟芯片龙头德州仪器的D类音频放大器TAS6424-Q1

在文娱生活愈加丰富的现时今日,在行驶途中,打开车载音响听听喜爱的音乐,或是直接打开收音机收听不同频段的电台节目,都是行车途中不可或缺的部分。如此看来,汽车是否搭载优秀的音响系统,成为了消费者选购车辆时的重要指标。 而如何让汽车拥有出色的音响主机呢?那就得请出…

Web后端服务平台解析漏洞与修复、文件包含漏洞详解

免责申明 本文仅是用于学习检测自己搭建的Web后端服务平台解析漏洞、文件包含漏洞的相关原理,请勿用在非法途径上,若将其用于非法目的,所造成的一切后果由您自行承担,产生的一切风险和后果与笔者无关;本文开始前请认真详细学习《‌中华人民共和国网络安全法》‌及其所在国…

将有序数组——>二叉搜索树

给你一个整数数组 nums &#xff0c;其中元素已经按 升序 排列&#xff0c;请你将其转换为一棵平衡二叉搜索树。 示例 1&#xff1a; 输入&#xff1a;nums [-10,-3,0,5,9] 输出&#xff1a;[0,-3,9,-10,null,5] 解释&#xff1a;[0,-10,5,null,-3,null,9] 也将被视为正确答案…

PyRFC 适用于 Python 的异步、非阻塞 SAP NetWeaver RFC SDK 绑定

Asynchronous, non-blocking SAP NetWeaver RFC SDK bindings for Python. 适用于 Python 的异步、非阻塞 SAP NetWeaver RFC SDK 绑定 Call for Maintainers This project is currently looking for new maintainers. Please see this issue for details. Features Client …

A review on rumour prediction and veracity assessment in online social network

ABSTRACT 在当今时代&#xff0c;社交网络被用作分享个人思想和观点的重要媒介。其背后的主要原因是&#xff0c;它可以轻松地在公众中快速传播信息&#xff0c;并且访问成本非常低。这导致在线社交媒体成为鼓励虚假内容并影响公众舆论及其决策的垫脚石之一。谣言是社交媒体上误…

论文速递!时序预测!DCSDNet:双卷积季节性分解网络,应用于天然气消费预测过程

本期推文将介绍一种新的时序预测方法:双卷积季节性分解网络&#xff08;Dual Convolution withSeasonal Decomposition Network, DCSDNet&#xff09;在天然气消费预测的应用&#xff0c;这项研究发表于《Applied Energy》期刊。 针对天然气消费的多重季节性和非规律性&#x…

木牛科技PMO总监关沨受邀为第四届中国项目经理大会演讲嘉宾

全国项目经理专业人士年度盛会 北京木牛领航科技有限公司PMO总监关沨女士受邀为PMO评论主办的全国项目经理专业人士年度盛会——2024第四届中国项目经理大会演讲嘉宾&#xff0c;演讲议题为“如何培养能打胜仗的项目经理”。大会将于10月26-27日在北京举办&#xff0c;主题为&a…

Android插件化(三)基础之Android应用程序资源的编译和打包过程分析

Android插件化(三)基础之Android应用程序资源的编译和打包过程分析 Android资源加载常规思路 getResourcesForApplication //首先&#xff0c;通过包名获取该包名的Resources对象 Resources res pm.getResourcesForApplication(packageName); //根据约定好的名字&#xff0c…

C++日期类,详细!!!

日期类的练习可以巩固提高之前所学习的知识&#xff0c;还可以完成关于的日期练习 下面是关于日期的对应oj题 KY111 日期差值 计算一年的第几天 累加天数 1.Date.h 头文件部分 看看我们要实现那些接口 1.获取对应月份的天数:GetMonthDay 2. < > …

leetcode41. 缺失的第一个正数,原地哈希表

leetcode41. 缺失的第一个正数 给你一个未排序的整数数组 nums &#xff0c;请你找出其中没有出现的最小的正整数。 请你实现时间复杂度为 O(n) 并且只使用常数级别额外空间的解决方案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,0] 输出&#xff1a;3 解释&#xf…

计算机三级网络技术总结(五)

HTTP端口号为80 三平台一出口&#xff1a;网络平台、业务平台、管理平台和城市宽带出口IEEE802.16最高传输速率为134Mbps链路状态数据库中保存的是全网的拓扑结构图&#xff0c;而非全网完整的路由表在无线局域网中&#xff0c;客户端设备用来访问接入点&#xff08;AP&#xf…