高效分析日志文件(下)

 
   | |

导读:本文介绍如何高效分析日志文件,重点介绍通过egrep工具使用正则表达式。

关键词:日志文件 分析 egrep 正则表达式 搜索 操作系统

 
正在加载数据... 【TechTarget中国原创】日志的分析工作需要有完善的搜索技能作基础,那样你才能找出问题所在。现在似乎所有的新设备、工具、甚至桌面软件都可以生成日志或基于文本(text-based)的数据了。与此同时,迅猛产生的日志数据也给日志分析带来了不少挑战。本文介绍高效分析日志的第二部分……

【TechTarget中国原创】第3步:继续改进

  有时候我们很想看看由Bob发出,并且服务器响应代码为200的那些请求。因为那表明它获取了所请求的资源。我们可以采用如下这条命令:

>egrep –n -i “bob|200” access_log

  它返回的结果是出现了“Bob”或“200”的那些条目,不过这还并不能保证就一定由是Bob发出、并且响应为200的请求。它返回的结果还有不少其实并不是我们想要的。如果我们把Bob和200同时作为搜索条件,搜索出来的结果就可以更准确一些。如果注意到Bob和200都是被空格分隔开了的话,我们还可以更进一步地改进搜索条件。另外, 注意-i这个参数,它表示忽略大小写,因此Bob, bOb, boB, bob, 以及 BOB都可以匹配我们的搜索结果。

>egrep –n –i “\bbob\b. *200*” access_log

  这条命令就可以把搜索条件设为“bob"和”200“同时出现的行。在bob两头的\b表示的是单词边界,或者说单词的开始和结束。200前的那个*表示的是在bob和200之前有一些字符,200之后的那个*则表示允许200后面存在其它字符。这样的话,将返回如下结果:

57:10.10.10.10 - bob
[10/Oct/2007:20:24:18 -0700] “GET /
webmin HTTP/1.0” 404 726
59:10.10.10.10 - bob
[10/Oct/2007:20:24:59 -0700] “GET
/admin HTTP/1.0” 404 726
65:10.10.10.10 - bob
[10/Oct/2007:20:25:35 -0700] “GET /login
HTTP/1.0” 404 726

  从上面的搜索结果里,你应该能看出来,Bob似乎在找什么东西。很可能是管理员登陆入口之类的,或者是入侵Web服务器的通道。另外,如果你注意一下时间戳信息的话,你就会发现他在短短一分钟内发送了三次请求,这说明他要么打字超快,要么就是在用某种自动工具。而更可能的是后一种情况,这让我们有了足够的理由进一步分析他的行为。
 
  同时,注意Bob的请求返回结果全都是404 ”not found"信息。为什么会这样呢?我们要搜索的明明是返回代码为200的记录啊。这就是电脑没有人聪明的典型例子,在我们这个例子里,日期时间戳恰好包含有200这个字串,于是它就被搜索出来了。使用正则表达式经常会造成误报,但是通过我们的简单查询,我们可以排除大部分误报。
 
  下面让我们进一步分析Bob的行为。

  第4步:继续追踪

  我们的最后手段就是找出Bob发送请求时的IP地址,以此跟踪它的行为。这要求我们必须在正则表达式里转义IP地址里的句号。转义的目的是告诉正则表达式引擎,按字面意思解释这个字符,而不用考虑它的特殊意义。请看下面这条命令:

>egrep –n –i “10\.10\.10\.10” access_log

  它让egrep找出日志文件里所有含10.10.10.10的条目。结果如下:

57:10.10.10.10 - bob
[10/Oct/2000:20:24:18 -0700] “GET /web
min HTTP/1.0” 404 726
59:10.10.10.10 - bob
[10/Oct/2000:20:24:59 -0700] “GET
/admin HTTP/1.0” 404 726
65:10.10.10.10 - bob
[10/Oct/2000:20:25:35 -0700] “GET /login
HTTP/1.0” 404 726
120:10.10.10.10 - [10/Oct/2000:21:14:11
-0700] “GET /index.html HTTP/1.0” 200
2571
157:10.10.10.10 - [10/Oct/2000:21:50:59
-0700] “GET /parent/directory HTTP/1.0”
404 726
260:10.10.10.10 - [10/Oct/2000:22:25:15
-0700] “GET /support.htm HTTP/1.0” 200
1056

  由此可以看出,Bob明显是在四处试探我们的网站,但是还不一定有什么违法或越轨行为。不过,继续查看包含这一信息记录也是非常有必要的。

  保持警惕

  在进一步寻找更严重的攻击迹象时,我们不能只盯着请求频率和请求目标。比如说,在监视一个网络银行应用时,就一定要特别注意发送给transfer的请求。例如,如果有人试图偷窥他人的转帐记录,那就会出现好多下面这种记录:

10.10.10.10 - [10/Oct/2000:x:x:x -0700]
“GET /banking/view/transfer.jsp?id=12345
HTTP/1.0” 200 1042
10.10.10.10 - [10/Oct/2000:x:x:x -0700]
“GET /banking/view/transfer.jsp?id=12346
HTTP/1.0” 500 798
10.10.10.10 - [10/Oct/2000:x:x:x -0700]
“GET /banking/view/transfer.jsp?id=12347
HTTP/1.0” 200 1042
10.10.10.10 - [10/Oct/2000:x:x:x -0700]
“GET /banking/view/transfer.jsp?id=12348
HTTP/1.0” 500 798

  从这里我们可以看出来,有人发现了URL里的id有机可乘,并企图通过每次给id加1看到别的转帐记录。这样的大安全漏洞肯定是你在分析日志时最希望斩获的。

 
查看全文
 
 
 
 
 

日志管理

 
在面对SIEM与日志管理之间的选择时,价钱成了大企业或小公司考虑的关键。SIEM很容易一单就超过十万美元的门槛,如果是那些大公司的话,达到7位数字的金额也不足为奇……
 
现如今,你的整个网络所产生的大量日志数据足以把人吞没。所有的设备都在以纳秒为单位记录着整个企业网络里的一举一动。你能从一大堆的日志数据里找出要取证的目标吗?
 
估算日志产生率是一项非常棘手的工作,而且很难创建可靠的通用评估工具。很多安全信息和事件管理(SIM/SIEM)厂商都有一些基于Excel的私有计算工具……
 
日志的分析工作需要有完善的搜索技能作基础,那样你才能找出问题所在。现在似乎所有的新设备、工具、甚至桌面软件都可以生成日志或基于文本的数据了……
 
日志的分析工作需要有完善的搜索技能作基础,那样你才能找出问题所在。现在似乎所有的新设备、工具、甚至桌面软件都可以生成日志或基于文本的数据了……
 

登录TechTarget中国

关闭
本服务仅向TechTarget中国的会员开放,请登录或立即免费注册
登录Email
请输入您的登录Email
密码
下次自动登录