网络入侵检测系统
从前面的学习中,我们学会了获取和监听流量,然而想实际为网络安全防护提供技术支撑,就要做成网络入侵检测系统(network intrusion detection system,NIDS),对收集漏洞信息、造成拒绝访问及获取超出合法范围的系统控制权等危害计算机系统安全的行为,进行检测。
网络入侵检测系统通常包括三个必要的功能组件:信息来源、分析引擎和响应组件。
- 信息来源:它负责收集被检测网络或系统的各种信息,并把这些信息作为资料提供给IDS分析引擎组件。
- 分析引擎:它利用统计或规则的方式找出可能的入侵行为,并将事件提供给下面的响应组件。
响应组件:它根据分析引擎的输出采取应有的行为,通常具有自动化机制,如主动通知系统管理员、中断入侵者的连接和搜集入侵信息等。
常用开源NIDS介绍
1.Snort
请看我这篇之前的文章:【点击前往】
2.Suricata
What is Suricata
- Suricata是一个免费,开源,成熟,高性能,稳定的网络威胁检测引擎
- 系统功能包括:实时入侵检测(IDS)、内联入侵预防(IPS)、网络安全监控(NSM)和离线pcap处理
- Suricata依靠强大的可扩展性的规则和特征语言过滤网络流量,并支持LUA脚本语言
- 输出文件格式为YAML或JSON,方便与其他数据库或安全数据分析平台集成 Suricata采用社区驱动开发,有利于版本的维护和新特性的迭代
架构
Suricata安装
根据实验所使用的环境,参考suricata官网进行安装。命令如下:
sudo apt-get install suricata
echo "deb http://http.debian.net/debian buster-backports main" > /etc/apt/sources.list.d/backports.list
apt-get update
apt-get install suricata -t buster-backports
安装完成后可以查看一下版本信息,确认安装成功:
suricata -V
更新规则库
更新ET Open规则库命令如下:
sudo suricata-update
注意,suricata默认规则库的位置为:
/var/lib/suricata/rules/suricata.rules
常用规则关键字
Suricata使用
在数据包所在目录下运行命令,假设数据包名为test.pcap:
suricata -r test.pcap -k none
生成四个结果文件:
其中,fast.log记录了包含的具体alert情况,包括时间、五元组信息、告警id和告警信息等,是我们本次重点分析的对象。eve.json则记录了告警信息、flow流信息、协议解析的信息(例如http,dns等),以及攻击的payload等。
3.蜜罐
这也是一个仿生概念,模仿猪笼草的捉虫小猪笼。
这里以honeyd为例,Honeyd由NielsProvos创建,是一个开源程序,使用户能够在各种计算机网络上创建和运行虚拟主机。用户可以配置这个虚拟主机以模仿不同类型的服务器,达到防御真实服务器免遭入侵的效果。
Honeyd主要用于计算机安全领域。通过使用该工具同时模仿多个网络主机,Honeyd可以干扰威胁入侵。例如,如果一个网络有2个真实服务器,并且其中有一个正在运行Honeyd,那么网络就会向攻击者展示正在运行的数百个虚拟服务器,从而为安全人员提供更多时间来抓住黑客。
4.OSSEC HIDS
OSSEC HIDS是一个基于多平台,可扩展和开源的入侵检测系统,具有强大的关联和分析引擎。
OSSEC HIDS是否适用于所有操作系统?它可在大多数操作系统上运行,包括Linux,MacOS,Solaris,HP-UX,AIX和Windows。
OSSEC HIDS执行完整性检查,日志分析,基于时间的警报,日志分析和主动响应。它通常用作SEM / SIM的解决方案,由于其出色的日志分析引擎,许多大学,ISP和公司正在运行此工具来监控和分析其IDS,防火墙,身份验证日志和Web服务器。
5.SGUIL
什么是Sguil?
用tcl/ tk编写的Sguil是为网络安全分析师构建的。该工具的主要组件是一个直观的GUI,可以访问会话数据,实时事件和原始数据包捕获。它还有助于实现事件驱动分析和网络安全监控。
Sguil适用于所有操作系统吗?
Sguil可以在任何支持tcl / tk的操作系统上运行(包括Linux,* BSD,Solaris,MacOS和Win32)。
Sguil的典型用途是什么?
Sguil用于将您的IDS警报绑定到TCP / IP会话,数据包日志,完整内容和其他信息的数据库中。对于其大部分数据,Sguil使用后端,使用户能够针对各种类型的安全事件执行SQL查询。