09.11 如何在Linux上使用Osquery設置文件完整性監控(FIM)

Osquery是一個SQL驅動操作系統檢測和分析工具,它由Facebook創建,支持像SQL語句一樣查詢系統的各項指標,可以用於OSX和Linux操作系統。

osquery是一個多平臺軟件,可以安裝在Linux,Windows,MacOS和FreeBSD上。它允許我們使用基於SQL的查詢來處理操作系統的配置文件、性能、安全檢查等。

在本教程中,我們將向您展示如何使用OsQueq設置文件完整性監控(FIM)。我們使用的linux操作系統是Ubuntu 18.04和CENTOS 7。

條件

  • Linux(Ubuntu或CentOS)
  • Root權限
  • 完成了第一個osquery指南

步驟一:在Linux服務器上安裝osquery

osquery為所有的安裝平臺提供了自己的存儲庫,我們要做的第一步是從官方的osquery存儲庫安裝osquery包。

在Ubuntu上

將osquery密鑰添加到系統。

Export OSQUERY_KEY = 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $ OSQUERY_KEY

添加osquery存儲庫並安裝。

sudo add-apt-repository'deb [arch = amd64] https://pkg.osquery.io/deb deb

main'sudo apt install osquery -y

在CentOS上

將osquery密鑰添加到系統。

curl -L https://pkg.osquery.io/rpm/GPG | sudo tee / etc / pki / rpm-gpg / RPM-GPG-KEY-osquery

添加並啟用osquery存儲庫,然後安裝該軟件包。

Sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo

sudo yum-config-manager --enable osquery-s3-rpm

sudo yum install osquery -y

等待安裝所有軟件包

如何在Linux上使用Osquery設置文件完整性監控(FIM)

注意: 如果您收到關於yum-config-manager命令的錯誤消息。

sudo: yum-config-manager: command not found

安裝'yum-utils'包。

yum -y install yum-utils

步驟二:啟用Osquery的Syslog Consumption

osquery提供了一些功能,可以使用Apple system Log (ASL)讀取Apple MacOS上的系統日誌,對於Linux則使用syslog。

在此步驟中,我們將通過rsyslog啟用osquery的syslog consumption。

在Ubuntu上

使用如下apt命令安裝rsyslog

sudo apt install rsyslog –y

在CentOS上

使用如下yum命令安裝rsyslog包。

sudo yum install rsyslog -y

安裝完成後,轉到'/etc/rsyslog.d'目錄並創建一個新的配置文件osquery.conf。

cd /etc/rsyslog.d/

vim osquery.conf

然後粘貼如下配置

