По эту сторону взлома

Блин, неприятно оказываться взломанным… Злые хацкеры из Бразилии поломали мне хостинги – дефейснули, точнее, через очередную дырку в пхп-софте клиентов, в принципе, это фигня, но вот дальнейший разбор полетов показал, что взлом зашел слишком далеко – на серваке обнаружился rootkit. Штука весьма неприятная, но тоже лечимая – поскольку удалось вычислить кто и как им управляет и я это дело быстренько закрыл, но потом оказалось, что половина системных файлов уже пропатчена для того, чтобы руткит нельзя было вычислить. Помогла штука под названием busybox – она включает в себя практически все файлы, которые обычно подменяются. С ее помощью я начал вычищать и восстанавливать файлы. Хакеры (или руткит) использовали очень интересную штуку – аттрибуты файлов (у ext2 файловой системы есть набор некоторых аттрибутов, которые так просто и не увидишь). Когда я пытался удалить “зараженный” файл, система сообщала мне, что Operation not permitted. И это при том, что я был рутом! Спасли команды lsattr, chattr – которые как раз и показывают и меняют эти хитрые аттрибуты. В общем процесс более-менее наладился, пока я не напоролся на файл ifconfig – он не удалялся никак… Дальнейшие проверки показали, что файловая система повреждена – inode файла был отрицательным. Я попробовал запустить fsck – меня предупредили о неприятностях и я ребутнул машину. Больше я ее удаленно не видел. Звонок к провайдеру обрадовал – на консоли висела надпись Unable to mount root file system.
Пришлось ехать на площадку к провайдеру, большое спасибо товарищу apl, за содействие в последующем. На месте оказалось, что fsck после 2х часовой работы не принес никаких результатов и linux пришлось снести… Хорошо, что были бэкапы юзерских данных и конфигов. Правда я уже вторые сутки занимаюсь восстановлением сервера и спал за это время только часа четыре, но все-равно, могло быть и хуже.
Теперь там вместо линукса стоит FreeBSD и я надеюсь, что с безопасностью будет полегче, все ж под фрю ставить необходимый софт и его потом апдейтить значительно легче, чем под линух. Да и саму фрю держать в свежем виде легче.
Из всего произошедшего можно сделать следующие выводы:
-Паранойя в среде админов – это правильное явление.
-Самое большое внимание надо уделять php – именно тудой происходит большинство “пролезаний” в систему.
-Нужно ставить системы мониторинга целостности системы и регулярно читать их отчеты.
-Вполне неплохим решением может быть установка системы обнаружения проникновения или осуществления попыток.
-Фаерволл должен находится в режиме default to deny и держать открытым ограниченное количество портов. В идеале не должны быть вообще доступны непривилегированные порты.
-/tmp должна быть отдельной системой, смонтированной как nodev, nosuid, noexec – т.е. даже если “плохие парни” выполнят код, скачают в темп какой-нить эксплойт, то запустить его им не удастся.
Наверняка найдется еще куча советов, но сейчас я очень хочу спать и вряд ли их вспомню 🙂

Similar Posts

  • Крым

    Съездил в Ялту на выходных, очень здорово, особенно то, что на самолете. У них сейчас зимние скидки и всякие акции, поэтому цена очень даже сопоставима с поездом, но скорость и комфорт всяко выше. Да и смена обстановки – это позитив, как ни крути 🙂 Особенно такая. Были на Ай-Петри, во второй раз за зиму увидел…

  • Скриптование

    Сегодня я начал прикручивать к движку механизм скриптов (Lua+Luabind) просто подключение и вывод в лог hello world прошел на удивление безоблачно 🙂 Проблемы начались, когда я начал подкручивать экспорт/импорт классов из движка в скрипты, почему-то напрочь отказались работать пропертисы, двиг вываливается на ассертах, пришлось оставить старые добрые геттеры и сеттеры. В принципе после многих часов…

  • Отпускное

    Остаются считанные часы, до момента, когда наступит долгожданный "ОН"! Я загружусь в машину и мы отправимся на побережье адриатики в Хорватии. На машине. Шенгенский транзит открыт, вещи упакованы, маршрут составлен, надеюсь получится совместить и увлекательно путешествие по Европе, и тупой до банальности матрас на пляже – надо же всё-таки и отлёживаться когда-то 🙂  Share this post: Share on X…

  • Открытие журнала

    Вот и я заразился новомодной болезнью блоггинга 🙂 Тоже завел себе ЖЖ, надеюсь проболею еще долго, тенденция к чему-то такому у меня начала проявляться раньше – я начал писать daily journal в палм 🙂 Share this post: Share on X (Twitter) Share on Facebook Share on LinkedIn Share on Email Share on Reddit