这篇文章是seci-log 开源日志分析软件的升级内容,之前的内容请查看之前的介绍,就不重复发了。我们在上次十种告警(非上班时间访问,非上班地点访问,密码猜测,账号猜测,账号猜测成功、敏感文件操作告警和高危命令操作,主机扫描,端口扫描,非法外联)的基础上有增加了sql注入,xss攻击,路径遍历,webshell,网站敏感文件访问,和cc攻击告警
http://www.oschina.net/news/61996/seci-log
http://www.oschina.net/news/62083/seci-log-1-01
http://www.oschina.net/news/62214/seci-log-1-02的升级内容。
下面的告警都是从Web服务器日志中产生的,web服务器日志格式支持Apache的NCSA日志格式,包括NCSA普通日志格式(CLF)和NCSA扩展日志格式(ECLF)两类。默认apache,tomcat分别就是这两种格式。
日志文件配置,日志文件采集引入了一个新的配置文件:file.properties,和application.properties配置文件在同一目录下。配置文件内容如下:
file.ip=192.168.1.1
file.fullName=D:/develop/secilog-win/tomcat/logs/localhost_access_log*.txt
第一个配置项:file.ip表示日志文件对应的Ip地址,因为web日志中是不包括服务器信息的;第二个配置项是file.fullName,表示的是文件的位置,绝对路径,支持两种方式的写法,全文件名和部分文件名匹配。有些日志不做分割就只有一个文件,有些日志做了分割,每天会产生一个新的文件,这两种都支持。程序只处理修改时间为当天的第一个日志文件,对历史文件不做处理。如果没有做分割的文件,历史文件可能会比较大,建议做的时候可以先备份后删除一部分。
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL注入的判断是根据url参数中判断是否有sql语句的特征比如and等,如果仅仅通过日志进行检测准确度不是太高,可以作为辅助的参考,同时日志只能记录get请求的记录,对POST请求则无能为力,还需要其他手段才能得到准确的行为。为了减少误报,系统中的判断是三分钟符合特征的记录在三次以上才进行告警。
验证过程,在rul中输入带sql的特征的参数,比如输入三次下面的链接:
/1001321%20AnD%202011%3d2011_1002024_1321856134658.htm
等几分钟后可以看到如下告警:
查看详情:
表示产生了SQL注入攻击。
XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。比如这些代码包括HTML代码和客户端脚本。攻击者利用XSS漏洞旁路掉访问控制——例如同源策略(same origin policy)。这种类型的漏洞由于被黑客用来编写危害性更大的phishing攻击而变得广为人知。
验证过程,就是在url中输入js的内容,比如,输入三次:
/test.asp?article=<script>alert("test")</script>
等几分钟后可以看到如下告警:
查看详情:
目录遍历漏洞在国内外有许多不同的叫法,也可以叫做信息泄露漏洞、非授权文件包含漏洞等。目录遍历是针对Windows IIS和Apache的一种常见攻击方法,它可能让攻击者访问受限制的目录,通过执行cmd.exe /c命令来提取目录信息,或者在Web服务器的根目录以外执行命令。
目录遍历漏洞可能存在于Web服务器软件本身,也可能存在于Web应用程序之中。目录遍历攻击比较容易掌握,要执行一个目录遍历攻击,攻击者所需要的只是一个web浏览器,并且掌握一些关于系统的缺省文件和目录所存在的位置的知识即可。
验证过程,就是在url中输入文件操作内容,比如,输入三次:
/?file=../../../../../../../../../etc/passwd
查看详情:
敏感文件访问和非法外联比较类似,只是所关注的文件不一样,敏感文件主要关注web服务的配置文件,源代码文件等。
验证过程,就是在url中输入程序配置文件操作内容,比如,输入三次:
/?file=../applicationContext.xml
查看详情:
WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将这些asp或php后门文件与网站服务器WEB目录下正常的网页文件混在一起,然后就可以使用浏览器来访问这些asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的(可以上传下载文件,查看数据库,执行任意程序命令等)。
验证过程,就是在url中输入webshell常用内容,比如,输入三次:
/cmd.asp
查看详情:
CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来攻击页面的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都有处理不完的连接直至就网络拥塞,正常的访问被中止。
产品对攻击的检测时当同一个ip地址在3分钟内请求超过1000次的时候,表示发生了cc攻击,在这里有可能会产生误报,当代理或者共享出来的时候有可能会产生误报,所以要分析攻击IP是否是代理IP。
验证过程,就是在短时间内有大量的请求,由于环境现在,我们模拟工具的时候策略是60次以上就告警,实际的程序是1000次以上告警。
查看详情: