溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Suricata簡(jiǎn)介

發(fā)布時(shí)間:2020-08-10 08:01:32 來(lái)源:網(wǎng)絡(luò) 閱讀:1782 作者:leejia1989 欄目:安全技術(shù)

目錄

Suricata簡(jiǎn)介
IDS/IPS簡(jiǎn)介
Suricata主要特點(diǎn)
Suricata基本架構(gòu)
Suricata抓包性能
Suricata規(guī)則
Suricata自定義檢測(cè)
Suricata http log自定義輸出
Suricata單進(jìn)程同時(shí)監(jiān)聽(tīng)兩個(gè)網(wǎng)口
問(wèn)題
總結(jié)
參考

Suricata簡(jiǎn)介

Suricata是一個(gè)高性能的IDS、IPS和網(wǎng)絡(luò)安全監(jiān)控的引擎。它是開(kāi)源的,由一個(gè)社區(qū)經(jīng)營(yíng)的非營(yíng)利基金會(huì)開(kāi)放信息安全基金會(huì)(OISF)開(kāi)發(fā)。

安裝環(huán)境建議使用centos7/redhat7版本以上的操作系統(tǒng),Suricata版本建議使用4.x以上,這樣方便多線(xiàn)程,Hypersca,pfring等功能的使用。6版本的操作系統(tǒng)編譯環(huán)境需要花時(shí)間取升級(jí)修復(fù),不建議使用。

IDS/IPS簡(jiǎn)介

檢測(cè)系統(tǒng)(Intrusion detection system,簡(jiǎn)稱(chēng)“IDS”)是一種對(duì)網(wǎng)絡(luò)傳輸進(jìn)行即時(shí)監(jiān)視,根據(jù)預(yù)設(shè)的策略,在發(fā)現(xiàn)可疑傳輸時(shí)發(fā)出警報(bào)。
預(yù)防系統(tǒng)(Intrusion prevention system,簡(jiǎn)稱(chēng)“IPS”)是一部能夠監(jiān)視網(wǎng)絡(luò)或網(wǎng)絡(luò)設(shè)備的網(wǎng)絡(luò)資料傳輸行為的計(jì)算機(jī)網(wǎng)絡(luò)安全設(shè)備,一般位于防火墻和網(wǎng)絡(luò)的設(shè)備之間,能夠即時(shí)的中斷、調(diào)整或隔離一些不正常或是具有傷害性的網(wǎng)絡(luò)資料傳輸行為。相對(duì)于IDS主能提供了中斷防御功能。

Suricata主要特點(diǎn)

  • 支持從nfqueue中讀取流量
  • 支持分析離線(xiàn)pcap文件和pcap文件方式存儲(chǔ)流量數(shù)據(jù)
  • 支持ipv6
  • 支持pcap,af_packet,pfring,硬件卡抓包
  • 多線(xiàn)程
  • 支持內(nèi)嵌lua腳本,以實(shí)現(xiàn)自定義檢測(cè)和輸出腳本
  • 支持ip信用等級(jí)
  • 支持文件還原
  • 兼容snort規(guī)則
  • 支持常見(jiàn)數(shù)據(jù)包解碼:IPv4, IPv6, TCP, UDP, SCTP, ICMPv4, ICMPv6, GRE, Ethernet, PPP, PPPoE, Raw, SLL, VLAN, QINQ, MPLS, ERSPAN, VXLAN
  • 支持常見(jiàn)應(yīng)用層協(xié)議解碼:HTTP, SSL, TLS, SMB, DCERPC, SMTP, FTP, SSH, DNS, Modbus, ENIP/CIP, DNP3, NFS, NTP, DHCP, TFTP, KRB5, IKEv2, SIP, SNMP, RDP

Suricata基本架構(gòu)

運(yùn)行模式

