Как и в случае с любыми процессами, исполняемыми на сервере, первый метод взлома - упоминавшееся уже переполнение буфера. Учитывая природу протокола и требования привилегий root, ftp-демон остается открытым для атаки. Переполнения буфера - это результат слабого программирования, когда проверка граничных условий либо вообще не выполняется, либо для этого используются "небезопасные" системные вызовы. Это позволяет переполнить фиксированный размер места, отведенного под хранение переменной, что может быть использовано в качестве механизма выполнения произвольных команд от имени root. Этот метод известен как "root exploit".
Stackguard - это вариант компилятора gcc, который может защитить программы от атак, направленных на срыв стека, поскольку программы, собранные с помощью Stackguard, "умирают" без исполнения кода, находящегося в стеке. Правда, этот подход достаточно хорош для защиты от будущих проблем, он не является панацеей. Некоторые из ошибок переполнения буфера могут быть обнаружены и при обработке статических переменных, которые не защищены механизмами защиты стека.
Libsafe реализует промежуточный уровень, который размещается между операционной системой и процессом демона и защищает от переполнений буфера. Это достигается за счет перехвата всех вызовов, для которых известны проблемы переполнения. Подробнее см. http://www.bell-labs.com/org/11356/html/security.html
Запуск ProFTPD от имени непривилегированного пользователя представляет крайнюю меру по обеспечению безопасности и создает ряд проблем с функционированием, поскольку в этом случае становится невозможно связываться с 20-м и 21-м портами, за исключением случая, когда они порождаются процессом inetd. Невозможность работать с портами 20 и 21 делает данный подход бесполезным в условиях коммерческого хостинга, когда клиенты ожидают, что соединения производятся на "стандартный" порт.
Назад | Содержание | Вперед |
Вопросы использования паролей | Наверх | Вопросы работы в сети с брандмауэром |