Удаленный помощник и вирус



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



Удаленное управление компьютером через виртуальный рабочий стол — мобильность, удобство, оптимизация затрат.



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



VDI решения при организации удаленного доступа — это возможность:

  • увеличить продуктивность работы;
  • обеспечить удобное управление для IT-администраторов;
  • организовать персонализированную среду для рядовых пользователей;
  • снизить риск потери данных.
Подробнее о преимуществах сервиса.



Обеспечение комфортных условий работы и защиты данных компании при удаленном доступе предполагает в том числе предоставление оптимальных IT-решений с учетом особенностей бизнес-сферы клиента.

Представьте себе ситуацию: вы находитесь в командировке, на важной деловой встрече. И неожиданно обнаруживаете, что всю информацию по предстоящей сделке оставили в офисе, на своем стационарном компьютере. Катастрофа? Нет, если у вас подключен удаленный доступ.

Зачем нужен удаленный доступ к компьютеру

Удаленный доступ — функция, дающая пользователю возможность подключаться к компьютеру с помощью другого устройства через интернет практически отовсюду. Пользователь работает с файлами и программами точно так же, как если бы он находился возле этого компьютера. Особенно пригодится эта функция тем компаниям, где большинство сотрудников находится за пределами офиса, на частичном фрилансе, аутсорсинге или в командировках, но при этом они нуждаются в обновлении рабочей информации, просмотре корпоративной почты и пр. Им не нужно будет скачивать все необходимые для работы данные на внешний носитель или отправлять их по почте — достаточно связаться с офисным компьютером.

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

Известно два варианта организации удаленного доступа:

  • установка специализированного ПО на собственном сервере;
  • договор с облачным провайдером по модели DaaS (desktop as a service) — виртуальный рабочий стол.

Рассмотрим каждый из вариантов подробнее, чтобы понять их преимущества и недостатки.

Для создания удаленного подключения используют специальные программы. Обязательное условие — наличие постоянного доступа в интернет, компьютеров, обладающих определенными характеристиками и сервера. Удаленное подключение связывает две рабочие станции через интернет. В стандартном приложении Windows соединение происходит между двумя IP-адресами, но если компьютер находится в локальной сети, то подключиться к нему извне можно только с помощью специальных программ удаленного доступа. Такое ПО делает возможным подключение к другому компьютеру из любой точки мира.

Программы позволяют видеть рабочий стол и выполнять все действия на удаленном устройстве, изменять настройки ПО, обмениваться файлами, делать принт-скрины, шифровать передаваемые данные, проводить конференции, подключать веб-камеры, удаленные проекторы и прочие сетевые устройства.

Топ-5 программ удаленного доступа по версии портала Soft Home выглядит следующим образом:

  1. TeamViewer. Высокая степень безопасности, простота использования, мультимониторный режим. Стоимость зависит от количества рабочих столов (от 200 долларов США) .
  2. RAdmin. Российское ПО с большим функционалом. Бесплатных версий нет.
  3. Ammyy Admin. Высокая скорость, голосовой чат, удобный интерфейс. Цена лицензии от 1200 рублей .
  4. AeroAdmin. Высокая скорость подключения, служба мгновенных сообщений. Цена лицензии от 990 рублей.
  5. UltraVNK. Настройка качества изображения, чат, возможность доступа с портативных устройств. Бесплатно.

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

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


Рис. Организация удаленного доступа через облако

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

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

А вот так выглядит топ-5 DaaS-решений:

Об этом нам рассказал представитель компании DEAC Наскидаев Олег Анатольевич:

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

Приватные дата-центры DEAC уделяют вопросам защиты информации первостепенное внимание. Все данные клиента хранятся в безопасном облаке, созданном на базе собственных дата-центров в нескольких городах мира. Строго соблюдается безопасность при работе с данными с личных устройств пользователей.

Анализ вредоносной программы TeamSpy, незаметно передающей компьютеры под полный удаленный контроль злоумышленников.

