Безопасность в Miranda IM

Terabyte

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

=================================
Как украсть и расшифровать пароль
=================================

Для расшифровки паролей на данный момент мне известно две утилиты: Miranda Password Decryptor и mimpd (http://www.web-hack.ru/download/info.php?go=62), Advanced IM Password Recovery, PassView. Так же красть и одновременно расшифровывать пароли от Миранды и других популярных мессенджеров может троян Pinch (http://www.web-hack.ru/download/info.php?go=49).

======================
Защита пароля от троев
======================

Пароль у миранды хранится в профиле юзера (в dat-файле) по этому кража пароля злоумышленником сводится либо к краже всего dat файла (мало вероятно из-за большого размера, если большая хистори) или расшифровка пароля на компьютере жертвы и отправка к злоумышленнику. Алгоритм поиска профиля у трояна может быть:

1) Ищет в каталоге, который указывается по умолчанию при установки миранды инсталлером (C:\Program Files\Miranda\ или C:\Program Files\Miranda IM\). Отсюда правило: скачивайте с сайта zip версию и распаковывайте желательно не на диск C, а там где злоумышленник вообще бы не догодался искать программу.
2a) По ключу в реестре (HKEY_LOCAL_MACHINE\SOFTWARE\Miranda), в строковом параметре Install_dir , значение которого равно адресу папки миранды с профилями (лично мне вообще не понятно для чего разработчики сделали функцию добавления этого ключа, для троянов специально что ли?). Избавиться от этой проблемы тоже можно: открываем в любом HEX-редакторе (например, WinHex) исполняемый файл миранды (miranda32.exe), находим в нем "Install_dir" и меняем на что ни будь типа "Install_xxx". Теперь заходим в реестр и удаляем старый параметр "Install_dir" (если до этого вы запускали миранду). Так же можно изменить не только название параметра, но и название раздела (например, на Mir@nda). Для полной надежности, можно еще изменить расширение профайла, для этого заменяем в miranda32.exe все слова ".dat" на что нибудь типа ".qwe". Далее нужно будет изменить расширения уже существующих профилей. Кстати, интересный совет дал f1n1st: оказывается, миранда при запуске сканирует папку не просто на наличии файлов с расширением *.dat, а на наличиие ВСЕХ файлов у которых расширение начинается с dat, т.е. если вы переименуете у профилей расширения в *.datmy, то миранда профиль найдет, а трой возможно нет.
2b) Начиная с версии выпущенной с 2003-09-26 для удаления функции добавляющей в реестр путь к миранде. Регулируется это параметром _Sys/CreateRegKey в профайле (т.е. для каждого профиля нужно проделать данную операцию). Для этого нужно создать файл autoexec_noreg.ini со следующим содержимым: [_Sys] CreateRegKey=b0 После запуска миранды будет пропатчен запущенный профиль, и файл будет удален. Если у вас несколько профилей, то эту операцию нужно провести для каждого профиля.
3) Довольно интересным, но в то же время геморным способом использования миранды при нескольких профилей является способ по изменению ресурсов в ICQ.dll. Он заключается в том, что если в настройках протокола удалить пароль на uin, то при каждой попытке коннекта к серверу будет спрашиваться пароль, но можно облегчить эту задачу. Для этого нам понадобится любой редактор ресурсов (например, Resource Hacker (http://www.web-hack.ru/download/download.php?go=67)). Открываем им ICQ.dll и далее идем к диалогу (Dialog) 105. Далее кликаем правой кнопкой мыши по полю ввода пароля и выбираем Edit Control, вписываем в поле Caption ваш пароль и сохраняем изменения в файле. Вообще и в данном случае можно будет юзать два номера асек, для этого просто создайте в папке с плагинами копию ICQ.dll и отредактируйте его под нужный пароль.

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

*) mSecure (http://miranda-im.org/download/details.php?action=viewfile&id=848) - позволяет шифровать пароль (используется SHA для хеширование и Blowfish для шифрование) и ограничивать вход в профиль по паролю.
*) LSecurity (http://miranda-im.org/download/details.php?action=viewfile&id=173), PassProt, Secure Login и д.р. - данные плагины ограничивают доступ к миранде паролем, который служат для аутификации к профилю и вашему уину (при загрузке пароль временно записывается в профиль). После выгрузки миранды этот пароль удаляется из профиля. Данный способ не очень хорош тем, что используется один и тот же пароль и его может украсть злоумышленник любым кейлогером.

Теперь давайте подробней разберем плагин mSecure (кстати, его написал наш соотечественник). И так, скачиваем плагин, кидаем в соответствующую папку, идем в настройки и задаем любой пароль, который будет запрашиваться у вас теперь при каждом запуске миранды. Алгортим работы плагина следующий (описание дал сам автор):

* Запуск плагина.
* Если пароль mSecure не установлен, плагин никак себя не проявляет.
* Установим пароль mSecure (будем называть его мастер-пароль).
* При выгрузке миранды, если установлен мастер-пароль, mSecure берет все пароли от протоколов (далее просто пароли), шифрует их с помощью мастер-пароля, записывает зашифрованные пароли в профайл, записывает хеш-функцию от мастер-пароля в профайл и стирает пароли от протоколов (напоминаю, мы оставили только зашифрованные пароли). * При остальных загрузках миранды, если мы находим хеш-функцию от мастер-пароля, значит мастер-пароль установлен. Выводим диалог, просим ввести мастер-пароль. Если хеш от введенного мастер-пароля совпадает с сохраненным хешем, мы расшифровываем пароли от протоколов, записываем их в профайл и продолжаем загрузку миранды. * Когда мы обнуляем мастер-пароль (ставим пустой), mSecure стирает его хеш из профайла и все зашифрованные данные. Так что при следующем запуске mSecure никак себя проявлять не будет.

К сожалению есть и ложка дегтя, даже две:
1) В тот момент, когда Миранда запущена, настоящий пароль от номера аси записан в положенном месте в dat-файле и в этот момент его может расшифровать троян.
2) Если работу миранды завершить не стандартным способом (например, она вылетит), то пароль не сможет удалиться.

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

