专栏首页草根博客站长Live行之有效的屏蔽恶意 URL 请求的方法分享

行之有效的屏蔽恶意 URL 请求的方法分享

说起恶意 URL 请求(Malicious URL request)可能很多老站长们应该都知道,URL 恶意请求对于网站来说是很正常的一种“黑客行为”,大家都知道搜索引擎有“蜘蛛爬虫”(bot),那么反之黑客也有自己的“漏洞蜘蛛爬虫”。简单点说就是一个可以在网络上运行并且不断的“遍历”发现的网站上的程序漏洞并记录反馈给指定的服务器什么的,需要的时候就可以针对网站漏洞进行攻击或者什么的(攻击只是一个统称,把被攻击网站做“肉鸡”用来攻击别人,盗取网站重要资料,木马植入等等算是一种攻击行为)。

『26 号被攻击的记录和分析』一文的攻击其实就是一次大规模的恶意 URL 请求造成的,如果你还是不明白或者无法理解恶意 URL 请求的话,那么下面的日志记录的请求只要你关注过自己站点的日志文件一定不会陌生:

119.188.116.15 - - [09/Jan/2019:12:23:19 +0800] "POST //sqzr.asp HTTP/1.1" 403 2155 "http://www.imydl.tech//sqzr.asp" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"

119.188.116.17 - - [09/Jan/2019:12:23:19 +0800] "POST //css.asp HTTP/1.1" 403 2155 "http://www.imydl.tech//css.asp" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"

119.188.116.17 - - [09/Jan/2019:12:23:19 +0800] "POST //?q={${eval%28$_POST[c]%29}} HTTP/1.1" 555 0 "http://www.imydl.tech//?q={${eval%28$_POST[c]%29}}" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"

119.188.116.16 - - [09/Jan/2019:12:23:20 +0800] "POST //?q={${eval%28$_POST[c]%29}} HTTP/1.1" 555 0 "http://www.imydl.tech//?q={${eval%28$_POST[c]%29}}" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"

150.138.216.82 - - [09/Jan/2019:12:23:20 +0800] "POST //?q={${eval%28$_POST[c]%29}} HTTP/1.1" 555 0 "http://www.imydl.tech//?q={${eval%28$_POST[c]%29}}" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"

119.188.116.15 - - [09/Jan/2019:12:23:20 +0800] "POST //plus/result.php HTTP/1.1" 403 2155 "http://www.imydl.tech//plus/result.php" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"

119.188.116.16 - - [09/Jan/2019:12:23:20 +0800] "POST //data/cache/asd.php HTTP/1.1" 403 2155 "http://www.imydl.tech//data/cache/asd.php" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"

150.138.216.78 - - [09/Jan/2019:12:23:20 +0800] "POST //plus/result.php HTTP/1.1" 403 2155 "http://www.imydl.tech//plus/result.php" "Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1)"

上面的就是 Nginx 日志里发现的恶意 URL 请求节录,这是明月自用的主机上 Web 服务器拦截屏蔽掉的恶意 URL 请求,当然这仅仅是个代表而已,形式有很多种,在『26 号被攻击的记录和分析』一文里明月曾经做过汇总分析,这些恶意请求可以说是无时无刻的存在着,估计很多站长们都见怪不怪了,但是有句话说的好,“不怕贼偷就怕贼惦记着”如果一直都无视这些恶意请求的话早晚会有一天造成恶劣的后果,比如 SQL 注入攻击、文件包含漏洞攻击、敏感文件探测、SQL 盲注攻击探测、远程代码执行漏洞攻击等等这些恶意请求一旦找到了漏洞就可以获取到需要的权限来实施盗取、植入、破坏了,毕竟谁也没有办法保证“漏洞”可以做到百分百能及时发现并修复的,正所谓“道高一尺,魔高一丈”最早发现漏洞的往往都不是官方,所以限制或者禁止这类随机似的恶意请求也是一种有效的安全防御策略。

目前明月采取的方式是 CDN+WAF+WEB 服务器三个层面同时拦截和屏蔽,运行这半个多月以来感觉还是非常不错的,细说起来这样的防御实施起来很简单:

首先选择一个 CDN 服务,最好是自带 WAF 的 CDN 服务,目前免费的 CDN 里比较推荐上海云盾和又拍云(加入又拍云联盟可以免费用一年)以及 360 网站卫士,除了又拍云需要手动开启 WAF 防护外,其他两个都是默认开启 WAF 的,并且都不需要我们自己设置 WAF 规则,这是最简单的措施了,几乎不用花费我们什么的,都是免费的。一些常见的恶意请求都会被 CDN 的 WAF 拦截并返回一个无效的 HTTP 状态码。当然这个 CDN 的 WAF 并不是万能的,想绕过这类 WAF 其实也很简单,所以我们还得在服务器上有自己的 WAF。

