Kiddy — modul de kernel Linux pentru protecția împotriva script kiddie

Kiddy – modul pentru kernelul Linux, dezvoltat cu scopul de a reduce riscurile exploatării (unor) vulnerabilități ale kernelului.

Principiul de bază al mecanismului de protecție implementat în acest modul se bazează pe o idee simplă, aceea că, în timpul unei attack, identificarea obiectului atacului se întâmplă într-un fel sau altul. Prin urmare, dacă se complică această identificare, se poate crește semnificativ dificultatea exploatării, deoarece, în multe cazuri, exploit-urile gata făcute conțin tabele de diferite tipuri de ofseturi, corespunzătoare versiunilor țintă ale kernelului.

De exemplu, iată cum este realizat pentru CVE-2017-1000112. Acolo se poate vedea că identificarea versiunii kernelului se face folosind uname.

Modulul dezvoltat este simplu de implementat și permite:

  • schimbarea identificării kernelului;
  • limitarea accesului la jurnalul kernelului (dmesg);
  • limitarea accesului la anumite fișiere din /proc, care conțin de asemenea informații identificabile;
  • limitarea accesului la fișiere și directoare care pot conține informații identificabile;
  • schimbarea identificării versiunii kernelului disponibilă prin vDSO.

În timpul compunerii, modulul permite utilizarea așa-numitelor «preseturi», care implementează diferite logici de schimbare a identificării. De exemplu, folosind presetul «windows», se poate obține următoarea comportare:

Înainte de încărcarea modulului

$ ./misc/id.sh ** SCURGERI DE IDENTITATE UNAME — uname -r 2.6.32-754.35.1.el6.x86_64 — uname -v #1 SMP Sâmbătă 7 Nov 12:42:14 UTC 2020 — uname -a Linux localhost.localdomain 2.6.32-754.35.1.el6.x86_64 #1 SMP Sâmbătă 7 Nov 12:42:14 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux ** SCURGERI DE IDENTITATE PROCFS — /proc/cmdline ro root=/dev/mapper/VolGroup00-LogVol00 rd_NO_LUKS no_timer_check console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 LANG=en_US.UTF-8 rd_NO_MD SYSFONT=latarcyrheb-sun16 rd_LVM_LV=VolGroup00/LogVol01 rd_LVM_LV=VolGroup00/LogVol00 KEYBOARDTYPE=pc KEYTABLE=us rd_NO_DM rhgb quiet — /proc/version Linux version 2.6.32-754.35.1.el6.x86_64 (mockbuild@x86-02.bsys.centos.org) (gcc version 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)) #1 SMP Sâmbătă 7 Nov 12:42:14 UTC 2020 — /proc/sys/kernel/version #1 SMP Sâmbătă 7 Nov 12:42:14 UTC 2020 — /proc/sys/kernel/osrelease 2.6.32-754.35.1.el6.x86_64 which: no hostnamectl în (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)

După încărcarea modulului

$ ./misc/id.sh ** SCURGERI DE IDENTITATE UNAME — uname -r Windows — uname -v NT 4.0 — uname -a Linux localhost.localdomain Windows NT 4.0 x86_64 x86_64 x86_64 GNU/Linux ** SCURGERI DE IDENTITATE PROCFS — /proc/cmdline EFIMicrosoftBootbootmgfw.efi — /proc/version Windows NT 4.0 — /proc/sys/kernel/version NT 4.0 — /proc/sys/kernel/osrelease Windows which: no hostnamectl în (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)

Script kiddies nu vor trece!

Sursa: linux.org.ru

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster