Kiddy – „Linux“ branduolio modulis, skirtas sumažinti (kai kurių) branduolio pažeidžiamumų išnaudojimo riziką.
Šiame modulyje įdiegtas apsaugos mechanizmas remiasi paprasta idėja, ty atakos metu kažkaip identifikuojamas atakos tikslas. Todėl, jei toks identifikavimas apsunkinamas, operacijos sudėtingumas gali padidėti, nes daugeliu atvejų paruoštuose išnaudojimuose yra įvairių tipų poslinkių lentelės, atitinkančios tikslines branduolio versijas.
Pavyzdžiui, štai kaip tai daroma CVE-2017-1000112. Taip pat galite pamatyti, kad branduolio versija identifikuojama naudojant uname.
Sukurtas modulis yra lengvai įgyvendinamas ir leidžia:
- pakeisti branduolio identifikavimą;
- apriboti prieigą prie branduolio žurnalo (dmesg);
- apriboti prieigą prie tam tikrų /proc failų, kuriuose taip pat yra identifikavimo informacijos;
- apriboti prieigą prie failų ir aplankų, kuriuose gali būti identifikavimo informacijos;
- pakeisti branduolio versijos identifikavimą, pasiekiamą per vDSO.
Surinkimo proceso metu modulis leidžia naudoti vadinamąjį. „išankstiniai nustatymai“, įgyvendinantys skirtingą identifikavimo keitimo logiką. Pavyzdžiui, naudodami iš anksto nustatytą „langų“ nustatymą, galite elgtis taip:
Prieš įkeliant modulį
$ ./misc/id.sh ** UNAME tapatybės nutekėjimas — uname -r 2.6.32-754.35.1.el6.x86_64 — uname -v #1 SMP 7 m. lapkričio 12 d., šeštadienis, 42:14:2020 UTC — uname -a Linux localhost.localdomain 2.6.32-754.35.1.el6.x86_64 #1 SMP 7 m. lapkričio 12 d., šeštadienis, 42:14:2020 UTC x86_64 x86_64 x86_64 GNU/Linux ** PROCFS tapatybės nutekėjimas - /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 versija 2.6.32-754.35.1.el6.x86_64 (mockbuild@x86-02.bsys.centos.org) (gcc versija 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) ) #1 SMP šeštadienis, lapkričio 7 d., 12:42:14 UTC 2020 - /proc/sys/kernel/version #1 SMP šeštadienis, lapkričio 7 d., 12:42:14 UTC 2020 - /proc/sys/kernel/osrelease 2.6.32-754.35.1.el6.x86_64, kuriame: nėra hostnamectl rinkmenos (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)
Įkėlus modulį
$ ./misc/id.sh ** UNAME tapatybės nutekėjimas — 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 ** PROCFS tapatybės nutekėjimas — /c cmdline EFIMicrosoftBootbootmgfw.efi - /proc/version Windows NT 4.0 - /proc/sys/kernel/version NT 4.0 - /proc/sys/kernel/osrelease Windows, kuris: nėra pagrindinio kompiuterio pavadinimo (/usr/local/bin:/bin:/ usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)
Scenarijaus vaikai nepraeis!
Šaltinis: linux.org.ru
