2

周三,我们在网络服务器方面遇到了一段时间的中断服务。我们通常处理连接到我们网站的 2,000-10,000 名用户,周三大约 15:35 我们收到了 30,000 多个连接(在 5 分钟内),这些连接都是从 1 个 IP 地址(一个大学的客户)到我们的登录页面的对该页面的请求返回了 460 的 http 代码(我以前从未在任何服务器上遇到过)。

我将假设这是恶意的,因为即使有 10,000 名用户在线,但在只有 3-4,000 名在线用户的情况下,即使有 10,000 名用户在线,也没有其他原因可以连接到登录页面。

有人试图实现什么来导致 460 错误,是否存在会产生此错误的已知攻击?我打算在星期一把它交给我们的安全测试员进行调查,但我想我也会先把它放在那里。

就好像连接仍然存在一样,即使在之后,连接仍然没有全部通过,CPU 低但发生超时。我必须在每台服务器上重新启动 IIS 才能解决...

哦,我们正在通过 Amazon ELB 运行 12 个 Windows 2012 R2 IIS Web 服务器,我们的网站是基于 ASP.NET 的,当这些连接发生时,SQL 服务器 CPU 和批处理请求没有增加。

这是 30k+ 日志中的示例行:

RequestTime             RequestIPID     RequestProcessingTime       BackendProcessingTime       ClientResponseTime      ELBResponseCode     BackendResponseCode     ReceivedBytes       SentBytes       UserAgentID                                                                                                     httpquerystring             httpmethod      Path           Domain
28/09/2016 15:37:00     IP              0.002                       0                               -1                      460                     -                       60                      0               Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36   OrgID=nameoforg             GET             Login.aspx         https://hiddendomain

问候利亚姆

4

2 回答 2

0

我们现在实际上已经诊断出这个问题是由大量没有连接标头的请求引起的缓慢 HTTP 攻击 (slowloris) 引起的,导致客户端与负载均衡器断开连接,但负载均衡器和 IIS 保持连接处于活动状态并因此最大化退出所有连接,因为它们选择了默认的 120 秒超时。我们现在正在努力更改 IIS 限制。当我们找到有助于缓解此类攻击的最佳设置时,我将提供更多详细信息。

我们在 web.config 中设置了以下内容

<system.web>
     <httpRuntime requestValidationMode="2.0" targetFramework="4.5" maxRequestLength="50097151" maxUrlLength="2048" maxQueryStringLength="1024"/>
</system.web>
  <system.webServer>
     <security>
         <requestFiltering>
            <requestLimits>
               <headerLimits>
                  <clear />
                  <add header="Content-type" sizeLimit="100" />
               </headerLimits>
            </requestLimits>
         </requestFiltering>
      </security>
     <httpProtocol>
      <customHeaders>
        <clear/>
        <add name="X-Frame-Options" value="SAMEORIGIN" />
        <add name="X-XSS-Protection" value="1; mode=block"/>
      </customHeaders>
    </httpProtocol>
  </system.webServer>

问候

利亚姆

于 2017-01-31T08:59:07.517 回答
-1

对您的 Web 服务器的服务中断似乎是由来自单个 IP 地址的拒绝服务 (DoS) 攻击引起的。对于托管自己的 Web 服务器的用户,可以通过网络硬件和/或软件手动排除问题 IP 地址。一些网络硬件供应商出售特殊的防御设备,通过预定义的规则自动执行此过程,以检测 DoS 攻击,然后阻止适用的 IP 地址。

由于 Amazon ELB 托管您的 Web 服务器,因此您可能希望从 AWS 寻求增强的安全选项。AWS Identity and Access Management ( IAM ) 似乎适用于您的情况。根据 AWS,“IAM 是您的 AWS 账户的一项功能,无需额外费用。”

于 2016-09-30T15:28:10.537 回答