Kiddy â njĂ« modul pĂ«r bĂ«rthamĂ«n Linux, i zhvilluar me qĂ«llim tĂ« reduktimit tĂ« rreziqeve tĂ« shfrytĂ«zimit (tĂ« disa) dobĂ«sive tĂ« bĂ«rthamĂ«s.
Në thelb të mekanizmit të mbrojtjes, të realizuar në këtë modul, qëndron një ide e thjeshtë, e cila thotë se gjatë një sulmi ndodh identifikimi i objektit të sulmit. Prandaj, nëse e vështirësojmë një identifikim të tillë, mund të rrisim shumë vështirësinë e shfrytëzimit, sepse, në shumë raste, eksploitët e gatshëm përmbajnë tabela të ndryshme të zhvendosjeve (offset), që korrespondonin me versionet e synuara të bërthamës.
Për shembull, ja si është bërë kjo për CVE-2017-1000112. Aty gjithashtu mund të shikoni se identifikimi i versionit të bërthamës realizohet duke përdorur uname.
Moduli i dizajnuar është i thjeshtë për t'u realizuar dhe lejon:
- ndryshimin e identifikimit të bërthamës;
- kufizimin e aksesit në logun e bërthamës (dmesg);
- kufizimin e aksesit në disa skedarë në /proc, gjithashtu duke përmbajtur informacion identifikues;
- kufizimin e aksesit në skedarë dhe dosje, potencialisht duke përmbajtur informacion identifikues;
- ndryshimin e identifikimit të versionit të bërthamës, të disponueshëm përmes vDSO.
Gjatë ndërtimit të modulit, lejohet përdorimi i ashtuquajturëve "preset", që realizojnë logjikë të ndryshme për ndryshimin e identifikimit. Për shembull, duke përdorur preset-in "windows" mund të arrihet sjellja e mëposhtme:
Para ngarkimit të modulit
$ ./misc/id.sh ** DYTE identidty leaks â 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 Sat Nov 7 12:42:14 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux ** PROCFS identidty leaks â /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 Sat Nov 7 12:42:14 UTC 2020 â /proc/sys/kernel/version #1 SMP Sat Nov 7 12:42:14 UTC 2020 â /proc/sys/kernel/osrelease 2.6.32-754.35.1.el6.x86_64 which: no hostnamectl in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)
Pas ngarkimit të modulit
$ ./misc/id.sh ** DYTE identidty leaks â 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 identidty leaks â /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 in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)
Skripti-kiddy nuk kalon!
Burimi: linux.org.ru
