เป้าหมายของฉันคือการวิเคราะห์บันทึกเครือข่าย (เช่น Apache, syslog, การตรวจสอบความปลอดภัยของ Active Directory และอื่น ๆ ) โดยใช้การตรวจจับกลุ่ม / ความผิดปกติเพื่อวัตถุประสงค์ในการตรวจจับการบุกรุก
จากบันทึกฉันมีฟิลด์ข้อความจำนวนมากเช่นที่อยู่ IP ชื่อผู้ใช้ชื่อโฮสต์พอร์ตปลายทางพอร์ตต้นทางและอื่น ๆ (รวมทั้งหมด 15-20 ฟิลด์) ฉันไม่ทราบว่ามีการโจมตีในบันทึกหรือไม่และต้องการเน้นเหตุการณ์ที่น่าสงสัยที่สุด (ผู้ผิด)
โดยปกติการตรวจจับความผิดปกติจะทำเครื่องหมายจุดที่มีความน่าจะเป็น / ความถี่ต่ำเป็นความผิดปกติ อย่างไรก็ตามครึ่งหนึ่งของบันทึกรายการบันทึกประกอบด้วยเขตข้อมูลที่ไม่ซ้ำกัน ดังนั้นครึ่งหนึ่งของการบันทึกในชุดข้อมูลจะมีความถี่ต่ำสุดที่เป็นไปได้
ถ้าฉันใช้การตรวจจับความผิดปกติโดยพิจารณาจากการจัดกลุ่ม (เช่นค้นหากลุ่มแล้วเลือกจุดที่อยู่ไกลจากศูนย์คลัสเตอร์ทั้งหมด) ฉันต้องหาระยะทางระหว่างจุดต่าง ๆ เนื่องจากฉันมีฟิลด์ 15-20 ฟิลด์มันจะเป็นพื้นที่แบบหลายมิติซึ่ง dimesions คือชื่อผู้ใช้พอร์ตที่อยู่ IP และอื่น ๆ อย่างไรก็ตามระยะทาง Mahalanobis สามารถใช้ได้กับฟีเจอร์การกระจายแบบปกติเท่านั้น ซึ่งหมายความว่าไม่มีทางที่จะหาระยะห่างระหว่างจุดข้อมูลและสร้างกลุ่ม ...
ตัวอย่างเช่นลองนึกภาพว่าฉันมีผู้ใช้ Alice, Bob, Carol, Dave, Eve และ Frank ในชุดข้อมูล 20 รายการ พวกเขาอาจมีจำนวนที่เกิดขึ้นต่อไปนี้ในฐานข้อมูล: 2,5,2,5,1,5 ถ้าฉันแม็พชื่อผู้ใช้กับตัวเลขเช่น
Alice --> 1
Bob --> 2
Carol --> 3
Dave --> 4
Eve --> 5
Frank --> 6
จากนั้นการกระจายความน่าจะเป็นของฉันสำหรับชื่อผู้ใช้จะมีลักษณะดังนี้:
p (1) = 0.1, p (2) = 0.25, p (3) = 0.1, p (4) = 0.25, p (5) = 0.05, p (6) = 0.25
แน่นอนว่านี่ไม่ใช่การแจกแจงแบบปกติและมันก็ไม่สมเหตุสมผลนักเนื่องจากฉันสามารถแมปชื่อผู้ใช้ในวิธีอื่นได้ ...
ดังนั้นการแมปฟิลด์อย่างง่าย ๆ เช่นชื่อผู้ใช้การกระทำหมายเลขพอร์ตที่อยู่ IP และหมายเลขอื่น ๆ ไม่ได้นำมาซึ่งอะไร
ดังนั้นฉันอยากจะถามว่าการประมวลผลฟิลด์ข้อความ / คุณสมบัติที่สร้างมักจะทำให้การตรวจจับความผิดปกติ / การตรวจจับค่าผิดปกติเป็นไปได้อย่างไร
แก้ไข: โครงสร้างข้อมูล
ฉันมีประมาณ 100 คอลัมน์ในตารางฐานข้อมูลที่มีข้อมูลจาก Active Directory Events จาก 100 คอลัมน์นี้ฉันเลือกสิ่งที่สำคัญที่สุด (จากมุมมองของฉัน): SubjectUser, TargetUser, SourceIPaddress, SourceHostName, SourcePort, คอมพิวเตอร์, DestinationIPaddress, DestinationHostName, DestinationPort, Action, สถานะ, FilePath, EventID, WeekDay, กลางวัน
กิจกรรมเป็นกิจกรรมของ Active Directory โดยที่ EventID จะกำหนดสิ่งที่บันทึกไว้ (เช่นการสร้างตั๋ว Kerberos การเข้าสู่ระบบของผู้ใช้การออกจากระบบของผู้ใช้ ฯลฯ )
ตัวอย่างข้อมูลมีลักษณะดังนี้:
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | ID | SubjectUser | TargetUser | SourceIPaddress | SourceHostName | SourcePort | คอมพิวเตอร์ | DestinationIPaddress | DestinationHostName | DestinationPort | การกระทำ | สถานะ | FilePath | EventID | WeekDay | กลางวัน | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 171390673 |? ? | ? | ? | ? | | domaincontroller1.domain.com | 1.1.1.1 | domaincontroller1.domain.com |? | / การตรวจสอบ / ตรวจสอบ | / ความสำเร็จ |? | 4624 | 1 | 61293 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 173348232 |? ? | ? | ? | ? | | domaincontroller2.domain.com | 2.2.2.2 | domaincontroller2.domain.com |? | / การตรวจสอบ / ตรวจสอบ | / ความสำเร็จ |? | 4624 | 1 | 61293 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 180176916 |? ? | ? | ? | ? | | domaincontroller2.domain.com | 2.2.2.2 | domaincontroller2.domain.com |? | / การตรวจสอบ / ตรวจสอบ | / ความสำเร็จ |? | 4624 | 1 | 61293 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 144144725 |? | John.Doe | 3.3.3.3 | domaincontroller3.domain.com | 2407 | domaincontroller3.domain.com | 3.3.3.4 | domaincontroller3.domain.com |? | / การตรวจสอบ / ตรวจสอบ | / ความสำเร็จ |? | 4624 | 3 | 12345 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - +
รวมกันแล้วฉันมีเหตุการณ์ประมาณ 150 ล้านครั้ง เหตุการณ์ที่แตกต่างมีการกรอกข้อมูลในฟิลด์ที่ต่างกันและไม่ใช่ทุกเหตุการณ์ที่เกี่ยวข้องกับการเข้าสู่ระบบของผู้ใช้ / ออกจากระบบ