【安全-安全檢查】操作系統日誌分析(Linux+Windows)

1 Linux日誌分析

日誌是Linux 安全結構中的一個重要內容,是提供攻擊發生的唯一真實證據。Linux 中日誌包括以下幾類:登錄時間日誌子系統、進程統計日誌子系統、錯誤日誌子系統等。 

  • 登錄時間日誌子系統:

登錄時間通常會與多個程序的執行產生關聯,一般情況下,將對應的記錄寫到/var/log/wtmp 和/var/run/utmp 中。爲了使用系統管理員能夠有效地跟蹤誰登錄過系統,一旦觸發 login 等程序,就會對 wtmp 和 utmp 文件進行相應的更新。 

  • 進程統計日誌子系統:

主要由系統內核實現完成記錄操作。當一個進程終止時,系統就自動記錄該進程,往進程統計文件或中寫一個紀錄。進程統計的目的是爲系統中的基本服務提供命令使用統計。. 

  • 錯誤日誌子系統:

其主要由系統進程 syslogd(以及替換版本 rsyslogd)實現,各個應用系統(FTP、Samba 等)的守護進程、用戶程序、系統內核來自動利用 syslog 向/var/log/secure中添加紀錄,用來記錄系統錯誤日誌。 

  • 審計子系統:

提供了一種記錄系統安全信息的方法,爲系統管理員在用戶違反系統安全法則時提供及時的警告信息。在用戶空間,審計系統由 auditd、ausearch 等應用程序組成。審計後臺 auditd 應用程序通過 netlink 機制從內核中接收審計消息,然後,通過一個工作線程將審計消息寫入到審計日誌文件中,其中,還有一部分消息通過消息分發後臺進程dispatcher調用 syslog 寫入日誌系統。 

1.1 Message日誌

該日誌文件是許多進程日誌文件的彙總,記錄有運行信息和認證信息,從該文件可以看出任何入侵企圖或成功的入侵。RedHat和CentOs的messages日誌位置爲  /var/log/messages。

1.2 cron日誌 

該日誌文件記錄crontab守護進程crond所派生的子進程的動作。 RedHat和CentOs的cron 日誌默認記錄在/var/log/cron中。

CMD 的一個動作是 cron 派生出一個調度進程的常見情況。REPLACE(替換)動作記錄用戶對它的  cron 文件的更新,該文件列出了要週期性執行的任務調度。RELOAD動作在REPLACE動作後不久發生,這意味着cron注意到一個用戶的cron文件被更新而cron需要把它重新裝入內存。該文件可能會查到一些反常的情況。比如攻擊者留存的定時任務等。

1.3 secure 日誌 

Linux的ssh登錄日誌會存儲於/var/log/secure 中,若日誌中出現連續大量的登錄錯誤信息,則可能意味着遠程主機在嘗試破解 ssh 登錄口令 。如下,192.168.27.80在不斷嘗試登陸root用戶,且連續登陸失敗:

su的嘗試訪問失敗日誌:常見於越權訪問裏

PS:在Ubuntu中,有個日誌文件叫做/var/log/auth.log,這裏可以一條命令塞選ssh登陸ip。 

grep 'sshd' /var/log/auth.log* |grep 'Accepted' | grep -oE '\<([1-9]|[1-9][0-9]|1[0-9]{2}|2[01][0-9]|22[0-3])\>(\.\<([0-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\>){2}\.\<([1-9]|[0-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-4])\>' | sort | uniq 

1.4 last日誌 

last命令讀取/var/log/wtmp文件,該日誌文件永久記錄每個用戶登錄、註銷及系統的啓動、停機的事件 

在 Linux 還中還存在lastlog 命令,用於查看系統內所有帳戶最後一次登錄信息,該命令讀取/var/log/lastlog內容。 

根據UID排序顯示登錄名、端口號、登陸地址和上次登錄時間:

PS:如果某用戶從來沒有登錄過,就顯示爲”**Never logged in**”。系統賬戶諸如 bin、daemon、adm、uucp、mail 等決不應該登錄,如果發現這些賬戶已經登錄,就說明系統可能已經被入侵了。

1.5 shell日誌 

Bash 日誌存儲於用戶目錄的.bash_history文件中,有些攻擊者 SSH 登陸進來之後可能會執行命令,所以該日誌可能會記錄下執行的命令。該日誌存儲條目數量與 shell 變量$HISTSIZE 有關。 

1.6 其他日誌

  • /var/log/boot.log

該文件記錄了系統在引導過程中發生的事件,就是 Linux系統開機自檢過程顯示的信息。 

  • /var/log/syslog

默認 RedHat Linux 不生成該日誌文件,但可以配置/etc/syslog.conf讓系統生成該日誌文件。

  •  /var/run/utmp 

該日誌文件記錄有關當前登錄的每個用戶的信息。因此這個文件會隨着用戶登錄和註銷系統而不斷變化,它只保留當時聯機的用戶記錄,不會爲用戶保留永久的記錄。系統中需要查詢當前用戶狀態的程序,如who、 w、 users、finger等就需要訪問這個文件。
但是,該日誌文件並不能包括所有精確的信息,因爲某些突發錯誤會終止用戶登錄會話,而系統沒有及時更新 utmp 記錄,因此該日誌文件的記錄不是百分之百值得信賴的。

  • /var/log/xferlog 

該日誌文件記錄 FTP 會話,可以顯示出用戶向 FTP服務器或從服務器拷貝了什麼文件