其次服务器端的 WAF 意义就在于可以自定义拦截屏蔽规则通过监控服务器日志文件再进行一次过滤屏蔽拦截,在『LNMP 1.5 测试版体验之 ngx_lua_waf 初体验!』一文里明月专门介绍过 LNMP 环境下借助 Nginx 的 LUA 模块自建 WAF 的方法,有兴趣的站长可以参考一下,一般默认的规则基本就够用了,如果你的正则表达式功力深厚可以自己再添加一些适合自己的规则就更好了。

最后,在有了 CDN 的 WAF 和服务器的 WAF 后,还是会有漏网之鱼的,理论上这时候基本已经非常的干净了,但是“道高一尺,魔高一丈”原则下是没有“绝对”的,所以还可以借助 Web 服务器来屏蔽恶意请求的,在『Nginx 防止 SQL 注入、XSS 攻击的实践配置方法』一文里,明月收集整理的 Nginx 站点配置文件里的根据不同请求设定条件判断返回对应的 HTTP 状态码就算是最后一次的屏蔽和拦截了,仔细研究一下话可以举一反三根据自己站点的实际情况调整更加适合自己,明月比较喜欢的是“拦截 17ce.com 站点测速节点的请求”,别人测试你的站点速度回瞬间让你的站点负载飙升,所以直接拦截掉类似的请求显得很高大上。其实这个方法最主要就是对所有“GET”类请求进行判断后返回不同的 HTTP 状态码,对于那些爬虫、机器人发出的请求效果还是非常明显的,明月建议大家能用还是用上最好。代码很长,建议大家采用见这些代码放到一个单独的.conf 文件里在站点配置文件里 include 的方式引用即可。

经过上面所述三个层面的撸了又撸,基本上可以屏蔽掉 80%以上的恶意请求了,为什么说是 80%而不是 100%呢,因为还是那句话“道高一尺,魔高一丈”,以后只需要经常的分析日志文件做出恶意请求的规则再设定对应的拦截屏蔽策略启用即可。减小了这些恶意请求后,自己服务器的安全系数自然也就上升了不少,就算是有漏洞风险也减小了很多!

·END·

本文分享自微信公众号 - 草根博客站长有话说(imydl-blog)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-01-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 干货分享-Win2019上的Linux容器和Azure Stack上的K8

    这是上个周末刚闭幕的微软Tech Summit大会,笔者在课堂上提出的两个问题。

    盆盆
  • Windows群集仲裁

    群集仲裁的目的之一是防止群集出现网络分区的时候导致群集脑裂,脑裂是群集出现分区(或者叫分组)的结果,群集分区意味着两个分区都认为对方已经不存在或者失效,于是会争...

    盆盆
  • 作者是图书的灵魂-谈《Office 365 开发入门指南》

    前些天希章老师给盆盆布置了一道家庭作业,给他的新著《Office 365 开发入门指南》写篇书评。接到任务后,我颇有些两股栗栗、汗不敢出。因为作为一名纯运维人员...

    盆盆
  • Office线上预览编辑解决方案对比

    Office文件常常以附件的形式存在于各种系统中。大家对于线上附件的最常用的需求是预览,偶尔会有简单的编辑。目前在大多数的场景下是将附件下载到本地使用桌面Off...

    用户5326694
  • Github项目推荐 | Ambar:开源的文档搜素引擎

    Ambar 2.0仅支持本地fs抓取,如果你需要抓取FTP位置的SMB共享 —— 只需使用标准Linux工具挂载它。 爬取过程是自动的,因为爬虫会监视fs事件并...

    AI研习社
  • Office 365开发概述及生态环境介绍(一)

    这是Office 365开发系列文章的第一篇,我会帮助大家回顾一下过去Office开发的一些场景,目前提供的一些能力,最后展望一下生态环境建设和未来的发展。

    盆盆
  • windows server 2008如何阻止恶意插件程序下载安装到系统中?

    当我们使用Windows Server 2008系统自带的IE浏览器访问Internet网络中的站点内容时,经常会看到有一些恶意插件程序偷偷在系统后台进行安装操...

    习惯说一说
  • 流水的新技术,铁打的Linux

    这一年人工智能火了,凡是带电的专业都往AI上靠,实在靠不上的还可以看AlphaGo下棋,探讨AI能否取代人类。这种全民跟风,比前两年的“云计算”、“大数据”热度...

    嘉为科技
  • 101-Hyper-V 虚拟CPU分配探讨.docx

    我该为我的物理服务器分配多少虚拟CPU给虚机才合理,分配比1:1,2:1,听说还可以到8:1?

    盆盆
  • 许式伟:首次完整架构经验分享

    对工作多年的程序员而言,日后的职业发展无非是专精技术,转型管理,晋升架构师三种选择。成为一名优秀的架构师,是大多数技术人的追求。

    黄泽杰

扫码关注云+社区

领取腾讯云代金券