初探Solaris日志

来源:互联网 发布:tensorflow 集成显卡 编辑:程序博客网 时间:2024/05/16 04:53

  假设你是一位使用solaris操作系统的网站管理员,有一天你无意中在你硬盘/var/adm目录下messages文件中看到了如下类似内容:

Apr 24 203104 nmssa /usr/dt/bin/rpc.ttdbserverd[405]: _Tt_file_system::findBest
MountPoint -- max_match_entry is null, aborting…
Apr 24 203105 nmssa inetd[140]: /usr/dt/bin/rpc.ttdbserverd: Segmentation Faul
t - core dumped

知道这意味着什么吗?你的系统已有至少99%的可能性被侵入!

  目前使用solaris的系统管理员都知道在/var区下有个目录adm,在这个目录下有messagssyslogsulogutmp等诸多日志文件,它们记录着solaris系统产生的各种消息日志。从系统管理员的角度来讲,清楚的理解各个日志文件的功能及作用是很有必要的,在系统发生安全问题时,这些日志纪录可以在一定意义上起到帮助和诊断作用。

  我们来依次看看Adm目录下的主要文件。

adm/messags

  我们先来看最为重要的messages文件, messages记载来自系统核心的各种运行日志,包括各种精灵,如认证,inetd等进程的消息及系统特殊状态,如温度超高等的系统消息,可以说它是系统最重要的日志之一。 messages可以记载的内容是由/etc/syslog.conf决定的,有兴趣的读者可以使用man syslog.conf命令来做一个详细了解,这里就不介绍了。就安全的角度来讲,目前互联网上入侵者采用的手段大多数是利用系统的漏洞,而当入侵者试图利用漏洞对你的服务器进行攻击时,在服务器的messages文件中一般会留下一些异常的内容,如本文最开始描述的部分,就是目前互联网上入侵者使用 rpc.ttdbserver漏洞攻击所留下的痕迹,它是solaris最为臭名昭著的一个系统漏洞,入侵者利用这个漏洞可以轻松的从远端得到超级用户权限,但这种攻击不是干净的入侵攻击,它会在messages下留下记录,同时会在根目录下生成core文件,如果细心的管理员经常检查系统日志,是不难发现有入侵者或入侵企图的,又比如下面的纪录:

