OSSEC文件 完整性檢查

2021-08-15 21:40:56 字數 4051 閱讀 1363

翻譯:

完整性檢查

syscheck是ossec內部完整性檢查過程的名稱。它定期執行以檢查是否有任何配置的檔案(或windows上的登錄檔條目)發生了變化。

為什麼完整性檢查?

有多種型別的攻擊和許多攻擊向量,但是它們都有一種獨特之處:它們留下痕跡,並且總是以某種方式改變系統。從修改一些檔案的病毒到改變核心的核心級rootkit,系統的完整性總是有一些變化。

完整性檢查是入侵檢測的乙個重要部分,它可以檢測到系統完整性的變化。ossec通過查詢系統和windows登錄檔中關鍵檔案的md5/sha1校驗和的變化來完成這一工作。

它的工作方式是,**每隔幾個小時(使用者定義)掃瞄系統,並將所有校驗和傳送到伺服器。伺服器儲存校驗和並查詢對其進行修改。如果有任何變化,就會發出警報。

簡要情況

它的執行頻率是多少?

資料庫儲存在**?

在管理端的/var/ossec/queue/syscheck

它對遵從性有什麼幫助?(pci dss等)

它幫助了11.5節(安裝fim軟體)和10.5(日誌檔案的完整性檢查)pci。

它使用了多少cpu?

掃瞄的執行速度很慢,以避免使用太多的cpu/記憶體。

誤報如何處理?

在配置或使用規則時,可以手動忽略檔案。預設情況下,當檔案改變了3次後,會自動忽略更改。

實時配置

ossec-syscheckd能夠在windows和現代linux發行版中實時檢查檔案的完整性。windows提供了支援,但是在linux系統上,可能需要安裝inotify包。檢查inotify dev包,以及inotify-tools包。

配置項這些配置選項可以在每個**的ossec中指定。除了auto_ignore和 alert_new_file,它適用於管理器和本地安裝。如果在管理器上指定,那麼忽略選項適用於所有**。

directories

使用該選項新增或刪除要監視的目錄(它們必須是逗號分隔的)。所有的檔案和子目錄也將被監視。沒有目錄的驅動器是無效的。至少是「.」應該包括(d:\.)。這應該設定在您希望監視的系統上(或者在agent.conf)。

預設: /etc,/usr/bin,/usr/sbin,/bin,/sbin

屬性:realtime: value=yes

這將使linux(使用inotify系統呼叫)和windows系統的realtime/持續監控。

report_changes: value=yes

報告檔案的變化。這個限制是在這個時候的文字檔案。

這個選項只在類unix系統上可用。

check_all: value=yes

所有下面的檢查選項一起使用。

check_sum: value=yes

檢查這些檔案的md5和sha1雜湊會被檢查。

這和使用兩者是一樣的check_sha1sum=」yes」和check_md5sum=」yes」

check_sha1sum: value=yes

當只使用該檔案的sha1值時,將檢查它。

check_md5sum: value=yes

檔案的md5值將被檢查。

check_size: value=yes

檔案的大小將會被檢查。

check_owner: value=yes

選中所選檔案的所有者。

check_group: value=yes

選中所選檔案/目錄的組所有者。

check_perm: value=yes

選中選中的檔案/目錄的unix許可權。在windows上,這只會檢查posix許可權。

restrict: value=string

乙個字串,它將把檢查限制為包含檔名中包含該字串的檔案。

允許:任何目錄或檔名(但不是路徑)

ignore

被忽略的檔案或目錄列表(每個元素的乙個條目)。檔案和目錄仍然被檢查,但是結果被忽略了。

預設:/etc/mtab

屬性:type:value=sregex

這是乙個簡單的regex模式,用於過濾出檔案,因此不會生成警報。

允許:任意目錄或者檔名

frequency

將被執行的頻率(以秒為單位),預設值是6小時或21600秒

scan_time

執行掃瞄的時間(可以以21pm、8:30、12am等格式)

scan_day

