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

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

Как-то раз при анализе управляющего сервера одного из ботнетов был обнаружен PHP-скрипт, периодически скидывавший статистику отстука ботов СМС-сообщением на мобильный телефон. С помощью великого Гугла по этому телефонному номеру без особого труда отыскалось объявление о продаже автомобиля, на снимке которого отлично читались государственные регистрационные знаки :).

Другой гуманоид хранил на сервере, откуда раздавал малварь, собственные фотографии с датой съемки, геометками и прочей ценной информацией в EXIF.

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

Одна такая детективная история началась шесть лет назад. В 2011 году порядка двух тысяч российских аптек и фармацевтических компаний были целенаправленно атакованы трояном BackDoor.Dande. Троян оказался примечательным: при запуске он проверял, установлены ли на атакуемой машине специализированные программы для закупки медикаментов вроде «Аналит: Фармация 7.7» для платформы 1С, «Система электронного заказа» СЭЗ-2 производства компании «Аптека-Холдинг», программа формирования заявок компании «Российская фармация», система электронного заказа фармацевтической группы «РОСТА», программа «Катрен WinPrice» и некоторые другие. Затем он устанавливался в систему и начинал красть информацию о закупках лекарств, передавая ее на удаленный сервер.

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

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

Тогда решили просканировать все содержимое диска на наличие подстроки tapec.sys, и она действительно обнаружилась, причем дважды: в файле подкачки Windows (pagefile.sys) и в логе работавшего на инфицированной машине антивируса Avast (Avast\URL.db). Этот лог представляет собой базу данных SQLite 3, содержащую две таблицы:

sqlite> .schema
CREATE TABLE Paths (Time INTEGER, Path TEXT COLLATE NOCASE UNIQUE, ShortHash INTEGER, LongHash BLOB PRIMARY KEY, Flags INTEGER);
CREATE TABLE URLs (Time INTEGER, URL TEXT, ShortHash INTEGER, LongHash BLOB PRIMARY KEY, Flags INTEGER);
CREATE INDEX PathsPathIndex ON Paths (Path COLLATE NOCASE);
CREATE INDEX URLsShortHashIndex ON URLs (ShortHash);

Продолжение статьи доступно только подписчикам

Вариант 1. Оформи подписку на «Хакер», чтобы читать все статьи на сайте

Подписка позволит тебе в течение указанного срока читать ВСЕ платные материалы сайта, включая эту статью. Мы принимаем оплату банковскими картами, электронными деньгами и переводами со счетов мобильных операторов. Подробнее о подписке

Вариант 2. Купи одну статью

Заинтересовала статья, но нет возможности оплатить подписку? Тогда этот вариант для тебя! Обрати внимание: этот способ покупки доступен только для статей, опубликованных более двух месяцев назад.


6 комментариев

Подпишитесь на ][, чтобы участвовать в обсуждении

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

Check Also

Цифровой паноптикум. Настоящее и будущее тотальной слежки за пользователями

Даже если ты тщательно заботишься о защите своих данных, это не даст тебе желаемой приватн…