Безопасность dial-up: мифы и реальность

Пароли dial-up-доступа к Internet являются весьма вероятным объектом интереса для среднестатистического крэкера, так как их кража приносит ему реальную прибыль при минимальном риске. Широкая распространенность dialup-доступа и низкий, как правило, уровень профессионализма пользователей создает все предпосылки для приобретения этим явлением массового характера. Существует настоящий "рынок" ворованных логинов, а желающие заняться этим делом самостоятельно и без труда могут раздобыть соответствующее ПО. В такой ситуации практически все разработчики альтернативных средств дозвона встраивают в свои продукты собственные механизмы хранения и шифрования паролей и спешат заверить пользователей: "Теперь Вам нечего бояться, что кто-то украдёт Ваши пароли" (цитирую документацию программы VDialer). Это утверждение, мягко говоря, не соответствует действительности, и цель данной статьи - несколько прояснить ситуацию и предостеречь слишком доверчивых пользователей. Сразу, чтобы избежать ненужной полемики, хочу заявить, что вся нижеприведенная информация публикуется исключительно в образовательных целях, и убедительно прошу не рассматривать этот материал как руководство к действию.


Пути доступа к "недоступному"

Традиционный метод создания программ-взломщиков состоит в анализе кода диалера, реконструкции алгоритма шифрования и написании собственного декриптора, что представляет собой достаточно трудоемкий процесс, требующий неплохой квалификации. В таком "соревновании" брони и снаряда автор диалера имеет очевидные преимущества (т.к. пишет, как правило, на языке высокого уровня), и, разумеется, этот метод не приводит к написанию универсального ПО. Однако настоящий хэкинг состоит как раз не в нудной, однообразной работе, а в поиске неожиданных (и эффективных) решений. Если немного подумать, то можно заметить, что функции дешифрования паролей содержит в себе сам диалер, и ими можно воспользоваться. Сразу хотелось бы объявить ключевое утверждение данного материала: "никакой диалер, функционирующий на уровне Windows API, не способен обеспечить никакой защиты паролей". Чтобы доказать это утверждение, достаточно просто прочитать документацию MS SDK. Дело в том, что любой диалер прямо или косвенно использует для установления соединения функцию RasDial библиотеки RASAPI32.DLL, а имя пользователя и пароль этой функции передаются в открытом виде. Отсюда уже можно предложить первый метод атаки на пароль, который состоит в перехвате функций RasDialA/W (ANSI и UNICODE варианты RasDial) и анализе передаваемых им параметров. Реализующая этот метод программа в среде Win9x способна осуществлять мониторинг всей системы, под WinNT/2k - только заданных процессов, что создает некоторые трудности (главным образом технического и "эстетического" характера) для использования этого метода в составе автономно функционирующего ПО - "троянцев", логгеров и т.д. Кроме того, существуют еще несколько функций, перехват которых приводит к сходным результатам.

Описанная уязвимость, к сожалению (а для отдельных личностей - к счастью), далеко не единственная, и ситуация развивается как в сказке - чем дальше, тем страшнее. Ниже приведен краткий список уязвимостей, окончательно снижающих уровень безопасности паролей до нуля:

  1. [Win9x]: используя стандартный набор функций библиотеки RASAPI32.DLL, для активных соединений можно получить указатели на структуру данных, содержащую имя соединения, телефон, имя пользователя и пароль (метод реализован в программе DuMP9x, разработанной k9 Digital Security Team).
  2. [Win9x]: аутентификация пользователей выполняется при помощи модулей управления сессиями (SMM), предусмотрена возможность установки SMM сторонних разработчиков (ничто не мешает написать SMM, выполняющий некоторые "непредусмотренные" действия). Из-за хорошей замаскированности метод представляется перспективным для использования в составе "троянского" ПО.
  3. [WinNT]: имя пользователя и пароль присутствуют в контексте процесса RASMAN в виде UNICODE-строк в течение всего времени соединения.
  4. [WinNT]: "драйверы" протоколов аутентификации реализованы в виде dll-библиотек (зарегистрированных в реестре), что позволяет подменить стандартные компоненты.

Таким образом, все ухищрения авторов диалеров по созданию "невзламываемых" алгоритмов шифрования (как правило, различных вариаций на тему классики) пропадают даром из-за архитектуры системы RAS.


Что делать, чтобы не возникал вопрос "Кто виноват?"

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

  1. "Бойтесь данайцев, дары приносящих", и не пускайте за свой компьютер различных "добровольных помощников" (либо контролируйте, что именно они делают).
  2. Контролируйте доступ к своему компьютеру (например, установив пароль на BIOS и хранитель экрана).
  3. Проверяйте все поступающее по любым каналам программное обеспечение на наличие вирусов и "троянцев".
  4. Если позволяет провайдер, часто меняйте пароль - если он был похищен в результате "одноразовой" акции, то вы потеряете не очень много.
  5. Не особенно полагайтесь на различные "антихакерские" утилиты (типа RegRun, CheckReg и т.д.), проверяющие реестр, ini-файлы и т.п. - существует масса способов их нейтрализации. На мой взгляд, наиболее достоверные результаты представляют различное антивирусное ПО и файерволлы.

Александр БЫЧЕНКОВ,
terl0g@tut.by,
k9 Digital Security Team,
k9@tut.by

Версия для печатиВерсия для печати

Номер: 

50 за 2000 год

Рубрика: 

Защита информации
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Аватар пользователя Sinister
Толковая статья.

По поводу троянов и NT, проверил целую кучу всяких разных и ни один из них не смог стырить ниодного пароля, при этом даже неиспользовался прокси и фаервол.

Аватар пользователя Romantik
Повезло...недавно для теста принесли одни троянец - работает по телнету локально и очень хитро во вне.

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

Аватар пользователя Sinister
Клёва где можна взять ? :)
Аватар пользователя Эдуард
Нападение всегда опережает в развитии защиту -- диалектика, однако. Поэтому самый лучший, и почти 100% надежный способ защиты данных - не подключать оборудование, где хранится закрытая информация к линиям связи, РС - к Интернету, не оставлять ключи в сейфе, папки с делами на столе (Г. Жеглов), не рассказывать незнакомым людям свою автобиографию, не класть деньги и документы в задний карман брюк (особенно если сильно пьян) ... и т.д.

Хотя, как мне кажется, у обычного пользователя особо украсть нечего. Как на том компе в МО РФ, где в результате атаки был выкраден список чемпионов по секс-покеру.

Аватар пользователя Sinister
Толковый админ и хакер, это где то рядом ;)
Аватар пользователя Romantik
Cинистер, у меня...

пришлите мне запрос на мыло...я пошлю...