Backdoor

Если взломщик получил доступ к серверу, то чтобы оставаться незаметным, он устанавливает в системе программы backdoor (потайные двери). Такие программы чаще всего действуют следующим образом:

- на каком-либо порту открывается порт и программа ожидает подключения хакера;

- когда соединение состоялось, то программа открывает для хакера командную оболочку на этом порту, чтобы можно было выполнять директивы. 

Это вам ничего не напоминает? Да, троянские программы работают подобным образом, но троянов подбрасывают как вирусы и ожидают, что администратор сам их запустит, а backdoor взломщик закачивает на сервер и устанавливает сам. 

Есть сходство и с программами rootkit. В настоящее время стирается грань между разными хакерскими утилитами. Одна программа может выполнять сразу несколько функций. 

Надо уточнить, что программы backdoor нельзя купить в ближайшем магазине. Взломщики пишут их для собственного использования, и все же в интернете можно встретить некоторые из этих разработок. 

Хакеры не очень любят раскрывать свои программы, потому что если они станут достоянием общественности, то лазейки, через которые взломщик проникает в систему, закроют. 

Самый простой и быстрый способ найти чужую программу — просмотреть процессы, работающие в системе, и открытые порты. Как следует из определения, backdoor — это программа, которая ожидает подключения взломщика, а значит, должен присутствовать работающий процесс этой программы. Выполняем команду ps в командной строке Linux и смотрим, что сейчас работает в системе. После этого сканируем открытые порты, используя утилиту netstat, и ищем злостную программу. 

При просмотре процессов нужно убедиться, что файл программы ps не модифицирована хакером. Так как исходные коды ОС Linux доступны, злоумышленник может изменить программу ps так, чтобы она не отображала процесс backdoor, и подбросить свой вариант в вашу систему. Такое встречается редко, но исключать ничего нельзя. 

Доступность исходных кодов позволяет хакеру изменять и любые другие программы. Например, может быть трансформирован демон telnetd, и после этого, помимо основных своих функций, программа будет играть роль потайного входа. Убедитесь, что исполняемые файлы всех работающих процессов не изменены. 

Некоторые демоны могут работать с подгружаемыми модулями. Злоумышленник может написать и подключить свой модуль вместо или в дополнение к стандартным, и его определить уже сложнее, т. к.. основной процесс не модифицирован. 

Изменение исходных кодов достаточно сложное занятие, и нужно обладать хорошими знаниями в программировании, поэтому данный метод является наиболее опасным, но мало распространен. И все же, его нельзя сбрасывать со счетов, потому что никогда не знаешь, какой квалификации взломщик проник в систему. 

При просмотре процессов будьте внимательны. Хакер может назвать свою утилиту telnetd, и тогда в вашей системе будет две программы с таким названием. Одна будет системной, а другая — хакерская, которая выполняет функции backdoor. Будьте бдительны при просмотре списка открытых процессов. 

Если ваш сервер работает постоянно, то хакер может смело запускать свой процесс backdoor и уходить восвояси. Если сервер хоть иногда выключается, то злоумышленник должен позаботиться о том, чтобы после перезагрузки backdoor тоже запустился, иначе потайной вход в систему будет закрыт. 

Обязательно проверьте все сценарии, отвечающие за загрузку сервисов, на предмет изменений. Они находятся в директории /etc/rc.d/init.d. Это может быть сложно, потому что в ОС Linux таких сценариев достаточно много. Но хакер в любой из них может добавить команды загрузки своей утилиты. 

Допустим, что вы не нашли никаких лишних процессов, и ни один сервис или программа не изменены. Это еще не значит, что потайного входа нет. Недавно я встретил новый способ прятать процессы от недремлющего ока администратора — модули ядра. 

С недавних пор ядро Linux стало действительно модульным. Это удобно, потому что позволяет получить новые возможности, просто подгрузив необходимый блок. Если раньше для этого требовалась перекомпиляция ядра, то теперь всего несколько команд, и все готово. 

Как же взломщики используют ядро, чтобы спрятать свой процесс? Программа ps (и подобные ей) для определения запущенных процессов используют ядро. Именно оно знает, что работает в данный момент. Хакерами были написаны разнообразные модули, которые не дают ядру сообщить об определенных процессах, поэтому администратор просто не увидит программу backdoor. Именно поэтому продолжаем анализировать систему в поисках зло-программ.

Итак, помимо запущенного процесса, программа backdoor должна открыть какой-то порт и ожидать подключения со стороны хакера. Таким образом, мы должны контролировать и это. 

Самый быстрый способ определить сервисы, ожидающие подключения — это использовать команду netstat. Но так как одноименная программа входит в состав Linux, то ее исходные коды также могут быть изменены. А вот от сканера портов не скроешься, правда, для его работы необходимо больше времени. 

Лучший способ спрятать backdoor от сетевых анализаторов — использовать при программировании RAW Sockets (сырые сокеты), как это делают снифферы. На сервере программа backdoor прослушивает весь трафик, и если видит пакеты, помеченные специальным образом, то выполняет инструкции, описанные в этом пакете. Хакеру только остается направлять широковещательные или просто безымянные пакеты, имеющие определенный идентификатор, чтобы сервер выполнял необходимые инструкции. 

Утилита netstat и сканеры портов не могут определить снифферы, поэтому они тут бессильны. О снифферах мы поговорим в следующем разделе, а сейчас я только скажу, что для прослушивания трафика, сетевая карта должна работать в специализированном режиме, который легко определяется, если просмотреть состояние сетевого интерфейса командой ifconfig. 

Единственный недостаток — во время работы сниффера повышается нагрузка на сервер. В этом случае все пакеты, которые проходят мимо сетевой карты, поднимаются до уровня ОС. 

Но даже такую программу backdoor можно найти. В данном случае можно поступить по правилу "клин клином вышибают". Запускаем сниффер и просматриваем, что проходит через нашу сетевую карту. Если мы видим пакеты, которые отсылают закрытую информацию или пароли, то это может указывать на наличие в системе программы backdoor. От сниффера может скрыться только зашифрованный трафик. 

Но самый лучший способ защиты от backdoor — хорошо настроенный сетевой экран. Если в применяемой вами политике безопасности по умолчанию все запрещено, и разрешен только доступ к публичным ресурсам, то даже если сторонняя программа откроет какой-то порт, то подключиться к нему будет невозможно без изменения фильтров в сетевом экране. 



Внимание!!! Если ты копируешь эту статью себе на сайт, то оставляй ссылку непосредственно на эту страницу. Спасибо за понимание

Комментарии

Паника, что-то случилось!!! Ничего не найдено в комментариях. Срочно нужно что-то добавить, чтобы это место не оставалось пустым.

Добавить Комментарий

О блоге

Программист, автор нескольких книг серии глазами хакера и просто блогер. Интересуюсь безопасностью, хотя хакером себя не считаю

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне