計(jì)算機(jī)系統(tǒng)日志為了維護(hù)自身系統(tǒng)資源的運(yùn)行狀況,計(jì)算機(jī)系統(tǒng)一般都會(huì)有相應(yīng)的日志記錄系統(tǒng)有關(guān)日常事件或者誤操作警報(bào)的日期及時(shí)間戳信息。這些日志信息對(duì)計(jì)算機(jī)犯罪調(diào)查人員非常有用。 目錄 日志的概念所謂日志(Log)是指系統(tǒng)所指定對(duì)象的某些操作和其操作結(jié)果按時(shí)間有序的集合。每個(gè)日志文件由日志記錄組成,每條日志記錄描述了一次單獨(dú)的系統(tǒng)事件。通常情況下,系統(tǒng)日志是用戶可以直接閱讀的文本文件,其中包含了一個(gè)時(shí)間戳和一個(gè)信息或者子系統(tǒng)所特有的其他信息。日志文件為服務(wù)器、工作站、防火墻和應(yīng)用軟件等IT資源相關(guān)活動(dòng)記錄必要的、有價(jià)值的信息,這對(duì)系統(tǒng)監(jiān)控、查詢、報(bào)表和安全審計(jì)是十分重要的。日志文件中的記錄可提供以下用途:監(jiān)控系統(tǒng)資源;審計(jì)用戶行為;對(duì)可疑行為進(jìn)行告警;確定入侵行為的范圍;為恢復(fù)系統(tǒng)提供幫助;生成調(diào)查報(bào)告;為打擊計(jì)算機(jī)犯罪提供證據(jù)來源。日志的特點(diǎn)日志記錄著系統(tǒng)中特定事件的相關(guān)活動(dòng)信息,從計(jì)算機(jī)取證角度看,日志主要有以下特點(diǎn):不易讀懂雖然大部分系統(tǒng)的日志都以文本的形式記錄,但由于各系統(tǒng)日志格式不一致,不熟悉各類日志格式就很難獲取有用的信息。同時(shí)有相當(dāng)部分應(yīng)用系統(tǒng)并不采用文本格式記錄著日志信息,必須借助專用的工具分析這些日志,否則很難讀懂其中的日志信息。數(shù)據(jù)量大通常對(duì)外服務(wù)產(chǎn)生的日志文件如Web服務(wù)日志、防火墻、入侵檢測(cè)系統(tǒng)日志和數(shù)據(jù)庫日志以及各類服務(wù)器日志等都很大,一個(gè)日志文件一天產(chǎn)生的容量少則幾十兆、幾百兆,多則有幾個(gè)G,幾十個(gè)G,這使得獲取和分析日志信息變得很困難。不易獲取由于網(wǎng)絡(luò)中不同的操作系統(tǒng)、應(yīng)用軟件、網(wǎng)絡(luò)設(shè)備和服務(wù)產(chǎn)生不同的日志文件,即使相同的服務(wù)如IIS也可采用不同格式的日志文件記錄日志信息。目前國際上還沒有形成標(biāo)準(zhǔn)的日志格式,各系統(tǒng)開發(fā)商和網(wǎng)絡(luò)設(shè)備生產(chǎn)商往往根據(jù)各自的需要制定自己的日志格式,使得不同系統(tǒng)的日志格式和存儲(chǔ)方式有所差別。如何獲取各類不同系統(tǒng)產(chǎn)生的不同日志文件作為打擊計(jì)算機(jī)犯罪者的電子證據(jù)變得尤為困難。不同日志之間存在某種必然的聯(lián)系一個(gè)系統(tǒng)的日志是對(duì)本系統(tǒng)涉及的運(yùn)行狀況的信息按時(shí)間順序作一簡單的記錄,僅反映本系統(tǒng)的某些特定事件的操作情況,并不完全反映某一用戶的整個(gè)活動(dòng)情況。一個(gè)用戶在網(wǎng)絡(luò)活動(dòng)的過程中會(huì)在很多的系統(tǒng)日志中留下痕跡,如防火墻IDS日志、操作系統(tǒng)日志等,這些不同的日志之間存在某種必然的聯(lián)系來反映用戶的活動(dòng)情況。只有將多個(gè)系統(tǒng)的日志結(jié)合起來分析,才能準(zhǔn)確反映用戶活動(dòng)情況。容易被修改、破壞甚至偽造產(chǎn)生系統(tǒng)日志的軟件通常為應(yīng)用系統(tǒng)而不是作為操作系統(tǒng)的子系統(tǒng)運(yùn)行,所產(chǎn)生的日志記錄容易遭到惡意的破壞或修改。系統(tǒng)日志通常存儲(chǔ)在系統(tǒng)未經(jīng)保護(hù)的目錄中,并以文本方式存儲(chǔ),未經(jīng)加密和校驗(yàn)處理,沒有提供防止惡意篡改的有效保護(hù)機(jī)制。因此,日志文件并不一定是可靠的,入侵者可能會(huì)篡改日志文件,從而不能被視為有效的證據(jù)。由于日志是直接反映入侵者痕跡的,在計(jì)算機(jī)取證中扮演著重要的角色,入侵者獲取系統(tǒng)權(quán)限竊取機(jī)密信息或破壞重要數(shù)據(jù)后往往會(huì)修改或刪除與其相關(guān)的日志信息,甚至根據(jù)系統(tǒng)的漏洞偽造日志以迷惑系統(tǒng)管理員和審計(jì)。Windows系統(tǒng)日志以Windows2000/XP為例,日志文件通常有應(yīng)用程序日志,安全日志、系統(tǒng)日志、DNS服務(wù)器日志、FTP日志、WWW日志等等。 日志文件默認(rèn)位置: 應(yīng)用程序日志、安全日志、系統(tǒng)日志、DNS日志默認(rèn)位置:%sys temroot%\sys tem32\config,默認(rèn)文件大小512KB,管理員都會(huì)改變這個(gè)默認(rèn)大小。 安全日志文件:%sys temroot%\sys tem32\config\SecEvent.EVT 系統(tǒng)日志文件:%sys temroot%\sys tem32\config\SysEvent.EVT 應(yīng)用程序日志:%sys temroot%\sys tem32\config\AppEvent.EVT Internet信息服務(wù)FTP日志默認(rèn)位置:%sys temroot%\sys tem32\logfiles\msftpsvc1\ 默認(rèn)每天一個(gè)日志 Internet信息服務(wù)WWW日志默認(rèn)位置:%sys temroot%\sys tem32\logfiles\w3svc1\ 默認(rèn)每天一個(gè)日志 Scheduler服務(wù)日志默認(rèn)位置:%sys temroot%\schedlgu.txt 以上日志在注冊(cè)表里的鍵: 應(yīng)用程序日志,安全日志,系統(tǒng)日志,DNS服務(wù)器日志,它們這些LOG文件在注冊(cè)表中的位置: HKEY_LOCAL_MACHINE\sys tem\CurrentControlSet\Services\Eventlog 有的管理員很可能將這些日志重定位。其中EVENTLOG下面有很多的子表,里面可查到以上日志的定位目錄。 Schedluler服務(wù)日志在注冊(cè)表中的位置: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\SchedulingAgent Windows NT/2000主要有以下三類日成記錄系統(tǒng)事件:應(yīng)用程序日志記錄由應(yīng)用程序產(chǎn)生的事件。例如,某個(gè)數(shù)據(jù)庫程序可能設(shè)定為每次成功完成備份操作后都向應(yīng)用程序日志發(fā)送事件記錄信息。應(yīng)用程序日志中記錄的時(shí)間類型由應(yīng)用程序的開發(fā)者決定,并提供相應(yīng)的系統(tǒng)工具幫助用戶使用應(yīng)用程序日志。系統(tǒng)日志記錄由Windows NT/2000操作系統(tǒng)組件產(chǎn)生的事件,主要包括驅(qū)動(dòng)程序、系統(tǒng)組件和應(yīng)用軟件的崩潰以及數(shù)據(jù)丟失錯(cuò)誤等。系統(tǒng)日志中記錄的時(shí)間類型由Windows NT/2000操作系統(tǒng)預(yù)先定義。安全日志記錄與安全相關(guān)事件,包括成功和不成功的登錄或退出、系統(tǒng)資源使用事件等。與系統(tǒng)日志和應(yīng)用程序日志不同,安全日志只有系統(tǒng)管理員才可以訪問。 Windows NT/2000的系統(tǒng)日志由事件記錄組成。每個(gè)事件記錄為三個(gè)功能區(qū):記錄頭區(qū)、事件描述區(qū)和附加數(shù)據(jù)區(qū)。Linux系統(tǒng)日志在Unix下,最常用的存放日志文件的目錄是: /usr/adm 早期版本的 Unix /var/adm 較新版本的 Unix /var/log 用于Solaris,Linux,BSD等 /etc Unix system V早期版本 在這些目錄下,或其子目錄下,你可以找到以下日志文件(也許是其中的一部分): lastlog 記錄用戶最后一次成功登錄時(shí)間 loginlog 不良的登陸嘗試記錄 messages 記錄輸出到系統(tǒng)主控臺(tái)以及由syslog系統(tǒng)服務(wù)程序產(chǎn)生的消息 utmp 記錄當(dāng)前登錄的每個(gè)用戶 utmpx 擴(kuò)展的utmp wtmp 記錄每一次用戶登錄和注銷的歷史信息 wtmpx 擴(kuò)展的wtmp vold.log 記錄使用外部介質(zhì)出現(xiàn)的錯(cuò)誤 xferkig 記錄Ftp的存取情況 sulog 記錄su命令的使用情況 acct 記錄每個(gè)用戶使用過的命令 aculog 撥出自動(dòng)呼叫記錄 記錄輸出到系統(tǒng)主控臺(tái)以及由syslog系統(tǒng)服務(wù)程序產(chǎn)生的消息。syslog采用可配置的、統(tǒng)一的系統(tǒng)登記程序,隨時(shí)從系統(tǒng)各處接受log請(qǐng)求,然后根據(jù)/etc/syslog.conf中的預(yù)先設(shè)定把log信息寫入相應(yīng)文件中、郵寄給特定用戶或者直接以消息的方式發(fā)往控制臺(tái)。值得注意的是,為了防止入侵者修改、刪除messages里的記錄信息,可以采用用打印機(jī)記錄或跨越網(wǎng)絡(luò)登記的方式來挫敗入侵者的企圖。 任何程序都可以通過syslog記錄事件。Syslog可以記錄系統(tǒng)事件,可以寫到一個(gè)文件或設(shè)備中,或給用戶發(fā)送一個(gè)信息。它能記錄本地事件或通過網(wǎng)絡(luò)記錄到另一臺(tái)主機(jī)上的事件。 Syslog依據(jù)兩個(gè)重要的文件:/sbin/syslogd(守護(hù)進(jìn)程)和/etc/syslog.conf配置文件。習(xí)慣上,多數(shù)syslog信息被寫到/var/adm或/ar/log目錄下的信息文件中(*message.)。一個(gè)典型的syslog記錄包括生成程序的名字和一個(gè)文本信息,它還包括一個(gè)設(shè)備和一個(gè)行為級(jí)別(但不在日志中出現(xiàn))。 syslogd & klogd ---------/etc/syslog.conf /var/log/secure:登錄到系統(tǒng)存取資料的記錄;FTP、SSH、TELNET... /var/log/wtmp:記錄登錄者訊錄,二進(jìn)制文件,須用last來讀取內(nèi)容 /var/log/messages:雜貨鋪 /var/log/boot.log:記錄開機(jī)啟動(dòng)訊息,dmesg | more常識(shí)# ps aux | grep syslog # chkconfig --list | grep syslog # cat /var/log/secure /etc/syslog.conf 哪些服務(wù)產(chǎn)生的哪些等級(jí)訊息記錄到哪里 記錄到相同地方的多個(gè)訊息源用分號(hào)間隔 vi /etc/syslog.conf接收遠(yuǎn)程日志# grep 514 /etc/services syslog 514/udp vi /etc/sysconfig/syslog # 將SYSLOGD_OPTIONS="-m 0" # 改成 SYSLOGD_OPTIONS="-m 0 -r" /etc/init.d/syslog restart [root@linux ~]# netstat -tlunp Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name udp 0 0 0.0.0.0:514 0.0.0.0:* 24314/syslogd 對(duì)應(yīng)client # vi /etc/syslog.conf *.* @192.168.1.100logrotate* /etc/logrotate.conf * /etc/logrotate.d/ logrotate.conf 才是主要配置文件,而/logrotate.d /這個(gè)目錄內(nèi)的所有文件都被讀入 /etc/logrotate.conf來執(zhí)行! 如果在 /etc/logrotate.d/ 目錄文件中,沒有相應(yīng)的細(xì)節(jié)設(shè)定則以 /etc/logrotate.conf 設(shè)定為缺省值! vi /etc/logrotate.d/syslog /var/log/messages /var/log/secure /var/log/maillog /var/log/spooler /var/log/boot.log /var/log/cron { sharedscripts postrotate /bin/kill -HUP `cat /var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true endscript } 1、用空格作多個(gè)檔案分隔 2、所有設(shè)定在{}中 3、# prerotate:在啟動(dòng)logrotate執(zhí)行的指令 # postrotate:在做完 logrotate后需處理的指令 logrotate [-vf] logfile 參數(shù): -v :顯示過程 -f :強(qiáng)制執(zhí)行 而 logrotate 的工作加入到 crontab /etc/cron.daily/logrotate;所以系統(tǒng)每天自動(dòng)查看 只是要注意一下:/var/log/messages 是否有這樣的類似內(nèi)容 Oct 24 15:15:35 localhost syslogd 1.4.1: restart. 四、實(shí)例: 要求: 登錄檔案每月替換一次 若> 10MB ;強(qiáng)制替換,不不考慮一個(gè)月的期限; 保存五備份文檔; 備份文檔不壓縮。 步驟1: root@linux ~]# chattr +a /var/log/admin.log [root@linux ~]# lsattr /var/log/admin.log -----a------- /var/log/admin.log 只能新增不能刪節(jié)除,除非chattr -a /var/log/admin.log [root@linux ~]# mv /var/log/admin.log /var/log/admin.log.1 mv: cannot move '/var/log/admin.log' to '/var/log/admin.log.1':permission deny 步驟2: vi /etc/logrotate.d/admin # This configuration is from VBird 2005/10/24 /var/log/admin.log { monthly size=10M rotate 5 nocompress sharedscripts prerotate /usr/bin/chattr -a /var/log/admin.log endscript sharedscripts postrotate /usr/bin/killall -HUP syslogd /usr/bin/chattr +a /var/log/admin.log endscript } 步驟3:測(cè)試 # logrotate -v /etc/logrotate.conf .....(前面省略)..... rotating pattern: /var/log/admin.log 10485760 bytes (5 rotations) empty log files are rotated, old logs are removed considering log /var/log/admin.log log does not need rotating not running shared prerotate script, since no logs will be rotated ............ # logrotate -vf /etc/logrotate.d/admin reading config file /etc/logrotate.d/admin reading config info for /var/log/admin.log 也就是說: /etc/syslog.conf 與/etc/logrotate.d/* 對(duì)應(yīng)文檔搭配起來使用;先由syslogd 按照syslog.conf指定的方法處理消息, 然后送給 logrotat來按照/etc/logrotate.d/*文檔要求來輪替日志。常見指令# dmesg | more 讀/var/log/boot.log dmesg | grep 'eth' # last -n number [root@linux ~]# last -f filename -n :number -f :last 預(yù)設(shè)值為讀 /var/log/wtmp 文檔,而 -f 讀取不同的文檔 # last -n 5 -f /var/log/wtmp.1 dmtsai2 pts/2 Mon Oct 24 14:18 - 14:18 (00:00) dmtsai2 work:0 work Mon Oct 24 14:18 gone - no logout dmtsai2 work:0 work Mon Oct 24 14:18 - 14:18 (00:00) dmtsai2 pts/2 Mon Oct 24 14:18 - 14:18 (00:00) dmtsai2 work:0 work Mon Oct 24 14:18 - 14:18 (00:00) # lastlog 只讀取/var/log/lastlog 內(nèi)容,只包括當(dāng)前系統(tǒng)上面所有的賬號(hào)最近一次LOGIN的時(shí)間。 |
|