2 Windows日誌分析

Windows的日誌文件主要是三大塊,分別是: 
應用程序日誌 
安全日誌 
系統日誌 
setup日誌(server 2003之後加入) 
這些日誌在 server 2003(含)以前,以evt文件形式存儲在%systemroot%\system32\config 目錄(%SystemRoot%爲系統環境變量,默認值爲C:\WINDOWS)。但是在server 2003 以後存儲的位置是在%systemroot%\System32\winevt\Logs目錄下。 

PS:系統內置的三個核心日誌文件(System,Security和 Application)默認大小均爲20480KB(20MB),記錄事件數據超過 20MB時,默認系統將優先覆蓋過期的日誌記錄。其它應用程序及服務日誌默認最大爲1024KB,超過最大限制也優先覆蓋過期的日誌記錄。 

點擊“開始→設置→控制面板→管理工具→事件查看器”,或者我的電腦右鍵點擊【管理】,可以查看這些日誌。

事件類型一共有五種:

1.  信息(Information) 
信息事件指應用程序、驅動程序或服務的成功操作的事件。 
2.  警告(Warning) 
警告事件指不是直接的、主要的,但是會導致將來問題發生的問題。例如,當磁盤空間不足或未找到打印機時,都會記錄一個“警告”事件。 
3.  錯誤(Error) 
錯誤事件指用戶應該知道的重要的問題。錯誤事件通常指功能和數據的丟失。例如,如果一個服務不能作爲系統引導被加載,那麼它會產生一個錯誤事件。 
 4.  成功審覈(Success audit) 
成功的審覈安全訪問嘗試,主要是指安全性日誌,這裏記錄着用戶登錄/註銷、對象訪問、特權使用、賬戶管理、策略更改、詳細跟蹤、目錄服務訪問、賬戶登錄等事件,例如所有的成功登錄系統都會被記錄爲“ 成功審覈”事件。 
5.  失敗審覈(Failure audit) 
失敗的審覈安全登錄嘗試,例如用戶試圖訪問網絡驅動器失敗,則該嘗試會被作爲失敗審覈事件記錄下來。 

2.1 應用程序日誌

應用程序日誌包含操作系統安裝的應用程序軟件相關的事件。事件包括了錯誤、警告及任何應用程序需要報告的信息,應用程序開發人員可以決定記錄哪些信息。然後開發人員可以利用這些日誌可判斷哪些程序運行錯誤以及錯誤內容

2.2 安全日誌

安全日誌包含安全性相關的事件,如用戶權限變更,登錄及註銷,文件及文件夾訪問,打印等信息。 

事件ID--事件描述(部分)

  •   1102     清理審計日誌   
  •   4624     賬號成功登錄   
  •   4625     賬號登錄失敗   
  •   4768      Kerberos身份驗證(TGT 請求)   
  •   4769      Kerberos服務票證請求   
  •   4776      NTLM身份驗證   
  •   4672     授予特殊權限   
  •   4720     創建用戶   
  •   4726     刪除用戶   
  •   4728     將成員添加到啓用安全的全局組中   
  •   4729     將成員從安全的全局組中移除   
  •   4732     將成員添加到啓用安全的本地組中   
  •   4733     將成員從啓用安全的本地組中移除   
  •   4756     將成員添加到啓用安全的通用組中   
  •   4757     將成員從啓用安全的通用組中移除   
  •   4719     系統審計策略修改   

登陸類型--描述

  •   2     交互式登錄(用戶從控制檯登錄)   
  •   3     網絡(例如:通過net use,訪問共享網絡)   
  •   4     批處理(爲批處理程序保留)   
  •   5     服務啓動(服務登錄)   
  •   6     不支持   
  •   7     解鎖(帶密碼保護的屏幕保護程序的無人值班工作站)   
  •   8     網絡明文(IIS 服務器登錄驗證)   
  •   10     遠程交互(終端服務,遠程桌面,遠程輔助)    
  •   11     緩存域證書登錄   

從日誌中可以看到登陸的詳細信息:登陸時間、用戶、源網絡地址等。如果出現大規模的登陸失敗,且登錄類型爲 3 的登錄嘗試,則很可能意味着有用戶在遠程嘗試口令破解,應特別小心。 

Windows 默認情況下沒有額外的系統啓動日誌或相關記錄程序,因此,需依靠一些服務來判斷系統的系統,而其中  event log 服務是最好的參考標誌,event log 服務的啓動和停止就意味着Windows系統的啓動和停止。 

2.3 系統日誌

系統日誌包含系統進程,設備磁盤活動等。事件記錄了設備驅動無法正常啓動或停止,硬件失敗,重複IP地址,系統進程的啓動,停止及暫停等行爲。

若系統中突然出現大量 IP地址衝突的日誌,則可判斷網絡中存在ARP欺騙攻擊。 

還可以查看一些系統相關的關鍵日誌和錯誤日誌:

2.4 setup日誌

該日誌主要記錄一些補丁安裝日誌。 
部分惡意用戶利用漏洞入侵後,很可能會使用Windows Update對系統進行補丁安裝,以防止其他用戶入侵,這樣,在系統中就會殘留有相關的日誌: 

3 總結

以上內容是基礎安全日誌的簡單介紹,後續會補充詳細。

 

 

 


愛家人,愛生活,愛設計,愛編程,擁抱精彩人生!

發佈了94 篇原創文章 · 獲贊 232 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章