有三種運(yùn)行模式,分別為single,workers,autofp。官方推薦性能最佳的運(yùn)行模式為workers模式。
single模式:只有一個(gè)包處理線(xiàn)程,一般在開(kāi)發(fā)模式下使用。
Suricata簡(jiǎn)介
workers模式:多個(gè)包處理線(xiàn)程,每個(gè)線(xiàn)程包含完整的處理邏輯。
Suricata簡(jiǎn)介
autofp模式:有多個(gè)包捕獲線(xiàn)程,多個(gè)包處理線(xiàn)程。一般適用于nfqueue場(chǎng)景,從多個(gè)queue中消費(fèi)流量來(lái)處理。
Suricata簡(jiǎn)介

四種線(xiàn)程模塊

Suricata簡(jiǎn)介
包獲?。喊东@
解碼:對(duì)數(shù)據(jù)包和應(yīng)用層協(xié)議解碼
檢測(cè):通過(guò)規(guī)則或者自定義腳本對(duì)數(shù)據(jù)包進(jìn)行檢測(cè)
輸出:輸出檢測(cè)結(jié)果和常規(guī)協(xié)議相關(guān)日志等

Suricata性能調(diào)優(yōu)

抓包性能對(duì)比

  • 硬件捕獲 > pfring zc > pfring > af-packet > pcap

調(diào)優(yōu)

1,關(guān)閉網(wǎng)卡多隊(duì)列功能
原因:一般使用流量鏡像方式把流量鏡像到服務(wù)器網(wǎng)卡,如果多隊(duì)列的話(huà),同一個(gè)tcp連接的數(shù)據(jù)有可能會(huì)被分散到不同的隊(duì)列,由于時(shí)間的延遲可能導(dǎo)致有亂序可能。例如先收到了syn/ack,再收到syn,suricata會(huì)認(rèn)為此流量無(wú)效而丟棄。如果做檢測(cè),則需要加緩沖和排序,代價(jià)較大。

插卡em4網(wǎng)卡的rss
# ethtool -l em4
Channel parameters for em4:
Pre-set maximums:
RX:             0
TX:             0
Other:          1
Combined:       8
Current hardware settings:
RX:             0
TX:             0
Other:          1
Combined:       8

設(shè)置rss為1
# ethtool -L  em4 combined 1

2,根據(jù)官方建議關(guān)閉網(wǎng)卡tso,gso,lro,gro等特性
原因:
tso/gso:網(wǎng)卡將普通的數(shù)據(jù)包重新組裝卸載到一個(gè)大的“超級(jí)數(shù)據(jù)包”中,這樣就減少了在堆棧中傳遞的數(shù)據(jù)包的數(shù)量,提升性能。這將導(dǎo)致捕獲應(yīng)用程序捕獲到比它們的接口的MTU大得多的數(shù)據(jù)包,并可能干擾最大數(shù)據(jù)包捕獲長(zhǎng)度(snaplen),導(dǎo)致捕獲程序丟棄這些超級(jí)數(shù)據(jù)包。
lro/gro:導(dǎo)致將各種較小的包合并成大的“超級(jí)包”,從而破壞suricata對(duì)tcp連接的跟蹤。

插卡em4網(wǎng)卡的特性
# ethtool -k em4

關(guān)閉lro,gro
# ethtool -K em4 tso off gso off lro off gro off

3,使用pfring zc模式捕獲包
原因:pfring+zero copy提升性能,但是zero copy需要網(wǎng)卡驅(qū)動(dòng)支持,目前我們使用pfring模式抓包,只需要kernel支持即可。
4,調(diào)整配置文件中內(nèi)存相關(guān)配置,調(diào)大flow.memcap,stream.memcap,stream.reassembly.memcap
5,使用workers運(yùn)行模式
6,調(diào)整配置文件中max-pending-packets為8192
7,suricata編譯需要支持luajit(用于替換原始lua),Hyperscan高性能正則庫(kù),PF_RING高性能包捕獲庫(kù)

Suricata規(guī)則