template(
name =“OsqueryCsvFormat”
type =“string”
string =“%timestamp ::: date-rfc3339,csv%,%hostname ::: csv%,%syslogseverity ::: csv%,%syslogfacility-text ::: csv%,%syslogtag ::: csv%,%msg ::: csv%\\ n“

*。* action(type =”ompipe“Pipe =”/ var / osquery / syslog_pipe“template =”OsqueryCsvFormat“)

保存並退出

如何在Linux上使用Osquery設置文件完整性監控(FIM)

步驟三: osquery基本配置

osquery默認配置是'osquery.conf',通常位於'/ etc / osquery'目錄中。

在這一步,我們將瞭解osquery配置組件,創建自定義osquery配置,然後將osqueryd部署為服務。

格式化為JSON 文件的osquery 配置包含如下規範:

  • Options:osqueryd CLI命令的一部分,它決定應用程序的啟動和初始化。
  • Schedule:將計劃的查詢名稱的Flow定義到查詢詳情。
  • Decorators:用於向結果和快照日誌添加額外的“decorations”。
  • Packs:一組調度查詢
  • More:File Path, YARA, Prometheus, Views, EC2, Chef Configuration。

轉到'/ etc / osquery'目錄並創建一個新的自定義配置'osquery.conf'。

cd / etc / osquery /

vim osquery.conf

粘貼以下配置。

如何在Linux上使用Osquery設置文件完整性監控(FIM)

保存並退出

注意:

  • 我們使用'filesystem'作為配置文件和記錄器插件
  • 定義'/ var / log / osquery'目錄的記錄器路徑
  • 將SysLog-PIP啟用到'/Va/ysLogy/SySalpJixBube文件中。
  • 在調度程序中,我們定義了三個查詢來檢查crontab, system info, 和ssh login.
  • 啟用名為“osquery-monitoring”的osquery包,並將該包放置在'/Ur/Stuts/OsQue/Pokes’目錄中。

啟動osqueryd daemon service(使其在每次系統引導時啟動)。

systemctl start osqueryd

systemctl enable osqueryd

重新啟動rsyslog服務

systemctl restart rsyslog

osquery基本配置完成。

如何在Linux上使用Osquery設置文件完整性監控(FIM)

步驟四:使用osquery配置文件完整性監控(FIM)

osquery使用Linux和FSEvents提供Linux和MacOS Darwin上的文件完整性監控。簡單地的說,它使用'file_path'檢測定義目錄上的任何一個文件的更改,然後將所有活動存儲到file_events表中。

在這個步驟中,我們將配置Osquery來使用自定義FIM包監視重要目錄,如HOST、SSH目錄,以及tmp和www web根目錄等。

轉到“/usr/share/osquery/packs”目錄,創建一個新的軟件包配置文件“fim.conf”。

cd / usr / share / osquery / packs

vim fim.conf

配置如下:

如何在Linux上使用Osquery設置文件完整性監控(FIM)

保存並退出

返回到 '/etc/osquery'配置目錄,編輯osquery.conf文件。

cd /etc/osquery/

vim osquery.conf

在 'packs' 中添加文件完整性監控包配置。

 "packs": {
"osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf",
"fim": "/usr/share/osquery/packs/fim.conf"
}
如何在Linux上使用Osquery設置文件完整性監控(FIM)

保存並退出,然後重新啟動osqueryd服務。

systemctl restart osqueryd

如何在Linux上使用Osquery設置文件完整性監控(FIM)

注意: 繼續使用JSON linter“ http://jsonlint.com/ ” 檢查JSON配置文件,確保沒有錯誤。

步驟五:測試

我們將通過在定義的目錄“home”和“www”上創建一個新文件來測試文件完整性監控包。

轉到“/var/www/”目錄,創建一個名為“howtoforge.md”的新文件。

cd /var/www/

touch howtoforge.md

轉到'/ home / youruser /'目錄並創建一個名為'hakase-labs.md'的新文件。

cd / home / vagrant /

touch hakase-labs.md

使用實時交互模式osqueryi 和osquery 的結果日誌檢查所有日誌監控。

如何在Linux上使用Osquery設置文件完整性監控(FIM)

osqueryi

運行下面的osqueryi命令。

osqueryi --config-path /etc/osquery/osquery.conf

檢查'file_events'表中文件更改的所有日誌。

對於全局更改。

select * from file_events;

對於'home'目錄。

select target_path, category, action, atime, ctime, mtime from file_events WHERE category="home";

對於'www' web root目錄。

select target_path, category, action, atime, ctime, mtime from file_events WHERE category="www";

如何在Linux上使用Osquery設置文件完整性監控(FIM)

osqueryd 結果日誌

轉到'/ var / log / osquery'目錄,您將獲得'osqueryd.results.log'文件。

cd / var / log / osquery /

ls -lah osqueryd.results.log

使用'grep'命令篩選osquery日誌。

grep -rin howtoforge.md osqueryd.results.log

grep -rin hakase-labs.md osqueryd.results.log

你將看到所有已創建的文件信息

如何在Linux上使用Osquery設置文件完整性監控(FIM)

使用osquery在Linux Server Ubuntu和CentOS上安裝和配置文件完整性監控(FIM)已成功完成。


分享到:


相關文章: