信息安全体系建设☞开源入侵检测系统NIDS

我们之前提到在边界处搭建信息安全体系,需要依赖防火墙,但是防火墙就像我们生活当中的一扇门,只是负责开和关我们不能够感知到是谁进来或者谁出去。比如说我们在制定防火墙策略的时候,我们制定的规则是人可以出去,dog不能进来。但是具体是什么样的人可以进来?什么样的人不能够进来?这个功能防火墙无法满足。入侵检测系统恰恰能够弥补防火墙的这个缺点。对数据包进行深度检测,同时可以利用特征库或者白名单管控网络,也可以通过杀毒引擎对进出的数据包进行病毒查杀。很多时候我们把IPS配置成为IDS模式,主要使用ID/PS来监控网络异常, 直接生成网络安全告警。采用这种模式的原因是因为我们很多时候对开箱即用的规则或者自己定义的规则不够信任,在业务对网络的依赖性越来越强的今天, 谁也承担不了基础架构的抽风。
商业化的入侵检测系统有很多,他们当中很多都是通过开源的入侵检测系统进化而来。我们还是那句话,系统有千千万万,但是防御的原理和规则是相同的。我们可以通过对开源的入侵检测系统进行深入学习,从而了解入侵检测系统的原理。
今天我给大家介绍的开源安全产品是大名鼎鼎的Snort,在1998年,Martin Roesch用C语言开发了开放源代码(Open Source)的入侵检测系统Snort。直至今天,Snort已发展成为一个具有多平台(Multi-Platform)、实时(Real-Time)流量分析、网络IP数据包(Pocket)记录等特性的强大的网络入侵检测/防御系统(Network Intrusion Detection/Prevention System),即NIDS/NIPS。Snort符合通用公共许可(GPL——GNU General Pubic License),在网上可以通过免费下载获得Snort,并且只需要几分钟就可以安装并开始使用。
关于Snort这个平台的背景,相信很多从事信息安全的同学都了解。我们关键是要看看怎么玩这个工具,怎么能把这个工具玩好。如果我们在网络环境中采用了开源产品, 我们很多时候都是把开源的安全产品当做一个补充,或者更多是当做一个安全工具来用。基于这样一种情况, 我还是建议在使用Snort这个开源IDS产品的时候,重点关注它的两个方面的功能, 1)监控和报警功能。2)事后安全调查取证功能。

1,监控和报警功能。

这属于任何一款IDS都有的最最基本的功能,利用更新的特征库,和自己定义的规则来监控网络流量。针对异常的流量触发告警功能,从而通知网络安全人员或者网络运维人员直接对异常流量进行干预。这里面比较考验能力的地方就是规则的指定,签完别幻想着开箱即用的规则能帮助你发现什么恶意流量, 不是说Snort不能发现恶意流量,而是因为这些厂商定义的规则,往往具有普适性。IDS能发现的,FW也能发现。如果一款FW发现了恶意流量却不能采取相应的动作。那这个二货,留着它还有啥用。每个公司的业务都有自己的特色,每个公司的网络架构也都有自己不同的地方。如果千篇一律的套用,别家公司或者厂商的规则,这样的安全水平只是出于一个简单的设备堆砌阶段。我在开篇的博客里面提到了,一个最牛的安全体系往往是最经济的,是人和设备的完美配合。但是如何才能制定出来一个合理的IDS规则来监控网络呢?
1)需要网络安全人员对主流的安全威胁有所了解。针对最常见的攻击模型有了深入的理解, 就能明确如何才能在千丝万缕的通信中抓出自己想要的那些特征。
2)需要网络安全人员了解自己公司的业务模式,那些事公司的核心资产。攻击者是最懂得经济学的货,一个大牛级别的攻击者,能够知道那些资源是他想要的, 他能够利用那些手段来获取这些资源。网络安全人员恰恰需要遵循攻击者的思路来涉及网络架构,把可能暴露风险的资产进行***精确而又严格*** 的把控。
3)需要网络安全人员定期检查网络流量。也就是网络安全运维人员, 网络安全分析人员,网络安全事件调查人员的紧密配合。针对每一次网络攻击进行深入的分析,把攻击特征捕捉下来,这样定义的规则才会更加有针对性。
在配置和管理IDS告警的时候, 通常会有两种最让人头疼的情况。安全响应人员天天面对无尽的告警,调查结果都是猫捉尾巴,白费劲。另外一种情况就是安全攻击不断的对核心资产造成威胁, 但是却不能被实时的检测到,进而实施有效的控制。这种情况不是开源软件带来的,商业化的安全软件也会有同样的困扰。这些都是对网络安全人员能力的考验,解决办法可以先分析分析Snort自带的一些规则,看看人家是怎么分析的数据包, 怎么定制的规则。学习没有捷径,一点一点的积累,时间久了,能力自然就上来了。

2安全调查取证功能:

对数据包的拦截和分析是所有IDS都具有的功能。我们在对边界进行防护的过程中, 关注源目地址和端口,在防火墙中定制规则。但是放进来的流量,也不完全是白净白净的。我们还需要通过抓包工具进行分析,看看数据包里面封装的内容都是什么,有没有违禁品。如果我们干瞪着一双忽闪忽闪的大眼睛,瞎了也看不过来网络中来来往往的流量。我们可以利用IDS定义规则, 把想检查的数据包抓出来。只关注我们想看的, 或者可能存在危险的数据包。有很多时候, 我们关注数据包里面的内容, 不仅仅是为了审查里面可能存在的安全攻击或者恶意程序。我们为了合规,为了网络安全事件的调查, 我们需对数据包进行深度剖析,来寻找自己需要的证据。

3 Snort配置过程中需要注意的事项:

在对Snort进行配置的时候我们需要关注snort.conf文件,尤其是step#6:configure output plugins
1,配置输出文件,通常我们可以指定输出文件的大小和文件格式。U2的格式我们是不能直接打开看的,如果是为了测试我们可以定义output alert_csv, 我们可以直接通过linux或者windows的文件管理工具打开检查配置结果。
信息安全体系建设☞开源入侵检测系统NIDS_第1张图片
2, 我们也可以把snort生成的log文件直接写入Linux的log里面。
syslog
3,定义截获的数据包文件名,这个文件会被自动截断。为了防止文件过大可以定义系统任务来定期删除数据包。当然在安全事件调查过程中这个内容会比较有价值。
tcpdump

4如何定义一个有价值的规则

在之前的描述中, 我提及了如何才能设置一个有价值的规则。这里我想具体的说明一些如何利用Snort自带的规则进行学习,然后自己定义符合自己公司业务的规则。
1, 在snort.conf中定义规则路径。
在配置文件的第7步说明了规则文件所处的位置和文件名称,信息安全体系建设☞开源入侵检测系统NIDS_第2张图片
规则所处的路径
信息安全体系建设☞开源入侵检测系统NIDS_第3张图片
信息安全体系建设☞开源入侵检测系统NIDS_第4张图片
2, 虽然我们不能保证这些规则能适合每一个公司, 适合每一种威胁。但是指定这些规则的人无疑都是网络安全界的高手。我们从照葫芦画瓢开始来了解Snort,熟悉它,最后熟练的运用它。我们先来看一个从Snort官网下载的rule,看看我们能学习到什么。
在这里插入图片描述
首先这是一个alert类型的规则,针对IIS NTLM的一个漏洞进行扫描的时候,会触发这个规则, 将被记录下来。这一个规则会针对HTTP包的内功进行检测,同时配合HTTP reference。这一条规则针对攻击者使用现成的扫描工具进行扫描的时候, 是有效的。但是现实情况往往不是这样, 如果一个攻击者有目的的攻击一个有价值的目标, 他会通自开发或者自定义的工具,进行扫描或者直接发起攻击。
下面的这个规则来自于backdoor.rule:
在这里插入图片描述
该规则描述的特征包含了目的端口, 网络流量,数据包内容字符串等信息。
3, 上面提到了我们需要配合信息安全事件调查,来提供调查取证。很多时候这样的要求, 并不是有特定的网络威胁,可能更多的就是从office网络端访问IDC的流量。 也没没准会调查哪一个PC或者设备。所以我们需要有前瞻性的来定义一些规则,以备将来的调查取证工作。
IDS能做这么多工作,那么我们抱紧IDS的大粗腿,是不是就足够了呢,答案是否定的。网络安全体系需要深度防御,可视化监控。很多时候一个数据包本身不能代表什么,但是来自不同设备的告警则能揭示一个深藏的网络威胁。
请继续跟着我迈入网络安全的开源世界。

你可能感兴趣的:(开源软件搭建信息安全体系,信息安全理论,信息安全技术)