Apr 24 112625 unix.secu.com ftpd[7261]: anonymous (bogus) LOGIN FAILED [from 11.22.33.46]
Apr 24 112723 unix.secu.com ftpd[7264]: 163 (bogus) LOGIN FAILED [from 11.22.33.49
Apr 24 112844 unix.secu.com ftpd[7265]: abc (bogus) LOGIN FAILED [from 11.22.33.46]

  管理员可以从上述纪录中可以清楚看到在241126, 1127, 1128分有可疑用户在猜主机的ftp口令,它们的来源ip 分别是 11.22.33.4611.22.33.49

adm/sulog

  sulog中记载着普通用户尝试su成为其它用户的纪录。它的格式为: 发生时间 +/-(成功/失败) pts号 当前用户欲su成的用户,我们截取一部分实际内容,来看一下:

SU 04/15 1635 + pts/6 yiming-root
SU 04/15 1643 + pts/4 root-yiming
SU 04/17 0820 - pts/5 cheny-root
SU 04/18 1636 - pts/4 cheny-root
SU 04/19 0257 + pts/11 lizhao-root
SU 04/19 1957 + pts/11 cys-root
SU 04/21 0820 - pts/4 cheny-root
SU 04/21 1636 - pts/8 cheny-root
SU 04/22 1523 - pts/5 cheny-root

对管理员来讲,需要密切关注两种用户第一是反复su失败的,如以上cheny用户,他有猜超级用户口令的嫌疑第二是在不正常时间的su纪录,如上述第六行用户lizhao然他正确的输入了口令(在第四列中有+)0257分这个时间比较可疑,这是一个管理员不大可能工作的时间,要知道,入侵者可能安装过sniffer之类的软件,并利用它窃取到了超级用户口令,为了进一步做工作,如窃取主机敏感数据,入侵者需要进行比较复杂的操作,但在白天这个系统管理员活动的时间被发现的可能性是比较大的,所以即使入侵者得到了高权限的密码,一般也会选择深夜等管理员一般不工作的时间。这些时候没有人会抓他。

 

adm/utmp,utmpx

  这两个文件是不具可读性的,它们记录着当前登录在主机上的用户,管理员可以用wwho等命令来看,下面为who的输出结果,

yiming pts/29 Jun 12 0924 (11.22.33.44)
yiming pts/28 Jun 12 0841 (11.22.33.43)
guest pts/30 Jun 12 0926 (penetrate.hacker.com)
root pts/19 Jun 12 0819 (:0.0)

  它的输出很简单,每行依次为用户,pts号,时间,来源地点。当管理员觉得系统表现可疑时,一般会用这两个命令来看当前用户,如果在输出中有不正常的用户名,或是来源ip较为可疑,则管理员需要引起注意了。如上述guest这个用户就比较可疑,虽然这个用户名guest是合法的,但这个用户的来源 penetrate.Hacker.com看起来可是不太对劲。系统管理员有必要监视一下这个用户的行为。有一点要注意,管理员不能完全相信wwho及下面提到的last命令所报告的结果,使用特定的擦除日志软件,如zap之类入侵者可以很轻松的抹掉入侵者的踪迹,一个聪明的入侵者一般会将编译好的擦除软件传到受害主机,并在侵入系统后马上做擦除工作,比如他在受害主机执行zap,如下

./zap -v guest
- WTMP
WTMP = /var/adm/wtmp
Removing user guest at pos: 131328
Done!

- UTMP
UTMP = /var/adm/utmp
Removing user guest at pos: 864
Done!

- LASTLOG
LASTLOG = /var/adm/lastlog
User guest has no wtmp record。 Zeroing lastlog。。
- WTMPX
WTMPX = /var/adm/wtmpx
Done!

- UTMPX
UTMPX = /var/adm/utmpx
Done!

此时,在用w看时,我们看看发生了什么变化?

yiming pts/29 Jun 12 0924 (11.22.33.44)
yiming pts/28 Jun 12 0841 (11.22.33.43)
root pts/19 Jun 12 0819 (:0.0)

我们可以看到入侵者消失了!这对入侵者是个好消息,但对一个安全意识较差的系统管理员而言,这台主机可不大妙了。建议如果系统看起来不大对劲,而用wlast等看出不出来端倪的话,还是安装其它系统监视软件如ttywatcherethereal等仔细审核一下。

 

adm/wtmpwtmps

  这两个文件相当于历史纪录,它们记录着所有登录过主机的用户,时间,来源等内容, 这两个文件也是不具可读性的。可用last命令来看,如下。

support pts/13 11.22.33.44 Thu Apr 20 1840 - 2050 (0210)
gogo pts/12 11.22.33.45 Thu Apr 20 153 - 1721 (0228)
root ftp secu.unix.com Wed Apr 19 1458 - 1458 (0000)

  管理员要注意那些发生在不正常时间或是来自可疑地点的登录纪录,如上面输出结果中的gogo用户,这个时间不太正常。

  与上面utmputmpx一样,管理员也应该清楚:last只能给你一个大概的参考,不要完全相信last的结果。

  除了上述几个文件外,在/var/log目录下还有一个syslog文件,这个文件的内容一般是mail事件的,管理员应该经常检查有没有异常纪录。

  最后来讲一讲solaris一个很少被用起但却极为有用的功能---记账。Solaris操作系统可以通过设置日志文件可以对每个用户的每一条命令进行纪录,这一功能默认是不开放的,为了打开它,需要执行/usr/lib/acct目录下的accton文件,格式如下 /usr/lib/acct/accton /var/adm/pacct,在sun的手册上,只有这一种用法,但这样做的缺点是明显的,大多数有经验的入侵者一定不会放过/var/adm和 /var/log这两个目录的,如果它们看到有pacct这个东西,不删才怪。针对这种情况其实有个很好的解决办法,执行 /usr/lib/acct/accton 后面跟一个别的目录和文件即可,如/usr/lib/acct/accton /yiming/log/commandlog,这样入侵者不会在/var/adm/下看到pacct,入侵者也许会删掉messagesyslog等日志,但他并不知道实际上他所有的操作都被记录在案,管理员事后只要把commandlog这个文件拷贝到/var/adm下,改为pacct ,同时执行读取命令lastcomm,就一切尽在掌握啦。如lastcomm hack,可得到下面的输出结果:

sh S hack pts/7 0.05 secs Mon Jun 12 1428
sh F hack pts/7 0.00 secs Mon Jun 12 1439
ls hack pts/7 0.01 secs Mon Jun 12 1439
ls hack pts/7 0.02 secs Mon Jun 12 1439
ls hack pts/7 0.01 secs Mon Jun 12 1438
df hack pts/7 0.03 secs Mon Jun 12 1438
ftp hack pts/7 0.02 secs Mon Jun 12 1437
ls hack pts/7 0.01 secs Mon Jun 12 1437
vi hack pts/7 0.02 secs Mon Jun 12 1437
who hack pts/7 0.02 secs Mon Jun 12 1436

  我们从输出中可以了解用户hack所做的工作,是不是很爽?

  其实网络安全,可以从一些小的点点滴滴的方面加以注意,使用得当,一样会起到较好的作用,管理员,从关注你的日志文件开始吧。