2010年9月19日 星期日

Snort


模式

  • NIDS(Network Intrusion Detection Sensor,網路入侵偵測感應器):只偵測攻擊
  • NIPS(Network Intrusion Prrvention Sensor,網路入侵防護系統):對攻擊作回應
  • 基本的封包嗅探器

Snort的NIDS模式
分為幾個層級,提供不同層級的報告、記錄與隱密水準;在這個模式之下,Snort只獲取是否有任何規則被觸犯的資訊,並且忽略所有其他網路通訊,不產生封包補捉物或記錄


Snort的NIPS模式
Snort須完全因應環境而組態,不只是記錄攻擊,還要封鎖它們,務必控制感應器所看見的誤判為有(false positive)數量,略過此步驟可能會在自己的網路上產生服務阻絕




為Snort撰寫攻擊特徵

  • 基本的攻擊特徵格式

    [Pass, Log, Alert]

    [ip, icmp, tcp, udp]

    [any, 'dstIP/netmask' ]

    [any, 'port']

    [->, <>, ,<-]

    [any, 'srcIP/netmask' ]

    [any, 'port']

  • Snort是基於攻擊特徵(signature-based)的NIDS,其偵測攻擊的能力取決於攻擊特徵資料基礎的質與量
  • 需要一定程度的網路協定和正規表達式知識
  • 避免在正規表達式中使用向後參考(back reference),因為它們需要過度處理(over-process)資料,並且加重感應器的效能負擔
  • 正規表達式能夠提供非常有效率的方式來偵測攻擊樣式(pattern),但這類的攻擊特徵的效能衝擊通常非常高,沒有簡單的公式可以衡量這項效應
  • alert tcp any 80 -> 192.168.1.0/24 any (content-list: “porn-word”;msg: “Porn word matched”; offset: 40; depth: 1000; nocase)

    對任何透過port80(HTTP)送進來的封包來說,此攻擊特徵在每個封包的前40到1000個位元組中,尋找包含來自檔案porn-word(色情書刊)裡的單字字串

  • alert ip any any -> any any(pcre: “/%[0-9.]*$?(i|n|x|s|h|e|g|a){3}/”; msg: “Format string”;)

    使用較進階的攻擊特徵,像是Perl正規表達式,此攻擊特徵會偵測IP封包裡是否有格式字串(format string)存在,可以偵測出像是%n%n%n與%213.2n%x%344.123$h之類的攻擊



被動式網路描繪(Passive Network Mapping)

  • 將snort偵測器連接到switch的span port,並使用適合的攻擊特,snort將顯示整個網路的全貌
  • 此網路偵測方是受限於所見即所得(what you see is what you get)
  • Alert ip any 80 ->any any (content: “Server: Microsoft-IIS/5.0”; nocase; depth:200; msg: “Source is an IIS/5.0 server”;)

    偵測IIS 5.0伺服器的規則



Stealth Ethernet

$ ifconfig eth1 up 
  #可以從該介面進行嗅探,而不進行後續的組態工作,像是IP位址子遮罩;
  #如果沒有從你所修改的介面得到一個IP位址一切便以就緒
$ Snort –i eth1  #以指定的介面執行snort



停用規則

  • Snort規則被區分成多個類別,例如,www、virus、pop3、oracle、chat,進行組態時,可以停用所有不適用於環境的規則
  • 使用’#’停用規則



改變服務的預設port

因為較新的規則使用$HTTP_PORTS變數,只要重設它,並且為其它port重新執行規則。所有的改變都發生在組態檔或規則黨裡

var HTTP_PORTS 80

include web.rules

var HTTP_PORTS 8080

include web.rules


強制Snort在兩個位址上進行偵聽,以下有兩個方法
  • 指定IP清單:

    Var HOME_NET [192.168.10.0/24, 10.1.1.1/16]

  • 多重指定HOME_NET變數:

    var HOME_NET 10.1.1.0/24

    include misc.rules

    var HOME_NET 192.168.1.0/24

    include misc.rules




Snort預處理器(preprocessor)

  • 負責封包分割、URL編碼、檢視
  • 參考Snort操作手冊,了解關於每個預處理器之可能組態的更多資訊




排除授權掃描(preprocessor)

  • 允許來源IP位址192.168.2.3連結到內部網路的port,並不會產生記錄

    pass ip 192.168.2.3 any -> $HOME_NET any

  • 讓Web掃描器(你所訂購的網際網路掃描服務)

    pass ip 192.168.2.3 any -> $WEB_SERVER 80




ILDS(Information Leaks Detection Engines)資訊洩漏偵測引擎

  • 洩漏樣式

    Confidential(機密)

    Secret(秘密)

    Patent(專利)

    Financial reports(財務報告)

    Internal Only(僅供內部參考)

    Do not disclose(禁止洩漏)

    ………

  • 大多數資訊洩漏透過這些基本協定而發生
    • HTTP(Web)
    • Email(電子郵件)
    • Printer(印表機)



Snort作為ILDS的限制(preprocessor)

下列功能對ILDS有用,但不存在於Snort
  • 看到壓縮內容(zip、uuencoded)
  • 驗證非ACSII檔案內容的傳輸(PDF、Word、Excel)
  • 攻擊特稱上的基礎行動
  • 驗證加密的通訊
  • 檢查可執行的內容
由於這些限制,作為ILDS使用Snort應該被用來指出:有哪些主機或內部洩漏最好透過其它解法來監控,像是tcpdump進行完整網路捕捉



其它

  •  記錄分析
  • Snort可以用來找出組織內部所發生的資訊洩漏,也可以被用來監控員工正在他們的系統上做什麼
  • 更新規則
  • 封鎖port掃描

資料出處:O'REILLY 防駭超級工具

沒有留言:

張貼留言