BT利器之wazuh

目錄

一、什么是wazuh

二、wazuh的安裝

1.倉庫安裝

?2.虛擬機OVA安裝

?3.其他安裝方式

三、淺析wazuh的規則、解碼器等告警原理以及主動響應

1.主動響應(active-response)

2.告警信息(alerts)

3.規則以及解碼器(rules and decoders)

3.1.規則

3.2.解碼器?

4.linux后門rootkit檢測與基線檢查(back door)

5.配置文件ossec.conf

四、添加代理

五、用戶自定義規則

六、示例SQL注入檢測

七、總結


一、什么是wazuh

Wazuh 是一個免費的開源安全平臺,統一了 XDR 和 SIEM 功能。它可以保護本地、虛擬化、容器化和基于云的環境中的工作負載。

Wazuh 幫助組織和個人保護其數據資產免受安全威脅。它被全球數千個組織廣泛使用,從小型企業到大型企業。

Wazuh的使用場景有:

  • 入侵檢測
  • 日志數據分析
  • 完整性檢查
  • 漏洞檢測
  • 配置評估
  • 應急響應
  • 云、容器安全等

此外,Wazuh 已經與 Elastic Stack 完全集成,提供了一個搜索引擎和數據可視化工具,允許用戶通過他們的安全警報進行導航。

二、wazuh的安裝

1.倉庫安裝

添加wazuh的官方倉庫來安裝wazuh的安裝包

具體流程可以跟著wazuh的官方文檔來一步步走

Wazuh documentation

?2.虛擬機OVA安裝

在官方上下載OVA文件,可能比較大,幾個g左右

下載完成后,可以在Vmware中直接導入虛擬機

右上角--->文件--->打開--->選擇下載好的OVA文件

之后選擇安裝路徑,跟著引導程序一步步走

?3.其他安裝方式

可以選擇鏡像下載、部署在docker、k8s上、使用ES安裝、使用ansible安裝等等

可以根據官方文檔自行選擇,具體步驟跟著官方來就可以了

三、淺析wazuh的規則、解碼器等告警原理以及主動響應

1.主動響應(active-response)

主動響應的主要作用是檢測到危險或者是告警之后,在一定條件下(比如告警等級大于7或者觸發了某條或多條規則),可以做出一系列反應來禁止入侵者訪問或登錄你的系統

主動響應的腳本在/var/ossec/active-response/bin目錄下

這里面有許多腳本,比如

  • disable-account? ? ? ? ? ? 禁止賬戶登錄
  • firewalld-drop? ? ? ? ? ? ? ? 防火墻攔截
  • host-deny? ? ? ? ? ? ? ? ? ? ? 禁止ip訪問
  • restart-wazuh? ? ? ? ? ? ? ? 重啟wazuh服務

等等

2.告警信息(alerts)

當入侵者或正常用戶執行了某些命令、做了某些操作,觸發了wazuh的規則,那么wazuh就會在日志中記錄并告警

這個日志的目錄是在/var/ossec/logs/alerts目錄下

分為有日期的告警日志和總告警日志

以.json結尾的文件是json格式的日志,主要用于ELK分析展示

以.log結尾的文件是我們查看起來比較方便的格式

我們來仔細看一條告警信息

這條告警信息觸發了規則ID5715,告警等級3,顯示ssh認證成功

源IP地址:192.168.239.1

源端口:49688

用戶:root

而告警信息同樣也會在wazuh的可視化界面中展示出來,而且在界面中告警信息更加清晰

瀏覽器URL中輸入https://<ip address>

用戶名和密碼默認為admin:admin

進入后轉到如下界面,這里就是wazuh的告警信息

展開其中一條仍然可以看到我們剛剛在alerts.log日志中的信息,而且比日志看起來更方便

官方文檔說告警等級可以從1-13,默認值為3

3.規則以及解碼器(rules and decoders)

3.1.規則

wazuh的規則在/var/ossec/ruleset/rules目錄下

