LINUX.ORG.RU

Ядро


136

1

Всего сообщений: 3231

См. также:

 , , , , , , , ,

Синонимы:

 kernel, linux kernel

Kiddy — модуль ядра Linux для защиты от скрипт-кидди

Группа Безопасность

Kiddy – модуль для ядра Linux, разработанный с целью снижения рисков эксплуатации (некоторых) уязвимостей ядра.

В основе механизма защиты, реализованного в данном модуле, лежит простая идея, которая заключается в том, что в процессе атаки так или иначе происходит идентификация объекта атаки. Поэтому, если затруднить такую идентификацию, можно кратно повысить сложность эксплуатации, т.к. во множестве случаев готовые эксплойты содержат в себе таблицы различного рода смещений (оффсетов), соответствующих целевым версиям ядра.

Например, вот как это сделано для CVE-2017-1000112. Там же можно видеть, что идентификация версии ядра осуществляется с использованием uname.

Разработанный модуль является простым в реализации и позволяет:

  • менять идентификацию ядра;
  • ограничивать доступ к журналу ядра (dmesg);
  • ограничивать доступ к некоторым файлам в /proc, также содержащим идентифицирующую информацию;
  • ограничивать доступ к файлам и папкам, потенциально содержащим идентифицирующую информацию;
  • менять идентификацию версии ядра, доступную через vDSO.

В процессе сборки модуль позволяет использовать т.н. «пресеты», реализующие различную логику изменения идентификации. Например, используя пресет «windows» можно получить следующее поведение:

До загрузки модуля

$ ./misc/id.sh
** UNAME 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)

После загрузки модуля

$ ./misc/id.sh
** UNAME 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
   \EFI\Microsoft\Boot\bootmgfw.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)

Скрипт-кидди не пройдут!

>>> Подробности

 , , ,

i82
()

Еще новости

Март 2024

Январь 2024

Декабрь 2023

Октябрь 2023

Май 2023

Апрель 2023

2023

2022

Опросы

Декабрь 2023

2022

2018

2016

2016

2015

2012

Галерея

Статьи

Форум

Вчера

Апрель 2024

Март 2024

Февраль 2024

Февраль 2024

Январь 2024