SIEM通过TCP流式传输,将多条消息输入一个事件中
SIEM streaming over TCP, getting multiple messages put into one event
调整问题:SIEM是一种管理系统和其他类型的日志消息的管理系统,并允许管理员以帮助他们更好地了解正在发生的事情的方式进行搜索,组合和报告日志。我正在与Splunk合作,并向Splunk发送Syslog(CEF)格式的消息。当我向Splunk发送两条消息时,这些消息出现在与此处相同的消息中。
< 1286> 2014年9月16日2:07:38 pm dbrlnxrv cef:0 | mycompany | mycpany | myapp | myapp | 2.0 |恶意| 6 | fileName eicar.cab dname = www.csm-testcenter.org dnamedpt = 8080 prot = http src = 10.204.82.168 spt = 49809 suser =" xauthentIcatiCatedUser =" requestMethod = get requestClientApplication ="原因= 0-1492-EICARFIE.DETECTION.DETECTION.DETECTION_WEB.WEB.RTSSS.WEB.RTTSSS request request request = HTTP://////////wwwww。csm-testcenter.org/download/archives/cab/eicar.cab allatySistype =" thrantname = eicarfile = eicarfile threeAtreason = 0-1492-eicarfile.detection.detection_test.test.web.rtss cantory = 128 DirectFileHash = 654EC5AE29C1718501AF7948226663DA40AEC51FC FILESIZE = 168 Status =已完成sessionID = 79421 TransAction = 5 < 1286> 2014年9月16日下午2:07:39 DBRLNXRV CEF:0 | MyCompany | MyApp | MyApp | MyApp | MyApp | MyApp | MyApp | MyApp | 6 | FileName Eicar.cab dname = www.csm-testcenter.org dst = 85.214.28.28.69 dpt = 85.214.28.28.69 dpt = 85.214.28.69 dstprot = http src = 10.204.64.137 spt = 40378 suser =" xauthentIcateDuser =" requestMethod = get requestClientApplication ="原因= 0-1492-EICARFILE.DETECTION_DETECTION_WEB.WEB.RTSSSSSSSS request request = httpp =.org/download/cab/cab/eicar.cab allyySistype =" theatname = eicarfile thereateason = 0-1492-eicarfile.detection.detection_test.test.web.rts category = 128方向AEC51FCfilesize = 168状态=已完成的sessionid = 79432 TransActionID = 3
我的问题是,如何使它们出现在单独的块中。当前每个消息之间都有CR/LF(通过使用Wireshark查看TCP事务来验证)。也尝试添加无效,没有改变。我知道我在日期/时间字段中不依靠MS,这是一个问题吗?我是否缺少消息ID,这会迫使Splunk将消息分开?其他想法?
(通过UDP发送时,每个事件都会出现在其自己的消息中)还尝试禁用纳格尔算法。而且仍然同样的问题。
我创建了一个自定义的C 应用程序,将SIEM消息从我的数据源发送到Splunk。如果我一次通过插座发送6个SIEM消息,每条消息都被CR/LF分开(我还尝试在消息之间添加空),则Splunk将它们放入一个事件中。我应该发送什么以使消息进入独特的事件?我到处查找有关SIEM协议的规格,并且在实际协议上没有找到和二进制基础文档。
TCP是'流'协议,而不是面向消息。它不能保持消息边界。不能保证以相同方式读取的内容。它是在TCP上方的应用程序中解释字节并形式"消息"
的应用程序。手工上的UDP保持消息边界。X字节的一个sendto
将转化为X字节的recvfrom
。尽管UDP不会使消息传到接收器。
上述原因是您目睹的。多个send
s转化为单个recv
,在UDP中相反。
使它起作用
该协议使用基本/r/n终止我过去尝试过的流。真正的技巧在于Splunk配置。一个人需要创建一个名为props.conf的配置文件,并包括以下行
应该_linemerge = false
然后一切正常。
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 2D数组来自文本输入,中间有空格
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 检查输入是否不是整数或数字
- 如何在Qt 4.8中阻止/忽略/丢弃早于特定超时的用户输入事件
- 有没有办法在使用 GLFW 按下按键后只处理一个输入事件?
- C++多按键输入或按键按下/释放事件
- 将输入事件发送到窗口
- 跟踪鼠标输入事件
- 处理自定义QT小部件中的输入事件
- 如何处理 OpenSceneGraph 键盘输入事件中的区分大小写
- GetSave文件名 / IFileSaveDialog - 用户输入的事件/对文件名更改做出反应?
- 是否可以使用 select(2) 来监视 SDL 文本输入事件
- gtkoverlay不会通过输入事件
- SIEM通过TCP流式传输,将多条消息输入一个事件中
- 我可以在事件和具有输入的IOCompletionPort上等待MultipleObjects吗
- 如何使用QCoreApplication::postEvent注入合成输入事件
- 如何使用输入子系统生成击键事件
- SFML 2实时文本输入?(无事件循环)
- 游戏键盘输入和事件