Я пытаюсь извлечь домен из поля Splunk payload_printable (источник - журналы Suricata) и обнаружил, что это регулярное выражение работает нормально в большинстве случаев:
source="*suricata*" alert.signature="ET JA3*"
| rex field=payload_printable "(?<dom>[a-zA-Z0-9\-\_]{1,}\.[a-zA-Z0-9\-\_]{2,}\.[a-zA-Z0-9\-\_]{2,})"
| table payload_printable, dom
Регулярное выражение:
(?<dom>[a-zA-Z0-9\-\_]{1,}\.[a-zA-Z0-9\-\_]{2,}\.[a-zA-Z0-9\-\_]{2,})
Например, если мой printable_payload выглядит так:
...........^aO+.t....]......$.....mT*l.......&.,.+.0./.$.#.(.'.
...........=.<.5./.
...].........activity.windows.com..........
.................
.......................#...........
Домен "Activity. windows .com" успешно извлечен. Теперь он не работает для такой полезной нагрузки, потому что регулярное выражение соответствует другой части, которая не соответствует домену:
...........^aO+]v;.~........:.Y.zORw._I..K>..&.,.+.0./.$.#.(.'.
...........=.<.5./.
...].........activity.windows.com..........
.................
.......................#...........
. Извлекает "Y.zORw._I".
Другой пример:
...........^h.'`.o2...
.y.k>..e.ef...]..8.G..&.,.+.0./.$.#.(.'.
...........=.<.5./.
...p.........arc.msn.com..........
.................
.......................#.........h2.http/1.1...................
Я не знаю, как это сделать. Спасибо за вашу помощь.