iT邦幫忙

2024 iThome 鐵人賽

DAY 28
0
Security

資安與開源:面對威脅探索系列 第 28

Day 28 - 開源軟體 Snort 規則介紹

  • 分享至 

  • xImage
  •  

前言

今天我們將學習 Snort 規則,並了解如何編輯和運用這些規則來檢測網路封包的威脅
Snort 規則是其核心功能之一,負責定義如何識別各種網路攻擊或異常行為

Snort 規則格式

Snort 規則的基本結構由規則標頭(Rule Header) 和 選項(Options) 兩部分組成
每個規則的「規則標頭」決定了如何處理封包,而「選項」部分則定義了檢測條件

規則標頭 (Rule Header)

Snort 規則由以下幾部分組成:

  1. 動作(Action):

    • Alert:發出警報
    • Log:記錄封包
    • Pass:忽略封包
    • Drop:丟棄封包
  2. 協定:
    Tcp、Udp、Icmp

  3. 來源和 Port:
    來源 IP 和 Port,例如 192.168.1.0/24 和 80

  4. 目的和 Port:
    指定目的 IP 和 Port,例如 10.0.0.0/24 和 80

選項(Options)

選項部分包含各種條件:
msg:警報訊息,產生警報會顯示
sid:規則ID
rev:規則版本
content:檢查內容
nocase:忽略大小寫
classtype:事件類型進行分類
depth:檢測深度,如果設定 depth 為 10,Snort 將僅在封包的前 10 個位元中搜尋
offset:偏移量,如果設定 offset 為 5,Snort 將開始在封包中搜尋第 5 個位元組

範例規則
以下範例 Snort 規則格式:
<動作> <協定> <來源IP> <來源/Port> -> <目標IP> <來源/Port>
https://ithelp.ithome.com.tw/upload/images/20241006/20135755amIukeNEBW.jpg

local.rule 規則文件

Snort 規則通常儲存在 local.rules 文件中,可以根據需求自訂和編輯這些規則

1. 編輯 local.rules 文件

sudo vi /etc/snort/rules/local.rules

2. 新增規則
在 local.rules 文件中新增規則,例如:SQL 攻擊或 DoS 攻擊
以下是規則範例,需要依照各位的實際情況進行調整

SQL Injection 攻擊檢測

alert tcp any any -> any 80 (msg:"SQL Injection Attempt"; content:"select"; nocase; sid:1000001; rev:1;)

DoS 攻擊檢測

alert tcp any any -> any 80 (msg:"DoS Attack Detected"; flags:S; threshold:type threshold, track by_src, count 20, seconds 10; sid:1000003; rev:1;)

https://ithelp.ithome.com.tw/upload/images/20241006/20135755CxAOL1TQ9N.png

3. 確認 snort.conf 中是否包含 local.rules

sudo vi /etc/snort/snort.conf

https://ithelp.ithome.com.tw/upload/images/20241006/201357558vDzrBQyXm.png

重新啟動 Snort 服務

sudo systemctl restart snort

接著,確認服務狀態:

sudo systemctl status snort.service

4. 測試規則

sudo snort -T -c /etc/snort/snort.conf

如果測試成功,Snort 將顯示正常
若有錯誤,請檢查 local.rules 和 snort.conf 文件中的語法是否有錯誤

問題排除

  1. 規則設定完成後發現重啟 Snort 有異常
  • 需要檢查 local.rulesSnort log 文件以及語法是否有錯誤
    若遇到啟動失敗或規則無法正常運作的情況,可以查看 cat /var/log/snort/snort.log 取得詳細的錯誤信息
    https://ithelp.ithome.com.tw/upload/images/20241006/20135755rWdhFcMd91.png

參考資料


上一篇
Day - 27 開源軟體 - Snort 安裝
下一篇
Day 29 - 開源軟體 - Snort 總結和複習
系列文
資安與開源:面對威脅探索30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言