
网络入侵检测系统
文章平均质量分 74
于顾而言
https://www.zhihu.com/people/whisper-of-the-Koo
深信服高级安全研发工程师
SASE/ZTNA 领域5Years+
云原生,网络,IPS, KV,Url Filter,Threat Info,DPDK,零信任都懂一点
展开
-
网络入侵检测系统之Suricata(十六)--类suricata/snort规则自动维护工具
之前一直想写一个工具用来维护一套类suricata/snort规则,需要做到脚本运行后自动可以爬取预先设置的网站规则,然后会将规则进行一些处理并存为数据库,接着可以进行相关的统计,比如今天新增多少规则或者哪些规则已经废弃了。原创 2024-03-08 09:58:54 · 565 阅读 · 0 评论 -
网络入侵检测系统之Suricata(十五)--IPOnly/Radix Tree详解
IpOnly规则比较特殊,一般认为命中源和目的ip地址,再校验以下其他头部信息,就可以认为该报文 可以命中这条规则。Radix Tree本质是一个二叉树,由内部节点和外部节点,内部节点用于指示需要进行bit test的位置,并根据测试结果决定查找方向,外部节点则用于存储键值。Suricata具体实现在IPOnlyPrepare中,它分别建立了4个Radix Tree,代表源ipv4/6,目的ipv4/6。,路由表查找本质就是对目的ip进行 最长掩码匹配,而索引到路由表中的下一跳。原创 2024-03-08 09:58:01 · 1226 阅读 · 0 评论 -
网络入侵检测系统之Suricata(十四)--匹配流程
其实规则的匹配流程和加载流程是强相关的,你如何组织规则那么就会采用该种数据结构去匹配,例如你用radix tree组织海量ip规则,那么匹配的时候也是采用bit test确定前缀节点,然后逐一左右子树查询,Suricata也是如此,让我给大家简单介绍一下匹配流程。运行纯ip规则引擎匹配,由于是纯ip规则,所以只要目的ip和源ip可以匹配,我们就可以认为这条纯ip规则是可以命中的,我们把命中的规则sid加入到alert array中作为输出。原创 2024-03-08 09:57:07 · 738 阅读 · 0 评论 -
网络入侵检测系统之Suricata(十三)--网络安全威胁及攻击手段总览
也算是一个概览原创 2024-03-08 09:56:28 · 339 阅读 · 0 评论 -
网络入侵检测系统之Suricata(十二)--TCP重组优化
令常数 T1、TN 表示两个超时阈值,T1原创 2024-03-08 09:55:57 · 878 阅读 · 0 评论 -
网络入侵检测系统之Suricata(十一)--TCP重组实现详解
TCP重组一直是入侵检测系统中最为重要也是最难的一部分,它涉及到全流量的缓存,因此存储消耗十分巨大,据统计100万的会话就要产生1G~10G的内存缓存,因此设计一套TCP重组优化的算法十分必要,目前优化的办法有两种,一种是尽量不去TCP重组减少缓存包括红绿名单,配置,抽样算法,另一种就是将重组下沉到硬件例如FPGA,减少以软件方式缓存。原创 2024-03-08 09:55:06 · 1399 阅读 · 0 评论 -
网络入侵检测系统之Suricata(十)--ICMP实现详解
【代码】网络入侵检测系统之Suricata(十)--ICMP实现详解。原创 2024-03-08 09:54:17 · 1044 阅读 · 0 评论 -
网络入侵检测系统之Suricata(九)--Storage实现详解
数据区的真实创建需要用到下面的结构体Host,我理解它是一种钥匙,上电时会预分配一些host对象,创建host对象时,并非只分配sizeof(host),而是多分配出若干个void *,这个数量和注册storage数据区一致。后面这个host通过偏移sizeof(host)+id,这样就能找到各个数据区了,每个host都会分配自己的数据区,彼此不干扰。Host对象负责数据区的读写,它可以调用注册的malloc分配size的字节数,也可以set为其他的数据区指针。原创 2024-03-08 09:53:25 · 215 阅读 · 0 评论 -
网络入侵检测系统之Suricata(八)--Option实现详解
【代码】网络入侵检测系统之Suricata(八)--Option实现详解。原创 2024-03-08 09:52:36 · 435 阅读 · 0 评论 -
网络入侵检测系统之Suricata(七)--DDOS流量检测模型
大量变源变端口的UDP Flood会导致依靠会话转发的网络设备,性能降低甚至会话耗尽,从而导致网络瘫痪。针对 Web 服务在第七层协议发起的攻击,正常的有效的数据包 不断发出针对不同资源和页面的 HTTP 请求,并尽可能请求无法被缓存的资源(DB查询等),这样就极大加重了服务器的计算和IO资源,从而导致瘫痪。攻击者截取IP数据包后,把偏移字段设置成不正确的值,接收端在收到这些分拆的数据包后,就不能按数据包中的偏移字段值正确组合出被拆分的数据包,这样,接收端会不停的尝试,以至操作系统因资源耗尽而崩溃。原创 2024-03-08 09:51:54 · 1461 阅读 · 0 评论 -
网络入侵检测系统之Suricata(六)--规则加载模块代码详解
Suricata规则加载流程图原创 2024-03-08 09:50:02 · 357 阅读 · 0 评论 -
网络入侵检测系统之Suricata(五)--Worker Model线程调度详解详解
这里的实现可以类比suricata PCAP_FILE_DEV 模式,读取pcap文件并将其封装在Packet结构中,各个模块都靠packet结构传递,然后依次进行解码,重组,检测,解析,输出日志。我们NIDS系统雏形版本目前采用的single模式,即。原创 2024-03-08 09:49:12 · 382 阅读 · 0 评论 -
网络入侵检测系统之Suricata(四)--初始化模块代码详解
DetectEngineCtx_->sig_list + sig_cnt->排序ByAction,byFlowbits,,ByFlowvar,ByPktvar,ByHostbits,ByIPPairbit,ByPriority->runtime match structure (siggroup),siggroup的过程目前看是把之前的所有规则list通过ip,端口号和流分组到一个链表数组(sgh,并维护了一个 sigMask(规则有哪些匹配项)Suricata对“运行模式”这个概念也进行了封装。原创 2024-03-08 09:48:29 · 1231 阅读 · 0 评论 -
网络入侵检测系统之Suricata(三)--日志代码详解
Log ModuleQ1:suricata日志以什么文件格式存储?分为三类:json、log,pcap格式Q2:suricata日志都分了哪些级别?日志level分为:Emergency、Alert、Critical、Error、Warning、Notice、Info,DebugQ3:suricata日志记录哪些信息,内容以什么形式组织的?eve.jsonsuricata所有的告警,元数据,文件信息和特定协议记录都会记录在eve.json中,事件类型 分为alert、http、dns、tls,原创 2021-01-15 17:16:03 · 3708 阅读 · 0 评论 -
网络入侵检测系统之Suricata(二)
Running modeSruciata由线程和队列组成,数据包在线程间传递通过队列实现。线程由多个线程模块组成,每个线程模块实现一种功能。Suricata有多种运行模式,这些模式与抓包驱动和IDS/IPS选择相关联。抓包驱动如:pcap, pcap file,nfqueue,ipfw,dpdk或者一个特有的抓包驱动等。Suricata在启动时只能选择某个运行模式。如-i选项表示pcap, -r表示pcapfile,-q表示nfqueue等。每一种运行模式都会初始化一些threads,queues等。模原创 2021-01-07 11:08:12 · 1875 阅读 · 1 评论 -
网络入侵检测系统之Suricata(一)
What is SuricataSuricata是一个免费,开源,成熟,高性能,稳定的网络威胁检测引擎系统功能包括:实时入侵检测(IDS)、内联入侵预防(IPS)、网络安全监控(NSM)和离线pcap处理Suricata依靠强大的可扩展性的规则和特征语言过滤网络流量,并支持LUA脚本语言输出文件格式为YAML或JSON,方便与其他数据库或安全数据分析平台集成 Suricata采用社区驱动开发,有利于版本的维护和新特性的迭代FeaturesIDS / IPS完善的特征语言用于描述已知的威原创 2020-12-25 14:41:43 · 4118 阅读 · 2 评论 -
网络入侵检测系统之Snort(三)
AdvantagesSnort插件Snort采用了模块化设计,其主要特点就是利用插件,这样有几个好处,一是用户可以自主选择使用哪些功能,并支持热插拔;二是依据设计需求对Snort扩展,即根据template.c设计第三方插件目前插件按功能分成三类,数据流预处理插件,检测功能插件,输出日志信息插件;插件的管理统一采用链表指针的方式跨平台性Snort支持Linux,OpenBSD,FreeBSD,Solaris,HP-UX ,MacOS,Windows等规则语言简单发现新攻击后,可以很原创 2020-12-09 20:41:04 · 1473 阅读 · 1 评论 -
网络入侵检测系统之Snort(二)
Environment Buildingubuntu-14.04.5daq-2.0.7snort-2.9.16.1ubuntu配置sudo apt-get updatesudo apt-get dist-upgrade -ysudo apt-get install -y openssh-serversudo reboot安装snort依赖sudo apt-get install -y build-essentialsudo apt-get install -y libpcap原创 2020-12-03 16:32:16 · 606 阅读 · 0 评论 -
网络入侵检测系统之Snort(一)
作者:于顾而言版权:本文版权归作者所有转载:欢迎转载,但未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任What is SnortSnort是世界最顶尖的开源入侵检测系统Snort IDS利用一系列的规则去定义恶意网络活动,against匹配到的报文并给用户告警Snort主要用法,第一种类似TCP dump,作为网络sniffer使用,调试网络流量,第二种用于特征识别的网络入侵检测线上Snort规则一种是免费的社区规则,一种是付费的订阅(Cisco Talos)原创 2020-11-23 11:00:56 · 3724 阅读 · 0 评论