而用戶的自定義規則是在/var/ossec/etc/rules目錄下

為什么不把用戶自定義的規則放在wazuh的規則目錄下,而是放在單獨的自定義規則目錄下呢?

這是因為wazuh的規則是在實時更新的,如果用戶自定義的規則放在wazuh的規則目錄下,有可能在更新的時候刪除掉用戶自定義的規則

說完目錄后,我們來看一條具體規則的內容是什么

規則ID:5715

父分類規則ID:5700

匹配方法正則:? /^Accepted|authenticated.$/

描述信息:sshd: authentication success.

剩下的mitre和id等不太了解,可以查找官方文檔

Wazuh documentation

5715規則使用正則匹配的ssh日志信息,以Accept開頭或者以authenticated結尾,這就匹配上了

wazuh的核心配置文件在/var/ossec/etc/ossec.conf中

為什么那些規則可以匹配我們日志中的信息?

就是因為在配置文件中寫入了日志的目錄,便于wazuh查找和分析日志

3.2.解碼器?

那從日志匹配到wazuh的可視化界面的告警信息,這其中到底發生了什么?

這就不得不提到解碼器的作用了

下面這是依據我的理解畫的一張原理圖

可以看到解碼器在其中有很重要的地位

Wazuh中的解碼器就是從特定類型的事件中提取相關數據。解碼分為預解碼階段和解碼階段。

  1. 預解碼階段:從已知字段(如syslog記錄頭中的字段)提取靜態信息。這通常包括時間戳、主機名和程序名,這些值通常在所有syslog消息中都能找到,而不管哪個應用程序生成它們。
  2. 解碼階段:將從事件中提取更多的動態信息,如源IP地址、用戶名、URL等等。一個或多個解碼器專門用于從許多不同的應用程序和日志源中提取字段數據。

一旦日志事件被解碼,Wazuh就可以根據其規則集對其進行評估,以確定是否應該生成警報。如果日志沒有解碼,Wazuh規則將被限制在尋找出現在日志事件中任何地方的通用子字符串,從而大大降低了生成告警的質量。

上面這段解釋來源我看到的一篇文章,我認為寫得很好

Wazuh解碼與規則匹配 - FreeBuf網絡安全行業門戶

簡單來說,解碼器能夠從日志中提取一些關鍵信息,比如時間,主機ip,用戶名,端口號等等

然后發送給規則,規則再進行匹配,生成告警,最后發送到可視化界面

解碼器在/var/ossec/ruleset/decoders目錄下

?下面來分析一下解碼器,比如說就下面這些解碼器

首先第一個解碼器的名字是sshd,匹配以sshd開頭的內容

第二個解碼器的名字是sshd-success,父解碼器是sshd

匹配的是以Accepted開頭的內容

然后匹配Accepted之后的內容,for、form、port關鍵字之前或之后的內容

提取出user、srcip、srcport三個字段

再與ssh日志比對看看

for后面接的是root,也就是user字段

from后面接的是登錄IP,是srcip字段

port后面接的是登錄IP的端口號,srcport字段

了解完了大致原理后,我們來測試一下

使用ssh故意登錄失敗多次,看wazuh的告警信息會有什么變化

這里用kali嘗試ssh暴力破解

完成后看看wazuh的告警信息

可以看到觸發了很多規則,告警等級最高的是第三條,嘗試暴力破解來進入系統

那我們來分析一下解碼器和規則是怎么觸發的,這次我們就用可視化界面查看規則和解碼器

首先查看解碼器PAM(告警信息里有decodername字段)

兩個父解碼器名稱"pam",匹配以pam_unix結尾,以pam_unix開頭

因為咱們的ssh日志里沒有by字段,不是第一種的日志格式,所以直接跳過看下面幾條

解碼器名稱"pam-fields",父解碼器名稱"pam"

匹配logname=、uid=、euid=三個字段后的內容

后面還有其他信息,依次解碼出來后發送給規則匹配

再來看規則

父規則5500,匹配authentication failure; logname=

