天天看點

《資料驅動的網絡分析》——2.3 NetFlow

本節書摘來自異步社群《資料驅動的網絡分析》一書中的第2章,第2.3節,作者: 【美】michael collins 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。

netflow是cisco開發的流量彙總标準,最初用于網絡服務記賬。雖然本意不是為了安全性,但是人們臆測netflow對此有益,因為它提供了緊湊的網絡通信會話摘要,可以快速通路,并且包含了以相對緊湊的格式儲存的最高價值資訊。從1999年flow-tools軟體包釋出以來,netflow越來越多地用于安全分析,已經開發出了各種工具,這些工具為netflow提供了更多的字段,例如可選擇的載荷片段。

netflow的核心是流(flow)的概念,它與tcp會話近似。回憶前面介紹的知識,tcp會話在端點通過比較順序号組裝。在路由器判斷處理多個tcp會話中包含的順序号是不可能的,但是可以用逾時值做出合理的估算。流是一組時間上很接近的同位址封包。

2.3.1 netflow v5格式和字段

netflow v5是最早的通用netflow标準,在讨論替代的版本之前,有必要介紹一下nfv5的字段值。netflow的字段如表2-2所示,大緻分為3類:直接從ip封包中複制的字段、ip封包摘要字段和與路由相關的字段。

《資料驅動的網絡分析》——2.3 NetFlow

https://yqfile.alicdn.com/d12a2fa22769d6fd24892a453282356f02673484.png" >

《資料驅動的網絡分析》——2.3 NetFlow

https://yqfile.alicdn.com/bd4ed8eecbeb8b48dbc7c1c933ce4b3e8b7c6d16.png" >

  a這個值是路由器系統啟動時間的相對值

netflow記錄的srcaddr、 dstaddr、 srcport、 dstport、 prot和 tos字段直接從ip封包的對應字段複制。但是,對于ip協定族中的每個協定都會生成流,這就意味着,srcport和dstport字段嚴格來說是tcp/udp專用的,不一定總是有意義的。在icmp協定中,netflow在dstport字段中記錄類型和代碼,其他協定則忽略該值。

packets、doctets、 first、 last和 tcp_flags字段都是從一個或者多個封包中彙總而得。packets和doctets是簡單的總和,需要注意的是,doctets值是第3層的位元組總數,也就是說包含了ip和協定報頭(例如,沒有載荷的單封包tcp流将記錄為40個位元組,而沒有載荷的單封包udp流将記錄為28個位元組)。first和last值分别是流中第一次和最後一次觀察到封包的時間。

tcp_flags的情況特殊。在netflow v5中,tcp_flags字段由出現在流中的所有标志進行或運算求得。在形式合法的流中,這意味着syn、fin和ack标志總為高值。

最後一組字段——nexthop、input、output、src_as、dst_as、src_mask和dst_mask都與路由相關。這些值隻能在路由器上采集。

“流和内容”:netflow v9和ipfix

cisco開發了netflow的多個版本,最終netflow v5成為這個标準的主力實作。但是v5是一個受限和過時的标準,主要針對ipv4,而且是在流被廣泛采用之前設計的。cisco的解決方案是netflow v9,這是一個基于模闆的流報告标準,路由器管理者可以用它指定包含在流中的字段。

之後,基于模闆的netflow由ietf标準化為ipfix1。ipfix提供了幾百種流字段,這些字段在rfc 5102中說明。該标準優先考慮的是網絡監控和流量分析,而不是資訊安全。為了處理可選的字段,ipfix有一個“供應商空間”的概念。在開發silk工具包的過程中,卡内基梅隆大學的cert網絡态勢感覺小組在他們的ipfix空間内開發了一組安全敏感字段,提供一組用于安全分析的有用字段。

2.3.2 netflow生成和采集

netflow記錄由網絡硬體設施(例如路由器或者交換機)直接生成,或者使用軟體将封包轉換為流。每種方法各有不同的優劣之處。

基于設施的生成手段使用的是硬體制造商提供的netflow機制。不同制造商使用類似但不同于cisco的名稱,例如juniper networks的jflow和華為的netstream。因為netflow由許多不同制造商提供,具有各種各樣的規則,不可能在本書的範圍内對必要的配置進行技術性探讨。但是,下面的經驗法則值得一提。

netflow生成可能在路由器上造成性能問題,尤其是舊的型号。各個公司以不同的方式解決這個問題,包括降低該程序優先級(并抛棄記錄)和将netflow生成任務解除安裝到可選(且昂貴)的硬體上。

大部分netflow配置預設采用某種形式的采樣,以便降低性能負載。對于安全分析,netflow應該配置為提供未采樣記錄。

許多netflow配置提供一些彙總和報告格式,你應該采集原始的netflow資料,而不是彙總。

基于路由采集的替代方法是使用應用程式,如cert的yet another flowmeter(yaf)工具、softflowd 或者qosient argus 工具提供的大量流監控工具,從pcap資料生成netflow。這些應用程式将pcap當成檔案,或者直接從網絡接口上采集封包并将其聚合成流。此類傳感器缺乏路由器的觀察點,但是同時能夠提供更多的處理資源,分析封包和生成更加豐富的netflow輸出,包含深度封包檢查等功能。

繼續閱讀