Linux denetimi yardımcı olabilir. En azından kullanıcıları ve datagram ağ bağlantılarını yapan işlemleri bulur. UDP paketleri datagramlardır.
İlk önce, auditd
çerçeveyi platformunuza yükleyin ve auditctl -l
kural tanımlanmadığını söylese bile bir şeylerin iade edildiğinden emin olun .
Ardından, sistem çağrısını izlemek ve socket()
daha sonra kolayca bulmak için etiketlemek için bir kural ekleyin ( -k
). Sana 64-bit mimarisine olduklarını varsaymak gerekir, ancak yerini alabilir b32
yerine b64
sen değilsen.
auditctl -a exit,always -F arch=b64 -F a0=2 -F a1\&=2 -S socket -k SOCKET
Bunu oluşturmak için man sayfaları ve başlık dosyalarını seçmeniz gerekir, ancak yakaladığı şey aslında bu sistem çağrısıdır: socket(PF_INET, SOCK_DGRAM|X, Y)
üçüncü parametrenin belirtilmediği, ancak genellikle sıfır olduğu. PF_INET
2 ve SOCK_DGRAM
2. TCP bağlantılarını kullanmak istiyorsunuz olduğunu SOCK_STREAM
belirleyecek olan a1=1
. ( SOCK_DGRAM
ikinci parametrede ORed SOCK_NONBLOCK
veya ile karşılaştırılabilir. Bu SOCK_CLOEXEC
nedenle, &=
karşılaştırma yapılır.) Daha -k SOCKET
sonra denetim izlerini ararken kullanmak istediğimiz anahtar kelimemizdir. Herhangi bir şey olabilir, ama basit tutmayı seviyorum.
Birkaç dakika geçip denetim yollarını gözden geçirin. İsteğe bağlı olarak, ağdaki bir sunucuyu ping yaparak birkaç paketi zorlayabilir ve bu, UDP kullanan ve denetim alarmımızı tetiklemesi gereken bir DNS araması yapılmasına neden olur.
ausearch -i -ts today -k SOCKET
Ve aşağıdaki bölüme benzer çıktılar görünecektir. Önemli kısımları vurgulamak için onu kısaltıyorum
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
Yukarıdaki çıktıda, ping
komutun soketin açılmasına neden olduğunu görebiliriz . Sonra çalıştırabilir strace -p 14510
hala çalışıyor olması halinde, süreci. ppid
(Ana süreç kimliği) ayrıca durumda listelenen bir script yumurtlar problem çocuk çok olduğunu.
Şimdi, çok fazla UDP trafiğiniz varsa, bu yeterince iyi olmayacak ve ikisi de şu anda uzmanlığımın ötesinde olan OProfile veya SystemTap’e başvurmanız gerekecektir .
Bu, genel davada işleri daraltmaya yardımcı olmalıdır.
İşiniz bittiğinde, bunu oluşturmak için kullanılan aynı hattı kullanmak suretiyle denetim kuralı kaldırmak, sadece yerine -a
sahip -d
.
auditctl -d exit,always -F arch=b64 -F a0=2 -F a1\&=2 -S socket -k SOCKET