告警信息PAM: User login failed.

再來看解碼器sshd(仔細找與自己sshd日志信息匹配的解碼器)

對比著日志信息看

父解碼器sshd,匹配以Failed開頭的內容

然后匹配for、from、port三個字段的信息

提取出user、srcip、srcport三個字段的信息

再來看規則

官方文檔是這樣描述frequency、timeframe和ignore字段的

https://documentation.wazuh.com/current/user-manual/ruleset/ruleset-xml-syntax/rules.html?highlight=frequency

frequency:觸發前規則必須匹配的次數

timeframe:以秒為時間單位的時間范圍,旨在和frequency一起使用

ignore:觸發此規則后忽略該規則的時間(以秒為單位)(以避免洪水)

我的理解:規則id:5763,告警等級10,在120秒內如果觸發8次5760規則,那就觸發5763規則

告警信息:sshd: brute force trying to get access to the system. Authentication failed.

那我們來看5760規則

它的父規則5700和5716

匹配Failed password或者Failed keyboard或者authentication error

告警信息:sshd: authentication failed.

再看5700和5716

5700規則是一個父規則,解碼器sshd?

5716規則以5700規則為父規則

匹配以Failed開頭或者以error: PAM: Authentication開頭

這樣一來整個規則鏈就梳理通了

4.linux后門rootkit檢測與基線檢查(back door)

后門檢測和基線檢查的腳本在/var/ossec/etc/rootcheck目錄下

可以看到有很多基線檢查,比如

debian_linux操作系統的基線檢查、MySQL的基線檢查

rhel_linux操作系統的基線檢查、Windows2012R2操作系統的基線檢查等等

圖中紅框部分就是后門檢測的腳本

先來看檢測rookit后門的腳本

可以看到wazuh檢測了很多后門或者蠕蟲可能存在的文件位置,基本上涵蓋了百分之90的后門

這里我們可以測試一下,就在文件目錄下寫一個名為mcliZokhb的文件

新建后打開wazuh是檢測不到的,因為配置文件ossec.conf規定12個小時檢查一次,可以去修改輪循時間

這里我們就直接重啟wazuh服務

systemctl restart wazuh-manager.service

重啟后打開,可以看到wazuh成功識別了這個后門文件,告警等級7?

再看檢測木馬的腳本

?可以看到wazuh檢測了linux基礎命令被惡意代碼替換,hosts文件被惡意軟件劫持等等

可以說wazuh真的很強大

5.配置文件ossec.conf

wazuh的配置文件路徑在/var/ossec/etc/ossec.conf

配置文件詳情最好查閱官方文檔

Wazuh documentation

json_output:是否以json格式輸出

alerts_log:是否輸出告警日志

email_notification:是否郵箱認證

忽略檢查的文件目錄?

集群配置,這里綁定的是自身的服務器?

?

?這里的localfile記錄的是日志的路徑

具體內容還是應該去官方文檔查找更為精確

四、添加代理

目前我們只是安裝了wazuh的服務端,沒有任何客戶端連接,這是沒有任何意義的

我們需要讓其他服務器成為wazuh的客戶端,也就是添加代理,端口號為1514

這里我們添加一臺Ubuntu系統的服務器

沒啥可說的,選擇操作系統?

注意這里填的是wazuh-server的IP地址,而非client

然后復制它提供給你的命令到client去執行

執行成功后你就可以在wazuh這里看到代理成功了

如果出現問題,首先確保client和server之間能互相通信

通信沒問題就去查看wazuh服務器的日志,在/var/ossec/logs/ossec.log

根據報錯信息去解決問題,也可以根據官方文檔來排除問題

在連接上代理之后,wazuh會自動對client服務器進行基線檢查

在真實項目中可以根據wazuh的基線檢查來檢查服務器的安全性并做相應修改

五、用戶自定義規則

除了wazuh自帶的規則,我們還可以自定義一些規則,來告警某單方面的漏洞

