Kiddy — een kernelmodule voor Linux ter bescherming tegen script-kiddies.

Kiddy – een module voor de Linux-kernel, ontwikkeld om de risico's van de exploitatie van (bepaalde) kernelkwetsbaarheden te verminderen.

De basis van het beschermingsmechanisme dat in deze module is geïmplementeerd, is een eenvoudig idee: tijdens een aanval vindt er op de een of andere manier identificatie van het doelobject plaats. Daarom, door deze identificatie te bemoeilijken, kan de complexiteit van de exploitatie aanzienlijk worden verhoogd, aangezien in veel gevallen kant-en-klare exploits tabellen met diverse verschuivingen (offsets) bevatten, die overeenkomen met de doelversies van de kernel.

Bijvoorbeeld, zo is het gedaan voor CVE-2017-1000112. Daar kan ook worden gezien dat de identificatie van de kernelversie wordt uitgevoerd met behulp van uname.

De ontwikkelde module is eenvoudig te implementeren en stelt in staat om:

  • de identificatie van de kernel te wijzigen;
  • de toegang tot de kernellog (dmesg) te beperken;
  • de toegang tot bepaalde bestanden in /proc, die ook identificerende informatie bevatten, te beperken;
  • de toegang tot bestanden en mappen die mogelijk identificerende informatie bevatten, te beperken;
  • de identificatie van de kernelversie, toegankelijk via vDSO, te wijzigen.

Tijdens de opbouw van de module kunnen zogenaamde "presets" worden gebruikt die verschillende logica voor de identificatiewijziging implementeren. Bijvoorbeeld, door de preset "windows" te gebruiken, kan het volgende gedrag worden verkregen:

Voor het laden van de module

$ ./misc/id.sh ** UNAME identificatielekken — uname -r 2.6.32-754.35.1.el6.x86_64 — uname -v #1 SMP zat nov 7 12:42:14 UTC 2020 — uname -a Linux localhost.localdomain 2.6.32-754.35.1.el6.x86_64 #1 SMP zat nov 7 12:42:14 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux ** PROCFS identificatielekken — /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 zat nov 7 12:42:14 UTC 2020 — /proc/sys/kernel/version #1 SMP zat nov 7 12:42:14 UTC 2020 — /proc/sys/kernel/osrelease 2.6.32-754.35.1.el6.x86_64 welk: 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 identificatielekken — 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 identificatielekken — /proc/cmdline EFIMicrosoftBootbootmgfw.efi — /proc/version Windows NT 4.0 — /proc/sys/kernel/version NT 4.0 — /proc/sys/kernel/osrelease Windows welk: geen hostnamectl in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/vagrant/bin)

Kiddy-scripts zullen niet doorgaan!

Bron: linux.org.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster