开源安全运维平台OSSIM疑难解析:提高篇(txt+pdf+epub+mobi电子书下载)


发布时间:2020-07-13 08:49:07

点击下载

作者:李晨光

出版社:人民邮电出版社有限公司

格式: AZW3, DOCX, EPUB, MOBI, PDF, TXT

开源安全运维平台OSSIM疑难解析:提高篇

开源安全运维平台OSSIM疑难解析:提高篇试读:

前言

写作本书的目的

目前,OSSIM 在中国移动、中国电信、中国石油、华为等大型企业内得到应用推广,这些企业在安全运营中心(SOC)的基础上组建了 OSSIM 运维和二次开发团队,但图书市场缺乏专门讲解OSSIM运维和开发的书籍。为了解答OSSIM运维工程师在工作中遇见的疑难问题,本书应运而生。

本书借助作者在OSSIM领域长达10年的开发应用实践经验,以大量实际问题为线索,阐述了基于插件收集的日志并实现标准化、安全事件规范化分类、关联分析的精髓。书中给出的参考答案有利于读者深入理解各种问题,让读者主动思考问题,从而避免死读书。书中展示的所有问题原型均来自大型企业中复杂的生产环境,给出的参考答案也是作者认为比较好的一种处理方案。

本书编写形式新颖,表达方式独特,图文并茂,通俗易懂,有很强的实用性。读者在学习和阅读的过程中可以针对自己感兴趣的问题得到及时、明确的解答。在满足碎片化阅读的同时,本书还通过近百道课后习题加深读者对 OSSIM 系统的理解。本书主要内容

本书介绍了开源OSSIM系统安装部署以及运维管理的若干疑难问题,共分12章。● 第1章,入侵检测Snort与Suricata,讲解入侵检测系统Snort和

Suricata在OSSIM系统中的应用问题。● 第2章,基于主机的入侵检测——OSSEC,讲解在HIDS-OSSEC

部署过程中常见的故障并进行解答。● 第3章,漏洞扫描OpenVAS,讲解在漏洞扫描OpenVAS服务器安

装过程中遇到的疑难问题。● 第4章,Memcache、RabbitMQ与Redis协同工作,讲解

Memcache、RabbitMQ和Redis等缓存和中间件系统在系统维护

与管理中遇到的配置难点及疑难问题。● 第5章,日志采集与分析,讲解利用OSSIM进行日志采集和分析

的问题。● 第6章,关联分析技术,讲解OSSIM关联分析技术问题。● 第7章,资产管理,讲解利用OSSIM进行资产管理的问题。● 第8章,网络流量与主机高可用监控,讲解利用Ntop和Nagios进

行流量管理的问题。● 第9章,NetFlow流量分析,讲解利用NetFlow为OSSIM进行流量

分析的问题。● 第10章,OSSIM前端汉化技巧,讲解OSSIM前端汉化技巧。● 第11章,压力测试及性能监控,讲解利用开源工具对OSSIM进

行性能测试以及调优的技巧问题。● 第12章,数据抓包分析技巧,讲解抓包分析技术。本书读者对象

本书精选了作者在OSSIM日常运维操作中总结的300多个疑难问题,是OSSIM运维工程师故障速查手册,专门针对OSSIM故障解答而编写。本书适合具有一定SIEM系统实施经验的技术经理或中高级运维工程师阅读,还可作为信息安全专家和相关领域研究人员的参考书,也可作为高等学校网络工程和信息安全专业的教材。本书约定关于版本

在本书中,软件的安装环境为Debian Linux 8.0。在安装其他软件时,必须符合该版本要求。关于菜单的描述

OSSIM的前台界面复杂,书中经常会用一串带箭头的单词表达菜单的路径,例如Web UI中的Dashboards→Overview→Executive,表示Web界面下鼠标依次单击Dashboards、Overview,最后到达Executive仪表盘。路径问题

除非特别说明,本书所涉及路径均指在OSSIM系统下的路径,而不是其他Linux发行版。终端控制台是指通过root登录系统,然后输入ossim-setup启动OSSIM终端控制台的界面。

在终端控制台下,选择Jailbreak系统菜单就能进入root shell,登录日志会保存在文件/var/log/ossim/root_access.log中。SIEM事件分析控制台

SIEM控制台是指通过Web UI进入系统,在菜单Analysis→SIEM下的界面。关于OSSIM服务器端与传感器端的约定

本书讲述的OSSIM服务器端均指通过AlienVault USM安装的系统,包括OSSIM四大组件,传感器端是通过AlienVault Sensor安装的系统。关于地图显示问题

所有地图信息均来自谷歌地图,大家在做实验前确保已连上谷歌地图,而且使用系统中的OTX时也需要能连接到谷歌地图。浏览器约定

OSSIM Web UI适合采用Safari 7.0、Google Chrome 44.0、IE 10.0以上的浏览器访问。实验环境下载

本书涉及的软件较多,其中一些重要的软件可到异步社区的本书页面中统一获取。学习之路中如何面对失败

与其他Linux系统一样,在学习OSSIM的过程中也会出现各种问题和故障。由于网上能直接找到的资料有限,所以很多新手都担心出现问题,在面对问题时都很局促,特别是当一个个问题接踵而来时会显得无可奈何。

学习OSSIM可以充分暴露你的“知识短板”,这体现在编程语言、数据库、操作系统、TCP/IP、网络安全的各个方面,不过通过解决在 OSSIM 里遇到的问题,就会逐步弥补这些短板。学习就是一个发现问题与解决问题的过程,只要掌握了 OSSIM 的体系结构和运行原理,很多问题都可以迎刃而解。当然前提是我们已经具备了下面所列的这些扎实的基本功:● 有一定的英文水平;● 了解网络原理尤其是TCP/IP的内容;● Debian Linux系统和网络管理知识;● MySQL数据库的基本操作;● 服务器、网络设备运维基础;● 系统攻击与应急响应相关的技能;● IDS部署和SIEM/SOC应用基础。

要成为OSSIM系统运维人员,面对问题时头脑中必须有一个清晰、明确的故障解决思路,一般有以下5个步骤。● 从报错提示挖掘幕后问题:OSSIM在Web UI中报错,主要内容

都显示在屏幕上,只要看懂错误提示(前提是能读懂英文),就

基本能猜出发生问题的几种可能性。● 查看日志文件:Web 前台报错,在后台日志会有详细的错误日

志。系统日志在文件/var/log中,OSSIM日志在/var/log/ossim或/

var/log/alienvault/中,结合两个目录下的日志就有可能发现问

题。● 定位问题:这个过程相对复杂,经过Web里的提示和挖掘的日志

就能基本推测出现问题的几种途径。● 解决问题:抓住最有可能的途径进行排除,最后就能解决真正的

问题。● 不要恋战:有些人特别执着,有着不解决问题誓不罢休的架势。

遇到一些OSSIM故障问题,若在尝试各种思路后依然无法得到

自己想要的结果,这时就不要再恋战了,而是跳过这个问题,继

续前进。通过休息等方式来疏解一下心中的情绪,没准在过几天

的实验结果中会联想到实验失败的教训,进而激发出新的灵感来

解决以前的问题。

以上只是解决问题的基本步骤,实验失败是一段充满教育性的成长经历,没有失败积累经验,何谈成功呢?失败次数越多,你对它的理解就越深,离突破性成功就越近。但很多人却不这么看,他们在安装配置OSSIM的过程中,接连遇到一两个失败的经历就对这款工具没什么兴趣以至于最后放弃。

在安装阶段遇到的典型问题有下面这些。● 无法找到硬盘或者网卡驱动。这主要是硬件驱动问题,初学者只

要选择VMware虚拟机进行安装就能解决。● 安装过程停滞。在OpenVAS解包安装时,界面上出现卡死现象(其实是后台更新脚本时间比较长,在安装界面表现为停滞状

态)。很多人在这个环节直接将机器重启,认为自己的操作或者

安装文件出了问题,其实只要耐心等待20分钟就能过去。● 系统引导应是短暂的,但有时候却长期停留在引导界面。其实这

是假象,只要在控制台上按下Ctrl+Alt+F3组合键就会出现命令行

登录界面。● 安装完成,经过长时间的系统引导后,发现无法登录WebUI。● 登录Web UI后设置的admin密码不符合系统的复杂度要求,其实

采用8位字母数字的组合就能快速解决这个问题。

除此之外,还有路由不通、图形无法显示、抓不到包、采集不到日志等许多故障。无论你是新手还是专家,只要坚持学习OSSIM,就会不断遇到各种问题。老问题解决了,换个环境,新问题还会不断发生。如果都能逐一化解,那么你的业务能力和分析问题、解决问题的能力会逐步增强。学习过程中的提问技巧