官方文檔提供了這方面的需求

Detecting common Linux persistence techniques with Wazuh

這里我們就來寫入動態鏈接庫劫持的規則

具體的步驟和代碼跟著官方走就行

記得安裝auditd監控工具,它可以監控文件的完整性并記錄日志

添加完規則后,我們可以嘗試往/etc/ld.so.preload文件下隨便寫入一個動態鏈接庫

查看一下/var/log/audit/audit.log的日志信息

可以看到audit.log的日志信息已經記錄了可能發生了動態鏈接庫劫持攻擊

?再來查看wazuh的告警信息,成功告警,告警等級10,規則ID100125

這樣,這個規則就成功添加了并且也成功觸發了

六、示例SQL注入檢測

這里我們以SQL注入為例,在我們的代理服務器上進行SQL注入,看wazuh如何檢測和響應

首先要把Nginx的日志路徑加載到client端的配置文件里面去,wazuh默認加載好了的

如果路徑不同,修改即可?

然后我們隨便寫一些注入語句

來看wazuh的告警

已經出現了告警,顯示嘗試SQL注入

那既然已經出現了告警,我們怎么去防御呢,wazuh有它自身的Active-response

如何配置,官方文檔也給出了步驟

How to configure active response - Active response

wazuh有兩種封堵方式:

  • 根據告警等級來封堵,比如說當告警等級大于7時,自動進行封堵,但這也容易造成誤判,范圍太大
  • 根據規則ID來封堵,當觸發了某條規則時,自動進行封堵,但這范圍太小,面對多條規則不便于寫配置文件

所以這兩種方式要根據項目中的實際情況來判斷

這里我們使用規則ID封堵IP方式來演示

官方文檔:

File integrity monitoring and YARA - Malware detection

在wazuh服務器,也就是manager的配置文件里寫入如下內容

當觸發31103和31171這兩條規則時,執行firewall-drop命令,600秒后恢復

<active-response><command>firewall-drop</command><location>local</location><rules_id>31103,31171</rules_id><timeout>600</timeout>
</active-response>

之后隨便測試一些注入語句,然后再刷新,發現已經被防火墻攔截了

?查看iptables,發現已經被封堵了,恢復時間600秒

七、總結

總之呢,wazuh這個HIDS監控系統,功能確實很強大,有可視化的告警信息和主動響應,定制性也很強,用戶可以自定義規則,讓你以后在HW的過程中大大減少你的工作量

當然還有其他的安全監控系統,比喻說洋蔥(SecurityOnion)

還有NIDS,主要是監控網絡流量,比如說Suricata

這些都是很好用的工具,多了解總是沒有壞處的

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/41388.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/41388.shtml
英文地址,請注明出處:http://en.pswp.cn/news/41388.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

力扣75——圖深度優先搜索

總結leetcode75中的圖深度優先搜索算法題解題思路。 上一篇&#xff1a;力扣75——二叉搜索樹 力扣75——圖深度優先搜索 1 鑰匙和房間2 省份數量3 重新規劃路線4 除法求值1-4 解題總結 1 鑰匙和房間 題目&#xff1a; 有 n 個房間&#xff0c;房間按從 0 到 n - 1 編號。最初…

【Matter】基于Ubuntu 22.04搭建matter開發環境:chip-tool 配網之 matter-over-wifi

前言 主要是記錄一下學習過程&#xff0c;梳理下思路&#xff0c;拋轉~ 官方的開發環境&#xff0c;基于Linux版本&#xff0c;官方的環境是基于樹莓派環境的&#xff0c;原理其實也比較明了&#xff0c;目的也比較明確&#xff0c;就是達到Linux 主機和wifi 路由在同一局域網…

SpringBoot攜帶Jre綠色部署項目

文章目錄 SpringBoot攜帶Jre綠色部署運行項目1. 實現步驟2. 自測項目文件目錄及bat文件內容&#xff0c;截圖如下&#xff1a;2-1 項目文件夾列表&#xff1a;2-2. bat內容 3. 擴展&#xff1a; 1.6-1.8版本的jdk下載 SpringBoot攜帶Jre綠色部署運行項目 說明&#xff1a; 實…

