达到最大Apache连接数-我是否受到黑客攻击?

3
今天我的服务器上发生了一些非常奇怪的活动。我已经达到了最大Apache连接数,但找不到任何可能引起此问题的原因(我认为我没有受到DOS攻击或其他什么)。
我检查了我的Apache日志并发现了一些奇怪的事情。
首先:
[Tue Aug 13 09:41:13 2013] [error] [client 85.76.3.157] --2013-08-13 09:41:13--  http://heatinasnap.net/gs.txt, referer: http://example.net/forum/index.php
[Tue Aug 13 09:41:13 2013] [error] [client 85.76.3.157] Resolving heatinasnap.net... 173.254.28.65, referer: http://example.net/forum/index.php
[Tue Aug 13 09:41:13 2013] [error] [client 85.76.3.157] Connecting to heatinasnap.net|173.254.28.65|:80... connected., referer: http://example.net/forum/index.php
[Tue Aug 13 09:41:13 2013] [error] [client 85.76.3.157] HTTP request sent, awaiting response... 404 Not Found, referer: http://example.net/forum/index.php
[Tue Aug 13 09:41:13 2013] [error] [client 85.76.3.157] 2013-08-13 09:41:13 ERROR 404: Not Found., referer: http://example.net/forum/index.php
[Tue Aug 13 09:41:13 2013] [error] [client 85.76.3.157] , referer: http://example.net/forum/index.php

[Tue Aug 13 09:41:31 2013] [error] [client 112.198.64.88] --2013-08-13 09:41:31--  http://heatinasnap.net/gs.txt, referer: http://example.net/members
[Tue Aug 13 09:41:31 2013] [error] [client 112.198.64.88] Resolving heatinasnap.net... 173.254.28.65, referer: http://example.net/members
[Tue Aug 13 09:41:31 2013] [error] [client 112.198.64.88] Connecting to heatinasnap.net|173.254.28.65|:80... connected., referer: http://example.net/members
[Tue Aug 13 09:41:31 2013] [error] [client 112.198.64.88] HTTP request sent, awaiting response... 404 Not Found, referer: http://example.net/members
[Tue Aug 13 09:41:31 2013] [error] [client 112.198.64.88] 2013-08-13 09:41:31 ERROR 404: Not Found., referer: http://example.net/members
[Tue Aug 13 09:41:31 2013] [error] [client 112.198.64.88] , referer: http://example.net/members

[Tue Aug 13 09:41:33 2013] [error] [client 141.138.54.172] --2013-08-13 09:41:33--  http://heatinasnap.net/gs.txt, referer: http://example.net/forum/viewtopic.php?f=9&t=6747
[Tue Aug 13 09:41:33 2013] [error] [client 141.138.54.172] Resolving heatinasnap.net... 173.254.28.65, referer: http://example.net/forum/viewtopic.php?f=9&t=6747
[Tue Aug 13 09:41:33 2013] [error] [client 141.138.54.172] Connecting to heatinasnap.net|173.254.28.65|:80... connected., referer: http://example.net/forum/viewtopic.php?f=9&t=6747
[Tue Aug 13 09:41:33 2013] [error] [client 141.138.54.172] HTTP request sent, awaiting response... 404 Not Found, referer: http://example.net/forum/viewtopic.php?f=9&t=6747
[Tue Aug 13 09:41:33 2013] [error] [client 141.138.54.172] 2013-08-13 09:41:33 ERROR 404: Not Found., referer: http://example.net/forum/viewtopic.php?f=9&t=6747
[Tue Aug 13 09:41:33 2013] [error] [client 141.138.54.172] , referer: http://example.net/forum/viewtopic.php?f=9&t=674

我不知道heatinasnap.net是什么(从未听说过)。
其次,需要某种形式的漏洞扫描器:
[Tue Aug 13 09:41:40 2013] [error] [client 220.248.145.30] ModSecurity: Access denied with code 406 (phase 2). Match of "rx ^apache.*perl" against "REQUEST_HEADERS:User-Agent" required. [file "/usr/local/apache/conf/modsec2.user.conf"] [line "55"] [id "990011"] [msg "Request Indicates an automated program explored the site"] [severity "NOTICE"] [hostname "www.mysite.net"] [uri "/"] [unique_id "UgpFpK339QIAAFT1Y2MAAAAC"]
[Tue Aug 13 09:41:41 2013] [error] [client 220.248.145.30] ModSecurity: Access denied with code 406 (phase 2). Match of "rx ^apache.*perl" against "REQUEST_HEADERS:User-Agent" required. [file "/usr/local/apache/conf/modsec2.user.conf"] [line "55"] [id "990011"] [msg "Request Indicates an automated program explored the site"] [severity "NOTICE"] [hostname "mysite.net"] [uri "/406.shtml"] [unique_id "UgpFpa339QIAAGfpU5MAAAUD"]
[Tue Aug 13 09:41:41 2013] [error] [client 220.248.145.30] File does not exist: /home/hellohel/public_html/406.shtm

这是我的当前Apache状态:

