searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

爬虫检测之访问行为特征提取

2023-10-30 09:20:20
19
0

概述

网络爬虫又称为“网络蜘蛛”,是一种按照一定的规则,自动抓取互联网信息的程序或者脚本。网络爬虫按照其使用用途可分为良性爬虫和恶意爬虫,良性爬虫就是通过正规途径和手段获取网站信息和数据,恶意爬虫主要用于非法盗窃数据,给网站服务器增加负担。为了提高网站的性能,保障网站安全性,降低其遭受攻击的风险,有必要对爬虫访问网站行为进行限制,因此需要进行爬虫检测,识别出爬虫行为还是普通用户行为。爬虫和普通用户的访问行为在许多方面存在差异,这些差异基于访问模式、访问频率、请求特征和并发性等因素。通过提取网站访问日志,从日志中提取访问会话,从会话中提取出不同维度的行为特征,以此来度量爬虫与普通用户会话的差异,进行后续的爬虫检测。

访问行为特征提取

1. 信息熵特征

不同类型网络爬虫访问网站内容针对性更强,要么都访问一个格式的文件,比如要么都是html,或者jpg等格式,而普通用户访问网站内容通常比较杂乱。用熵来度量访问网站内容的无序性,无序性越大,随机性越高,熵越大。无序性越小,随机性越低,熵越小。普通用户访问网站内容的熵往往比爬虫访问网站内容的熵更大。从会话的请求 uri中提取出请求文件后缀,判断请求文件类型,计算会话中请求不同类型文件的数目占总请求数的比例,从而计算信息熵值。

2. 周期性特征

爬虫访问网站比较有规律,访问的时间间隔相对固定,即频繁且具有一定的周期性,而普通用户访问网站具有突发性和随机性。如果将普通用户的访问看成是随机分布的话,那么爬虫的访问则可以看成是近似均匀分布,爬虫访问网站的周期性比普通用户访问网站的周期性更强。在一个会话中,将所有日志请求时间看成是离散时间序列,用相邻日志请求时间间隔最大重复率来度量请求周期性,如果一个会话的请求时间间隔最大重复率越大,则该会话的周期性越强。

3. 各种类型文件请求百分比

网站中包含了不同类型的文件,由于访问用途不同,爬虫用户与普通人类用户对不同类型文件的请求百分比不同。从会话的请求uri中提取出请求文件后缀,判断请求文件类型。分别计算出网页及文本文件、脚本文件、图像文件、多媒体文件、下载类文件及其他类型文件的请求数占会话总请求数的比例。

4. 请求频率

虽然存在部分爬虫模拟人类用户行为,将网站请求频率放低,但是爬虫与正常用户的请求频率仍存在一定差异。会话请求频率=会话中的总请求数/会话时间窗口。

5. 请求唯一页面数

统计一个会话中没有重复的网页及文本文件请求数。

6. 有效html请求数

统计一个会话中请求html页面类型,且响应状态码为200的请求数。

7. 有效请求总数

统计一个会话中,响应状态码为200的有效请求数。

8. 请求错误百分比

统计一个会话中,响应状态码为4xx的错误请求数占请求总数的比例。

9. 无referer请求百分比

统计一个会话中,referer字段为空的请求数占请求总数的比例。

10. 是否请求robots.txt文件

爬虫通常会访问robots.txt文件,而普通用户很少访问robots.txt文件。如果一个会话中请求了robots.txt文件,则该特征取值为1,否则为0。

11. 网页及文本文件请求总数

统计一个会话中网页及文本文件请求数。

0条评论
0 / 1000
张****羽
6文章数
0粉丝数
张****羽
6 文章 | 0 粉丝
原创

爬虫检测之访问行为特征提取

2023-10-30 09:20:20
19
0

概述

网络爬虫又称为“网络蜘蛛”,是一种按照一定的规则,自动抓取互联网信息的程序或者脚本。网络爬虫按照其使用用途可分为良性爬虫和恶意爬虫,良性爬虫就是通过正规途径和手段获取网站信息和数据,恶意爬虫主要用于非法盗窃数据,给网站服务器增加负担。为了提高网站的性能,保障网站安全性,降低其遭受攻击的风险,有必要对爬虫访问网站行为进行限制,因此需要进行爬虫检测,识别出爬虫行为还是普通用户行为。爬虫和普通用户的访问行为在许多方面存在差异,这些差异基于访问模式、访问频率、请求特征和并发性等因素。通过提取网站访问日志,从日志中提取访问会话,从会话中提取出不同维度的行为特征,以此来度量爬虫与普通用户会话的差异,进行后续的爬虫检测。

访问行为特征提取

1. 信息熵特征

不同类型网络爬虫访问网站内容针对性更强,要么都访问一个格式的文件,比如要么都是html,或者jpg等格式,而普通用户访问网站内容通常比较杂乱。用熵来度量访问网站内容的无序性,无序性越大,随机性越高,熵越大。无序性越小,随机性越低,熵越小。普通用户访问网站内容的熵往往比爬虫访问网站内容的熵更大。从会话的请求 uri中提取出请求文件后缀,判断请求文件类型,计算会话中请求不同类型文件的数目占总请求数的比例,从而计算信息熵值。

2. 周期性特征

爬虫访问网站比较有规律,访问的时间间隔相对固定,即频繁且具有一定的周期性,而普通用户访问网站具有突发性和随机性。如果将普通用户的访问看成是随机分布的话,那么爬虫的访问则可以看成是近似均匀分布,爬虫访问网站的周期性比普通用户访问网站的周期性更强。在一个会话中,将所有日志请求时间看成是离散时间序列,用相邻日志请求时间间隔最大重复率来度量请求周期性,如果一个会话的请求时间间隔最大重复率越大,则该会话的周期性越强。

3. 各种类型文件请求百分比

网站中包含了不同类型的文件,由于访问用途不同,爬虫用户与普通人类用户对不同类型文件的请求百分比不同。从会话的请求uri中提取出请求文件后缀,判断请求文件类型。分别计算出网页及文本文件、脚本文件、图像文件、多媒体文件、下载类文件及其他类型文件的请求数占会话总请求数的比例。

4. 请求频率

虽然存在部分爬虫模拟人类用户行为,将网站请求频率放低,但是爬虫与正常用户的请求频率仍存在一定差异。会话请求频率=会话中的总请求数/会话时间窗口。

5. 请求唯一页面数

统计一个会话中没有重复的网页及文本文件请求数。

6. 有效html请求数

统计一个会话中请求html页面类型,且响应状态码为200的请求数。

7. 有效请求总数

统计一个会话中,响应状态码为200的有效请求数。

8. 请求错误百分比

统计一个会话中,响应状态码为4xx的错误请求数占请求总数的比例。

9. 无referer请求百分比

统计一个会话中,referer字段为空的请求数占请求总数的比例。

10. 是否请求robots.txt文件

爬虫通常会访问robots.txt文件,而普通用户很少访问robots.txt文件。如果一个会话中请求了robots.txt文件,则该特征取值为1,否则为0。

11. 网页及文本文件请求总数

统计一个会话中网页及文本文件请求数。

文章来自个人专栏
安全研究
6 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0