Tôi có một cấu hình patterndb đang phân tích các thông báo nhật ký bộ lọc pfsense để trích xuất các trường khác nhau để gửi tới Azure Sentinel ở định dạng CEF, phần lớn nó hoạt động tốt
Tôi cần đặt trường Mức độ nghiêm trọng cho sự kiện của mình dựa trên hành động của tường lửa.
ví dụ: nếu trường "PF.PF_ACTION" bị chặn, "Mức độ nghiêm trọng" cần = 4, nếu "PF.PF_ACTION" vượt qua "Mức độ nghiêm trọng" cần = 1
Mức độ nghiêm trọng không tồn tại vào thời điểm này, tôi đang tạo một macro mới tại đây hoặc muốn trả về giá trị chính xác dựa trên Macro ban đầu
Tôi đã thử một hàm mẫu với if nhưng có vẻ như nó luôn nghĩ rằng kết quả là đúng
template-function set_pfsense_severity "$(if (\"${PF.PF_ACTION}\" == \"pass\" ) \"4\" \"1\")";
chức năng mẫu cef_header_netgate "${ISODATE} ${HOST} CEF:0|Netgate|pfSense||${PF.PF_TRACKER}||$(set_pfsense_severity)|";
tập tin(
"/var/log/pfsense.log"
đồng bộ hóa (có)
mẫu("$(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} deviceDirection=${PF .PF_DIRECTION} deviceFacility=$FACILITY)\n")
);
};
nhật ký {
nguồn(s_udp_oms);
bộ lọc (f_oms_pfsense_filterlog);
trình phân tích cú pháp (pfsense);
viết lại (r_set_direction);
đích (pfsense_parsed);
};
đây là 2 dòng nhật ký để tham khảo, trường Mức độ nghiêm trọng là trường trước đó |hành động=
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=9999 dst=255.255 .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=443 dst=17.253 .x.x dvc=192.168.x.254 dvchost=192.168.x.x in=0 msg=130,,,1770011110,igb0.10,match,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=58359 src=192.168.x.x
làm cách nào khác để tôi có thể định cấu hình macro mà tôi có thể đặt trong mẫu hoặc trả về giá trị chính xác?