unified2 เป็นตัวแยกวิเคราะห์บริสุทธิ์หลามสำหรับ IDS (คิดว่า [Snort] (http://snort.org)) unified2 รูปแบบเข้าสู่ระบบไบนารี
โมดูลที่ช่วยให้การดำเนินการบันทึก IDS ในรูปแบบไบนารี "unified2" เป็นวัตถุหลาม
มันไม่สามารถแก้ไขรหัสกฎและไม่ได้หมายถึงการเป็นแทน barnyard2 หรือ Snort ตัวเองในบทบาทที่
วัตถุประสงค์หลักคือการดึงข้อมูลแพ็คเก็ตจากบันทึกที่เกี่ยวข้องกับเฉพาะบางเรียก (และการแก้ไข / ลงทะเบียนแยกผ่านวิธีการอื่น ๆ เช่น alert_syslog หรือ alert_csv โมดูล Snort) กฎดังนั้นฉันยังไม่ได้ให้ความสนใจมากในการประมวลผลข้อมูลเมตาเหตุการณ์
โมดูลไม่ได้มีส่วนประกอบซีและไม่ได้ใช้ ctypes ดังนั้นควรจะเป็นธรรมแบบพกพาที่ไม่ได้ใช้งาน CPython ภาษา
รูปแบบ
นิยามรูปแบบที่ได้มาจากส่วนหัวของ Snort (src / sfutil / Unified2_common.h) ผ่านโมดูล pyclibrary และจะถูกเก็บไว้ใน unified2 / ไฟล์ _format.py
นิยามใหม่กว่า (พูดถ้าชนิดข้อมูลใหม่ที่ถูกเพิ่มเข้ามา) สามารถสร้างขึ้นโดยใช้สคริปต์เดียวกันใน Snort ของ Unified2_common.h:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; bzr สาขา LP: pyclibrary
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; cd pyclibrary
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; หลาม ... / unified2 / _format.py ... / snort-2.XYZ/src/sfutil/Unified2_common.h
การติดตั้ง
มันเป็นเรื่องปกติสำหรับแพคเกจหลาม 2.7 (ไม่ 3.X)
ใช้จุดเป็นวิธีที่ดีที่สุด:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % จุดติดตั้ง unified2
ถ้าคุณไม่ได้ใช้:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; Pip% easy_install
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % จุดติดตั้ง unified2
อีกทางเลือกหนึ่งดูเพิ่มเติมที่:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % ขด https://raw.github.com/pypa/pip/master/contrib/get-pip.py | หลาม
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % จุดติดตั้ง unified2
หรือถ้าคุณอย่างต้อง:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % easy_install unified2
แต่คุณไม่ควรทำอย่างนั้น
รุ่นปัจจุบัน-คอมไพล์สามารถติดตั้งได้เช่นนี้
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; % จุดติดตั้ง -e 'คอมไพล์: //github.com/mk-fg/unified2.git#egg=unified2'
การใช้งาน
ตัวอย่างง่ายๆ
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; นำเข้า unified2.parser
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; สำหรับ EV ev_tail ใน unified2.parser.parse ('/ var / log / Snort / snort.u2.1337060186'):
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; พิมพ์ 'เหตุการณ์:', EV
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ถ้า ev_tail: พิมพ์ 'หางเหตุการณ์:', ev_tail
วัตถุที่จัดกิจกรรมที่นี่เป็น Dict ของเมตาดาต้าและ "หาง" ซึ่งสามารถเป็นได้ทั้งหยดหรือคล้าย tuple ซ้ำ-แยกวิเคราะห์ของเมตาดาต้า-Dict และ "หาง" (เช่นสำหรับ UNIFIED2_EXTRA_DATA)
อินเตอร์เฟซ unified2.parser.Parser เป็นตัวอย่างที่ดีที่สุดโดยฟังก์ชั่น unified2.parser.read:
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; parser, buff_agg = ตัวแยกวิเคราะห์ () ''
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ในขณะที่ทรู
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; หนัง = parser.read (src)
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; หากไม่ได้รับหนัง: ทำลาย # EOF
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; buff_agg + = หนัง
& nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; ในขณะที่ทรู
buff_agg, EV = parser.process (buff_agg)
ถ้า EV คือไม่มี: หยุดพัก
ผลผลิต EV
ความคิดที่ว่านี่คือวิธีการ Parser.read ควรจะเรียกว่ากับกระแส (เช่นวัตถุไฟล์) กลับมา แต่ตัวแยกวิเคราะห์ข้อมูลจำนวนกี่ไบต์ความต้องการที่จะได้รับก้อน parseable ต่อไปของข้อมูล (หนึ่งแพ็คเก็ตในกรณีของการเข้าสู่ระบบ u2) หรือสิ่งที่สามารถอ่านได้ ในขณะที่สายว่างมักจะเป็นตัวบ่งบอกถึง EOF หรืออาจจะไม่ปิดกั้นการกลับมาอ่าน
Parser.process แล้วควรจะเรียกว่ามีสะสม (โดย Parser.read เรียก) บัฟเฟอร์กลับมาแพ็คเก็ตแรกที่สามารถแยกวิเคราะห์จากที่นั่น (หรือไม่มีถ้าบัฟเฟอร์มีขนาดไม่ใหญ่พอ) และที่เหลือ (ที่ไม่ได้แยกวิเคราะห์) ข้อมูลบัฟเฟอร์
ต้องการ
- หลาม
ความคิดเห็นที่ไม่พบ