256創作紀念日

不知不覺已經是寫博客的第256天了&#xff0c;從一個躺平的人變成一個為一件事能堅持并不斷去做是真的很爽&#xff0c;回過頭看看自己&#xff0c;寫了好多東西&#xff0c;也慢慢在成長&#xff0c;不再是以前那個只會玩的小孩了。 1、自我介紹 我是來自西安的一名準大三學…

Data Abstract for .NET and Delphi Crack

Data Abstract for .NET and Delphi Crack .NET和Delphi的數據摘要是一套或RAD工具&#xff0c;用于在.NET、Delphi和Mono中編寫多層解決方案。NET和Delphi的數據摘要是一個套件&#xff0c;包括RemObjects.NET和Delphi版本的數據摘要。RemObjects Data Abstract允許您創建訪問…

easyx圖形庫基礎4:貪吃蛇

貪吃蛇 一實現貪吃蛇&#xff1a;1.繪制網格&#xff1a;1.繪制蛇&#xff1a;3.控制蛇的默認移動向右&#xff1a;4.控制蛇的移動方向&#xff1a;5.生成食物6.判斷蛇吃到食物并且長大。7.判斷游戲結束&#xff1a;8.重置函數&#xff1a; 二整體代碼&#xff1a; 一實現貪吃蛇…

【golang】結構體及其方法的使用(struct)

函數是獨立的程序實體。我們可以聲明有名字的函數&#xff0c;也可以聲明沒名字的函數&#xff0c;還可以把它們當做普通的值傳來傳去。我們能把具有相同簽名的函數抽象成獨立的函數類型&#xff0c;以作為一組輸入、輸出&#xff08;或者說一類邏輯組件&#xff09;的代表。 …

爬蟲逆向實戰(八)--猿人學第十五題

一、數據接口分析 主頁地址&#xff1a;猿人學第十五題 1、抓包 通過抓包可以發現數據接口是api/match/15 2、判斷是否有加密參數 請求參數是否加密&#xff1f; 查看“載荷”模塊可以發現有一個m加密參數 請求頭是否加密&#xff1f; 無響應是否加密&#xff1f; 無cook…

CSS中的z-index屬性有什么作用?如何控制元素在層疊上下文中的顯示順序?

聚沙成塔每天進步一點點 ? 專欄簡介? z-index 屬性的作用及控制元素層疊順序作用 ? 控制元素層疊順序? 寫在最后 ? 專欄簡介 前端入門之旅&#xff1a;探索Web開發的奇妙世界 記得點擊上方或者右側鏈接訂閱本專欄哦 幾何帶你啟航前端之旅 歡迎來到前端入門之旅&#xff0…

管理類聯考——邏輯——真題篇——按知識分類——匯總篇——一、形式邏輯——選言——不相容選言——要么

第三節 不相容選言-要么-“要么A要么B”→A和B有且僅有一個 真題(2010-39)-不相容選言-要么-“要么A要么B”→A和B有且僅有一個 39.大小行星懸浮游在太陽系邊緣,極易受附近星體引力作用的影響。據研究人員計算,有時這些力量會將彗星從奧爾特星云拖出。這樣,它們更有可能…

WPF國際化的實現方法(WpfExtensions.Xaml)

https://blog.csdn.net/eyupaopao/article/details/120090431 resx資源文件實現 resx資源文件&#xff0c;實現的過程比第一種復雜&#xff0c;但resx文件本身編輯比較簡單&#xff0c;維護起來比較方便。需要用到的框架&#xff1a;WpfExtensions.Xaml 為每種語言添加.resx資…

Mac思維導圖軟件Xmind for Mac中文激活版