Программа для удаленного управления TeamViewer может быть весьма полезной, когда необходима поддержка пользователя на расстоянии. К сожалению, ею могут воспользоваться и киберпреступники, стоящие за вредоносной программой TeamSpy.

Программа TeamSpy заражает компьютеры, обманом подталкивая людей скачать вредоносное вложение и запустить макрос. После этого вирус незаметно устанавливает программу TeamViewer, что передает в руки злоумышленников полный контроль над зараженным ПК. Недавно компания Heimdal Security вновь обнаружила кампанию по распространению данного вредоносного ПО посредством спама. Мы также заметили всплеск активности и решили изучить его.

Скрытые команды

Заразив устройство, большинство вредоносных программ связываются с сервером контроля и управления (C&C). Данный сервер — это центр управления, отправляющий команды, которые должна выполнять вредоносная программа. Серверы контроля и управления также принимают собранные вирусом данные. Для подобного взаимодействия авторы вредоносных программ обычно используют собственные протоколы, которые могут быть без особого труда замечены и заблокированы антивирусом. Чтобы сделать их обнаружение более сложным, некоторые создатели вредоносного ПО вместо этого применяют популярные программы для удаленного управления (например, TeamViewer), используя возможности их сети VPN для лучшей маскировки обмена данными между вредоносной программой и серверами контроля и управления.

TeamSpy: способ заражения

Программа TeamSpy распространяется при помощи спама по электронной почте, который обманом убеждает людей открыть вредоносное вложение, представляющее собой Excel-файл с макросом. После открытия вложения отображается следующее.


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


Ссылка disk.karelia.pro указывает на легальный российский файлообменник. Хотя загруженное вложение является .png файлом, на самом деле это исполняемый .exe файл, выполянющий установку программы Inno Setup, защищенную паролем.


С помощью утилиты innounp мы смогли получить список файлов или извлечь их из установщика Inno Setup, который используется вредоносной программой. Как видно в списке ниже, большая часть файлов — обычные двоичные файлы программы TeamViewer, имеющие цифровые подписи. Исключение составляют два файла: msimg32.dll и tvr.cfg. Tvr.cfg — это файл конфигурации программы TeamSpy, он будет описан позже. Msimg32.dll — это сама вредоносная программа, библиотека DLL, являющаяся частью операционной системы Windows. Однако в данном случае программа TeamSpy использует порядок поиска DLL в своих целях. В результате поддельный файл msimg32.dll из текущего каталога загружается в процесс вместо настоящего файла msimg32.dll из каталога Windows/System32. Сама вредоносная программа является поддельной библиотекой msimg32.dll.


Маскировка программы TeamSpy

При обычной установке программы TeamViewer отображается окно графического интерфейса с идентификационным номером и паролем, которые нужны для удаленного подключения к вашему ПК.


При успешном заражении ПК программой TeamSpy не отображается ничего. Как вы помните, все работает в фоновом режиме, поэтому жертва не замечает установку TeamViewer. Добиться этого позволяют манипуляции со многими функциями API и изменение их поведения. TeamSpy перехватывает около 50 различных элементов API:

CreateMutexW, CreateDirectoryW, CreateFileW, CreateProcessW, GetVolumeInformationW, GetDriveTypeW, GetCommandLineW, GetCommandLineA, GetStartupInfoA, MoveFileExW, CreateMutexA

SetWindowTextW, TrackPopupMenuEx, DrawTextExW, InvalidateRect, InvalidateRgn, RedrawWindow, SetWindowRgn, UpdateWindow, SetFocus, SetActiveWindow, SetForegroundWindow, MoveWindow, DialogBoxParamW, LoadIconW, SetWindowLongW, FindWindowW, SystemParametersInfoW, RegisterClassExW, CreateWindowExW, CreateDialogParamW, SetWindowPos, ShowWindow, GetLayeredWindowAttributes, SetLayeredWindowAttributes, IsWindowVisible, GetWindowRect, MessageBoxA, MessageBoxW

RegCreateKeyW, RegCreateKeyExW, RegOpenKeyExW, CreateProcessAsUserW, CreateProcessWithLogonW, CreateProcessWithTokenW, Shell_NotifyIconW, ShellExecuteW

