天天看點

OSSEC文檔——完整性檢查

翻譯:http://ossec-docs.readthedocs.io/en/latest/manual/syscheck/index.html

完整性檢查

Syscheck是OSSEC内部完整性檢查過程的名稱。它定期運作以檢查是否有任何配置的檔案(或Windows上的系統資料庫條目)發生了變化。

為什麼完整性檢查?

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

完整性檢查是入侵檢測的一個重要部分,它可以檢測到系統完整性的變化。OSSEC通過查找系統和Windows系統資料庫中關鍵檔案的md5/sha1校驗和的變化來完成這一工作。

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

簡要情況

它的運作頻率是多少?

預設情況下每6個小時,但頻率或時間/日是可配置的。

資料庫存儲在哪裡?

在管理端的/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

指令運作以防止預連結産生誤報。

這個選項可能會對性能産生負面影響。已配置的指令将運作于檢查的每個檔案。

例如:

<prefilter_cmd>/usr/sbin/prelink -y</prefilter_cmd>

skip_nfs

是否應該掃描網絡挂載的檔案系統。在Linux和FreeBSD上工作。目前,skipnfs将中止對CIFS或NFS裝載的檢查。預設no

配置示例

要配置syscheck,必須提供一個檔案和目錄的清單。checkall選項檢查md5、sha1、所有者和檔案的權限。

<syscheck>
    <directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
    <directories check_all="yes">/root/users.txt,/bsd,/root/db.html</directories>
</syscheck>
           

使用ignore(在Windows系統資料庫中registry_ignore)忽略檔案和目錄

<syscheck>
    <ignore>/etc/random-seed</ignore>
    <ignore>/root/dir</ignore>
    <ignore type="sregex">.log$|.tmp</ignore>
</syscheck>
           

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

<syscheck>
    <ignore type="sregex">^/opt/application/log</ignore>
</syscheck>
           

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

<rule id="100345" level="12">
    <if_matched_group>syscheck</if_matched_group>
    <match>/var/www/htdocs</match>
    <description>Changes to /var/www/htdocs - Critical file!</description>
</rule>
           

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

實時監控

OSSEC支援在Linux上實時(持續)的檔案完整性監視(支援被添加的核心版本2.6.13)和Windows系統。

配置非常簡單,在<directories>中指定需要監控的目錄,添加realtime="yes"即可

<syscheck>
    <directories realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
    <directories check_all="yes">/bin,/sbin</directories>
</syscheck>
           

實時監控不會立即開始。首先ossec-syscheckd需要掃描檔案系統,并将每個子目錄添加到實時隊列中。這可能需要一段時間才能完成(“ossec-syscheckd: INFO: Starting real time file monitoring”)

實時隻适用于目錄,而不是單獨的檔案。

rootcheck和syscheck都在同一個線程上運作,是以當rootcheck運作時,inotify事件将會被排隊,直到它結束。

報告更改

當對Linux和unix系統上的文本檔案進行修改時,OSSEC支援發送diffs

配置syscheck來顯示diffs是很簡單的,在<directories>添加report_changes="yes"即可

<syscheck>
    <directories report_changes="yes" check_all="yes">/etc</directories>
    <directories check_all="yes">/bin,/sbin</directories>
</syscheck>
           

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