Snort

Execute script on Snort alert

本小妞迷上赌 提交于 2019-11-30 15:59:32
I currently am experimenting with a Raspberry Pi. I am running Snort, which is packet detection software. In the case Snort raises an alert, I would want to execute a (Python) script. Snort is executed, on a raspberry pi as followed: sudo snort -q -A console -i eth0 -c /etc/snort/snort.conf I created a python script that, when called, controls a GPIO pin of a raspberry pi. To bring it more in context; When the raspberry pi receives a ping/ICMP packet, a red alarm light is illuminated and controlled by the same device. The snort rule currently works, and when an ICMP packet arrives an alert is

入侵检测技术---snort应用

你说的曾经没有我的故事 提交于 2019-11-30 11:32:43
防火墙可以比喻为办公室门口的警卫,用来检查进出者的身份。而入侵检测系统就像是网上的警报器,当发现入侵者时,指出入侵者的来历、他们正在做什么。入侵检测系统被视为防火墙之后的第二道安全闸门。 【实验目的】 1. 掌握 snortIDS 工作机理 2. 应用 snort 三种方式工作 3. 熟练编写 snort 规则 【实验原理】 1 . Snort IDS 概述 Snort IDS (入侵检测系统)是一个强大的网络入侵检测系统。它具有实时数据流量分析和记录 IP 网络数据包的能力,能够进行协议分析,对网络数据包内容进行搜索 / 匹配。它能够检测各种不同的攻击方式,对攻击进行实时报警。此外, Snort 是开源的入侵检测系统,并具有很好的扩展性和可移植性。 2 . Snort IDS 体系结构 Snort IDS 体系结构如图 8.1 所示。 图 8.1 SnortIDS 体系结构 如上图所示, Snort 的结构由 4 大软件模块组成,它们分别是: ( 1 )数据包嗅探模块——负责监听网络数据包,对网络进行分析; ( 2 )预处理模块——该模块用相应的插件来检查原始数据包,从中发现原始数据的“行为”,如端口扫描, IP 碎片等,数据包经过预处理后才传到检测引擎; ( 3 )检测模块——该模块是 Snort 的核心模块。当数据包从预处理器送过来后,检测引擎依据预先设置的规则检查数据包

snort 中的规则解析框架(三)

…衆ロ難τιáo~ 提交于 2019-11-30 11:32:30
简介 前面两篇文章已经对部分代码做了分析,这里从整体上总结下snort处理配置文件的流程。 http://my.oschina.net/u/572632/blog/289256 http://my.oschina.net/u/572632/blog/289421 流程分析 snort读取配置文件是为了根据配置文件初始化某些数据或使能某些结构。但同时snort的配置文件又支持包含(include)其他文件的功能,并且支持换行('\')符. 根据以上限制对照分析,配置文件的处理流程如下图: 首先初始化必要的基础结构 然后解析顶层文件 每个被解析单元是以一条规则为单位 分析规则部分特征来触发不同的解析方式 如果被触发的include方式则递归解析被包含的子文件 根据以上发现snort解析配置文件最重要的思想就是根据解析出来的数据选择下一步细化处理的插件,这样的处理方式相当灵活. 结构分析 将待动态加载配置的模块看作数据初始化管理中的单元,存放待获取配置文件完成初始化接口的集合看作插件管理,将文件顶层词法分析看作文件解析管理。 待初始化的模块将自己的接口提供给插件管理注册 插件管理整理各个模块的初始化接口,并自己再注册部分必要的规则分析接口 文件解析管理负责不断读取配置文件,并以规则条目为顶层单元触发顶层插件 不断的分析该规则特征,并在提取到满足触发条件的特征后触发相应的插件.

snort 中的规则解析框架(二)

六眼飞鱼酱① 提交于 2019-11-30 11:32:15
简介 snort中配置文件的处理是一个很重要的部分,因为其不仅是数据的读取过程更是snort初始结构的搭建过程 前面已经对snort解析单个文件做了代码分析. 链接:http://my.oschina.net/u/572632/blog/289256 这里从配置文件读取的总入口开始结合前面的分析做更多的记录,目地是整理出现在snort的整理框架图。以2.9.6.0 Ver 为例 代码分析 /**************************************************************************** * Function: ParseSnortConf() * * Read the rules file a line at a time and send each rule to the rule parser * This is the first pass of the configuration file. It parses everything * except the rules. * * Arguments: None * * Returns: * SnortConfig * * An initialized and configured snort configuration struct. * This struct

