Am o configurație patterndb care analizează mesajele pfsense filterlog pentru a extrage diferitele câmpuri pentru a le trimite către Azure Sentinel în format CEF, în mare parte funcționează bine
Trebuie să setez câmpul Severitate al evenimentului meu pe baza acțiunii firewall-ului.
de exemplu, dacă câmpul „PF.PF_ACTION” este blocat, „Severity” trebuie să = 4, dacă „PF.PF_ACTION” trece „Severity” trebuie să = 1
Severitatea nu există în acest moment, creez o nouă macrocomandă aici sau vreau să returnez valoarea corectă pe baza macrocomenzii inițiale
Am încercat o funcție șablon cu if, dar se pare că întotdeauna rezultatul este adevărat
template-function set_pfsense_severity "$(dacă (\"${PF.PF_ACTION}\" == \"trece\" ) \"4\" \"1\"";
template-function cef_header_netgate „${ISODATE} ${HOST} CEF:0|Netgate|pfSense||${PF.PF_TRACKER}||$(set_pfsense_severity)|”;
fişier(
„/var/log/pfsense.log”
fsync (da)
template("$(cef_header_netgate)$(format-welf --omit-empty-values act=${PF.PF_ACTION} dvc=$HOST dvchost=$HOST dst=${PF.PF_IP_DESTINATION_IP} dpt=${PF.PF_IP_DESTINATION_PORT } in=${PF.PF_IP_PAYLOAD_LENGTH} msg=$MSG proto=${PF.PF_IP_PROTOCOL_TEXT} src=${PF.PF_IP_SOURCE_IP} spt=${PF.PF_IP_SOURCE_PORT} csl=${PF.PF_RULE_NUMBER}Direction de dispozitive=${PF .PF_DIRECTION} deviceFacility=$FACILITY)\n")
);
};
Buturuga {
sursa(s_udp_oms);
filter(f_oms_pfsense_filterlog);
parser(pfsense);
rescrie(r_set_direction);
destinație(pfsense_parsed);
};
aici sunt 2 linii de jurnal pentru referință, câmpul Severity este câmpul de dinainte |act=
2022-03-09T20:23:38+00:00 192.168.x.254 CEF:0|Netgate|pfSense||1000000103||4|act=block csl=4 deviceDirection=0 deviceFacility=local0 dpt=29525. .255.255 dvc=192.168.x.254 dvchost=192.168.x.x in=14 msg=4,,,1000000103,igb0.20,match,block,in,4,0x0,,64,0,0,DF,17, udp,34,0.0.0.0,255.255.255.255,9998,9999,14 proto=udp spt=9998 src=0.0.0.0
2022-03-09T20:23:41+00:00 192.168.x.254 CEF:0|Netgate|pfSense||1770011110||4|act=pass csl=130 deviceDirection=0 deviceFacility=local0 dpt=147.3535=147.35 .x.x dvc=192.168.x.254 dvchost=192.168.x.x in=0 msg=130,,,1770011110,igb0.10,metch,pass,in,4,0x0,,64,0,0,DF,6, tcp,64,192.168.x.x,17.253.x.x,58359,443,0,S,3162698201,,0,,mss;nop;wscale;nop;nop;TS;sackOK;eol proto=tcp spt=583592.xrc=583592.
cum altfel pot configura o macrocomandă pe care o pot plasa în șablon sau să returnez valoarea corectă?