日志中的“ModSecurity Access Denied”。我不明白它告诉我的是什么......我应该担心吗?

时间:2015-07-16 17:10:06

标签: django apache mod-security

我在日志中看到以下三个关于拒绝访问的内容。其中两个人的安全性至关重要。我真的不明白他们的意思和谷歌搜索后,仍然不确定我是否应该关注或做任何事情。我用mod_wsgi在Apache上运行Django。

以下是三个:

ModSecurity:使用代码400拒绝访问(阶段2)。模式匹配REQUEST_URI_RAW中的“^ \\ w +:/”。 [file“/usr/local/apache/conf/modsec-imh/01_base_rules.conf”] [line“23”] [id“960014”] [msg“代理访问尝试”] [严重性“CRITICAL”] [tag“ PROTOCOL_VIOLATION / PROXY_ACCESS“] [主机名”www。 MYSITE .com“] [uri”/“] [unique_id”VaM7bUYn @ 9YAACtkIA8AAABq“]

ModSecurity:使用代码501拒绝访问(阶段2)。模式匹配“(?:\\ b(?:(?:n(?:et(?:\\ b \\ W +?\\ blocalgroup | \\。exe)|(?:map | c)\\。 exe文件)| T(:赛车(?:?欧特| T)| elnet \\的exe | clsh8 | FTP)|?(:W(?:?来宾| SH)|。RCMD | FTP)\\ EXE |回声\\?b \\ W * \\由+)\\ b | C(:?MD(:( ?: 32)??\\ exe文件\\ C | \\ b \\ W * \\ / C )| | d(?:\\ b \\ W *?[\\\\ /] | \\ W *?\\。\\。)| hmod。{0,40}?...“在REQUEST_HEADERS: User-Agent。[file“/usr/local/apache/conf/modsec-imh/01_base_rules.conf”] [line“100”] [id“959006”] [msg“System Command Injection”] [data“; mail “] [严重性”CRITICAL“] [tag”WEB_ATTACK / COMMAND_INJECTION“] [主机名”www。 MYSITE .com“] [uri”/robots.txt“] [unique_id”VaPVSUYn @ 9YAACtkNioAAABL“]

ModSecurity:使用代码406拒绝访问(阶段2)。模式匹配“\\%(?![0-9a-fA-F] {2} | u [0-9a-fA-F] {4})”在REQUEST_HEADERS:X-Opt-Forward。 [file“/usr/local/apache/conf/modsec-imh/01_base_rules.conf”] [line“17”] [id“950107”] [msg“URL编码滥用攻击尝试”] [严重性“警告”] [主机名“www。 MYSITE .com”] [uri“/static/images/MYIMAGE.png”] [unique_id“VYnqMEYn @ 9YAAGtcKysAAAAT”]

大胆的部分是我编辑有关我网站的内容的地方。 任何帮助表示赞赏。谢谢!

1 个答案:

答案 0 :(得分:2)

运行网站不可避免地意味着您将获得这样的请求。网络是开放的,它花费骗子/黑客/脚本小子没有编写脚本和尝试许多网站或IP希望他们找到一个易受攻击的网站。这就像拥有一个电子邮件地址 - 很快就会收到垃圾邮件。大多数情况下,这种垃圾邮件是无害的,只是一种麻烦。偶尔你会得到一些会造成真正伤害的东西。

ModSecurity是一种工具,用于检查发送到您的服务器的Web请求,然后根据某些规则进行阻止。这通常通过编写规则来将一些HTTP请求字段与正则表达式进行比较来完成。网上有一些免费的规则集,OWASP核心规则集(CRS)就是其中之一。它用于搜索常见攻击,任何规则id 9XXXXX都来自该目录。

ModSecurity是一个非常强大的工具,具有保护您网站的诸多优势。然而,它也不是没有缺点。首先,它会让您了解这些请求 - 其中大部分都是无害的,并且可能已经在您的网站上停留了一段时间而没有任何问题。当您第一次查看ModSecurity日志文件时,您可能会感到恐慌并看到它。另一方面,更糟糕的是,它还可以阻止“误报” - 不应被阻止的合法流量。与垃圾邮件过滤器有时可以将真实电子邮件放入垃圾邮件文件夹的方式类似。 CRS肯定需要针对您的特定网站进行调整。

所以在这个背景下,让我们看一下你给出的三个例子:

第一条规则(960014)正在标记可能尝试将您的网络服务器用作代理的请求。 Scammer自己的服务器经常被阻止,因此他们喜欢通过其他服务器代理请求,以便流量看起来来自您的IP而不是他们的IP。当收到请求时,会触发该规则,并在URL中添加一个单词后跟://。这是有效的,因为请求中绝不应包含此请求:www.example.com/page.html是合法请求,但www.example.com/page.html/http://www.example2.com不是合法请求。但是,这可以通过以下合法请求轻松捕获误报:www.example.com ?referrer = {{}}}。许多搜索引擎,广告,营销链接等。可能会使用这种格式,由于此规则,这些格式将停止工作。我个人认为这个规则没有用。默认情况下,Apache有自己的保护措施,不会尝试将您的网络服务器用作代理,因此这条规则不会给您带来太大的影响,但可能会给您带来问题。我会把它关掉。您可以与您的Web主机服务部门联系,了解如何执行此操作(通常在.htaccess文件中添加“SecRuleRemoveById 960014”行)。

第二个(959006)对用户代理运行一个非常复杂的regexpr,寻找狡猾的请求。除非你拥有regexpr学位,否则一些CRS规则很难理解!用户代理应该是您的浏览器,所有体面的浏览器都会返回一个好的用户代理。此外,一些知道垃圾邮件工具使用此规则可以轻松阻止的特定用户代理。然而,这通常很容易改变,因此它可以发送一个好的用户代理,所以它看起来像一个普通的Web浏览器,所以这个规则实际上只能收集非常简单的错误请求。然后它也很少标记任何误报,因此这是一个很好的规则。这里发送的用户代理是“; mail”(这样的一些规则有助于在日志中显示导致问题的值 - 在本例中为“data”字段)。 “邮件”的用户代理肯定看起来很可疑。现在,您可以在用户代理中指定所需的任何内容,并且它不会导致问题(忽略尝试操作HTTP请求以便立即发送其他字段),因此此规则本身并不真正保护任何内容,但如果这样请求者在该字段中发送类似的东西,然后它可能不是合法的请求,他们可能在请求的其他位中尝试其他狡猾的请求 - 因此存在此规则的原因。鉴于那里显示的用户代理,我认为这条规则在阻止错误请求方面对你有好处,所以不管它是什么来继续阻止。

最后一条规则950107查找错误的网址编码。 Web地址对某些字符(如空格)进行编码,因此像“http://www.google.com Bloggs”这样的请求变为“http://www.example.com?name=Joe”,因此请求可以由服务器处理。 URL编码具有标准的已知格式(基本上以%开头,然后有十六进制代码(0-9或a-f)),因此这样的请求:“http://www.example.com?name=Joe%20Bloggs”无效。在这种情况下,坏匹配是在X-Opt-Forward上,我猜测这是一个通常用于代理处理的原始IP地址的字段。想不出这个字段应该为合法流量标记这个规则的任何原因,所以我再说这是另一个骗子尝试他的运气,这应该被阻止。

需要考虑很多,希望有帮助,但如果您有任何问题请告诉我们。