snort配置文件中的PORT解析

柔情痞子 提交于 2019-11-30 11:32:01
简介 snort读取配置文件时每条规则包括规则头和规则选项,而规则选项中的一个重要部分就是端口。snort中对端口的解析和对IP的解析思想相同但编码却有较大的差别。 IP解析时利用拷贝副本的方式避免了很多二次解析,而端口解析却没这样的功能。但端口解析使用了代理者模式,使上层接口不用直接和字符串交互,避免了上层接口还需要为解释端口的规则管理解析字串的脚手架。 流程说明 规则解释器就是snort中管理对配置文件解析的部分,当其解析到规则端口部分是就提取该字段交给端口解析管理器. 端口解析管理对非TCP,UDP的端口会按照默认处理即出这两个协议外的规则中的端口指定无效。 如果是TCP,UDP规则中的端口则交给端口解释代理解释构建端口对象 所以生成的端口对象都将存放在端口对象管理中 解释器获得的端口对象信息是指向端口对象管理中对应对象的指针。 总结 对比读取IP的处理:http://my.oschina.net/u/572632/blog/289775 总结了以下几点: 使用代理层次更分明 但对比IP的处理会出现重复解释 端口对象存放与管理方式和IP类似,但并未将取反端口集合和非取反集合分开存放,而是放在一起使用对象中的标志来区分。 来源: oschina 链接: https://my.oschina.net/u/572632/blog/289803

Building Intrusion Detection System but from where to begin

浪尽此生 提交于 2019-11-30 10:56:33
I have searched a lot on Intrusion Detection system but now I am confused as now from where should I start. I dont know whether any open source reusable codes exists but I want to make Intrusion Detection and Prevention System with Neural Network. From the Developer point of view my question is from where should I begin with. Kindly guide me on this topic. Also I am presently working and analysing KDD CUP 1999 Dataset. And in search for more such data sets. Kindly tell me which will be the best algorithms for building Intrusion Detection System. Thanks to whomsoever reply or read.. Kindly

How to view snort log files

放肆的年华 提交于 2019-11-30 02:47:04
问题 I have been working with snort-IDS. I have got some log files at /var/log/snort. The files are of type snort.log.xxxx. How do i view this file??? 回答1: Actually, you can read them in the commandline or terminal like snort -r xx.log.xxx$ .For details, referring to the manual of snort. 回答2: I will reopen this question trying to merge the others answers, since I think that they are not properly explained. Guess snort.log.xxx file type Snort could have output you two kind of output file format

Execute script on Snort alert

瘦欲@ 提交于 2019-11-29 22:56:45
问题 I currently am experimenting with a Raspberry Pi. I am running Snort, which is packet detection software. In the case Snort raises an alert, I would want to execute a (Python) script. Snort is executed, on a raspberry pi as followed: sudo snort -q -A console -i eth0 -c /etc/snort/snort.conf I created a python script that, when called, controls a GPIO pin of a raspberry pi. To bring it more in context; When the raspberry pi receives a ping/ICMP packet, a red alarm light is illuminated and

Building Intrusion Detection System but from where to begin

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-29 15:49:57
问题 I have searched a lot on Intrusion Detection system but now I am confused as now from where should I start. I dont know whether any open source reusable codes exists but I want to make Intrusion Detection and Prevention System with Neural Network. From the Developer point of view my question is from where should I begin with. Kindly guide me on this topic. Also I am presently working and analysing KDD CUP 1999 Dataset. And in search for more such data sets. Kindly tell me which will be the

snort配置文件中的IP解析

谁说胖子不能爱 提交于 2019-11-29 09:19:36
简介 结合前面对snort中解析IP的细节处理,从整体上分析snort读取规则是如何管理解析到的IP,以及是如何通过直接复制副本来提高效率的. 预备资源 前面对处理细节的分析 http://my.oschina.net/u/572632/blog/289745 snort 规则中的IP介绍 流程图 部分代码片段结合流程图说明 /* Used by the "list" mode. A doubly linked list of sfip_t objects. */ typedef struct _ip_node { /*构成一个链代表一个IP集合,存放在sfip_var_t中的head或neg_head中*/ sfip_t *ip; #define ip_addr ip; /* To ease porting Snort */ struct _ip_node *next; int flags; // XXX int addr_flags; /* Flags used exlusively by Snort */ /* Keeping these variables seperate keeps * this from stepping on Snort's toes. */ /* Should merge them later */ } sfip_node_t; /* An IP