Kiddie – module voor de kernel Linux, ontworpen om de risico's van het misbruiken van (sommige) kernelkwetsbaarheden te verminderen.
Het beveiligingsmechanisme dat in deze module is geïmplementeerd, is gebaseerd op een eenvoudig idee, namelijk dat tijdens de aanval het doelwit van de aanval op een of andere manier wordt geïdentificeerd. Als een dergelijke identificatie moeilijk wordt gemaakt, kan de complexiteit van de bediening worden vermenigvuldigd in veel gevallen bevatten kant-en-klare exploits tabellen met verschillende soorten offsets die overeenkomen met de doelkernelversies.
Hier ziet u bijvoorbeeld hoe het wordt gedaan CVE-2017-1000112. Je kunt daar ook zien dat de kernelversie wordt geïdentificeerd met behulp van uname.
De ontwikkelde module is eenvoudig te implementeren en stelt u in staat om:
- kernelidentificatie wijzigen;
- de toegang tot het kernellogboek beperken (dmesg);
- de toegang beperken tot bepaalde bestanden in /proc die ook identificerende informatie bevatten;
- de toegang beperken tot bestanden en mappen die mogelijk identificerende informatie bevatten;
- wijzig de kernelversie-identificatie die beschikbaar is via vDSO.
Tijdens het assemblageproces kunt u met de module gebruik maken van de zogenaamde. “presets” die verschillende logica implementeren voor het wijzigen van identificatie. Als u bijvoorbeeld de voorinstelling "Windows" gebruikt, kunt u het volgende gedrag krijgen:
Voordat u de module laadt
$ ./misc/id.sh ** UNAME-identiteitslekken - uname -r 2.6.32-754.35.1.el6.x86_64 - uname -v #1 SMP za 7 november 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-identiteitslekken - /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 versie 2.6.32-754.35.1.el6.x86_64 (mockbuild@x86-02.bsys.centos.org) (gcc versie 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)) #1 SMP za 7 nov 12:42:14 UTC 2020 — /proc/sys/kernel/version #1 SMP za 7 nov 12:42:14 UTC 2020 — /proc/sys/kernel/osrelease 2.6.32-754.35.1.el6.x86_64 welke: geen hostnamectl in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)
Na het laden van de module
$ ./misc/id.sh ** UNAME-identiteitslekken - 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-identiteitslekken - /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)
Scriptkiddies zullen niet voorbijgaan!
Bron: linux.org.ru
