ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Suricata新增POP3协议解析(未完待续)

2022-04-22 14:31:05  阅读:243  来源: 互联网

标签:未完待续 layer src 协议 Suricata POP3 添加 pop3 app


1. 生成新协议的解析模板

例:创建pop3协议的解析模板

scripts文件夹下 setup-app-layer_原版.py 文件适用于python3,setup-app-layer.py 适用于python2

cd suricata-6.0.3
python scripts/setup-app-layer.py Pop3

执行脚本后新增文件:

src/app-layer-pop3.c pop3协议的应用层检测器和解析器
src/app-layer-pop3.h
src/output-json-arp.c pop3协议的JSON应用层事务记录器
src/output-json-arp.h

修改的文件:

src/Makefile.am 添加解析器和输出模块源码文件
suricata.yaml.in 添加协议解析配置,添加输出输出配置
src/suricata-common.h 添加输出模块号枚举
src/output.c 添加输出模块注册函数
src/util-profiling.c 新增输出模块号与其等价字符串映射
src/app-layer-protos.h 添加协议号枚举
src/app-layer-protos.c 新增协议名与协议号映射
src/app-layer-detect-proto.c 新增协议名与协议号映射
src/app-layer-parser.c 添加解析器注册函数

问题记录

img

解决步骤:

  1. autoscan产生一个configure.in的原型,执行autoscan后会产生一个configure.scan的文件,可以用它作为configure.in的蓝本

  2. 执行aclocalautoconf,分别会产生aclocal.m4configure两个文件

  3. 然后执行automake --add-missing

  4. 最后执行./configure等继续其他步骤即可

2. 修改协议解析器的实现

协议识别

(1)字符串检索

添加 Pop3RegisterPatternsForProtocolDetection 函数为Pop3协议注册关键字"USER","PASS"和"APOP",在注册解析器时(RegisterPop3Parsers)调用 ,关键字注册函数 AppLayerProtoDetectPMRegisterPatternCI

(2)端口检测

修改 AppLayerProtoDetectPPRegister 端口注册函数,默认端口改为110

/* The default port to probe for echo traffic if not provided in the
 * configuration file. */
#define POP3_DEFAULT_PORT "110"

/* The minimum size for a message. For some protocols this might
 * be the size of a header. */
#define POP3_MIN_FRAME_LEN 3

还可在配置文件中添加多个端口,如下(需要注意的是,每一项必须严格用空格对齐,端口之前用空格间隔)

img

协议解析


3. 修改输出模块的实现

标签:未完待续,layer,src,协议,Suricata,POP3,添加,pop3,app
来源: https://www.cnblogs.com/cetacean/p/16178742.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有