每週的掃瞄時間(可以是sunday, saturday, monday等)。

auto_ignore

是否會忽略經常變化的檔案(在第三次更改之後),預設yes

alert_new_files

是否應該對建立的新檔案發出警告,預設:no

新的檔案只會在一次完整的掃瞄中被檢測到,這個選項在實時的情況下是無效的。

scan_on_start

是否應該在開始時進行第一次掃瞄。預設yes

windows_registry

使用這個選項來新增windows登錄檔項,以監視(只windows)。預設:hkey_local_machinesoftware

registry_ignore

被忽略的登錄檔項的列表。

refilter_cmd

命令執行以防止預鏈結產生誤報。

這個選項可能會對效能產生負面影響。已配置的命令將執行於檢查的每個檔案。

例如:/usr/sbin/prelink -y

skip_nfs

是否應該掃瞄網路掛載的檔案系統。在linux和freebsd上工作。目前,skipnfs將中止對cifs或nfs裝載的檢查。預設no

配置示例

要配置syscheck,必須提供乙個檔案和目錄的列表。checkall選項檢查md5、sha1、所有者和檔案的許可權。

/etc,/usr/bin,/usr/sbin

/root/users.txt,/bsd,/root/db.html

使用ignore(在windows登錄檔中registry_ignore)忽略檔案和目錄

/etc/random-seed

/root/dir

.log$|.tmp

type屬性可以設定為sregex,以便在忽略選項中指定正規表示式語法。

可以使用本地規則修改對特定檔案或目錄的更改的嚴重程度:

syscheck

/var/www/htdocs

changes to /var/www/htdocs - critical file!

在上面的示例中,建立了乙個規則,以便在htdocs目錄中對檔案的更改進行嚴格的警告(12)。

實時監控

ossec支援在linux上實時(持續)的檔案完整性監視(支援被新增的核心版本2.6.13)和windows系統。

配置非常簡單,在中指定需要監控的目錄,新增realtime="yes"即可

/etc,/usr/bin,/usr/sbin

/bin,/sbin

實時監控不會立即開始。首先ossec-syscheckd需要掃瞄檔案系統,並將每個子目錄新增到實時佇列中。這可能需要一段時間才能完成(「ossec-syscheckd: info: starting real time file monitoring」)

實時只適用於目錄,而不是單獨的檔案。

rootcheck和syscheck都在同乙個執行緒上執行,所以當rootcheck執行時,inotify事件將會被排隊,直到它結束。

報告更改

當對linux和unix系統上的文字檔案進行修改時,ossec支援傳送diffs

配置syscheck來顯示diffs是很簡單的,在新增report_changes="yes"即可

/etc

/bin,/sbin

如果ossec沒有使用libmagic支援編譯,那麼報告更改將複製指定的任何檔案,例如***、iso、可執行檔案、/chroot/dev/urandom(這將填充您的硬碟驅動器)。因此,除非使用了libmagic,否則您將非常小心地使用您啟用報告更改的目錄。

完整性檢查

當我們想窮舉乙個型別的所有可能值時,當可能值過多,不免會遺漏過多的東西。通常我們窮舉乙個值的所有可能,我們會採用switch或者if else,當然,這是可行的,下面看乙個if else例子 function test p 1 2 else if p 2 當p的型別為更多的聯合型別的時候,我們會寫更...

php中檢查email完整性

if eregi 0 9a z 0 9a z 0 9a z a z email 在這句話裡,首先是應用了乙個eregi函式,這個函式還算好理解。隨便找本書,就能給你一段解釋 語法 int ereg string pattern,string string,array regs 返回值 整數 陣列 本...

資料庫完整性檢查

為了主動發現資料庫側頁損壞,保證資料庫邏輯和物理完整性,計畫每週六上午 6點,針對生產主庫上的所有系統和使用者資料庫執行 dbcc checkdb 將結果記錄到表中。以下為理論依據 sql server 資料庫可以檢測出頁損壞,此時,具體的表現形式可能為下述三種錯誤的一種 sql server 發現...