В процессе разбора истории со взломом kernel.org было выявлено, что атаковавшим удалось установить вредоносное ПО на Linux-машины некоторых разработчиков, используя которое были перехвачены ключи доступа. В списке рассылки разработчиков ядра Linux [[https://lkml.org/lkml/2011/9/30/425 опубликована]] краткая инструкция по проверке целостности системы и выявлении следов активности злоумышленников, суть которой изложена ниже.Одним из очевидных способов гарантировать чистоту системы от активности злоумышленников является переустановка системы с нуля. Но прежде чем прибегнуть к переустановке, следует убедиться, что система действительно поражена. Чтобы обеспечить выявление скрывающих свое присутствие руткитов проверку желательно выполнять загрузившись с LiveCD.
1. Установка и запуск специализированных инструментов для выявления руткитов, например, [[http://www.chkrootkit.org/ chkrootkit]], [[http://www.ossec.net/main/rootcheck ossec-rootcheck]] и [[http://www.rootkit.nl/projects/rootkit_hunter.html rkhunter]]. При запуске утилиты rkhunter возможно ложное срабатывание на некоторых системах с Debian, вызывающие ложные срабатывания факторы описаны в файле /usr/share/doc/rkhunter/README.Debian.gz
2. Проверка корректности сигнатур для всех установленных в системе пакетов.
Для дистрибутивов на базе RPM:rpm --verify --all
Для дистрибутивов с dpkg следует использовать скрипт:
dpkg -l \*|while read s n rest; do if [ "$s" == "ii" ]; then echo $n;
fi; done > ~/tmp.txt
for f in `cat ~/tmp.txt`; do debsums -s -a $f; doneУтилиту debsums следует установить отдельно:
sudo apt-get install debsumsВывод измененных файлов:
debsums -caВывод измененных файлов конфигурации:
debsums -ceПосмотреть пакеты без контрольных сумм:
debsums -lДругой вариант контрольных сумм для файлов в Debian:
cd /var/lib/dpkg/info
cat *.md5sums | sort > ~/all.md5
cd /
md5sum -c ~/all.md5 > ~/check.txt 2>&1
3. Проверка на то, что установленные пакеты действительно подписаны действующими цифровыми подписями дистрибутива.
Для систем на базе пакетного менеджера RPM:
for package in `rpm -qa`; do
sig=`rpm -q --qf '%{SIGPGP:pgpsig}\n' $package`
if [ -z "$sig" ] ; then
# check if there is a GPG key, not a PGP one
sig=`rpm -q --qf '%{SIGGPG:pgpsig}\n' $package`
if [ -z "$sig" ] ; then
echo "$package does not have a signature!!!"
fi
fi
done5. При выявлении подозрительных пакетов их желательно удалить и установить заново.
Например, для переустановки ssh в дистрибутивах на базе RPM следует выполнить:
/etc/init.d/sshd stop
rpm -e openssh
zypper install openssh # для openSUSE
yum install openssh # для FedoraРекомендуется проделать эти операции, загрузившись с LiveCD и используя опцию 'rpm --root'.
5. Проверка целостности системных скриптов в /etc/rc*.d и выявление подозрительного содержимого в /usr/share. Эффективность выполнения проверок можно гарантировать только при загрузке с LiveCD.
Для выявления директорий в /usr/share, которые не принадлежат каким-либо пакетам в дистрибутивах на базе RPM можно использовать следующий скрипт:
for file in `find /usr/share/`; do
package=`rpm -qf -- ${file} | grep "is not owned"`
if [ -n "$package" ] ; then
echo "weird file ${file}, please check this out"
fi
doneАудит suid root программ:
find / -user root -perm -4000 -ls
6. Проверка логов на предмет наличия нетипичных сообщений:
* Проверить записи в wtmp и /var/log/secure*, обратив особое внимание на соединения с внешних хостов.
* Проверить упоминание обращения к /dev/mem;
* В /var/log/secure* посмотреть нет ли связанных с работой ssh строк с не текстовой информацией в поле версии, которые могут свидетельствовать о попытках взлома.
* Проверка удаления файлов с логами, например, может не хватать одного файла с ротацией логов.
* Выявление подозрительных соединений с локальной машины во вне, например, отправка email или попытки соединения по ssh во время вашего отсутствия.
* Анализ логов пакетного фильтра с целью выявления подозрительных исходящих соединений. Например, даже скрытый руткитом бэкдор может проявить себя в логах через резолвинг DNS. Общая рекомендация сводится к контролю на промежуточном шлюзе соединений во вне для только принимающих внешние соединения машин и соединений из вне для только отправляющих запросы клиентских машин.7. Если в процессе проверки обнаружен факт проникновения злоумышленника следует сделать копию дисковых разделов на отдельный носитель при помощи команды "dd" с целью более подробного анализа методов проникновения. Только после этого можно полностью переустановить всю систему с нуля. Одновременно нужно поменять все пароли и ключи доступа, уведомив об инциденте администраторов серверов, на которых осуществлялась удаленная работа.
URL: https://lkml.org/lkml/2011/9/30/425 https://lkml.org/lkml/2011/10/1/11
Обсуждается: http://www.opennet.ru/tips/info/2631.shtml
> $ apt-file search debsums
>Где?
sudo apt-get install debsums
http://packages.debian.org/stable/debsums
А как же на счет вирусов сидящих в BIOS? :)
man coreboot :)
А там написано как искать в нем вирусы, а то хомячки негодуют =)
> А там написано как искать в нем вирусы, а то хомячки негодуют
> =)А у них есть вирус в BIOS? Реквестирую дампы!
В любое ПО можно встроить вредоносный код, какие проблемы-то? :)
В хомячках слишком мало места.
> А у них есть вирус в BIOS? Реквестирую дампы!Добро пожаловать в дивный новый мир:
www.securelist.com/ru/analysis/208050716/MYBIOS_Vozmozhno_li_zarazit_BIOS
(раньше и сам был настроен весьма скептически).
Да чего там дивного? Примитивная хреновина собирающая биос авардовской же утилей. Работает только на авардбиосе, только если защита от записи не включена, сам авардовский утиль далеко не всегда работает корректно с произвольной версией биоса и прочая. Весьма топорно сработано.
> ... только если защита от записи не включенаЧто-то я давно не видел массовых МБ с перемычкой, запрещающей запись...
> Что-то я давно не видел массовых МБ с перемычкой, запрещающей запись...Давно уж в BIOS Setup засунуто, BIOS "щелкает перемычкой" выставляя GPIO линии чипсета так чтобы у флешки активировался пин Write Enable. Теоретически, конечно, это и вирус может сделать, но практически - на это нет никакого стандарта и никто кроме самого биоса не знает как это включать на конкретной мамке. Поэтому даже родные прошиваторы лишь обламываются и уныло бухтят про то что извольте-ка отключить сначала эту фичу, и попробуйте еще раз.
> Да чего там дивного?Кстати, погуглите по фразе дивный новый мир.
> Кстати, погуглите по фразе дивный новый мир.Годно! Зацитирую ка я кусочек из викии...
--------
Действие романа разворачивается в Лондоне далёкого будущего (около 26 века христианской эры). Люди на всей Земле живут в едином государстве, общество которого — общество потребления. Отсчитывается новое летоисчисление — Эра Т — с появления Форда Т. Потребление возведено в культ, символом потребительского бога выступает Генри Форд, а вместо крестного знамения люди «осеняют себя знаком Т».
--------Кстати да, Джобса явно надо причислить к лику святых в рамках этой религии, не иначе. Хотя пожалуй он "посвятее Форда" будет...
Мануал, я так понимаю, относится к большей степени к разработчикам ядра, чтобы они смогли проверить свои компьютеры? :)
> Мануал, я так понимаю, относится к большей степени к разработчикам ядра, чтобы
> они смогли проверить свои компьютеры? :)Мануал относится ко всем имеющим linux и желающим проверить систему на предмет возможного взлома использую подручные средства.
Хотя правильней всего установить какую-нибудь IDS.
> dpkg -l \*|while read s n rest; do if [ "$s" == "ii" ]; then echo $n;
> fi; done > ~/tmp.txt
> for f in `cat ~/tmp.txt`; do debsums -s -a $f; doneЧуваки не слышали об awk?
> Чуваки не слышали об awk?Грег же написал английским по фоновому -- "_bash_ snippet". :)
А кто говорил что тама сервак под федорой был :(Во первых не нужно удалять а потом ставить пакет есть такая
команада: yum reinstallВо вторых нужно быть тормознутым, долб... ослом чтобы в 21 веке юзать федору
как сервис инета и выклюачать СЕЛинукс !Буду рад когда до этих ослов дойдет, иначе пусть ломают их хоть каждый день !
Первым делом переписал с использованием awk:dpkg -l \* | awk '$1=="ii" {print $2}' | xargs debsums -s -a
Спасибо, возьму на заметку, а то как правило при обнаружении взлома продакшн системы читать топики в интернете нет времени.
Вроде в статье нет упоминаний о уязвимостях типа "hard-link attack" - это когда удаляешь уязвимый пакет, а хард-лин на уязвимый файл остается.
в п.7 они ж говорят, после этого - полностью с нуля переставить всю систему.что и будет защитой от такого типа атак.
Блин, мужуки, надо искать причину, а не следствие атаки.
То, что я переустановлю фейковый ssh легче не станет.
> То, что я переустановлю фейковый ssh легче не станет.А где ты взял фэйковый ssh чтобы его переустановить?
LOL, его ещё нужно и самому где-то брать? )))))
вот такое готовили когда то ...
-
http://www.ourorbits.org/compumaster/manualsfaqs/tikser4_reg...
-
ничто не ново под луной. хотя реально написать можно раз в 5 больше только базовых примочек по обеспечению пассивной безопасности и контролю
Вот кульные бумажкиhttp://benchmarks.cisecurity.org/en-us/?route=downloads.brow...
какаято наивная статья, почти ничо не описано где искать следы
хацккер может еще
1) в /home/user/* засунуть чтонибудь, например .profile свой, или в .kde/share/config/kdedrc свои модули прописать для kde, или свой скринсейвер в настройках прописать, кароч большое поле для деятельности -- все это проверяется через mtime
2)первичные программы, библиотеки и модули,ядро и скрипты (в /etc или /usr/share) заменить на свои, -- иметь контрольную сумму md5sum для всех файлов этих каталогов и после взлома посмотреть atime для последних запускаемых файлов этих каталогов для выявления типа атаки и наличие троянов
3)поменять настройки в /etc или /usr/share -- проверять md5sum и mtime
4)залезть в каталог дестрибутивов и там прописать трояны в программах или исходниках -- иметь md5sum всех файлов на отдельном носителе и посмотреть atime и mtime
5)поменять права у исполнимых файлов с целью облегчения запуска или возможной модификации -- хранить lsmod каталогов на отдельном носителе
6)модифицировать BIOS системной платы или видеокарты(мож еще какие биосы при загрузке запускаются, не помню) -- иметь сохраненные дампы биос и их прошивки для восстановления
7)заменить файлы или каталоги в /tmp на свои или со своими правами -- хранить ls -RFlnt /tmp на отдельном носителе
8)заменить /var/log/* на свои -- следить чтобы ctime каждого лога ctime не было больше mtime
9)сделать то, что я за не успел придумать за час писания этого коментария
ага, на боевом сервере на другом конце земли service sshd stop; rpm -e opensshДелается это так: yum reinstall openssh, далее service sshd restart
Надо помнить что при реинстале конфиги не переустанавливаются, поэтому либо удаляем их пере реинсталом и заново настраиваем, либо вытаскиваем из бэкапов (опять таки после реинстала)
Опять же перед тем как делать reinstall смотрим куда смотрят репозитарии