==================================================
Другие плагины безопасности (Security and Privacy)
==================================================

По данной ссылке (http://miranda-im.org/download/index.php?action=display&id=38) распологаются плагины связанные с повышением безопасности миранды. Я бы хотел дать не большое описание наиболее хороших плагинов:

*) SecureIM - позволяет устанавливать безопасное соединение с другим пользователем такого же плагина, чтобы злоумышленник не смог наснифать разговор собеседников.
*) GnuPG Plugin - добавляет возможность GnuPG шифрование/де шифрование передаваемых сообщений. Из подобных плагинов хочу упомянуть Scrambler.
*) History Sweeper - позволяет очищать хистори, как конкретных пользователей из контекстного меню, так и системной хистори и создавать разные правила очищения хистори при включении и выключении миранды. На самом деле удаление хистори в данном плагине - это сказано слишком громко, т.к. он всего лишь помечает хистори как удаленную и миранда перстает ее видеть, но злоумышленник... Для тех, кто хочет удалять хистори из профайла в полном смысле этого слова, советую обратить внимание на утилиту dbtool.exe (http://miranda-im.org/download/index.php?action=display&id=22).
*) ContactVisibility - позволяет выбирать из контекстного меню юзера опции: всегда быть в OnLine или OffLain для этого юзера. *) Так же в разделе по безопасности много плагинов, позволяющих не пропускать вам ICQ-спам.

==========
Заключение
==========

Если у вас умеется какой то новый совет, то обязательно пришлите его мне. А если у вас появился вопрос, то обсуждение статьи проходит в данной теме (http://forum.web-hack.ru/index.php?showtopic=5476). Хочу выразить благодарность за советы к этой статье следующим лицам: St1ng3r, Art Fedorov (автор mSecure), paul_sh, f1n1st и VARE.
X