CPU Usage: u147.51 s128.44 cu2247.28 cs0 - 146% CPU load
147 requests/sec - 2.3 MB/second - 16.4 kB/request
512 requests currently being processed, 0 idle workers

我在Apache中没有看到任何MaxClient错误。肯定有一些奇怪的事情正在发生……有人可以提供一些见解吗?
更新:
导致Apache达到最大客户端数的原因是Slowloris DOS攻击,使用Apache Mod_Antiloris进行修复。安装说明在此处:

http://www.hostingdiscussion.com/hardware-server-configuration/27399-installing-mod_antiloris-mitigate-slowloris-dos-attack.html

更新2:

I am not sure if it was luck or not, but the slowloris thing just solved it for a few minutes. It went back to 512 (max) connections shortly after. I am seeing some very high CPU load on simple scripts so I am wondering if it has something to do with handling large log files. One is just a css file taking up `24.66 CPU`. Check out just a few processes:

Srv PID Acc M   CPU SS  Req Conn    Child   Slot    Client  VHost   Request
0-0 31154   0/45/45 R   23.85   3   1   0.0 0.47    0.47    ?   ?   ..reading..
0-0 31154   0/36/36 _   24.66   0   1   0.0 0.43    0.43    81.152.251.175  mysite.net  GET /css/dwn.css HTTP/1.1
0-0 31154   0/33/33 R   23.92   2   179 0.0 0.69    0.69    ?   ?   ..reading..
0-0 31154   0/1/1   W   0.07    119 0   0.0 0.00    0.00    117.102.163.190 mysite.net  POST /includes/offers/ajax.php HTTP/1.1
0-0 31154   1/64/64 C   24.74   0   1   26.8    1.85    1.85    24.127.122.188  mysite.net  GET /images/soc.png HTTP/1.1
0-0 31154   0/51/51 _   24.87   0   899 0.0 0.78    0.78    86.111.144.194  mysite.net  GET /includes/offers/window.php?file=57860&tooltip=true HTTP/1.
0-0 31154   0/18/18 R   11.00   77  1   0.0 0.27    0.27    ?   ?   ..reading..

2
最好在Server Fault上提出此问题,他们将能够更好地帮助您。 - bansi
嗯,你把那个东西配置成代理了吗?为什么_你的_Web服务器会从那个陌生的域请求东西? - Wrikken
我没有将它设置为任何类型的代理。我也在想同样的问题...我的网站是否受到了攻击?我正在查看源文件,但找不到对该域的引用。 - kmoney12
你看过出错页面的代码了吗?http://mysite.net/forum/index.php - AbsoluteƵERØ
@Wrikken - 实际上它是在专用服务器上。我会看看能否雇佣人手。 - kmoney12
显示剩余4条评论
1个回答

0

看起来你的网站正在打开远程文件,因为这些消息表明你的Apache服务器正在通过DNS进行查找。

查找恶意代码

您需要弄清楚他们用什么方法访问该框。然后查看该代码并尝试找到异常之处。他们通常会使用像exec()base64_decode()这样的东西来隐藏代码,然后您可以使用grep查找这些内容。还要使用grep查找像fopen()fread()file_get_contents()甚至curl_init()等内容。如果您在不希望出现的地方发现任何这些脚本,则将成为您的漏洞利用。

您应该能够使用conntrackdntopargusbro-idssancp之类的工具查找框上的出站流量。

尝试快速修复

进入 php.ini 文件并检查系统配置设置,以查看 allow_url_fopenallow_url_include。看起来好像有人试图让您的网站打开他们网站上的 txt 文件(其中包含有效载荷)。

如果这些设置允许远程打开,则是它们导致了此行为。很可能有人从他们的服务器上打开了您服务器上的文件并造成了漏洞。

如果他们在您的服务器上有代码,则需要清除该服务器的内容,并在修复了 php.ini 文件后从备份之一更新代码。否则,他们可以使用诸如 ini_set 等东西来使用其已托管的代码更改前端的设置。

不对代码或设置进行任何更改并从备份中恢复将无法防止此行为。此外,您可以使用类似于 IPtables 的东西来阻止所有对 heatinasnap.net 及其解析的 IP [173.254.28.65] 的出站请求。

如果您正在使用像file_get_contents这样的东西,通过进行此更改将禁用它。另一方面,cURL 使用自己的库,不会受到更改的影响。但是,服务器上的任何代码仍然可以使用cURL(即使它不是您的代码)。

DOS攻击更新

由于您认为这是DOS攻击,您可以尝试使用mod_reqtimeout。良好的设置应该是:

RequestReadTimeout header=10 body=30 

谢谢!allow_url_fopen 已经被设置为开启,但我找不到任何 allow_url_include 的设置。如果关闭 allow_url_fopen,是否会禁用像 curl 和 file_get_contents 这样的函数(这些函数在我的网站上使用)?此外,我现在无法重新上传所有内容,但有没有一种方法可以扫描 root kits 和恶意代码? - kmoney12
你可以运行类似于Rootkit Hunter的工具。在某些软件库中,它被称为rkhunter。http://www.rootkit.nl/projects/rootkit_hunter.html - AbsoluteƵERØ

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接