Как исследователи безопасности выслеживают авторов вредоносного ПО

Как исследователи безопасности выслеживают авторов вредоносного ПО

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

Факты рисуют совершенно иную картину. Доксинг авторов вредоносного ПО стал настолько обыденным делом, что такие инциденты уже вряд ли кого-то удивляют. Вот раскрыли очередного кодера — подумаешь. Некоторые даже хвастаются своей мнимой неуязвимостью и безнаказанностью: "Вот я здесь, пусть попробуют меня поймать — кому это вообще нужно?" Нужно, друг мой. Еще как нужно.

Подпишись на наши каналы в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!

Почему за вами могут прийти?

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


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

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

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


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

Вот она — ваша полная деанонимизация!

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

Например, зачем хранить личные файлы на том же сервере, на котором работает админ-панель вашего ботнета? Зачем отправлять статистику с другого ботнета через SMS на одноразовую SIM-карту, когда этот же номер телефона уже неоднократно фигурировал в объявлениях о продаже компьютерных комплектующих, вместе с городом и даже, хотите верьте, хотите нет, ближайшей станцией метро? И кто убедил этого юного «гения» разместить C&C трояна на публичном хостинге, где находится сайт папиной компании — а затем захардкодить этот самый URL прямо в вредонос?

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

Ничего, кроме точек в каждой строке

Как известно, отладка — это мучительный процесс вычищения из программы всего дерьма. Чтобы немного облегчить этот процесс, некоторые компиляторы добавляют в бинарник специальные отладочные строки. Они могут содержать полный путь к папке, где хранился исходный код проекта, и этот путь иногда включает имя пользователя Windows, например: C:UsersВася ПупкинРабочий столСупер_ВирусПроектВирус1.vbp.

Когда начинаешь реверсить бинарник, вся эта дрянь неизбежно всплывает наружу. Одно дело, если имя учётной записи придумали те же люди, которые сочиняют непроизносимые названия товаров для ИКЕА. Но довольно часто строка будет содержать настоящее имя и даже — о ужас — фамилию незадачливого вирусописателя. Это значительно облегчает их поиск, хотя гарантий успеха нет: кто знает, сколько людей с такой же фамилией существует в мире? Тем не менее, если образец вредоноса содержит отладочную строку с фамилией и характерной структурой папок, это может стать ещё одной уликой, связывающей человека с созданием программы, при условии что следователи отнесутся к делу серьёзно.

Даже если обнаруженная исследователями строка содержит только никнейм вместо реального имени пользователя, это всё равно даёт важную зацепку. Большинство людей, не страдающих излишней параноей, используют один и тот же никнейм на разных платформах. Вот это их и подводит. Любой может быстро найти посты этого человека на форумах, его страницу на GitHub и профиль в Twitter. Обычно легко видно, что все эти «цифровые следы» принадлежат одному и тому же человеку: тот же аватар, похожая подпись, идентичный текст, размещённый на разных сайтах… Дальше можно начинать тянуть за ниточку, и рано или поздно она куда-нибудь приведёт.

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

Вот вам чистенькая почта и пушистое полотенце

Ещё одно распространённое «природное явление» — хранение адресов электронной почты в виде обычных незашифрованных строк. Характерные строки — это первое, что ищет реверс-инженер в дизассемблированном коде. Тем не менее некоторые личности считают, что простого XOR'а строки достаточно, чтобы надёжно скрыть свой адрес на mail.ru от посторонних глаз. Нет, господа, этого недостаточно.

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

Не стучите — дверь и так открыта

Ещё лучше, когда какой-нибудь «непризнанный гений» вшивает логин и пароль прямо в код — например, для админ-панели бота или для облачного хранилища, куда троян выгружает файлы, украденные с компьютера жертвы. Совсем идеально (для атакующего), когда один и тот же пароль используется повторно везде, где только можно: для админ-панели, почтового сервера и социальных сетей.

Это неизбежно напоминает недавний инцидент, когда некий анонимный «исследователь» решил протестировать троян-стилер на собственной машине. Стилер, верный своему предназначению, сработал безупречно. В результате всё с компьютера нашего естествоиспытателя было загружено в облачный аккаунт — логин и пароль от которого хранились в открытом виде прямо внутри трояна — ярко выставив на обозрение аналитикам его жизнь и богатый внутренний мир. По возможности избегайте этого.

Ваш домен недоступен или вышел из строя

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

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

Даже если исследователю не удастся взломать админ-панель, множество полезной информации всё равно можно собрать с помощью сервиса whois (скрытие имени владельца домена помогает не всегда). Можно также поискать другие сайты, размещённые на том же IP-адресе, посмотреть, что на них находится, и попытаться пробраться оттуда. Многие хотя бы слышали термин Cloudflare, но почти никто не удосуживается по-настоящему разобраться, что это такое.

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

И смех и грех

Гордыня — смертный грех, и, как любят напоминать религиозные деятели, грешники неизбежно будут наказаны. Не все вирусописатели готовы оставаться в тени и тихо грести деньги лопатой; некоторые жаждут славы, признания, уважения, аудитории и бурных аплодисментов. В результате отдельные персонажи начинают записывать видео о компиляции и обфускации троянов и заливают подкасты на YouTube. При этом забывают закрыть вкладки браузера со своими профилями ВКонтакте и прочие окна, где в полном HD-разрешении можно разглядеть множество весьма интересных деталей.

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

Вычислили его очень легко: по его же коду — точнее, по характерным именам переменных, комментариям, стилю реализации определённых функций; в общем, путём сравнения публично выложенного исходника с дизассемблированным кодом из IDA Pro. Отпираться было бессмысленно — код он выкладывал в личном блоге под настоящим именем. Fatality.

Вместо послесловия

Способов идентификации авторов вредоносного ПО бесчисленное множество; я упомянул лишь самые очевидные. Выводы столь же прямолинейны: чаще всего вирусописателей приводит в кабинет следователя собственная некомпетентность и совершенно наплевательское отношение к элементарным практикам безопасности. Естественный отбор — в целом способствует улучшению шансов вида на выживание.

Ссылка на оригинал статьи.

Подпишись на наши каналы в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!


Alt text
Обращаем внимание, что все материалы в этом блоге представляют личное мнение их авторов. Редакция SecurityLab.ru не несет ответственности за точность, полноту и достоверность опубликованных данных. Вся информация предоставлена «как есть» и может не соответствовать официальной позиции компании.

Эксплойт без патча? Узнай первым

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


Life Hack

Сообщество по информационной безопасности. Мы в телеграме - https://t.me/haccking