Пароли dial-up-доступа к Internet являются весьма вероятным объектом интереса для среднестатистического крэкера, так как их кража приносит ему реальную прибыль при минимальном риске. Широкая распространенность dialup-доступа и низкий, как правило, уровень профессионализма пользователей создает все предпосылки для приобретения этим явлением массового характера. Существует настоящий "рынок" ворованных логинов, а желающие заняться этим делом самостоятельно и без труда могут раздобыть соответствующее ПО. В такой ситуации практически все разработчики альтернативных средств дозвона встраивают в свои продукты собственные механизмы хранения и шифрования паролей и спешат заверить пользователей: "Теперь Вам нечего бояться, что кто-то украдёт Ваши пароли" (цитирую документацию программы VDialer). Это утверждение, мягко говоря, не соответствует действительности, и цель данной статьи - несколько прояснить ситуацию и предостеречь слишком доверчивых пользователей. Сразу, чтобы избежать ненужной полемики, хочу заявить, что вся нижеприведенная информация публикуется исключительно в образовательных целях, и убедительно прошу не рассматривать этот материал как руководство к действию.
Пути доступа к "недоступному"
Традиционный метод создания программ-взломщиков состоит в анализе кода диалера, реконструкции алгоритма шифрования и написании собственного декриптора, что представляет собой достаточно трудоемкий процесс, требующий неплохой квалификации. В таком "соревновании" брони и снаряда автор диалера имеет очевидные преимущества (т.к. пишет, как правило, на языке высокого уровня), и, разумеется, этот метод не приводит к написанию универсального ПО. Однако настоящий хэкинг состоит как раз не в нудной, однообразной работе, а в поиске неожиданных (и эффективных) решений. Если немного подумать, то можно заметить, что функции дешифрования паролей содержит в себе сам диалер, и ими можно воспользоваться. Сразу хотелось бы объявить ключевое утверждение данного материала: "никакой диалер, функционирующий на уровне Windows API, не способен обеспечить никакой защиты паролей". Чтобы доказать это утверждение, достаточно просто прочитать документацию MS SDK. Дело в том, что любой диалер прямо или косвенно использует для установления соединения функцию RasDial библиотеки RASAPI32.DLL, а имя пользователя и пароль этой функции передаются в открытом виде. Отсюда уже можно предложить первый метод атаки на пароль, который состоит в перехвате функций RasDialA/W (ANSI и UNICODE варианты RasDial) и анализе передаваемых им параметров. Реализующая этот метод программа в среде Win9x способна осуществлять мониторинг всей системы, под WinNT/2k - только заданных процессов, что создает некоторые трудности (главным образом технического и "эстетического" характера) для использования этого метода в составе автономно функционирующего ПО - "троянцев", логгеров и т.д. Кроме того, существуют еще несколько функций, перехват которых приводит к сходным результатам.
Описанная уязвимость, к сожалению (а для отдельных личностей - к счастью), далеко не единственная, и ситуация развивается как в сказке - чем дальше, тем страшнее. Ниже приведен краткий список уязвимостей, окончательно снижающих уровень безопасности паролей до нуля:
- [Win9x]: используя стандартный набор функций библиотеки RASAPI32.DLL, для активных соединений можно получить указатели на структуру данных, содержащую имя соединения, телефон, имя пользователя и пароль (метод реализован в программе DuMP9x, разработанной k9 Digital Security Team).
- [Win9x]: аутентификация пользователей выполняется при помощи модулей управления сессиями (SMM), предусмотрена возможность установки SMM сторонних разработчиков (ничто не мешает написать SMM, выполняющий некоторые "непредусмотренные" действия). Из-за хорошей замаскированности метод представляется перспективным для использования в составе "троянского" ПО.
- [WinNT]: имя пользователя и пароль присутствуют в контексте процесса RASMAN в виде UNICODE-строк в течение всего времени соединения.
- [WinNT]: "драйверы" протоколов аутентификации реализованы в виде dll-библиотек (зарегистрированных в реестре), что позволяет подменить стандартные компоненты.
Таким образом, все ухищрения авторов диалеров по созданию "невзламываемых" алгоритмов шифрования (как правило, различных вариаций на тему классики) пропадают даром из-за архитектуры системы RAS.
Что делать, чтобы не возникал
вопрос "Кто виноват?"
В заключение позволю себе привести некоторые рекомендации (главным образом, организационного характера), которые могут быть полезными для предотвращения кражи dialup-паролей (и не только):
- "Бойтесь данайцев, дары приносящих", и не пускайте за свой компьютер различных "добровольных помощников" (либо контролируйте, что именно они делают).
- Контролируйте доступ к своему компьютеру (например, установив пароль на BIOS и хранитель экрана).
- Проверяйте все поступающее по любым каналам программное обеспечение на наличие вирусов и "троянцев".
- Если позволяет провайдер, часто меняйте пароль - если он был похищен в результате "одноразовой" акции, то вы потеряете не очень много.
- Не особенно полагайтесь на различные "антихакерские" утилиты (типа RegRun, CheckReg и т.д.), проверяющие реестр, ini-файлы и т.п. - существует масса способов их нейтрализации. На мой взгляд, наиболее достоверные результаты представляют различное антивирусное ПО и файерволлы.
Александр БЫЧЕНКОВ,
terl0g@tut.by,
k9 Digital Security Team,
k9@tut.by
Комментарии
По поводу троянов и NT, проверил целую кучу всяких разных и ни один из них не смог стырить ниодного пароля, при этом даже неиспользовался прокси и фаервол.
отключает почти все известные файрволлы и антивирусные программы. найти мне оказалось невозможным..слишком нестандартно работает.
Хотя, как мне кажется, у обычного пользователя особо украсть нечего. Как на том компе в МО РФ, где в результате атаки был выкраден список чемпионов по секс-покеру.
пришлите мне запрос на мыло...я пошлю...