在系统出现问题时,大家通常会上网寻找答案,比如通过QQ群、百度、谷歌或者AlienVault社区、Blog等方式。在这些地方,他们往往将自己的报错信息粘到网上,便坐等答案出现(其实“坐等”“跪求”都无济于事)。

在专家眼里,是否对你提出的技术问题进行解答,很大程度上取决于提问的方式与此问题的难度。一些读者在提问前不深入思考,也不做功课,而是随便提出问题,想利用守株待兔的方式轻易获取问题的答案,这样能取得真经吗?不经历风雨又怎能见到彩虹!

从另一个方面看,专家会觉得你自己不愿意付出,在浪费他们的时间,因此你自然也不会得到想要的结果。专家最喜欢那些真正对问题有兴趣并愿意主动参与解决问题的人,而且只有提出有技术含量的问题,他才会花时间为你回答问题。提问前的准备工作

作为提问者,必须表现出解决此问题的积极态度,应该提前做些功课,举例如下。● 善于利用搜索引擎在网络中搜索。在相关技术论坛发帖时要注意,

不要在面向高级技术的论坛上发布初级的技术问题,反之亦然。

发帖时不要在同一论坛反复发布同一问题,以免被管理员认定为“灌水”。● OSSIM帮助系统比较完善,如果善用帮助系统,那么可以解决

大部分参数的使用问题。● 自己检查,反复做实验。● 尝试阅读OSSIM源代码。问题描述技巧

在描述问题时,请遵循以下技巧。● 描述症状时不做猜测:明确表达问题的原始状态。● 按时间顺序描述问题症状:解决问题最有效的线索就是故障出现

之前发生的情况。所以,应准确地记录计算机和软件在崩溃前的

情况。在使用命令行处理的情况下,对话日志的记录会非常有帮

助。如果崩溃的程序有诊断选项,就试着选择能生成排错日志的

选项。● 大段问题的处理:如果你的问题记录很长(如超过3段),那么

在开头简述问题,然后按时间先后详细描述过程也许更有用。附件格式及注意事项

有些读者在提问时,喜欢贴一堆日志或者几张图然后发问,前因后果都不讲清楚,就想着获得答案。提问都懒得说清楚,专家也懒得回复。所以,请稍微花一些时间组织语言,把问题说清楚。注意体现文字的准确性和你思考问题的积极性。

最好把问题连同故障截图(提供完整截图)作为附件发给专家,建议使用标准的文件格式发送,以下是参考格式。● 使用纯文本或者PDF格式,也可以使用doc、RTF格式。● 发送邮件时如有多个附件,压缩打包后检查附件内容是否能正常

打开。● 发送原始数据,并保持内容一致,例如截屏或者屏幕录像。● 如果用Windows操作系统发送电子邮件,则关闭“引用”功能,

以免在邮件中出现乱码。致谢

首先感谢我的父母多年来的养育之恩;其次感谢在我各个求学阶段给予帮助和支持的老师;最后感谢我的妻子,正因为有了她的精心照顾,我才能全身心地投入到图书创作中。勘误和支持

由于作者水平有限,书中难免会出现错误和不准确的地方,恳请读者批评指正。如果您有更多宝贵意见,欢迎给我发邮件或者通过我的微信公众号进行反馈。本书的勘误也会通过公众号进行发布。请读者扫描下面的二维码进行关注。2019年7月    资源与支持

