การตรวจสอบ Linux สามารถช่วยได้ อย่างน้อยมันจะค้นหาผู้ใช้และกระบวนการที่ทำการเชื่อมต่อเครือข่ายดาตาแกรม แพ็กเก็ต UDP เป็นดาตาแกรม
ขั้นแรกให้ติดตั้งauditd
เฟรมเวิร์กบนแพลตฟอร์มของคุณและตรวจสอบให้แน่ใจว่าauditctl -l
ส่งคืนบางสิ่งแม้ว่าจะระบุว่าไม่มีการกำหนดกฎ
จากนั้นเพิ่มกฎเพื่อดูการโทรของระบบsocket()
และติดแท็กเพื่อให้ค้นหาได้ง่ายในภายหลัง ( -k
) ฉันต้องการที่จะคิดว่าคุณจะอยู่บนสถาปัตยกรรม 64 บิต แต่คุณสามารถทดแทนb32
ในสถานที่ของb64
ถ้าคุณไม่ได้
auditctl -a exit,always -F arch=b64 -F a0=2 -F a1\&=2 -S socket -k SOCKET
คุณต้องเลือก man page และไฟล์ส่วนหัวเพื่อสร้างสิ่งนี้ แต่สิ่งที่จับได้คือการเรียกของระบบ: socket(PF_INET, SOCK_DGRAM|X, Y)
โดยที่พารามิเตอร์ที่สามไม่ได้ระบุ แต่บ่อยครั้งเป็นศูนย์ PF_INET
คือ 2 และSOCK_DGRAM
เป็น 2. การเชื่อมต่อ TCP จะใช้ซึ่งจะตั้งSOCK_STREAM
a1=1
( SOCK_DGRAM
ในพารามิเตอร์ที่สองอาจ ORed ด้วยSOCK_NONBLOCK
หรือSOCK_CLOEXEC
ดังนั้นจึงเป็นการ&=
เปรียบเทียบ) นี่-k SOCKET
คือคำหลักของเราที่เราต้องการใช้เมื่อค้นหาหลักฐานการตรวจสอบในภายหลัง มันสามารถเป็นอะไรก็ได้ แต่ฉันชอบที่จะทำให้มันง่าย
ปล่อยให้เวลาผ่านไปสักครู่และทบทวนเส้นทางการตรวจสอบ คุณสามารถบังคับให้แพ็กเก็ตสองสามตัวโดยส่งโฮสต์ออกทางเน็ตซึ่งจะทำให้เกิดการค้นหา DNS ที่จะเกิดขึ้นซึ่งใช้ UDP ซึ่งควรเดินทางไปแจ้งเตือนการตรวจสอบของเรา
ausearch -i -ts today -k SOCKET
และผลลัพธ์ที่คล้ายกับส่วนด้านล่างจะปรากฏขึ้น ฉันย่อมันเพื่อเน้นส่วนที่สำคัญ
type=SYSCALL ... arch=x86_64 syscall=socket success=yes exit=1 a0=2 a1=2 ... pid=14510 ... auid=zlagtime uid=zlagtime ... euid=zlagtime ... comm=ping exe=/usr/bin/ping key=SOCKET
ในผลลัพธ์ข้างต้นเราจะเห็นว่าping
คำสั่งทำให้ซ็อกเก็ตที่จะเปิด ฉันสามารถเรียกใช้strace -p 14510
กระบวนการถ้ามันยังคงทำงานอยู่ ppid
(รหัสการปกครอง) นอกจากนี้ยังมีการระบุไว้ในกรณีที่มันเป็นสคริปต์ที่ spawns เด็กที่มีปัญหามาก
ตอนนี้ถ้าคุณมีทราฟฟิก UDP จำนวนมากสิ่งนี้จะไม่ดีพอและคุณต้องหันไปใช้OProfileหรือSystemTapซึ่งทั้งสองอย่างนี้อยู่นอกเหนือความเชี่ยวชาญของฉัน
สิ่งนี้จะช่วยให้สิ่งต่าง ๆ แคบลงในกรณีทั่วไป
เมื่อเสร็จแล้วให้ลบกฎการตรวจสอบออกโดยใช้บรรทัดเดียวกับที่คุณใช้ในการสร้างมันขึ้นมาแทนที่-a
ด้วย-d
เท่านั้น
auditctl -d exit,always -F arch=b64 -F a0=2 -F a1\&=2 -S socket -k SOCKET