今日站长帮使用的防火墙报警,提示有安全风险,通过网站日志分析发现Baiduspider今日抓取量增长太大,达到1万多次。查看日志文件,发现原来是有伪装成Baiduspider的爬虫进行大量爬网。
本文将介绍如何发现伪装成Baiduspider或其它搜索引擎爬虫的方法,以便大家在发现异常时迅速找到有害的爬虫排除潜在风险。
如何通过日志发现潜在风险
从日志中可以发现三个问题:
1、大量抓取一些敏感信息,哪怕URL根本不存在。例如:admin.php、login.php等,这不像是正常搜索引擎爬虫干的事。
2、正常的Baiduspider访问记录是这样的:
220.181.108.118 - - [08/May/2022:00:06:50 +0800] "GET /1469.html HTTP/2.0" 200 15272 "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html)"
伪装的爬虫示例:
121.140.205.106 edge - www.zhanzhangb.com [08/May/2022:10:24:07 +0800] 223 "HEAD //uc_server/admin.php?m=user&a=login&iframe=&sid= HTTP/1.1" 404 424 0 "https://www.zhanzhangb.com//uc_server/admin.php?m=user&a=login&iframe=&sid=" "-" "Mozilla/5.0 (compatible; Baiduspider/2.0; +http://www.baidu.com/search/spider.html\x09" "103.174.185.14,121.140.205.106" 1482802960 "MISS" 157.148.65.35
以上是伪装成Baiduspider爬虫的访问日志中的其中一条。
3、上面那个伪装成Baiduspider的IP(121.140.205.106)竟是境外的,来自韩国。
如何验证IP是否来自百度Baiduspide
# host 220.181.108.118 118.108.181.220.in-addr.arpa domain name pointer baiduspider-220-181-108-118.crawl.baidu.com.
使用host ip这个指令反向 DNS 查找,百度蜘蛛的主机名是*.baidu.com 或*.baidu.jp。其他是假主机名。
Windows可以使用nslookup ip命令,如下图:
以上两个示例,均是正常的Baiduspide蜘蛛的IP,下面再来看看伪装成Baiduspider爬虫的IP:
发现这种伪装成Baiduspider的爬虫怎么办?
不论是伪装成Baiduspider或是伪装成其它爬虫,其目的肯定不是好的,否则干嘛要伪装呢?所以发现这种情况,最直接有效的方式就是禁止其IP访问,以站长帮本次发现的这个IP为例,使用Firewalld防火墙禁止该IP段访问:
#禁止一个IP段,比如禁止121.140.205.0 - 121.140.205.254 firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="121.140.205.0/24" drop' #重新加载配置文件 firewall-cmd –reload
如果使用宝塔面板,可以直接在系统防火墙中进行设置。