Некоторые перехваты блокируют доступ приложения к определенным ресурсам (например, когда команда RegCreateKey или RegOpenKey пытается получить доступ к ключу реестра Software\TeamViewer, высвечивается код ошибки ERROR_BADKEY).


Перехват функции GetCommandLine заставляет программу TeamViewer считать, что она запущена с предустановленным паролем (вместо случайно генерируемого пароля пользователи TeamViewer обычно могут задать в качестве такого пароля любое значение, добавив параметр командной строки).


Перехват SetWindowLayeredAttributes устанавливает для прозрачности окна TeamViewer значение 0 (инструкция PUSH 0), что в соответствии с документацией MSDN означает полную прозрачность.


Перехват функции CreateDialogParam блокирует создание некоторых нежелательных для вредоносной программы диалоговых окон. Их можно увидеть в файле TeamViewer_Resource_en.dll. Они связаны с числами (например, 10075), которые можно увидеть на изображении ниже.


В случае ShowWindow определяются собственные nCmdShow параметры 4d2h и 10e1h. Если передаются значения, отличные от приведенных, ничего не происходит.


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


Фрагмент кода ниже показывает, как вредоносная программа получает контроль над элементами управления окном. GetWindowLong, CallWindowProc и SetWindowLong со значением nIndex = GWL_PROC заменяют старый адрес для процедуры окна, относящейся к правке текста истории чата, на собственную процедуру окна.


Собственная процедура окна воспринимает входящие сообщения и, в зависимости от идентификатора сообщения окна, либо отправляет новое сообщение, либо ожидает ответа от сервера контроля и управления (получено сообщение EM_SETCHARFORMAT).


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

Файл конфигурации



Обратная связь

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


id — идентификатор TeamViewer. Киберпреступникам нужен этот идентификатор, так как его и пароля достаточно для удаленного подключения к зараженному компьютеру

tout — время ожидания

idl — время простоя

osbt — 32-разрядная или 64-разрядная версия

osv — версия операционной системы

osbd — версия сборки ОС

ossp — пакет обновления

tvrv — версия программы TeamViewer

uname — имя пользователя

cname — имя компьютера

vpn — наличие TeamViewer vpn

avr — антивирусное решение.

Контроль чата

Зараженный компьютер управляется при помощи программы TeamViewer. Киберпреступники могут подключиться к удаленному компьютеру (им известны идентификатор и пароль TeamViewer) или отправлять команды при помощи чата программы TeamViewer, что позволяет им делать на зараженной машине все что угодно. Связь посредством чата TeamViewer позволяет использовать базовые функции лазеек: applist, wcmd, ver, os, vpn, locale, time, webcam, genid. В коде TeamSpy эти команды сравниваются со своими контрольными суммами crc32, поэтому вероятность конфликтов довольно высока. Так как crc32(wcmd) = 07B182EB = crc32(aacvqdz), эти команды взаимозаменяемы.



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

Использование в своих целях приложения с негласной загрузкой — изобретательный подход, так как не каждый пользователь проверяет благонадежность каждой библиотеки DLL в одном каталоге. Проверка подписи главного исполняемого файла не выявляет ничего подозрительного и может оставить жертву в неведении о случившемся. Ниже показана цифровая подпись основного файла update_w32.exe. Этот файл не является вредоносным.


Важно помнить, что TeamSpy — не единственный класс вредоносного ПО, который может использовать программу TeamViewer в своих целях. Здесь описан лишь один из них. Однако принципы их работы одинаковы.

Антивирусные решения Avast обнаруживают данный тип вредносного ПО. Следите за нашими новостями в социальных сетях ВКонтакте , Одноклассники , Facebook и Twitter .

Алгоритмы SHA 5.0

Установщик Inno, защищенный паролем

Денис Ибатуллин, аналитик компании "Фродекс"


Средства удалённого доступа и управления рабочим столом – это хороший способ экономить время для проведения удалённого администрирования и решения других сопутствующих задач.

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

Теоретически способы, позволяющие пользователям обнаружить сеанс удаленного управления, это:

Сканирование открытых портов позволяет гарантированно детектировать только те средства удаленного управления, которые используют жестко заданные порты. Таким способом можно детектировать Remote Desktop Connection – стандартный удаленный рабочий стол Windows (порт 3389). Radmin, хоть и имеет стандартный порт, используемый по умолчанию (4899), предоставляет возможность настройки порта в диапазоне от 1 до 65535. Таким образом, если используется один из широко известных портов, то обнаружить Radmin будет сложнее. VNC не имеет порта по умолчанию. TeamViewer использует 80 и 443 порты HTTP. Ammyy Admin использует HTTPs прокси, так что обнаружить его сканированием портов невозможно;

Сканирование реестра. Если программа удаленного управления сохраняет свои настройки в реестре, то её можно обнаружить. Так можно обнаружить, например, стандартный RDP Windows, TeamViewer, Ammyy Admin и Radmin. Но для того чтобы обнаружить средство удаленного управления необходимо знать, что именно и в каких ветках реестра нужно искать. А VNC таким образом не обнаружить, т.к. они не хранят свои настройки в реестре;

Сканирование сетевого трафика. На первый взгляд подобным способом можно будет детектировать все средства удаленного управления, однако это не так. Дело в том, что многие средства удаленного управления шифруют свой трафик, и обнаружить удаленное управление не удастся. Но детектировать, например, Radmin, RDP Windows всё же возможно, т.к. они используют известные протоколы удаленного управления без шифрования. А TeamViewer и Ammyy Admin, шифруют свой трафик. VNC использует SSL/SSH/VPN, т.е. протоколы удаленного доступа будут скрыты от Вас;

Сигнатурный анализ. В случае, если сигнатуры программ удаленного управления известны, то обнаружить их исполняемые файлы не составит труда, но если будет использоваться стандартный удаленный стол Windows, то такое сканирование бесполезно, т.к. он присутствует во всех версиях Windows выше NT 4.0.

Самым доступным для рядового пользователя средством защиты от программ удаленного управления является антивирус. Известные антивирусы, в частности Kaspersky Internet Security, обнаруживают исполняемые файлы, сканируют оперативную память, службы, записи в реестре, характерные для средств удаленного управления и не позволяют работать подобным средствам без разрешения пользователя. Dr.Web же обнаруживает средства удаленного управления не только сигнатурным анализом, но и при проверке запущенных служб. Например, Ammyy Admin блокируется многими известными антивирусами. Однако, если внести подобные средства в исключения, то их работа не будет блокироваться.

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

В таком случае, необходим способ обнаружения именно сеанса удаленного управления.

Решено было использовать средства клавиатурного мониторинга. Они привлекательны тем, что их назначение - аутентификация оператора ПК, это позволит в случае необходимости доказать, что противоправные действия совершались не оператором ПК, а удаленным пользователем (злоумышленником).

Рассмотрим популярное средство удаленного управления TeamViewer.(ver 10.0.36897.0), т.к. им пользуются более 200 миллионов пользователей и он переведен на 30 языков мира.

А в качестве средства клавиатурного мониторинга будем использовать кейлоггер – программа, которая перехватывает и записывает все манипуляции с клавиатурой компьютера. Используемый программный кейлоггер был написан автором статьи и производит регистрацию событий клавиатуры с точностью до 1мс.

На компьютерах, участвующих в эксперименте, установлена ОС Windows XP SP 3/Windows 7 SP 1. Компьютеры представляют собой стационарные рабочие места, оборудованные стандартными клавиатурами, и находящиеся друг от друга на расстоянии в несколько километров. Они находятся в разных локальных сетях, сообщение между которыми осуществляется только средствами сети Интернет. Скорость интернет соединения была больше или равна двум мегабитам в секунду.

Эксперимент проводился следующим образом:

На рабочем месте, к которому в дальнейшем осуществлялось удаленное подключение, включался кейлоггер;

Программа (специальный драйвер клавиатуры) эмулирующая действия локального оператора, вводила небольшой текст;

