Suricata - 安全檢測和防御工具
Suricata是一個功能強大、多功能、開放的漏洞檢測平臺,提供入侵檢測(IDS)、入侵防御(IPS)和網(wǎng)絡(luò)安全管理等功能。除了模型匹配和混合之外,它還執(zhí)行深度數(shù)據(jù)包分析,這在威脅檢測方面非常強大。
在撰寫本指南時,Suricata 的最新版本是 6.0.5。
- 的
IDS/IPS – Suricata 是一種基于規(guī)則的入侵檢測和防御引擎,它使用外部生成的規(guī)則(例如新興威脅 Suricata 規(guī)則)來監(jiān)控網(wǎng)絡(luò)流量是否存在任何惡意活動、策略違規(guī)和威脅。
自動協(xié)議檢測 – Suricata 引擎自動檢測 HTTP 和 HTTPS 等協(xié)議。每個端口上的 FTP 和 SMB 并實施正確的檢測和日志記錄邏輯。這對于檢測惡意軟件和 CnC 技術(shù)非常有用。
Lua 腳本 – Suricata 可以調(diào)用提供高級惡意軟件檢測的 Lua 腳本,以識別和解碼其他難以檢測的惡意軟件流量。
多線程 – Suricata 提供了確定網(wǎng)絡(luò)流量的速度和重要性。該設(shè)備旨在利用現(xiàn)代多核硬件芯片組提供的增強處理能力。
的
在Linux中安裝Suricata的入侵檢測工具
在本節(jié)中,我們將演示如何在基于 RHEL 的發(fā)行版上安裝 Suricata。
Suricata 由 Debian/Ubuntu 存儲庫提供,可以使用 apt 包管理器輕松安裝。然而,值得注意的是,這不會安裝最新版本的 Suricata。要安裝最新版本,您需要從本指南稍后討論的源安裝它。
要使用 apt 包管理器安裝 Suricata,請運行以下命令:
$ sudo apt install suricata -y
Suricata 插入后會自動啟動。您可以按如下方式證明這一點。
$ sudo systemctl 狀態(tài)貓鼬
要在 RHEL 發(fā)行版(例如 CentOS Stream、Rocky Linux、AlmaLinux、Fedora 和 RHEL)上安裝 Suricata,必須首先啟用 EPEL 存儲庫。
$ dnf 安裝 https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm [ RHEL 9 ]$ dnf 安裝 https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [ RHEL 8 ]$ yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm [ RHEL 7 ]
啟用 EPEL 后,安裝以下必需的軟件包并將 OISF 存儲庫添加到您的系統(tǒng)。
----------- 在 Fedora 系統(tǒng)上 ----------- $ sudo dnf 安裝 dnf-plugins-core$ sudo dnf Copper 啟用@oisf/suricata-6.0----------- 在 RHEL 系統(tǒng)上 ----------- $ sudo dnf 安裝 yum-plugin-copper$ sudo dnf Copper 啟用@oisf/suricata-6.0
接下來,使用 yum 包管理器安裝 Suricata,如圖所示。
$ sudo dnf install meerkat -y或者$ sudo yum install meerkat -y
安裝 Suricata 后,啟動并驗證其狀況。
$ sudo systemctl 啟動 Suricata$ sudo systemctl 狀態(tài)貓鼬
來自 Suricata tso Source me Linux me
默認(rèn)操作系統(tǒng)存儲庫不提供最新版本的 Suricata。如果您的目標(biāo)是安裝最新版本的 Suricata,那么您需要從源代碼安裝它。
在撰寫本指南時,Suricata 的最新版本是 6.0.5。要在 Ubuntu/Debian 和 RHEL 發(fā)行版上從源代碼安裝 Suricata,請安裝以下庫、編譯工具和依賴項。
----------- 在 Debian 系統(tǒng)上 ----------- $ sudo apt install rustc build-essential Cargo libpcre3 libpcre3-dbg libpcre3-dev make autoconf automake libtool libcap-ng0 make libmagic-dev libjansson-dev libjansson4 libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap -ng-dev pkg-config libnetfilter-queue1 libnfnetlink0 libnetfilter-queue-dev libnfnetlink-dev -y----------- 在 RHEL 系統(tǒng)上 ----------- $ sudo yum install gcc libpcap-devel pcre-devel libyaml-devel file-devel zlib-devel jansson-devel nss-devel libcap-ng-devel libnet-devel tar make libnetfilter_queue-devel lua-devel PyYAML libmaxminddb-devel rustc 貨物 lz4-開發(fā)-y
接下來,安裝 Suricata-update 應(yīng)用程序以更新 Suricata 規(guī)則。
$ sudo apt install python3-pip [在Debian上]$ sudo yum install python3-pip [在RHEL上]$ pip3 install --upgrade suricata-update
然后為 /usr/bin/suricata-update 創(chuàng)建示例連接。
$ sudo ln -s /usr/local/bin/suricata-update /usr/bin/suricata-update
現(xiàn)在轉(zhuǎn)到 wget 命令。
$ wget https://www.openinfosecfoundation.org/download/suricata-6.0.6.tar.gz
復(fù)制后,解壓縮并安裝 tarball 文件。
$ sudo tar -xvf suricata-6.0.6.tar.gz$ cd suricata-6.0.6$ ./configure --enable-nfqueue --prefix=/usr --sysconfdir=/etc --localstatedir=/var$ 制作$ 進行安裝完整
在 Linux 中安裝 Suricata
要開始配置 Suricata,我們需要指定內(nèi)部 IP 和外部網(wǎng)絡(luò)。為此,請轉(zhuǎn)到配置文件。
$ sudo vim /etc/suricata/suricata.yaml
對于 HOME_NET 指令,指定 Linux 系統(tǒng)的 IP 地址。
HOME_NET:“[173.82.235.7]”
接下來,將 EXTERNAL_NET 指令設(shè)置為“!$HOME_NET”。
EXTERNAL_NET:“!$HOME_NET”
接下來,指定 Suricata 將在其上監(jiān)視網(wǎng)絡(luò)流量的網(wǎng)絡(luò)接口。在我們的例子中,這是 eth0 接口。
您可以使用 ip 命令驗證活動網(wǎng)絡(luò)接口:
$ ip a
在配置文件中,使用網(wǎng)絡(luò)接口的名稱編輯接口方向。
- 接口:eth0
接下來,確保 default-rule-path 屬性設(shè)置為 /etc/suricata/rules。
然后保存更改并關(guān)閉配置文件。然后重新啟動 Suricata 以使更改生效。
$ sudo systemctl 狀態(tài)貓鼬
在 Linux 中更新 Suricata 規(guī)則集
默認(rèn)情況下,Suricata 在 /etc/suricata/rules 目錄中附帶一組有限的搜索規(guī)則。然而,這些在檢測入侵者方面被認(rèn)為是薄弱且無效的。您應(yīng)該加載新興威脅 (ET) 規(guī)則,這些規(guī)則被認(rèn)為是 Suricata 最全面的規(guī)則。
Suricata 提供了一個名為 suricata-update 的工具,可以從外部服務(wù)器導(dǎo)入規(guī)則。要為您的服務(wù)器獲取新規(guī)則,請運行以下命令。
$ sudo suricata-update -o /etc/suricata/rules
從輸出中,您可以看到 suricata-update 獲取免費的新興威脅 ET Open 規(guī)則并將其保存在 Suricata 的 /etc/suricata/rules/suricata 規(guī)則文件中。此外,還表示已處理的規(guī)則數(shù)。此樣本中包含 35941 人。其中,實施28221條,刪除18條,修改1249條。
將 Suricata 規(guī)則添加到 Linux
suricata-update 工具允許您從規(guī)則集服務(wù)器導(dǎo)入規(guī)則。有些是免費的,例如 ET Open 集,而另一些則需要付費訂閱。
要列出第一組規(guī)則頒發(fā)者,請執(zhí)行 suricata-update 命令,如下所示。
$ sudo suricata-更新列表源
要添加命令,例如 tgreen/hunting 命令,請執(zhí)行以下命令。
$ sudo suricata-update 啟用源 tgreen/hunting
添加命令后,使用-o /etc/suricata/rules
flag 再次執(zhí)行 suricata-update 命令。
$ sudo suricata-update -o /etc/suricata/rules
在 Linux 中測試 Suricata 規(guī)則
在開始測試 Suricata 之前,最好測試一下該程序是否良好。為此,請運行以下命令:
$ sudo suricata -T -c /etc/suricata/suricata.yaml -v
確保沒有報告錯誤。如果您運行的是 RHEL、CentOS Stream、Fedora 和 Rocky Linux,請啟動并運行 Suricata。
$ sudo systemctl 啟動 Suricata$ sudo systemctl 啟用 Suricata
到目前為止,我們已經(jīng)成功安裝了Suricata,并且我們已經(jīng)對其進行了配置并更新了規(guī)則。ET 開放規(guī)則集包含超過 30,000 條用于檢測惡意流量的規(guī)則。在本節(jié)中,我們將測試 Suricata 并查看它是否可以檢測可疑的網(wǎng)絡(luò)流量。
我們將按照 Suricata 快速入門指南的建議通過模擬攻擊來測試 ET Open 命令。
IDS 的功能將通過向配置 NIDS(網(wǎng)絡(luò)入侵和檢測系統(tǒng))的 testmynids.org 網(wǎng)站發(fā)送 HTTP 請求,使用簽名 ID 2100498 進行測試。
$curl http://testmynids.org/uid/index.html
您應(yīng)該得到以下結(jié)果。
uid=0(root) gid=0(root) groups=0(root)
通過模擬可通過 shell 在受感染的遠程系統(tǒng)上執(zhí)行的 id 命令的輸出,修改了發(fā)送以觸發(fā)警報的 HTTP 請求。
現(xiàn)在讓我們檢查一下蘇里卡塔的記錄,看看是否有類似的警告。Suricata 附帶兩個默認(rèn)情況下派上用場的日志文件。
/var/log/suricata/fast.log/var/log/suricata/eve.log
我們還將查看 /var/log/suricata/fast.log 日志文件中與 grep 命令對應(yīng)的日志條目。我們將從快速入門記錄中搜索使用 2100498 規(guī)則標(biāo)識符輸入的記錄。
$ grep 2100948 /var/log/suricata/fast.log
您將看到以下結(jié)果,表明登錄。其中,173.82.235.7是服務(wù)器的公網(wǎng)IP地址。
09/09/2022-22:17:06.796434 [**] [1:2100498:7] GPL ATTACK_RESPONSE id 檢查返回根 [**] [分類:潛在不良流量] [優(yōu)先級:2] {TCP} 13.226.210.123 :80 -> 173.82.235.7:33822
或者,您可以檢查 /var/log/suricata/eve.log 日志文件中的簽名 ID 2100498,如圖所示。
$ jq 'select(.alert .signature_id==2100498)' /var/log/suricata/eve.json
這是有關(guān)如何在 Linux 上安裝和配置 Suricata 的綜合指南。我們研究了各種配置方法,如何配置 Suricata 和更新 Suricata 規(guī)則,以及如何管理 Suricata systemd 服務(wù)和運行網(wǎng)絡(luò)入侵測試。
我們希望您現(xiàn)在可以輕松安裝和使用 Suricata 來保護您的系統(tǒng)免受網(wǎng)絡(luò)攻擊或惡意流量的侵害。