Linux入侵日志检测研究专题

Linux日志系统中记录了每天发生的各种各样的事件,包括用户正常和非正常的登录情况,Linux的日志系统对于系统安全来说非常重要,通过分析日志可以了解错误发生的原因,对于排查系统错误有很大的帮助;更重要的是在系统受到黑客攻击后,日志中会留下攻击者的痕迹,通过分析这些痕迹,系统管理员可以发现黑客攻击的某些手段以及特点,甚至可以了解黑客攻击使用的地址以及其他信息,从而能够针对性的进行处理,更好地抵御下一次攻击。

Linux系统中,日志系统主要分为三类:

● 系统接入日志: 多个程序会记录该日志,记录到/var/log/wtmp和/var/run/utmp文件中,telnet、ssh等程序会更新wtmp和utmp文件,系统管理员可以根据该日志跟踪到谁在何时登录到系统。

● 进程统计日志:Linux内核记录该日志,当一个进程终止时,进程统计文件(pacct或acct)中会进行记录。进程统计日志可以供系统管理员分析系统使用者对系统进行的配置,以及对文件进行的操作。

● 错误日志: Syslog日志系统已经被许多设备兼容,Linux的syslog可以记录系统事件,主要由syslogd程序执行,Linux系统下各种进程、用户程序和内核都可以通过Syslog文件记录重要信息,错误日志记录在/var/log/messages中。有许多Linux/Unix程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

1  Linux下日志的使用

1.1    基本日志命令的使用

Linux系统中记录用户登入登出情况的文件是wtmp文件,记录当前登录用户情况的文件是utmp文件,它们是Linux系统安全的重要文件。这两个文件中所有的日志都记录了准确的时间。日志中记录的时间是非常重要的,因为很多攻击行为分析都是与时间有极大关系的。

Utmp以及wtmp文件都是二进制文件,不能通过tail,cat,vi或者重定向进行编辑。系统管理员需要通过命令获取这两个文件中包含的信息,其中utmp文件中包含的信息可以通过who、w、users和finger获取, wtmp文件中包含的信息可以通过last和ac获取。具体用法如下:

who命令从utmp文件中查询当前登录的用户情况。缺省情况下who的输出包括登录使用用户名、登录日期及登录使用IP。通过该命令,系统管理员可以发现当前系统存在哪些不法用户,找到非法使用用户后可以通过多种手段限制该用户或者该登录IP继续使用服务器。下面是who命令运行显示情况:

[root@ntbak ~]# who

root     tty1         2011-03-21 16:59

root     pts/0        2011-06-14 19:06 (10.35.117.80)

root     pts/2        2011-03-13 14:21 (:1.0)

在指明wtmp情况下,通过who命令可以查询到所有以前的记录。下面是命令who /var/log/wtmp的运行结果,显示了自从wtmp文件创建、删改以来的每一次登录。

[root@ntbak ~]# who /var/log/wtmp

ntbackup pts/0        2011-06-03 14:18 (10.35.8.242)

root     pts/3        2011-06-03 15:24 (10.35.117.80)

root     pts/3        2011-06-03 15:48 (10.35.117.80)

ntbackup pts/0        2011-06-03 17:15 (10.35.8.242)

ntbackup pts/0        2011-06-07 10:15 (10.35.117.73)

ntbackup pts/3        2011-06-07 10:26 (10.35.117.73)

ntbackup pts/0        2011-06-07 10:45 (10.35.117.73)

ntbackup pts/4        2011-06-07 12:43 (10.35.117.73)

ntbackup pts/5        2011-06-07 13:41 (10.35.117.73)

ntbackup pts/0        2011-06-07 15:41 (10.35.117.73)

root     pts/0        2011-06-07 21:12 (10.32.171.146)

ntbackup pts/0        2011-06-08 10:39 (10.35.117.73)

ntbackup pts/0        2011-06-09 19:43 (10.35.117.73)

ntbackup pts/0        2011-06-10 08:24 (10.35.117.73)

ntbackup pts/3        2011-06-10 08:34 (10.35.117.73)

ntbackup pts/4        2011-06-10 10:25 (10.35.117.73)

ntbackup pts/0        2011-06-10 12:34 (10.35.117.73)

ntbackup pts/0        2011-06-13 08:34 (10.35.117.73)

root     pts/0        2011-06-13 15:42 (flashieldsdell.nt.js.cmcc)

root     pts/0        2011-06-14 14:44 (10.35.117.80)

root     pts/0        2011-06-14 19:06 (10.35.117.80)

 

1.2    日志使用注意事项

在系统管理工作中,按时以及随机的检查系统日志是非常重要的工作,可以帮助系统管理人员及时发现可疑状况,需要检查的系统日志文件驻澳包括一般信息日志、网络连接日志、文件传输日志以及用户登录日志等。在检查这些日志时,要特别注意时间记载,分析日志产生的时间是否合理。例如:

■ 非正常时间(凌晨)的用户登录;

■ 关键日志记录损坏,尤其是记录用户登录登出信息的wtmp文件;

■ 非正常IP的用户登录;

■ 用户登录失败,甚至一再尝试登录并失败的日志记录;

■ 非正常的超级用户权限切换su指令;

■ 非正常的控制进程启动或重启记录。

由于Linux服务器是基于文件记录的系统日志,尽管重要的日志文件已经是二进制的,但是由于Linux是开源的操作系统,所以有些情况下黑客在入侵后经常会打扫战场。虽然在这种情况下,日志信息显得不是那么可靠,但是如果能够综合运用以上的系统命令,并结合其他系统相关命令,通过系统的、关联的分析还是能够找到蛛丝马迹。

users命令在一行打印出当前登录的用户信息,每个用户名代表对应一个登录会话。结合who命令以及进程统计日志可以分析黑客伪造这两个命令的情况。运行该命令将如下所示:

[root@ntbak ~]# users

root root root

[root@ntbak ~]# who

root     tty1         2011-03-21 16:59

root     pts/0        2011-06-14 19:06 (10.35.117.80)

root     pts/2        2011-03-13 14:21 (:1.0)

[root@ntbak ~]#

last命令与who/var/log/wtmp命令输出结果相似。通过使用以及对比着两个输出,系统管理员可以对使用系统的用户进行审计和考核,及时发现问题,解决问题。运行该命令,如下所示:

[root@ntbak ~]# last

root     pts/0        10.35.117.80     Tue Jun 14 19:06   still logged in    

root     pts/0        flashieldsdell.n Mon Jun 13 15:42 - 19:21  (03:38)   

ntbackup pts/0        10.35.117.73     Mon Jun 13 08:34 - 09:11  (00:37)   

……

ntbackup pts/0        10.35.8.242      Fri Jun  3 14:18 - 16:29  (02:11)   

如果使用上述命令显示的信息太多,比较难区分,可以通过grep命令,或者对last命令指明用户来显示其登录信息即可。例如: 只显示root的历史登录信息,则如下所示:

[root@ntbak ~]# last root

root     pts/0        10.35.117.80     Tue Jun 14 19:06   still logged in  

root     pts/0        10.35.117.80     Tue Jun 14 14:44 - 16:58  (02:14)   

root     pts/0        flashieldsdell.n Mon Jun 13 15:42 - 19:21  (03:38)   

root     pts/0        10.32.171.146    Tue Jun  7 21:12 - 23:24  (02:11)   

root     pts/3        10.35.117.80     Fri Jun  3 15:48 - 18:04  (02:16)   

root     pts/3        10.35.117.80     Fri Jun  3 15:24 - 15:24  (00:00)   

ac命令根据系统的wtmp文件中的登入登出信息生成用户连接时间(单位小时)的报告,如下所示。

[root@ntbak ~]# ac -d

Jun  3  total        6.68

Jun  7  total       18.89

Jun  8  total        9.92

Jun  9  total       11.00

Jun 10  total        9.28

Jun 13  total        4.26

Today   total        2.84

[root@ntbak ~]# ac -p

        ntbackup                            51.92

        root                                10.95

        total       62.87

lastlog命令通过格式化输出上次登录日志/var/log/lastlog的内容,可以显示用户上次登录的时间。它可以显示登录用户名、登录使用方式(tty/pts)和上次登录时间。如果一个用户从未登录过,则显示 “**Neverlogged**”。。运行该命令如下所示:

[root@working]# lastlog

 

Username Port From Latest

 

root pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

 

opal pts/1 10.0.2.129 二 5月 10 10:13:26 +0800 2005

1.3    使用Syslog设备

Syslog已被许多日志函数采纳,被用在许多保护措施中,任何程序都可以通过syslog 记录事件。Syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录另一个主机上的事件。

Syslog设备核心包括一个守护进程(/etc/syslogd守护进程)和一个配置文件(/etc/syslog.conf配置文件)。通常情况下,多数syslog信息被写到/var/adm或/var/log目录下的信息文件中 (messages.*)。一个典型的syslog记录包括生成程序的名字和一个文本信息。它还包括一个设备和一个优先级范围。

系统管理员通过使用syslog.conf文件,可以对生成的日志的位置及其相关信息进行灵活配置,满足应用的需要。例如,如果想把所有邮件消息记录到一个文件中,则做如下操作:

#Log all the mail messages in one place

 

mail.* /var/log/maillog

其他设备也有自己的日志。UUCP和news设备能产生许多外部消息。它把这些消息存到自己的日志(/var/log/spooler)中并把级别限为\"err\"或更高。例如:

# Save news errors of level crit and higher in a special file.

 

uucp,news.crit /var/log/spooler

当一个紧急消息到来时,可能想让所有的用户都得到。也可能想让自己的日志接收并保存。

#Everybody gets emergency messages, plus log them on anther machine

 

*.emerg *

 

*.emerg @linuxaid.com.cn

用户可以在一行中指明所有的设备。下面的例子把info或更高级别的消息送到/var/log/messages,除了mail以外。级别\"none\"禁止一个设备:

#Log anything(except mail)of level info or higher

 

#Don\’t log private authentication messages!

 

*.info:mail.none;autHPriv.none /var/log/messages

在有些情况下,可以把日志送到打印机,这样网络入侵者怎么修改日志都不能清除入侵的痕迹。因此,syslog设备是一个攻击者的显著目标,破坏了它将会使用户很难发现入侵以及入侵的痕迹,因此要特别注意保护其守护进程以及配置文件。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值