1,兼容snort規(guī)則,具體可參考官方文檔。
2,通過(guò)規(guī)則和內(nèi)置的關(guān)鍵字實(shí)現(xiàn)對(duì)數(shù)據(jù)包的過(guò)濾和處理等。
3,Suricata4.x版本之后有自帶的規(guī)則管理工具

Suricata自定義檢測(cè)

支持通過(guò)lua腳本對(duì)數(shù)據(jù)包進(jìn)行自定義檢測(cè),例如協(xié)議識(shí)別和異常流量識(shí)別等

Suricata http log自定義輸出

支持通過(guò)lua腳本腳本獲取http協(xié)議request和response的相關(guān)信息,從而可以輸出http協(xié)議中的所以數(shù)據(jù),例如header,request body,response body等。

Suricata單進(jìn)程同時(shí)監(jiān)聽(tīng)兩個(gè)網(wǎng)口

通過(guò)修改suricata.yml配置文件可以實(shí)現(xiàn),以pfring捕獲方式為例,如下配置文件為同時(shí)捕獲兩個(gè)網(wǎng)口流量的配置:

pfring:
  - interface: em2
    threads: auto
    cluster-id: 81
    cluster-type: cluster_flow
  - interface: em4
    threads: auto
    cluster-id: 82
    cluster-type: cluster_flow

問(wèn)題

1,發(fā)現(xiàn)流量里面有部分vlan數(shù)據(jù)的情況下,suricata不能正常輸出http和dns等應(yīng)用協(xié)議的日志
解決:
關(guān)閉如下配置

vlan:
    use-for-tracking: false

2,https流量解密
不支持對(duì)https加密流量的解密,只能解碼ssl/tls協(xié)議,目前看主流的tls協(xié)議(TLSv1 TLSv1.1 TLSv1.2 TLSv1.3)都能解析。解析后的日志樣例如下:

{"timestamp":"2019-12-12T16:04:39.031174+0800","flow_id":1696894142547600,"in_iface":"eth2","event_type":"tls","vlan":20,"src_ip":"1.1.1.1","src_port":63198,"dest_ip":"52.114.128.43","dest_port":443,"proto":"TCP","tls":{"subject":"CN=*.events.data.microsoft.com","issuerdn":"C=US, ST=Washington, L=Redmond, O=Microsoft Corporation, OU=Microsoft IT, CN=Microsoft IT TLS CA 4","serial":"16:00:0A:BD:A3:28:8A:26:AC:EB:F1:78:5E:00:00:00:0A:BD:A3","fingerprint":"33:b3:b7:e9:da:25:f5:a0:04:e9:63:87:b6:fb:54:77:db:ed:27:eb","sni":"self.events.data.microsoft.com","version":"TLS 1.2","notbefore":"2019-10-10T21:55:38","notafter":"2021-10-10T21:55:38","ja3":{"hash":"2a26b1a62e40d25d4de3babc9d532f30","string":"771,52244-52243-52245-49200-49196-49192-49188-49172-49162-163-159-107-106-57-56-65413-196-195-136-135-129-49202-49198-49194-49190-49167-49157-157-61-53-192-132-49199-49195-49191-49187-49171-49161-162-158-103-64-51-50-190-189-69-68-49201-49197-49193-49189-49166-49156-156-60-47-186-65-49170-49160-22-19-49165-49155-10-255,0-11-10-13-13172-16-21,14-13-25-28-11-12-27-24-9-10-26-22-23-8-6-7-20-21-4-5-18-19-1-2-3-15-16-17,0-1-2"}}}

總結(jié)

目前,我們使用Suricata分析從交換機(jī)鏡像過(guò)來(lái)的流量,Suricata的輸出為兩個(gè):Suricata檢測(cè)出來(lái)的alert異常事件和解碼的所有應(yīng)用協(xié)議的日志。以方便后續(xù)的存儲(chǔ)和分析,以及告警處理。

參考

https://yq.aliyun.com/articles/576349
https://suricata-ids.org/features/all-features/
https://suricata.readthedocs.io/en/suricata-4.1.3/rules/index.html

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI