检测Web应用程序攻击的最佳方法是什么?
调查和检测不良用户的行为或者攻击(如拒绝我的Web应用程序中的服务或者漏洞利用)的最佳方法是什么?
我知道服务器的统计信息(例如Awstats)对于此类目的非常有用,特别是查看3XX,4XX和5XX错误(这是Awstats示例页面)时,这些错误通常是漫游器或者恶意用户尝试的众所周知的错误或者格式错误的URL 。
是否有其他(更好的)方法来分析和检测这种攻击性尝试?
注意:我说的是基于URL的攻击,而不是针对服务器组件(例如数据库或者TCP / IP)的攻击。
解决方案
记录所有内容。然后手动检查日志,找到不感兴趣的内容,并编写一个丢弃这些日志条目的解析器。完成此操作后,冲洗并重复直到我们剩下有趣的事情为止。现在我们只需要阅读有趣的日志条目,就可以确定哪些是危险的,哪些是无害的但令人讨厌的,并进行适当的修复。
整体上网络较多,但SATAN很好
http://www.porcupine.org/satan/
SATAN是帮助系统管理员的工具。它识别出几个常见的与网络相关的安全问题,并在没有实际利用它们的情况下报告这些问题。
我通常会编写自己的日志分析器,该日志分析器试图通过跟踪非人类操作来跟踪导航完成时通常发生的事件。喜欢:
直接访问URL或者参数未知的页面
反馈表单的加载,编译和发布时间不到10秒
错误的引荐来源网址顺序
发布字段中的HTML或者"关键"字符序列
等等...
首先,我们必须说出什么是或者不是潜在的攻击,有时url可能是有效的请求,有时可能是XSS攻击。很多流量可能是DDoS,或者可能是在slashdot文章中被提及的结果。
接下来,我们可以查看各种攻击类型的日志,例如DDoS,我们将要使用IP工具对其进行检查(因为许多DDoS攻击是在非Web端口上进行的,例如SYN Flood)。
然后,我们想安装mod_security并为其设置一些规则(我们可以在Web上找到很多预定义的规则集)。这将读取请求,并针对常见或者已知的攻击(例如包含sql或者html类型文本的url)对其进行解析。
如果我们有预算,请使用Web应用程序防火墙(WAF)。这些是专门为识别和阻止应用程序层攻击而构建的。也有一些廉价的WAF,甚至是一两个开源的WAF。
但是请注意,我们仍应练习安全编码等。 WAF非常适合深度防御和临时虚拟补丁。