日志文件分析工具:高效分析日志文件(上)来源: 发布时间:星期三, 2009年9月2日 浏览:5次 评论:0
日志分析工作需要有完善搜索技能作基础那样你才能找出问题所在
现在似乎所有新设备、工具、甚至桌面软件Software都可以生成日志或基于文本(text-based)数据了和此同时迅猛产生日志数据也给日志分析带来了不少挑战 首当其冲就是日志集中采集和存储幸好现在我们有几种办法可用日志通常都被集中转储到位于网络中心syslog,日志管理或SIM系统里因此现在面临最大问题就是如何才能有效地筛选这些日志数据并从中找出所需相关安全信息 虽然有好几种开源或商业软件Software可以进行度日志分析但是有个工具是它们都用到--正则表达式(regex)从根本上来说正则表达式就是串串它使得几乎任何种语言或搜索工具都可以对大量文本数据执行快速、高级搜索操作正则表达式现在有好几个变种使用得最广泛种是Perl风格正则表达式.NET FrameworkPythonJavaJavascript 所采用格式都属于Perl风格当然Perl里用也是结合任何种搜索工具或脚本语言使用这种正则表达式你都可以从大量数据里快速、高效地解析出有用信息 Apache或者说httpd日志是我们检查得最频繁我们时不时就得看看日志里有没有出现什么问题这些Web日志里往往隐藏着许多重要信息比如说攻击尝试、攻击成功迹象甚至还能发现攻击征兆 我们将重点介绍通过egrep工具使用正则表达式egrep提供了种很简单搜索文件语法并且几乎在当前流行所有操作系统上都可以用( Windows用户可以 从各种 来源下载到它免费版本) 另外记住所有能在egrep下使用正则表达式在其它或脚本语言里也样能兼容 在本文中我们将用Apache日志进行示范但是这种通过正则表达式、egrep处理httpd日志思路方法可以在数百种其它平台、工具以及日志类型上借用理解什么是危险以及如何找出危险对于发现你们安全隐患是非常重要 第步:了解日志格式 要编写针对这些日志格式正则表达式我们首先就得理解它结构Aapche会保留服务器访问记录的类信息通常是在/etc/httpd/logs目录下日志文件般以access_log这样方式命名 你可以配置Apache让它把日志记录发送到个syslog或SIM系统上去如果是这样话你日志格式可能和默认格式略有区别Apache会按如下格式保存用回车符分隔开日志条目 10.10.10.10 - frank [10/Oct/2007: 13:55:36 -0700] “GET /apache_pb.g HTTP/1.0” 200 2326 让我们点点地分开看第个值10.10.10.10就是客户端IP地址如果HostnameLookups启用了话接下来紧跟就是客户端主机名往下来是日期和时间戳10/Oct/2007:11:55:36 -0700这对于某些和时间相关操作是至关重要 接下来我们看到是HTTP头信息这个信息是非常重要它让我们了解到用户发出是哪种类型请求在本例中 “GET/apache_pb.g HTTP/1.0 ”表示是个GET方式请求请求目标是位于httpd服务器根目录下名为apache_pb.g这个图片文件 最后服务器返回响应代码 200 表示该请求已经成功处理了余下那点信息则是服务器响应内容长度 第 2步:开始下手 理解了日志格式各个部分的后我们就可以开始着手检查日志里可疑请求记录了例如那些请求WebMin这个Web管理工具记录还有请求admin这样管理界面记录都是非常可疑 大多数情况下这些特征字串都是日志记录里部分知道这点后我们就可以把这些字串当作正则表达式用egrep处理 >egrep –n webmin access_log 这很容易看懂:先是egrep命令然后跟上它配置参数然后是搜索条件最后是要进行搜索那个文件文件名 加上-n参数后就能显示出匹配行行号以方便后面我们引用它上面这条命令执行后应该要显示出所有在请求URL里包含有webmin日志条目 比如像下面这个样子: 57:10.10.10.10 - bob 0
相关文章读者评论发表评论 |