Устанавливался сеанс удалённого управления через TeamViewer;

Программа (специальный драйвер клавиатуры) вводила тот же небольшой текст, что и локальный оператор, с теми же параметрами клавиатурного почерка, но уже на удаленной машине;

Работа кейлоггера останавливалась, и его лог отправлялся на анализ.

Кейлоггер фиксировал следующие параметры клавиатурного почерка:

  • Время нажатия клавиши;
  • Время отпускания клавиши.

По этим параметрам устанавливались две характеристики клавиатурного почерка:

  • Время удержания клавиши;
  • Время паузы между клавишами или их перекрытие.

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


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

Данная диаграмма демонстрирует, что при осуществлении удаленного доступа время удержания клавиши становится неестественно малым. Максимальное значение при осуществлении 5 экспериментов было 20 мс, такое время удержания клавиш теоретически способны продемонстрировать лишь рекордсмены по набору текстов на клавиатуре, чья скорость печати должна превышать 1000 знаков в минуту.

Напрашивается вывод, что удаленное управление, осуществляемое через средство удаленного доступа TeamViewer (ver 10.0.36897.0), можно обнаружить, производя мониторинг времени удержания клавиш.

Однако, возможно ли определить факт удаленного управления, если он будет осуществлен с помощью другого программного продукта? Давайте проведем ещё один эксперимент. Будем использовать такие же методы обнаружения и те же компьютеры, но средством удаленного доступа в данном случае будет Ammy Admin (ver 3.5.0.0).

После проведения эксперимента, был получен результат, отличный от предыдущего:


Гистограмма, демонстрирующая время удержания нажатой клавиши локальным пользователем и оператором удаленного доступа с использованием Ammy Admin.

Как видно из приведенной диаграммы, время удержания клавиш при наборе удаленным и локальным пользователем почти неотличимы (так как различия между ними не превышают 5мс). Разница значений пауз между нажатиями клавиш также не превысила 5мс.

Данный эксперимент был также проведен с использованием следующих популярных программ для удаленного управления:

  • UltraVNC VNCviewer (ver 1.2.0.1.);
  • Radmin (ver 3.5);
  • Remote Desktop Connection (ver 6.1.7601.17514).

Во всех случаях значение разницы во времени нажатия клавиш и пауз между нажатиями клавиш не превысило 5мс.

Значит мониторинг времени удержания клавиш не дает однозначного ответа на вопрос, осуществлялся ли сеанс удаленного доступа.

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

В таком случае ввод слова "testing" с использованием Ammy Admin будет выглядеть следующим образом.


Гистограмма, демонстрирующая время удержания нажатой клавиши локальным пользователем и оператором удаленного доступа с использованием Ammy Admin.

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

Однако, существует метод детектирования удаленного доступа при осуществлении клавиатурного мониторинга. Он основан не на сравнении и выявлении изменений временных значений параметров клавиатурного почерка пользователя, а на изменении значения параметров Hardware ID и DeviceHandle. Данные параметры характеризуют конкретную модель клавиатуры. Сбор этих параметров также осуществляется кейлоггерами при обработке любого события клавиатуры.

В случае осуществления ввода непосредственно при помощи клавиатуры локальным пользователем, значение параметра Hardware ID будет, например, таким: HID#VID_05FE&PID_2001&MI_00#7&39613403&0&0000#<884b96c3-56ef-11d1-bc8c-00a0c91405dd>, а значение DeviceHandle – 0x3004B. А при сеансе удаленного управления данные параметры во всех экспериментах принимали значения: Hardware ID – "не установлен", DeviceHandle – "0x00000". Таким образом, удаленное управление, осуществляемое через упомянутые ранее средства удаленного доступа, можно детектировать отслеживанием параметров Hardware ID и DeviceHandle, и в случае, если они принимают значения:"не установлен" и "0x00000", можно с уверенностью утверждать, что осуществлялся сеанс удаленного управления.

Читайте также:

Пожалуйста, не занимайтесь самолечением!
При симпотмах заболевания - обратитесь к врачу.

Copyright © Иммунитет и инфекции