网络入侵检测系统之Snort(三)

简介: AdvantagesSnort插件Snort采用了模块化设计,其主要特点就是利用插件,这样有几个好处,一是用户可以自主选择使用哪些功能,并支持热插拔;二

AdvantagesSnort插件Snort采用了模块化设计,其主要特点就是利用插件,这样有几个好处,一是用户可以自主选择使用哪些功能,并支持热插拔;二是依据设计需求对Snort扩展,即根据template.c设计第三方插件目前插件按功能分成三类,数据流预处理插件,检测功能插件,输出日志信息插件;插件的管理统一采用链表指针的方式2. 跨平台性

Snort支持Linux,OpenBSD,FreeBSD,Solaris,HP-UX ,MacOS,Windows等3. 规则语言简单

发现新攻击后,可以很快找到特征码,写出新的规则文件,迅速建立规则表4. 轻量级,在部署方面具有高度灵活性,使其成为网络安全体系的有机组成部分。

5. 具有实时流量分析和记录IP网络数据包的能力

Disadvantages编写新规则后无法即时生效,需要重启Snort吞吐量不高约为100Mbps,因为数据抓包方式仅采用libpcap规则组织采用链表,匹配时会沿着链表一一匹配,效率低。Snort2.x版本重新优化了规则匹配的数据结构,对规则进行了再分类,匹配性能有一定提升,详见:Snort快速规则匹配模块剖析System Indicators吞吐量及内存消耗(Snort VS Snort+Hyperscan)Snort原始性能由于严重依赖操作系统的libpcap,所以性能瓶颈在100Mbps左右,集成Hyperscan后性能约为500Mbps,但离商用的20Gbps仍有距离Snort作为轻量级快部署的入侵检测系统,内存消耗方面表现优秀,约为60MB,集成Hyperscan后可降低为5.5MB2. 可扩展性

可自定义开发集成插件(snortsam),即检测算法替换或扩展,报文预处理,日志显示等,插件替换灵活,支持热插拔可集成Hyperscan;daq模块可集成DPDK(https://github.com/NachtZ/daq_dpdk),性能可达到10.00Gbps,但只能针对单向流量,无法处理类似tcp协议的双向流量准确率及误报率与规则配置文件强相关,而且当网络流量高于100Mbps时,误报率会急剧上升

Product Comparison项目

Snort

Suricata

开发公司

Sourcefire,Inc。

开放信息安全基金会(OISF)

可用性

自1998年以来

自2009年以来

编程语言

C

C

操作系统

跨平台

跨平台

稳定版本

3.0(2018年8月29)

4.05(2018年7月18日)

线程

多线程

多线程

IPv6支持

支持

支持

Snort(VRT)规则支持

支持

支持

新兴威胁规则支持

支持

支持

记录格式

Unified2

Unified2

Aanval兼容性

支持

支持

抓包方式

PF_RING,netmap等

仅为libpcap

TestCase评测,详见:https://www.aldeid.com/wiki/Suricata-vs-snort

Test Group

Priority

# of tests

Suricata score

Snort score

测试规则支持

3

8

6

8

网络拥塞情况

2

4

1

1

分片数据包

2

2

1

3

多次失败登录

3

1

1

0

绕过技巧

2

15

21

29

恶意软件&病毒

3

14

9

7

Shellcodes

3

11

12

7

拒绝服务(DoS)

3

3

3

3

客户端攻击

3

257

127

157

性能

3

0

2

1

内生安全能力 Inline/Prevention capabilities

2

0

1

1

TOTAL (unweighted sum)

315

184

217

TOTAL (weighted sum)

315

528

617