Kiddy — modul jedra Linux za zaščito pred skript kiddiji

Kiddy – modul za Linux jedro, razvit z namenom zmanjšanja tveganja izkoriščanja (nekaterih) ranljivosti jedra.

Osnova zaščitnega mehanizma, реализiranega v tem modulu, leži v preprosti ideji, da se med napadom na nek način identificira predmet napada. Zato, če otežimo to identifikacijo, lahko večkrat povečamo težavnost izkoriščanja, saj v mnogih primerih pripravljeni eksplojti vsebujejo tabele različnih premikov (offsetov), ki ustrezajo ciljnim verzijam jedra.

Na primer, kako je to narejeno za CVE-2017-1000112. Tam lahko vidite, da se identifikacija verzije jedra zgodi z uporabo uname.

Razvit modul je enostaven za izvedbo in omogoča:

  • spremembo identifikacije jedra;
  • omejitev dostopa do jedrskega dnevnika (dmesg);
  • omejitev dostopa do nekaterih datotek v /proc, ki prav tako vsebujejo identifikacijske informacije;
  • omejitev dostopa do datotek in map, ki potencialno vsebujejo identifikacijske informacije;
  • spremembo identifikacije verzije jedra, dostopne preko vDSO.

V procesu sestavljanja modul omogoča uporabo t.i. "prednastavitev", ki izvajajo različno logiko spremembe identifikacije. Na primer, z uporabo prednastavitve "windows" lahko dobimo naslednje vedenje:

Pred nalaganjem modula

$ ./misc/id.sh ** UNAME identiteta pušča — uname -r 2.6.32-754.35.1.el6.x86_64 — uname -v #1 SMP Sob Nov 7 12:42:14 UTC 2020 — uname -a Linux localhost.localdomain 2.6.32-754.35.1.el6.x86_64 #1 SMP Sob Nov 7 12:42:14 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux ** PROCFS identiteta pušča — /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 verzija 2.6.32-754.35.1.el6.x86_64 (mockbuild@x86-02.bsys.centos.org) (gcc verzija 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC) ) #1 SMP Sob Nov 7 12:42:14 UTC 2020 — /proc/sys/kernel/version #1 SMP Sob 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)

Po nalaganju modula

$ ./misc/id.sh ** UNAME identiteta pušča — 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 identiteta pušča — /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)

Kiddy skripti ne gredo skozi!

Izvor: linux.org.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster