ฉันมีการกำหนดค่า patterndb ที่แยกวิเคราะห์ข้อความตัวกรอง pfsense เพื่อแยกฟิลด์ต่างๆ เพื่อส่งไปยัง Azure Sentinel ในรูปแบบ CEF ซึ่งส่วนใหญ่ทำงานได้ดี
ฉันต้องตั้งค่าฟิลด์ความรุนแรงของเหตุการณ์ตามการดำเนินการของไฟร์วอลล์
ตัวอย่างเช่น ถ้าฟิลด์ "PF.PF_ACTION" ถูกบล็อก "ความรุนแรง" จะต้อง = 4 ถ้า "PF.PF_ACTION" ถูกบล็อก "ความรุนแรง" จะต้อง = 1
ไม่มีความรุนแรง ณ จุดนี้ ฉันกำลังสร้างมาโครใหม่ที่นี่หรือต้องการคืนค่าที่ถูกต้องตามมาโครดั้งเดิม
ฉันได้ลองใช้ฟังก์ชันเทมเพลตด้วย if แต่ดูเหมือนว่าผลลัพธ์จะเป็นจริงเสมอ
เทมเพลตฟังก์ชัน set_pfsense_severity "$(if (\"${PF.PF_ACTION}\" == \"pass\" ) \"4\" \"1\")";
เทมเพลตฟังก์ชัน cef_header_netgate "${ISODATE} ${HOST} CEF:0|Netgate|pfSense||${PF.PF_TRACKER}||$(set_pfsense_severity)|";
ไฟล์(
"/var/log/pfsense.log"
fsync (ใช่)
แม่แบบ ("$(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} อุปกรณ์สิ่งอำนวยความสะดวก=$FACILITY)\n")
);
};
บันทึก {
แหล่งที่มา (s_udp_oms);
ตัวกรอง (f_oms_pfsense_filterlog);
โปรแกรมแยกวิเคราะห์ (pfsense);
เขียนใหม่ (r_set_direction);
ปลายทาง (pfsense_parsed);
};
นี่คือบรรทัดบันทึก 2 บรรทัดสำหรับการอ้างอิง ฟิลด์ความรุนแรงเป็นฟิลด์ก่อนหน้า |กระทำ=
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
ฉันจะกำหนดค่าแมโครที่ฉันสามารถวางในเทมเพลตหรือส่งคืนค่าที่ถูกต้องได้อย่างไร