Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #58, СЕНТЯБРЬ 2005 г.

Безопасность сетевых протоколов

ЗАРАЗА

Спецвыпуск: Хакер, номер #058, стр. 058-084-7


3. Ошибки реализации сетевых протоколов в клиентских приложениях

Хотя это и могло бы быть вкусным, мы не будем подробно разбирать уязвимости конкретных реализаций. На момент написания статьи в базе уязвимостей (www.security.nnov.ru) 577 клиентских ошибок (более 10%). Назовем только наиболее распространенные проблемы:

- Переполнение буфера, ошибки форматной строки, целочисленные переполнения.

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

- Манипуляция данными.

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

- Отказ в обслуживании.

Возникает при разборе сложных или нестандартных данных и может привести к зависанию приложения (вечным циклам) или краху. Чаще всего возникает из-за невозможности обработать исключительные или граничные ситуации.

- Недостаточная проверка данных.

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

- Утечка информации.

Клиент передает данные о себе системе, в которой оно работает, или пользователю. И передает больше, чем нужно.

Пора делать выводы

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

<<220 mailserver.domain.example Microsoft ESMTP MAIL Service, Version: 6.0.3790.1 830 ready at Thu, 14 Jul 2005 00:21:38 +0400

>>EHLO ME

<<250- mailserver.domain.example Hello [172.22.22.227]

<<250-TURN

<<250-SIZE

<<250-ETRN

<<250-PIPELINING

<<250-DSN

<<250-ENHANCEDSTATUSCODES

<<250-8bitmime

<<250-BINARYMIME

<<250-CHUNKING

<<250-VRFY

<<250-X-EXPS GSSAPI NTLM LOGIN

<<250-X-EXPS=LOGIN

<<250-AUTH GSSAPI NTLM LOGIN

<<250-AUTH=LOGIN

<<250-XEXCH50

<<250 OK

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

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

Чем сложнее протокол, тем выше вероятность наличия бреши в нем. Нужно только найти.

Некоторые клиентские приложения выбирают протокол аутентификации на автомате. Можно склонить пользователя к выбору более пробиваемого протокола - вплоть до открытого текста :).

На сайте www.security.nnov.ru есть база данных, в которой собраны практически все известные уязвимости.

Досадное недоразумение Mozilla Firefox - www.security.nnov.ru/Fnews19.html.

Назад на стр. 058-084-6  Содержание