Advertisement
mightyroot

Linux rootkit search

Aug 11th, 2012
327
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.37 KB | None | 0 0
  1. 1. Установка и запуск специализированных инструментов для выявления руткитов, например,
  2. chkrootkit, ossec-rootcheck и rkhunter.
  3. При запуске утилиты rkhunter возможно ложное срабатывание на некоторых системах
  4. с Debian. Вызывающие ложные срабатывания факторы описаны в файле /usr/share/doc/rkhunter/README.Debian.gz
  5.  
  6.  
  7. 2. Проверка корректности сигнатур для всех установленных в системе пакетов.
  8. Для дистрибутивов на базе RPM:
  9.  
  10. rpm --verify --all
  11.  
  12. Для дистрибутивов с dpkg следует использовать скрипт:
  13.  
  14. dpkg -l \*|while read s n rest; do if [ "$s" == "ii" ]; then echo $n;
  15. fi; done > ~/tmp.txt
  16. for f in `cat ~/tmp.txt`; do debsums -s -a $f; done
  17.  
  18. Утилиту debsums следует установить отдельно:
  19. sudo apt-get install debsums
  20.  
  21. Вывод измененных файлов:
  22. debsums -ca
  23.  
  24. Вывод измененных файлов конфигурации:
  25. debsums -ce
  26.  
  27. Посмотреть пакеты без контрольных сумм:
  28. debsums -l
  29.  
  30. Другой вариант контрольных сумм для файлов в Debian:
  31.  
  32. cd /var/lib/dpkg/info
  33. cat *.md5sums | sort > ~/all.md5
  34. cd /
  35. md5sum -c ~/all.md5 > ~/check.txt 2>&1
  36.  
  37.  
  38. 3. Проверка на то, что установленные пакеты действительно подписаны
  39. действующими цифровыми подписями дистрибутива.
  40.  
  41. Для систем на базе пакетного менеджера RPM:
  42.  
  43. for package in `rpm -qa`; do
  44. sig=`rpm -q --qf '%{SIGPGP:pgpsig}\n' $package`
  45. if [ -z "$sig" ] ; then
  46. # check if there is a GPG key, not a PGP one
  47. sig=`rpm -q --qf '%{SIGGPG:pgpsig}\n' $package`
  48. if [ -z "$sig" ] ; then
  49. echo "$package does not have a signature!!!"
  50. fi
  51. fi
  52. done
  53.  
  54.  
  55.  
  56. 4. При выявлении подозрительных пакетов их желательно удалить и установить заново.
  57.  
  58. Например, для переустановки ssh в дистрибутивах на базе RPM следует выполнить:
  59.  
  60. /etc/init.d/sshd stop
  61. rpm -e openssh
  62. zypper install openssh # для openSUSE
  63. yum install openssh # для Fedora
  64.  
  65. Рекомендуется проделать эти операции, загрузившись с LiveCD и используя опцию 'rpm --root'.
  66.  
  67. 5. Проверка целостности системных скриптов в /etc/rc*.d и выявление
  68. подозрительного содержимого в /usr/share. Эффективность выполнения проверок
  69. можно гарантировать только при загрузке с LiveCD.
  70.  
  71. Для выявления директорий в /usr/share, которые не принадлежат каким-либо
  72. пакетам в дистрибутивах на базе RPM можно использовать следующий скрипт:
  73.  
  74. for file in `find /usr/share/`; do
  75. package=`rpm -qf -- ${file} | grep "is not owned"`
  76. if [ -n "$package" ] ; then
  77. echo "weird file ${file}, please check this out"
  78. fi
  79. done
  80.  
  81. В Debian для определения какому пакету принадлежит файл следует использовать "dpkg-query -S":
  82.  
  83. for file in `find /usr/share/GeoIP`; do
  84. package=`dpkg-query -S ${file} 2>&1 | grep "not found"`
  85. if [ -n "$package" ] ; then
  86. echo "weird file ${file}, please check this out"
  87. fi
  88. done
  89.  
  90.  
  91. Аудит suid root программ:
  92.  
  93. find / -user root -perm -4000 -ls
  94.  
  95. 6. Проверка логов на предмет наличия нетипичных сообщений:
  96.  
  97. * Проверить записи в wtmp и /var/log/secure*, обратив особое внимание на
  98. соединения с внешних хостов.
  99. * Проверить упоминание обращения к /dev/mem;
  100. * В /var/log/secure* посмотреть нет ли связанных с работой ssh строк с не
  101. текстовой информацией в поле версии, которые могут свидетельствовать о попытках взлома.
  102. * Проверка удаления файлов с логами, например, может не хватать одного файла с ротацией логов.
  103. * Выявление подозрительных соединений с локальной машины во вне, например,
  104. отправка email или попытки соединения по ssh во время вашего отсутствия.
  105. * Анализ логов пакетного фильтра с целью выявления подозрительных исходящих
  106. соединений. Например, даже скрытый руткитом бэкдор может проявить себя в логах
  107. через резолвинг DNS. Общая рекомендация сводится к контролю на промежуточном
  108. шлюзе соединений во вне для только принимающих внешние соединения машин и
  109. соединений из вне для только отправляющих запросы клиентских машин.
  110.  
  111. 7. Если в процессе проверки обнаружен факт проникновения злоумышленника следует
  112. сделать копию дисковых разделов на отдельный носитель при помощи команды "dd" с
  113. целью более подробного анализа методов проникновения. Только после этого можно
  114. полностью переустановить всю систему с нуля. Одновременно нужно поменять все
  115. пароли и ключи доступа, уведомив об инциденте администраторов серверов, на
  116. которых осуществлялась удаленная работа.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement