3.2 Snort 常規規則選項
3.4.1 msg
msg規則選項向日志記錄和警報引擎告知要打印的消息以及數據包轉儲或警報。它是一個簡單的文本字符串,利用\作為轉義字符來表示離散的字符,否則這些字符可能會使Snort的規則解析器感到困惑(例如分號;字符)。
3.4.1.1 格式
msg:"<message text>";
3.4.2 參考
reference關鍵字允許規則包含對外部攻擊識別系統的引用。該插件目前支持幾種特定的系統以及唯一的URL。輸出插件將使用此插件來提供有關生成的警報的其他信息的鏈接。
確保還查看 <http://www.snort.org/pub-bin/sigs-search.cgi/>,以獲取基于sid索引警報描述的系統。
| 系統 | URL前綴 |
|---|---|
| Bugtraq | http://www.securityfocus.com/bid/ |
| CVE | http://cve.mitre.org/cgi-bin/cvename.cgi?name= |
| nessus | http://cgi.nessus.org/plugins/dump.php3?id= |
| arachnids | (當前關閉)http://www.whitehats.com/info/IDS |
| mcafee | http://vil.nai.com/vil/content/v_ |
| osvdb | http://osvdb.org/show/osvdb/ |
| mab | http://technet.microsoft.com/en-us/security/bulletin/ |
| url | http:// |
3.4.2.1 格式
reference:<id system>, <id>; [reference:<id system>, <id>;]
3.4.2.2 例子
alert tcp any any -> any 7070 (msg:"IDS411/dos-realaudio"; \
flags:AP; content:"|fff4 fffd 06|"; reference:arachnids,IDS411;)
alert tcp any any -> any 21 (msg:"IDS287/ftp-wuftp260-venglin-linux"; \
flags:AP; content:"|31c031db 31c9b046 cd80 31c031db|"; \
reference:arachnids,IDS287; reference:bugtraq,1387; \
reference:cve,CAN-2000-1574;)
3.4.3 GID
GID關鍵字(生成器id)用于標識在觸發特定規則時,由Snort的哪個部分生成事件。例如,gid 1與規則子系統相關聯,并且為特定的預處理器和解碼器指定了100種以上的各種gid。有關正在使用的當前生成器ID,請參見源代碼樹中的etc / generators。請注意,gid關鍵字是可選的,如果未在規則中指定,則默認為1,并且該規則將成為常規規則子系統的一部分。為避免與Snort中定義的gid潛在沖突(出于某種原因未在etc / generator中注明),建議使用從1,000,000開始的值。對于一般規則編寫,不建議使用gid關鍵字。此選項應與sid關鍵字。
文件etc / gen-msg.map包含有關預處理器和解碼器gid的更多信息。
3.4.3.1 格式
gid:<generator id>;
3.4.3.2 例子
本示例是一個生成器ID為1000001的規則。
alert tcp any any -> any 80 (content:"BOB"; gid:1000001; sid:1; rev:1;)
3.4.4 SID
該SID關鍵字用來唯一標識Snort規則。此信息使輸出插件可以輕松識別規則。此選項應與rev關鍵字一起使用。
- < 100保留以備將來使用
- Snort分發中包含100-999,999條規則
= 1,000,000用于本地規則
文件sid-msg。map包含警報消息到Snort規則id的映射。在對警報進行后處理以將ID映射到警報消息時,此信息非常有用。
3.4.4.1 格式
sid:<snort rules id>;
3.4.4.2 例子
本示例是一個Snort規則ID為1000983的規則。
alert tcp any any -> any 80 (content:"BOB"; sid:1000983; rev:1;)
3.4.5 rev
該rev關鍵字用來唯一標識的Snort規則的修訂。修訂以及Snort規則ID允許對簽名和描述進行完善,并用更新的信息代替。此選項應與sid關鍵字一起使用。
3.4.5.1 格式
rev:<revision integer>;
3.4.5.2 例子
本示例是Snort Rule Revision為1的規則。
alert tcp any any -> any 80 (content:"BOB"; sid:1000983; rev:1;)
3.4.6 CLASSTYPE
CLASSTYPE關鍵字用于將規則分類為檢測屬于更一般類型的攻擊類的一部分的攻擊。Snort提供了一組默認的攻擊類別,供其提供的默認規則集使用。定義規則的分類提供了一種更好地組織Snort產生的事件數據的方法。
3.4.6.1 格式
classtype:<class name>;
3.4.6.2 例子
alert tcp any any -> any 25 (msg:"SMTP expn root"; flags:A+; \
content:"expn root"; nocase; classtype:attempted-recon;)
Snort定義的攻擊分類駐留在 classification.config文件中。該文件使用以下語法:
config classification: <class name>,<class description>,<default priority>
這些攻擊分類在表中列出。目前,它們以4個默認優先級排序。優先級1(高)是最嚴重的,優先級4(非常低)是最不嚴重的。
| 類類型 | 描述 | 優先 |
|---|---|---|
| attempted-admin | 嘗試獲得管理員特權 | 高 |
| attempted-user | 嘗試的用戶特權獲取 | 高 |
| inappropriate-content | 檢測到不適當的內容 | 高 |
| policy-violation | 潛在的違反公司隱私的行為 | 高 |
| shellcode-detect | 檢測到可執行代碼 | 高 |
| successful-admin | 管理員特權獲取成功 | 高 |
| successful-user | 用戶特權獲取成功 | 高 |
| trojan-activity | 檢測到網絡木馬 | 高 |
| unsuccessful-user | 用戶權限獲取失敗 | 高 |
| web-application-attack | Web應用攻擊 | 高 |
| attempted-dos | 試圖拒絕服務 | 中 |
| attempted-recon | 企圖泄漏 | 中 |
| bad-unknown | 潛在的不良流量 | 中 |
| default-login-attempt | 嘗試使用默認的用戶名和密碼登錄 | 中 |
| denial-of-service | 檢測拒絕服務攻擊 | 中 |
| misc-attack | 雜項攻擊 | 中 |
| non-standard-protocol | 檢測非標準協議或事件 | 中 |
| rpc-portmap-decode | 解碼RPC查詢 | 中 |
| successful-dos | 拒絕服務 | 中 |
| successful-recon-largescale | 大規模信息泄漏 | 中 |
| successful-recon-limited | 信息泄漏 | 中 |
| suspicious-filename-detect | 檢測到可疑文件名 | 中 |
| suspicious-login | 檢測到使用可疑用戶名的嘗試登錄 | 中 |
| system-call-detect | 檢測到系統調用 | 中 |
| unusual-client-port-connection | 客戶端正在使用異常端口 | 中 |
| web-application-activity | 訪問潛在的易受攻擊的Web應用程序 | 中 |
| icmp-event | 常規ICMP事件 | 低 |
| misc-activity | 雜項活動 | 低 |
| network-scan | 檢測網絡掃描 | 低 |
| not-suspicious | 不可疑流量 | 低 |
| protocol-command-decode | 通用協議命令解碼 | 低 |
| string-detect | 檢測到可疑字符串 | 低 |
| unknown | 未知流量 | 低 |
| tcp-connection | 檢測到TCP連接 | 非常低 |
3.4.6.3 警告
該CLASSTYPE選項只能使用已定義的分類,該分類在snort.conf中通過使用配置分類 選項被定義的。Snort在classification.config中提供了默認的一組分類,供其提供的規則使用。
3.4.7 優先級
優先級標簽分配一個嚴重等級的規則。classtype規則分配默認優先級(由config分類選項定義),該默認優先級可以被優先級規則覆蓋。每種情況的示例如下。
3.4.7.1 格式
priority:<priority integer>;
3.4.7.2 例子
alert tcp any any -> any 80 (msg:"WEB-MISC phf attempt"; flags:A+;
content:"/cgi-bin/phf"; priority:10;)
alert tcp any any -> any 80 (msg:"EXPLOIT ntpdx overflow"; \
dsize:>128; classtype:attempted-admin; priority:10 );
3.4.8 元數據
元數據標簽允許規則編寫者嵌入關于規則的附加信息,通常采用鍵-值格式。某些元數據鍵和值對Snort有意義,并在下表中列出。Snort會有效忽略除表中列出的鍵以外的其他鍵,這些鍵可以是自由格式,帶有鍵和值。多個鍵由逗號分隔,而鍵和值由空格分隔。
| 鍵 | 描述 | 值格式 |
|---|---|---|
engine |
指示共享庫規則 | “shared” |
soid |
共享庫規則生成器和SID | gid/sid |
service |
基于目標的服務標識符 | “ http” |
注意: 僅當提供主機屬性表時 ,
服務元數據密鑰才有意義。
3.4.8.1 格式
以下示例顯示了共享庫規則中的存根規則。第一個使用多個元數據關鍵字,第二個使用單個元數據關鍵字,并且鍵之間用逗號分隔。
metadata:key1 value1;
metadata:key1 value1, key2 value2;
3.4.8.2 例子
alert tcp any any -> any 80 (msg:"Shared Library Rule Example";
metadata:engine shared; metadata:soid 3|12345;)
alert tcp any any -> any 80 (msg:"Shared Library Rule Example";
metadata:engine shared, soid 3|12345;)
alert tcp any any -> any 80 (msg:"HTTP Service Rule Example";
metadata:service http;)
3.4.9 一般規則快速參考
| 關鍵詞 | 描述 |
|---|---|
msg |
msg關鍵字告訴日志記錄和警報引擎,該消息與數據包轉儲或警報一起打印。 |
reference |
reference關鍵字允許規則包含對外部攻擊識別系統的引用。 |
id |
gid關鍵字(生成器ID)用于標識特定規則觸發時Snort的哪一部分生成事件。 |
sid |
sid關鍵字用于唯一標識Snort規則。 |
rev |
rev關鍵字用于唯一標識Snort規則的修訂。 |
classtype |
classtype關鍵字用于將規則分類為檢測屬于更一般攻擊類型的一部分的攻擊。 |
priority |
priority關鍵字為規則分配嚴重性級別。 |
metadata |
元數據關鍵字允許規則編寫者嵌入有關規則的其他信息,通常以鍵值格式嵌入。 |
Snort安裝使用中文手冊
推薦文章: