Читаем Linux глазами хакера полностью

Если троянская программа направлена на воровство паролей, то после заражения она может незаметно для пользователя выслать письмо с файлом паролей на определенный E-mail-адрес. Профи легко находят такие адреса (с помощью отладки приложения), но на этом все останавливается. Профессиональные хакеры не глупы и для троянских программ регистрируют почтовые адреса на бесплатных сервисах, при этом указывается ложная информация о владельце. Злоумышленник заводит почтовый ящик или проверяет его на предмет писем с паролями только через анонимный прокси-сервер, и узнать реальный IP-адрес человека становится очень сложно.

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

Опасность, которую таят в себе троянские программы, подтверждается и тем, что большинство антивирусных программ стали сканировать не только на наличие вирусов, но и троянов. Например, антивирусные программы идентифицируют Back Orifice, как вирус Win32.BO.

<p>1.1.6. Denial of Service</p>

Самая глупая атака, которую могли придумать хакеры, — это отказ от обслуживания (DoS). Заключается она в том, чтобы заставить сервер не отвечать на запросы. Как это можно сделать? Очень часто такого результата добиваются с помощью зацикливания работы. Например, если сервер не проверяет корректность входящих пакетов, то хакер может сделать такой запрос, который будет обрабатываться вечно, а на работу с остальными соединениями не хватит процессорного времени, тогда клиенты получат отказ от обслуживания.

Атака DoS может производиться двумя способами: через ошибку в программе или перегрузку канала/мощности атакуемой машины.

Первый способ требует знания уязвимостей на сервере. Рассмотрим, как происходит отказ от обслуживания через переполнение буфера (чаще всего используемая ошибка). Допустим, что вы должны передать на сервер строку "HELLO". Для этого в серверной части выделяется память для хранения 5 символов. Структура программы может выглядеть примерно следующим образом:

Код программы

Буфер для хранения 5 символов

Код программы

Предположим, пользователь отправит не пять, а сто символов. Если при приеме информации программа не проверит размер блока, то при записи данных в буфер они выйдут за его пределы и запишутся поверх кода. Это значит, что программа будет испорчена и не сможет выполнять каких-либо действий, и, скорее всего, произойдет зависание. В результате сервер не будет отвечать на запросы клиента, т.е. совершится классическая атака Denial of Service через переполнение буфера.

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

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

Если нет программных ограничений на ресурсы, то сервер будет обрабатывать столько подключений, сколько сможет. В таком случае атака может производиться на канал связи или на сервер. Выбор цели зависит от того, что слабее. Например, если на канале в 100 Мбит стоит компьютер с процессором Pentium 100 МГц, то намного проще убить машину, чем перегрузить данными канал связи. Ну а если это достаточно мощный сервер, который может выполнять миллионы запросов в секунду, но находится на канале в 64 Кбит, то легче загрузить канал.

Перейти на страницу:

Похожие книги