好的思維導圖軟件能幫助用戶更好的發揮創作能力&#xff0c;XMind是一款流行的思維導圖軟件&#xff0c;可以幫助用戶創建各種類型的思維導圖和概念圖。 多樣化的導圖類型&#xff1a;XMind提供了多種類型的導圖&#xff0c;如魚骨圖、樹形圖、機構圖等&#xff0c;可以滿足不同…

UI自動化測試常見的Exception

一. StaleElementReferenceException&#xff1a; - 原因&#xff1a;引用的元素已過期。原因是頁面刷新了&#xff0c;此時當然找不到之前頁面的元素。- 解決方案&#xff1a;不確定什么時候元素就會被刷新。頁面刷新后重新獲取元素的思路不變&#xff0c;這時可以使用python的…

ClickHouse(二十二):Clickhouse SQL DML操作及導入導出數據

進入正文前&#xff0c;感謝寶子們訂閱專題、點贊、評論、收藏&#xff01;關注IT貧道&#xff0c;獲取高質量博客內容&#xff01; &#x1f3e1;個人主頁&#xff1a;含各種IT體系技術&#xff0c;IT貧道_Apache Doris,大數據OLAP體系技術棧,Kerberos安全認證-CSDN博客 &…

GPT-5出世?OpenAI GPT-5商標已注冊

OpenAI的GPT已經成為了業界標桿&#xff0c;升級速度之快讓人瞠目&#xff0c;別人追GPT-3.5的時候GPT-4橫空出世&#xff0c;差距被拉開了&#xff0c;現在GPT-5就要來了。 據商標律師泄露的消息&#xff0c;OpenAI已于7月18日注冊了GPT-5商標。雖然注冊商標并不罕見&#xf…

【【萌新的STM32學習-9】】

萌新的STM32學習-9 我們在使用某個外設&#xff0c;必須線使能該外設時鐘 SYSTEM 文件夾里面的代碼由正點原子提供&#xff0c;是 STM32F1xx 系列的底層核心驅動函數&#xff0c; 可以用在 STM32F1xx 系列的各個型號上面&#xff0c;方便大家快速構建自己的工程。本章&#xf…

基于IMX6ULLmini的linux裸機開發系列二:使用C語言和SDK點亮LED

引入sdk頭文件 sudo chown -R gec /opt 用這條命令給gec賦權限&#xff0c;否則訪問權限不夠&#xff0c;無法讀取&#xff0c;如下圖成功 目的&#xff1a;解決寄存器地址難查難設置 devices/MCIMX6Y2/MCIMX6Y2.h 記錄外設寄存器及其相關操作 devices/MCIMX6Y2/drivers/fsl_…

Windows+VMware+Ubuntu+Anaconda+VMware Tools

Q1&#xff1a;Windows不支持***agent模擬器 A1&#xff1a;在VMware安裝Ubuntu虛擬機 P1: 下載 VMware-workstation-full-15.5.6-16341506.exe 安裝包&#xff08;峰哥電腦軟件&#xff09; P2: 下載Ubuntu鏡像 地址 ubuntu-18.04.6-desktop-amd64.iso P3&#xff1a;搭載鏡…

干翻Dubbo系列第十一篇:Dubbo常見協議與通信效率對比

文章目錄 文章說明 一&#xff1a;協議 1&#xff1a;什么是協議 2&#xff1a;協議和序列化關系 3&#xff1a;協議組成 &#xff08;一&#xff09;&#xff1a;頭信息 &#xff08;二&#xff09;&#xff1a;體信息 4&#xff1a;Dubbo3中常見的協議 5&#xff1a;…

華為在ospf area 0單區域的情況下結合pbr對數據包的來回路徑進行控制

配置思路&#xff1a; 兩邊去的包在R1上用mqc進行下一跳重定向 兩邊回程包在R4上用mqc進行下一跳重定向 最終讓內網 192.168.10.0出去的數據包來回全走上面R-1-2-4 192.168.20.0出去的數據包來回全走 下面R1-3-4 R2和R3就是簡單ospf配置和宣告&#xff0c;其它沒有配置&#…