suricata 源码分析_01
2022/4/10 22:13:04
本文主要是介绍suricata 源码分析_01,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
https://blog.51cto.com/leejia/2457743
Suricata简介
Suricata是一个高性能的IDS、IPS和网络安全监控的引擎。它是开源的,由一个社区经营的非营利基金会开放信息安全基金会(OISF)开发。
安装环境建议使用centos7/redhat7版本以上的操作系统,Suricata版本建议使用4.x以上,这样方便多线程,Hypersca,pfring等功能的使用。6版本的操作系统编译环境需要花时间取升级修复,不建议使用。
IDS/IPS简介
检测系统(Intrusion detection system,简称“IDS” 是一种对网络传输进行即时监视,根据预设的策略,在发现可疑传输时发出警报。
预防系统(Intrusion prevention system,简称“IPS”) 是一部能够监视网络或网络设备的网络资料传输行为的计算机网络安全设备,一般位于防火墙和网络的设备之间,能够即时的中断、调整或隔离一些不正常或是具有伤害性的网络资料传输行为。相对于IDS主能提供了中断防御功能。
Suricata主要特点
支持从nfqueue中读取流量
支持分析离线pcap文件和pcap文件方式存储流量数据
支持ipv6
支持pcap,af_packet,pfring,硬件卡抓包
多线程
支持内嵌lua脚本,以实现自定义检测和输出脚本
支持ip信用等级
支持文件还原
兼容snort规则
支持常见数据包解码:IPv4, IPv6, TCP, UDP, SCTP, ICMPv4, ICMPv6, GRE, Ethernet, PPP, PPPoE, Raw, SLL, VLAN, QINQ, MPLS, ERSPAN, VXLAN
支持常见应用层协议解码:HTTP, SSL, TLS, SMB, DCERPC, SMTP, FTP, SSH, DNS, Modbus, ENIP/CIP, DNP3, NFS, NTP, DHCP, TFTP, KRB5, IKEv2, SIP, SNMP, RDP
suricata程序入口
graph A[suricata入口函数] -->B(SuricataMain) B-->C[SCInstanceInit实例化一个suricata配置] C-->D[ParseCommandLine 命令行解析] D-->E[FinalizedRunMode 确定Suricata最后的运行模式] E-->F[StartInternalRunMode 内部模式运行] F-->G[GlobalInitPreConfig初始化全局预配置] G-->H(LoadYamlCongfig从yaml配置文件加载suriacata配置) H-->L(ConfDump转储配置到 stdout) L-->I(SetupUserMode建立用户态模式) I-->J(InitRunAs初始化用户和组 Suricata 将作为运行方式) J-->K(UtilCpuPrintSummary打印检测到的 CPU 的摘要) K-->M(ParseInterfacesList解析网卡接口列表) M-->N(PostConfLoadedSetup旨在包含加载配置后需要运行的代码) N-->S(SCDropMainThreadCaps) S-->1(CoredumpEnable) 1-->2(PreRunPostPrivsDropInit我们需要在数据包开始流动之前运行的任务) 2-->3(PostConfLoadedDetectSetup) 3-->4(SCSetStartTime加载时间) 4-->5(RunModeDispatch运行模式分发) 5-->6(SC_ATOMIC_SET更新引擎阶段/状态标志) 6-->7(PacketPoolPostRunmodes数据池) 7-->8(TmThreadContinueThreads 取消暂停所有暂停的线程) 8-->9(PostRunStartedDetectSetup设置max_pending_return_packets值) 9-->10(SuricataMainLoop suricata主循环) 10-->11(UnixSocketKillSocketThread unix杀死socket线程) 11-->12(PostRunDeinit清理/关闭主模式和unix套接字模式的代码将在 unix 插槽模式下每个 pcap运行一次) 12-->13(TmThreadKillThreads杀死剩余的线程)这篇关于suricata 源码分析_01的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-05feign默认connecttimeout和readtimeout是多少-icode9专业技术文章分享
- 2024-07-05idea控制台,日志太多,导致部分想看得日志被刷走 搜不到-icode9专业技术文章分享
- 2024-07-05The server selected protocol version Tls10 is not accepted by client preferences [TLs12]-icode9专业技术文章分享
- 2024-07-05怎么清理项目缓存-icode9专业技术文章分享
- 2024-07-04安装 Eyoucms详细图文教程-icode9专业技术文章分享
- 2024-07-04ueditor 复制文章时,图片的链接是一个下载图片地址,该如何处理?-icode9专业技术文章分享
- 2024-07-04怎样判断host有没有对wordpress有缓存呢-icode9专业技术文章分享
- 2024-07-04具有编译功能的系统make后,无法ssh连接-icode9专业技术文章分享
- 2024-07-04make后如何升级ssh-icode9专业技术文章分享
- 2024-07-03微信支付提示下单账户与支付账户不一致-icode9专业技术文章分享