我应该如何监视对网站的潜在威胁?
通过查看我们的" DB"错误日志,我们发现不断有几乎成功的SQL注入攻击源。一些快速编码避免了这种情况,但是如何为DB和Web服务器(包括POST请求)设置监视器以检查此情况?我的意思是,如果有现成的脚本小工具,是否有现成的工具可以提醒我们他们突然对网站感兴趣?
解决方案
回答
有趣的是,斯科特·汉塞尔曼(Scott Hanselman)今天在UrlScan上发表了一篇文章,这是我们可以用来帮助监控和最大程度减少潜在威胁的一件事。这是一个非常有趣的阅读。
回答
监视Web和DB访问日志应该使我们警惕诸如此类的事情,但是如果我们想要功能更强大的警报系统,我建议我们使用某种IDS / IPS。不过,我们将需要一台备用计算机,以及一台可以进行端口镜像的交换机。
如果我们拥有这些入侵者,那么IDS是一种监视流量以进行多次入侵尝试(数量很多)的廉价方法。基于Snort(www.snort.org)的IDS非常好,并且有一些免费的完全打包版本。我曾经使用过的一种是StrataGuard(http://sgfree.stillsecure.com/),它可以配置为IDS(入侵检测系统)或者IPS(入侵防御系统)。如果流量不超过5Mbps,则可以免费使用。
如果确实要使用IDS / IPS,我建议我们先让它作为简单的IDS运行一个月左右,然后再允许它防止攻击。
这可能是过高的,但是如果我们周围有备用计算机,则让IDS被动运行不会有任何伤害。
回答
对于iis6和7,UrlScan似乎是一个不错的选择。我还发现:dotDefender的薪水也涵盖了Apache或者IIS 5-7,而且我发现了SQL Injection卫生ISAPI
鉴于最近一次广泛的SQL注入尝试,也值得注意的是,禁止Web应用程序的db用户帐户查询系统表(在MS SQL Server中为sysobjects和syscolumns)是一个好主意。
我认为该线程可为Apache和其他Web服务器提供更多免费解决方案。
不幸的是,入侵检测并不是我的初衷,因此sgfree并不完全是一个网站攻击监视器,除非我不了解它是如何工作的。
回答
如果我们可以返回并修改应用程序代码,建议将log4j / log4net集成到应用程序中。在这里,我们可以编写代码来检查表单字段或者URL(例如,在.NET应用程序的global.asax级别),并在检测到恶意代码时进行日志输入。
关于log4j / log4net的好处是,我们可以配置电子邮件/寻呼机/ SMS类型添加程序,以便一旦发现恶意尝试,便会通知我们。
我正在将一些log4net代码合并到我们拥有的CMS系统中,并且我正根据即将出现的ASPRox攻击潮来做到这一点。