本书由异步社区出品,社区(https://www.epubit.com/)为您提供相关资源和后续服务。配套资源

本书提供如下资源:● 本书涉及的部分重要软件。

要获得以上配套资源,请在异步社区本书页面中点击,跳转到下载界面,按提示进行操作即可。注意:为保证购书读者的权益,该操作会给出相关提示,要求输入提取码进行验证。

如果您是教师,希望获得教学配套资源,请在社区本书页面中直接联系本书的责任编辑。提交勘误

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,点击“提交勘误”,输入勘误信息,点击“提交”按钮即可。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。与我们联系

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区在线提交投稿(直接访问www.epubit.com/selfpublish/submission即可)。

如果您是学校、培训机构或企业,想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接发邮件给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。关于异步社区和异步图书“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT技术图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT技术图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近30年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、AI、测试、前端、网络技术等。异步社区微信服务号第1章 入侵检测Snort与Suricata

关键术语● Snort● Suricata● 预处理器● 嗅探器● 协议类型● 载荷● 规则库● IP碎片● Priority● Reference Type● DARPA 2000Q001  Snort检测规则存储在何处?如果触发规则Snort将会产生几种动作类型?

Snort规则为文本格式,存储在/etc/snort/rules中,如触发规则,Snort会有5种动作类型。● pass:忽略当前的包,后续捕获的包将被继续分析。● alert:按照已配置的格式记录进行报警。alert是常用的动作。● dynamic:它保持为一种潜伏状态,直到activate类型的规则将其

触发,之后它将记录数据包。● log:按照已配置的格式记录数据包。● activate:当规则触发时产生报警,并启动相关dynamic类型规则。

在检测复杂入侵攻击时会经常用到该动作。Q002  Snort 2.9版本中主要有哪些预处理插件,各有什么功能?

在OSSIM 4.1中HIDS使用了Snort 2.9.3版本,在配置文件/etc/snort/snort.conf中Snort提供了14种预处理插件,下面介绍7种常用预处理插件的功能。● Frag 3:该预处理插件能检测出与IP包分段有关的攻击,它是

Snort应对IP分段攻击最有效的武器。● Stream 5:该预处理插件可维持TCP流的状态,能检测某些信息

收集类型的攻击。Stream 5预处理插件使Snort具备流重组和状

态分析的能力,能够跟踪TCP和UDP会话。它给用户提供超过

256个TCP同步连接,最大能够处理1 048 576个TCP同步连接。

Stream 5还可以检测和处理在数据覆盖、TCP时间戳、FIN和

RESET序列号等方面存在的异常。● ARP Spoof:它是检测ARP的预处理程序。目前涉及ARP的攻击

种类繁多,它们以ARP欺骗为基础,通过构造特殊ARP请求和应

答包来达到目的。ARP Spoof预处理不但能检测此类攻击和ARP

欺骗试探,而且能检测到ARP高速缓存重写攻击。它的配置选项

为host IP address host MAC address,参数配置在snort.conf的第

400行。● HTTP Inspect:该插件用于解析HTTP报文,能发现一些针对

HTTP的攻击。HTTP Inspect一次仅能检测一个报文,而不能将

HTTP会话中不同报文关联起来进行检测。● sfPortscan:该模块可用来应对侦查踩点(reconnaissance)阶

段的扫描行为。因为在攻击发起之初,攻击者对目标网络并不了

解,所以为了得到目标网络的主机信息,它往往会使用扫描工具

发起扫描,以获得目标主机的回应,而sfPortscan可发现这种扫

描。● SMTP:检测SMTP流量,并对数据内容进行规范化。● FTP/Telnet:可以对Telnet或FTP流中嵌入的二进制控制代码进

行解码。黑客在试探过程中会将控制代码插入流量中来躲避

Snort检测。Q003  如何利用Scapy测试Snort规则?

Scapy是一个强大的交互式数据包处理程序,它不但能够构造或者解码网络协议数据包,还能够发送、捕捉、匹配请求和回复包等。Scapy可以处理端口扫描、路由跟踪、探测或网络发现(类似于hping、NMAP、arpspoof、arping、p0f的功能)。

Scapy有大部分网络协议的构造函数。Scapy可以根据函数构造一个或多个数据包。

看这样一个实例。在OSSIM中打开文件/etc/snort/rules/rpc.rules,找到第36行内容,如图1-1所示。图1-1 Snort规则

下面分析触发规则。sid=1923的规则由3个content选项构成,在图1-1中标记为1、2、3。由于使用了UDP,所以不需要TCP三次握手和四次断开。● 第一个content选项content:“|00 01 86 A0|”;depth:4:offset:12;

表示Snort会从数据区载荷前12字节后的4字节中开始匹配content

选项内容。● 第二个content选项content:“|00 00 00 05|”;within:4:distance:4;

表示Snort会从上一个content选项匹配成功的串尾跳过4字节后开

始匹配4字节。● 第三个content选项content“|00 00 00 00|”;depth:4;offset:4;表

示Snort会从数据区荷前4字节后的4字节开始匹配content选项内

容。

理解了content的含义之后,现在针对UDP进行测试,步骤如下。

步骤1.安装Scapy。#apt-get update#apt-get install scapy

步骤2.构造和发送数据包。

以IP类对象为例构造一个数据包,定义为UDP类对象。操作过程如图1-2所示。图1-2 使用Scapy构造和发送数据包

该实例涉及两个对象:IP对象和UDP对象,其中UDP为IP的载荷。测试完成后按Ctrl+D组合键退出程序。Q004  Snort有几种工作模式,各有什么特点?

Snort有3种工作模式,分别为嗅探器模式、分组数据包记录模式与网络入侵检测模式。● 嗅探器模式。

Snort使用Libpcap包捕获库。在该模式下,Snort使用网络接口的混杂模式读取并解析数据包。该模式使用的命令如下所示。localhost:~# snort -vRunning in packet dump mode --== Initializing Snort ==--Initializing Output Plugins!pcap DAQ configured to passive.Acquiring network traffic from "eth0".Decoding Ethernet --== Initialization Complete ==-- ,,_ -*> Snort! <*- o" )~ Version 2.9.3.1 IPv6 GRE (Build 40) '''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team Copyright (C) 1998-2012 Sourcefire, Inc., et al. Using libpcap version 1.1.1 Using PCRE version: 8.02 2010-03-19 Using ZLIB version: 1.2.3.4Commencing packet processing (pid=5053)

注意,这里的参数是小写的字母v,大写字母V用来显示Snort版本。以上只显示了TCP/IP网络数据包头信息,如果想查看应用层数据信息,则需要输入以下命令。#snort –vd

此命令不会将日志记录到/var/log/snort/目录中。● 分组数据包记录模式。

Snort还可以提取部分感兴趣的数据,例如输入如下命令只读取有关ICMP包的数据:#snort –dvr snort.log.140493321 icmp

输入如下命令只读取有关TCP包的数据:#snort –dvr snort.log.140493321 tcp

如果只记录某个网段的数据,操作命令如下(注意,当前有log目录):alienvault:~# snort -vde -l ./log -h 10.32.14.0/24

该命令的部分输出如下:Running in packet logging mode --== Initializing Snort ==--Initializing Output Plugins!Log directory = ./log //日志存储路径pcap DAQ configured to passive.Acquiring network traffic from "eth0". //从eth0网卡获取网络流量Decoding Ethernet --== Initialization Complete ==-- ,,_ -*> Snort! <*- o" )~ Version 2.9.3.1 IPv6 GRE (Build 40) '''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team Copyright (C) 1998-2012 Sourcefire, Inc., et al. Using libpcap version 1.1.1 Using PCRE version: 8.02 2010-03-19 Using ZLIB version: 1.2.3.4Commencing packet processing (pid=4569) //开始数据包处理进程^C*** Caught Int-Signal=======================================================================Run time for packet processing was 5.193675 seconds //分析数据包的时间开销Snort processed 7 packets.Snort ran for 0 days 0 hours 0 minutes 5 seconds Pkts/sec: 1 //接收数据包的平均速率(单位为包/秒)=======================================================================Packet I/O Totals: //网络数据包输入/输出总计 Received: 7 //已接收数量 Analyzed: 7 (100.000%) //已分析数量 Dropped: 0 ( 0.000%) Filtered: 0 ( 0.000%)Outstanding: 0 ( 0.000%) Injected: 0=======================================================================Breakdown by protocol (includes rebuilt packets): //按协议进行分类(包括重建的数据包) Eth: 7 (100.000%) VLAN: 0 ( 0.000%) IP4: 4 ( 57.143%) Frag: 0 ( 0.000%) ICMP: 0 ( 0.000%) UDP: 0 ( 0.000%) TCP: 4 ( 57.143%) IP6: 0 ( 0.000%) IP6 Ext: 0 ( 0.000%) IP6 Opts: 0 ( 0.000%) Frag6: 0 ( 0.000%) ICMP6: 0 ( 0.000%) UDP6: 0 ( 0.000%) TCP6: 0 ( 0.000%) Teredo: 0 ( 0.000%) ICMP-IP: 0 ( 0.000%) EAPOL: 0 ( 0.000%) IP4/IP4: 0 ( 0.000%) IP4/IP6: 0 ( 0.000%) IP6/IP4: 0 ( 0.000%) IP6/IP6: 0 ( 0.000%) GRE: 0 ( 0.000%) GRE Eth: 0 ( 0.000%) GRE VLAN: 0 ( 0.000%) GRE IP4: 0 ( 0.000%) GRE IP6: 0 ( 0.000%)GRE IP6 Ext: 0 ( 0.000%) GRE PPTP: 0 ( 0.000%) GRE ARP: 0 ( 0.000%) GRE IPX: 0 ( 0.000%) GRE Loop: 0 ( 0.000%) MPLS: 0 ( 0.000%) ARP: 3 ( 42.857%) IPX: 0 ( 0.000%) Eth Loop: 0 ( 0.000%) Eth Disc: 0 ( 0.000%) IP4 Disc: 0 ( 0.000%) IP6 Disc: 0 ( 0.000%) TCP Disc: 0 ( 0.000%) UDP Disc: 0 ( 0.000%) ICMP Disc: 0 ( 0.000%)All Discard: 0 ( 0.000%) Other: 0 ( 0.000%)Bad Chk Sum: 2 ( 28.571%) Bad TTL: 0 ( 0.000%) S5 G 1: 0 ( 0.000%) S5 G 2: 0 ( 0.000%) Total: 7========================================================================Snort exiting

下面继续讲解更复杂的实验,实验环境为OSSIM 4。在命令行上启动Snort:#snort –l /var/log/snort/ -c /etc/snort/snort.conf

按Ctrl+C组合键退出程序,收到的信息如下所示:[ Port Based Pattern Matching Memory ]+- [ Aho-Corasick Summary ] -------------------------------------| Storage Format : Full-Q | Finite Automaton : DFA| Alphabet Size : 256 Chars| Sizeof State : Variable (1,2,4 bytes)| Instances : 144| 1 byte states : 132| 2 byte states : 12| 4 byte states : 0| Characters : 67366| States : 41455| Transitions : 1910758| State Density : 18.0%| Patterns : 4676| Match States : 4776| Memory (MB) : 21.56| Patterns : 0.49| Match Lists : 1.01| DFA| 1 byte states : 0.96| 2 byte states : 18.82| 4 byte states : 0.00+----------------------------------------------------------------[ Number of patterns truncated to 20 bytes: 1332 ]pcap DAQ configured to passive.Acquiring network traffic from "eth0".Reload thread starting...Reload thread started, thread 0x7fd8f6273700 (5649)Decoding Ethernet --== Initialization Complete ==-- ,,_ -*> Snort! <*- o" )~ Version 2.9.3.1 IPv6 GRE (Build 40) '''' By Martin Roesch & The Snort Team: http://www.snort.org/snort/snort-team Copyright (C) 1998-2012 Sourcefire, Inc., et al. Using libpcap version 1.1.1 Using PCRE version: 8.02 2010-03-19 Using ZLIB version: 1.2.3.4 Rules Engine: SF_SNORT_DETECTION_ENGINE Version 1.16 Preprocessor Object: SF_GTP (IPV6) Version 1.1 dcerpc2 Preprocessor Statistics Total sessions: 0========================================================================SIP Preprocessor Statistics Total sessions: 0========================================================================Snort exiting

警报数即为在日志中看到的记录数,两者一致,在另一个控制台查看日志详情,如下所示:#tail –f /var/log/auth.logApr 5 06:24:04 alienvault snort[4133]: [1:2013504:3] ET POLICY GNU/Linux APT User- Agent Outbound likely related to package management [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} 192.168.11.201:34939 -> 193.62.202.28:80Apr 5 06:24:04 alienvault snort[4133]: [1:2013504:3] ET POLICY GNU/Linux APT User- Agent Outbound likely related to package management [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} 192.168.11.201:34939 -> 193.62.202.28:80Apr 5 06:24:04 alienvault snort[4133]: [1:2013504:3] ET POLICY GNU/Linux APT User- Agent Outbound likely related to package management [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} 192.168.11.201:34331 -> 52.28.229.156:80Apr 5 06:24:04 alienvault snort[4133]: [1:2013504:3] ET POLICY GNU/Linux APT User- Agent Outbound likely related to package management [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} 192.168.11.201:34331 -> 52.28.229.156:80Apr 5 06:24:04 alienvault snort[4133]: [1:2013504:3] ET POLICY GNU/Linux APT User- Agent Outbound likely related to package management [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} 192.168.11.201:34331 -> 52.28.229.156:80Apr 5 06:24:04 alienvault snort[4133]: [1:2013504:3] ET POLICY GNU/Linux APT User- Agent Outbound likely related to package management [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} 192.168.11.201:34939 -> 193.62.202.28:80Apr 5 06:24:05 alienvault snort[4133]: [1:2013504:3] ET POLICY GNU/Linux APT User- Agent Outbound likely related to package management [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} 192.168.11.201:34939 -> 193.62.202.28:80Apr 5 06:24:05 alienvault snort[4133]: [1:2013504:3] ET POLICY GNU/Linux APT User- Agent Outbound likely related to package management [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} 192.168.11.201:34331 -> 52.28.229.156:80Apr 5 06:24:05 alienvault snort[4133]: [1:2013504:3] ET POLICY GNU/Linux APT User- Agent Outbound likely related to package management [Classification: Not Suspicious Traffic] [Priority: 3] {TCP} 192.168.11.201:34331 -> 52.28.229.156:80

此时,我们还可以在SIEM控制台中看到经归一化处理的Snort事件,如图1-3所示。图1-3 SIEM控制台中显示的Snort事件● 网络入侵检测模式。

网络入侵检测模式集成了嗅探器模式和日志模式(该模式下会把抓取的数据包存放到指定目录中),并且需要载入Snort规则库才能正常工作。操作命令如下:#snort –vde –l ./log –h 10.32.14.0/24 –c /etc/snort/snort.conf

注意,当前目录下已有log目录。如果指定了“-l ./log”参数,则系统会将日志中原来的/var/log/snort/转储到当前目录的log目录下。Q005  举例说明Snort采用什么规则检测可疑载荷?

Snort不仅检测IP包头的数据,而且还对数据包进行深度检测。例如在OSSIM系统中,打开文件/etc/snort/rules/deleted.rules,查看第5807行的规则,如图1-4所示。图1-4 Snort规则

该规则表示,如果一个包头的载荷中含有“I|00|P|00|C|00 24 00 00 00|”,则表明从外部网络发送给运行SMB服务的计算机的TCP流量触发了Snort报警。在检测中发现,“sid=538”所占比例较大,这种载荷可能会引起一些旧版本的Windows系统发生缓冲区溢出,最终导致机器崩溃。Q006  Snort如何检测Chargen/Echo DoS攻击?

DOS攻击类型有很多,这里以Chargen/Echo DoS攻击为例加以说明。Chargen服务端口为UDP 19,Echo为UDP 7。当UDP Chargen服务器收到一个数据包后,就会发回一个确认数据包。若它发现与客户端连接存在,则会不断发送数据包,这种往返发送的数据包就会被放大,以致占满整个网络带宽。在这里攻击者伪造了数据包,在两台开放Chargen/Echo的服务器上互相发送流量,从而造成资源耗尽,如图1-5所示。图1-5 DoS攻击的例子

在OSSIM中打开文件/etc/snort/rules/dos.rules,第一行内容如下:alert udp any 19 <> any 7 (msg:"DOS UDP echo+chargen bomb"; flow:to_server; reference: cve,1999-0103; reference:cve,1999-0635; classtype:attempted-dos; sid:271; rev:9;)

该特征检测的DoS条件是Chargen/Echo服务无限循环。还有一些DoS攻击会出现异常的数据输入,这些输入的内容会使服务器瘫痪。当然这是比较老的漏洞,新的操作系统不存在这种问题。Q007  如何使用Snort的Packet logger模式将捕获到的信息记录到磁盘?

例如,记录到磁盘/var/log/newdir/目录的操作命令如下:新建/var/log/newdir/目录文件#snort –ved –l _/var/log/newdir/Snort默认将日志记录到/var/log/snort/, 使用“-l”参数可改变路径。

此时Snort会把数据链路层、TCP/IP报头及应用层信息写入当前目录下的snort.log.140493321文件中,而且文件格式为二进制。

注意,“-l”参数是小写字母l。

如果想查看所记录的日志,就得使用“r”参数,操作实例如下:#snort –dvr snort.log.140493321Q008  在同一个网段内如何部署多个IDS?

有些特殊场合会同时使用多套IDS系统,在安装OSSIM的同时如果还要使用HP-Arcsight分析网络数据包,这时传统端口镜像分析器(SPAN)的方法无法满足要求。

对于上面的情况,可以采用网络分流器设备(Network Tap)来解决,它是一个独立的硬件,支持千兆甚至是万兆网络环境(比如Gigamon的方案),而且它不会对已有网络设备的负载带来影响。Q009  手动编译安装Snort时,需要做哪些准备工作?

手动编译安装Snort时所需的准备工作如下所示。

步骤 1.准备软件环境。在安装前,必须在交换机上设置SPAN。中高端Cisco交换机都有SPAN功能。SPAN须为一个专用端口。以下是在虚拟机环境下的实验,须把网卡设置为混杂模式。

步骤2.安装VMware Workstations虚拟机。准备SecureCRT工具。

步骤3.到异步社区的本书页面中统一获取安装资源。

步骤4.使用镜像CentOS-6.8-x86_64-mini在虚拟机中安装操作系统。

步骤5.重启系统后设置系统IP、网关及DNS。

默认安装时,网络IP是自动获取的,需要改成静态IP地址。#ifconfig -a //查看网卡配置信息#vi/etc/sysconfig/network-scripts/ifcfg-eth0 //编辑网卡配置文件DEVICE="eth0"BOOTPROTO="dhcp"HWADDR="00:0C:29:BA:53:4E"IPV6INIT="yes"NM_CONTROLLED="yes"ONBOOT="yes"TYPE="Ethernet"UUID="685d0725-02ab-41b9-b9bf-6a52fc68c0f8"

修改为静态IP地址的方法是将BOOTPROTO="dhcp"中的"dhcp"改为"static",然后增加以下内容(内网IP配置):IPADDR=192.168.91.29NETMASK=255.255.255.0GATEWAY=192.168.91.2DNS1=192.168.91.2DNS2=8.8.8.8 //DNS地址的配置根据当地网络供应商进行添加

最后保存退出,重启网络服务。

步骤6.复制软件到指定目录。

将libdnet-1.12.tgz、daq-2.0.4.tar.gz、snort-2.9.7.0.tar.gz、snortrules-snapshot-2970.tar.gz这4个文件复制到CentOS 6.8系统/usr/local/src/目录下。

经过以上6个步骤之后,Snort安装的准备工作完成。另外,Snort安装配置路线图参见附录中的图1、图2。网络安装包名称及用途参见附录中的表1~表3。Q010  如何在Linux下编译安装Snort?

准备工作完成之后,接着开始正式安装Snort。编译安装Snort需要如下几个步骤。

步骤1.安装基本环境和依赖包。#yum install -y gcc gcc-c++ flex bison zlib* libxml2 libpcap* pcre* tcpdump git libtool curl man make

步骤2.解压Libdnet、DAQ及Snort安装包。

在服务器的安装配置过程中,大家很可能会到官网下载最新版本的源码包,但是那样就会遇到各种依赖包缺失的问题,导致无法安装成功。因为有些软件(比如Snort)要在DAQ(Data AcQuisition,数据采集器)library安装好之后才能继续安装,而只有Libdnet安装完成,才能安装DAQ。操作如下:#cd /usr/local/src#tar -zxvf libdnet-1.12.tgz#tar -zxvf daq-2.0.4.tar.gz#tar -zxvf snort-2.9.7.0.tar.gz

下面必须依次安装Libdnet、DAQ和Snort这3个包。● 安装libdnet-1.12.tgz。#cd /usr/local/src/libdnet-1.12/#./configure#make && make install● 安装DAQ。#cd daq-2.0.4#./configure#make && make install● 安装Snort 2.9(安装Snort前一定要正确安装Libdnet和DAQ)。#cd /usr/local/src/snort-2.9.7.0#./configure --enable-sourcefire#make && make install

步骤3.添加用户和组。

创建用户和组,并设置权限。在root身份下解包的文件权限都与root有关,所以要修改成Snort用户的属主和相关权限。#groupadd -g 40000 snort //新添加一个Snort组#useradd snort -u 40000 -d /var/log/snort -s /sbin/nologin -c SNORT_IDS -g snort //将Snort用户加入Snort组,并且不允许登录系统

步骤4.新建目录/var/log/snort并设置其属性。#mkdir /var/log/snort#chown –R snort:snort /var/log/snort

步骤5.配置Snort。● 新建目录/etc/snort/。#mkdir /etc/snort/● 将snortrules-snapshot-2970.tar.gz解压到/etc/snort/目录下。#cd /etc/snort# tar –zxvf /usr/local/src/snortrules-snapshot-2970.tar.gz –C .#cp /etc/snort/etc/sid-msg.map /etc/snort● 将下载的Snort压缩包解压缩后复制到/etc/snort/目录下。#cd /etc/snort/#cp /usr/local/src/snort-2.9.7.0/etc/* .● 设置当前目录下所有文件的属主。#cd /etc/snort#chown -R snort:snort *● 新建黑白名单规则文件。#touch /etc/snort/rules/white_list.rules /etc/snort/rules/black_list.rules

在/etc/snort/rules下新建white_list.rules和black_list.rules这两个文件。● 编辑配置文件snort.conf,修改以下几行的内容。#vi /etc/snort/snort.conf

试读结束[说明:试读内容隐藏了图片]

下载完整电子书


相关推荐

最新文章


© 2020 txtepub下载