Puştiulică – modul pentru kernel Linux, conceput pentru a reduce riscurile de exploatare a (unelor) vulnerabilități ale kernelului.
Mecanismul de protecție implementat în acest modul se bazează pe o idee simplă, și anume că în timpul atacului, ținta atacului este cumva identificată. Prin urmare, dacă o astfel de identificare este îngreunată, complexitatea operațiunii poate fi multiplicată, deoarece în multe cazuri, exploit-urile gata făcute conțin tabele de diferite tipuri de decalaje corespunzătoare versiunilor kernel-ului țintă.
De exemplu, iată cum se face CVE-2017-1000112. De asemenea, puteți vedea acolo că versiunea de kernel este identificată folosind uname.
Modulul dezvoltat este ușor de implementat și vă permite să:
- modificați identificarea nucleului;
- restricționați accesul la jurnalul kernelului (dmesg);
- restricționați accesul la anumite fișiere din /proc care conțin și informații de identificare;
- restricționați accesul la fișiere și foldere care pot conține informații de identificare;
- modificați identificarea versiunii de kernel disponibilă prin vDSO.
În timpul procesului de asamblare, modulul vă permite să utilizați așa-numitul. „Presetări” care implementează o logică diferită pentru schimbarea identificării. De exemplu, folosind presetarea „windows”, puteți obține următorul comportament:
Înainte de a încărca modulul
$ ./misc/id.sh ** Scurgeri de identitate UNAME - uname -r 2.6.32-754.35.1.el6.x86_64 - uname -v #1 SMP Sat Nov 7 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 noiembrie 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 versiunea 2.6.32-754.35.1.el6.x86_64 (mockbuild@x86-02.bsys.centos.org) (gcc versiunea 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)) #1 SMP Sâmbătă 7 noiembrie 12:42:14 UTC 2020 — /proc/sys/kernel/version #1 SMP Sâmbătă 7 noiembrie 12:42:14 UTC 2020 — /proc/sys/kernel/osrelease 2.6.32-754.35.1.el6.x86_64 care: nu există 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 care: nu există hostnamectl în (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)
Copiii cu scenarii nu vor trece!
Sursa: linux.org.ru
