Валентин Холмогоров PRO ВИРУСЫ
Моей жене Галине
и детям — Анастасии и Даниилу
© Холмогоров В., 2015, текст
© ООО «Страта», 2015, оформление
Предисловие
Историю развития человеческой цивилизации с определенной степенью достоверности можно назвать историей борьбы за ресурсы. На протяжении многих эпох люди соперничали за пищу, золото, территории, нефть. В начале XXI века основным ресурсом для человечества стала информация.
Информация пронизывает все современное общество, проникает во все без исключения сферы нашей жизни. Информационные потоки управляют движением самолетов и поездов, обеспечивают телефонную и спутниковую связь, являются движущей силой биржевой торговли и банковской сферы. Без непрерывных процессов передачи и обработки информации не загорится электрическая лампочка в квартире, не смогут пробить товар кассовые аппараты в супермаркете, замрут бензозаправочные станции, погаснут светофоры на улицах. Информация сегодня де-факто управляет миром. Вот почему сфера информационной безопасности является сейчас одной из наиболее актуальных и важных областей IT-индустрии. Она буквально балансирует на острие прогресса, скользит на гребне волны, всегда оставаясь на ее вершине — ведь технологии в наши дни развиваются стремительно. А одним из наиболее значимых (и интересных) подразделов информационной безопасности является защита устройств от компьютерных угроз.
Еще пятнадцать лет назад компьютерные вирусы и троянские программы заявили о себе как реальная и очень серьезная опасность, способная принести многомиллионные убытки и отдельным коммерческим компаниям, и экономике государств в целом. По земному шару прокатилось несколько глобальных компьютерных эпидемий, а пользователи Интернета стонали под грудами рекламного спама, непрерывно сыпавшегося в их электронные почтовые ящики. Чуть позже киберпреступники научились извлекать прибыль, шантажируя непосредственно самих владельцев персональных компьютеров: на свет появились троянцы-блокировщики, нарушавшие нормальную работу операционной системы, энкодеры, шифровавшие данные на дисках и требовавшие выкуп за их расшифровку, и, наконец, банковские троянцы, кравшие деньги непосредственно с электронных счетов ничего не подозревающей жертвы. И если потерю десятка личных фотографий из отпуска еще можно как-то пережить, то утрата бухгалтерской базы данных, реестра клиентов и контрагентов, договоров и прочей важной документации может стать для коммерческого предприятия настоящей катастрофой.
Пять лет назад были обнаружены первые троянцы для смартфонов, работавших под управлением операционной системы Google Android. Эти самые ранние экземпляры еще не несли в себе значительной угрозы пользователям — они просто предлагали отправить платную СМС при установке новых приложений — и потому сначала никто не воспринял их всерьез. Посетители многочисленных форумов в Интернете ехидно комментировали выпуск антивирусных программ для Android желанием разработчиков нагреть руки на несуществующей и якобы преувеличенной опасности, а мне все эти дискуссии напомнили — буквально до ощущения дежавю — начало 90-х годов уже прошлого, XX века. Тогда в ходу были персональные компьютеры «Искра 1030» и «ЕС-1842», дома у меня имелся «Поиск». Жестких дисков не было: MS-DOS загружали с пятидюймовой дискетки, куда помещался еще Norton Commander и компилятор Turbo Pascal. Оперативной памяти — 640 килобайт. Черно-белые дисплеи CGA. Сейчас любой дешевый китайский телефон по вычислительной мощности превосходит те компьютеры как минимум на порядок. И уже тогда раздавались гневные выкрики: зачем на персоналках антивирусное ПО? Занимает место, расходует память! За компьютерами работают только профессионалы, прошедшие специальные курсы и выучившие команды DOS, они знают наизусть всего Фигурнова! Неужели трудно вручную вычистить дискетку? Да там всего 720 килобайт! Неужто сложно заучить наизусть имена всех системных файлов MS-DOS и вручную проверить автозагрузку? Трудно запомнить размер command.com? Да ерунда все это! Для персоналок существует всего десять вирусов! Ну ладно, двадцать. В общем, создатели антивирусных программ просто хотят на нас заработать! На костер их!
Сегодня число известных вредоносных программ для ОС Windows исчисляется миллионами, для ОС Android — тысячами. Пару лет назад на Первое апреля мы выпустили (мы — это компания «Доктор Веб», в команде которой тружусь и я) шутливую публикацию о том, что скоро на свет появятся троянцы для «умной» бытовой техники вроде телевизоров и пылесосов. Как оказалось, мы заглянули в будущее: угрозы для устройств SmartTV, работающих под управлением Android, стали реальностью уже сегодня.
В силу моей профессии ко мне часто обращаются знакомые с просьбами проконсультировать их по вопросам защиты информации и борьбы с вирусами. И я всякий раз сталкиваюсь с тем, что многие из них (даже те, кто является неплохим специалистом в других компьютерных областях) не слишком хорошо разбираются в данном предмете, не знакомы с некоторыми важными фактами, безоговорочно верят в домыслы и стереотипы, путаются в терминологии. Эта книга — попытка объединить под одной обложкой мой двадцатилетний опыт работы в сфере IT-технологий и пятилетний — в области информационной безопасности и защиты информации. Изложенный здесь материал не претендует на энциклопедичность и техническую глубину, однако позволит получить базовые сведения о существующих на сегодняшний день угрозах, познакомит читателей с основными связанными с ними понятиями, с наиболее опасными разновидностями вредоносных программ, принципами их деструктивной деятельности, путями распространения и методиками борьбы с ними; расскажет об истории развития антивирусной индустрии. Иными словами, эта книга — начальное пособие для всех, кто интересуется теорией и практикой информационной безопасности и антивирусной защиты.
Предполагается, что читатели настоящего издания уже владеют базовыми знаниями о принципах работы современных персональных компьютеров и операционных систем, а также владеют основными терминами, применяемыми в сфере IT. Если в тексте книги вам встретится незнакомое понятие, его значение можно уточнить в кратком глоссарии, который я привел в конце книги. Ну, а если у вас возникнут какие-либо вопросы, не освещенные на страницах этой книги, буду рад видеть вас на моем персональном веб-сайте:
. Также со мной можно связаться по адресу электронной почты valentin@holmogorov.ru.
Хочу выразить искреннюю благодарность за неоценимую помощь и мудрые советы моим уважаемым коллегам: Игорю Здобнову, Алексею Ткаченко, Владимиру Мартьянову, Павлу Плотникову и Александру Свириденко.
Глава 1. Закоулки истории
Любое наблюдаемое в современном мире явление имеет свою предысторию, в той или иной степени обусловливающую его возникновение. И если сам момент появления первых вредоносных компьютерных программ установлен с более или менее высокой степенью достоверности, то по поводу идеи, подтолкнувшей вирусописателей к мысли о создании такого рода опасных приложений, до сих пор ведутся ожесточенные споры.
Первые ласточки
Общепринятое мнение гласит, что теоретические основы, послужившие фундаментом для разработки самореплицирующихся (то есть автоматически воспроизводящихся) компьютерных программ заложил еще в начале 50-х годов XX века американский математик венгерского происхождения Джон фон Нейман. В 1951 году фон Нейман на основе собственного цикла лекций создал научный труд под названием «Теория самовоспроизводящихся автоматов» (книга была опубликована уже после смерти автора, в 1966 году, издательством университета Иллинойса), в котором описал принципиальную возможность разработки так называемых клеточных автоматических устройств, способных к самовоспроизведению подобно клеткам живого организма. Именно этот принцип распространения и по сей день используют современные компьютерные вирусы и черви.
По поводу этимологии самого названия «вирус» применительно к самореплицирующимся компьютерным программам также ведутся ожесточенные споры. Считается, что впервые этот термин именно в таком контексте употребил американский астрофизик и писатель-фантаст Грегори Бенфорд в своем рассказе «Человек в шрамах», опубликованном в журнале Venture в мае 1970 года. А уже в 1975 году американский писатель-фантаст Джон Браннер выпустил роман «Оседлавший взрывную волну», в основу которого лег сюжет о появлении самораспространяющейся вредоносной программы. Книга рассказывала о компьютеризированном обществе, которым управляло с помощью глобальной электронной сети правительство диктаторов и тиранов. Программист, решивший спасти мир от диктатуры, написал программу, которую автор романа назвал «червем»; эта программа копировала себя с одного компьютера на другой, разрушая хранившуюся в них информацию. Чтобы остановить «червя», правительство вынуждено было отключить сеть, лишившись таким образом власти. Роман быстро стал бестселлером, поистине культовой книгой в только зарождавшейся тогда среде компьютерных хакеров.
Однако одновременно с развитием теории программисты-энтузиасты проводили и первые практические опыты. Так, в 1971 году работавший в вычислительной лаборатории компании «Bolt, Beranek and Newman» американский программист Боб Томас занимался исследованием возможностей созданной им же самим подсистемы RSEXEC, позволявшей осуществлять удаленный запуск программ в операционной системе Tenex. Экспериментируя с системами передачи данных между различными вычислительными машинами, Томас написал программу, которую назвал «Ползуном» (The Creeper). «Ползун» самостоятельно копировал себя с одного компьютера на другой, перемещаясь таким образом по сети, и выводил на экран каждого терминала забавное сообщение: «Я — Ползун… Если сможешь, поймай меня!» (I’m the Creeper… Catch me if you can!). Эта небольшая программа не размножалась, а просто «ползала» с одного сетевого узла на другой: когда на удаленном компьютере запускалась новая копия Creeper, исходный экземпляр уничтожался. Фактически этот случай можно назвать первым в истории документально подтвержденным фактом успешной разработки автономно распространяющейся компьютерной программы, которую, впрочем, все же нельзя назвать полноценным «компьютерным вирусом», поскольку она не несла в себе никакого вредоносного функционала. К слову, история гласит, что, когда другому специалисту Bolt, Beranek and Newman, Рэю Томлинсону, надоело бороться с бесконечно отвлекающими его от работы «Ползунами», он написал другую программу, получившую наименование Reaper («Жнец»). Reaper в точности так же самостоятельно перемещался по сети, но с совершенно иной целью: программа вылавливала и безжалостно уничтожала всех «Ползунов», которые попадались ей на пути. Эта незамысловатая «игра в догонялки» продолжалась какое-то время, пока программисты лаборатории окончательно не утратили к ней интерес.
В 1974 году появилась первая в истории программа, которую по ряду формальных признаков можно назвать вредоносной, однако имен ее создателей история, увы, не сохранила. Нехитрое приложение с названием The Rabbit («Кролик») полностью соответствовало своему наименованию: ее предназначение вполне можно описать известной библейской формулой «плодитесь и размножайтесь». Программа автоматически создавала множество своих копий и увлеченно занималась этим до тех пор, пока не забивала всю доступную свободную память компьютера, что неизбежно вызывало его отказ. Именно это приложение стало своего рода основоположником целого семейства вредоносных программ, объединенных общей категорией: «логические бомбы».
А еще через год случился инцидент, вошедший в историю как первый случай самопроизвольного распространения программы, вышедшей из-под контроля своего создателя. Речь идет об игре The Animal, созданной программистом Джоном Уокером для компьютера UNIVAC 1108. Суть игры состояла в следующем: пользователь загадывал некое животное, а программа задавала ему наводящие вопросы, на которые он должен был отвечать «да» или «нет». Компьютер таким образом пытался угадать, что задумал человек. Однако код игры содержал досадную ошибку: при попытке пользователя добавить в базу приложения дополнительные вопросы, новая версия игры записывалась поверх старой, и кроме того с использованием специальной утилиты игра автоматически создавала свою копию в каждой директории, к которой пользователь имел доступ. Поскольку компьютеры UNIVAC были многопользовательскими, программа быстро проникала на другие компьютеры, использующие общие магнитные ленты в качестве носителя информации. Остановить бесконтрольное распространение игры The Animal (быстро получившей народное название Pervading Animal, «Всепроникающее животное») смогло только обновление операционной системы, в котором был изменен формат состояния файловых таблиц, используемый приложением для самокопирования.
Следующий аналогичный случай не заставил себя долго ждать. В 1980 году двое сотрудников компании Xerox, которая в те времена выпускала пользовавшиеся большой популярностью персональные компьютеры Alto, имеющие возможность объединения в локальные сети, решили создать программу, которую, по аналогии с упоминавшимся в романе Браннера детищем программиста-бунтаря, назвали «Червем». Собственно, «Червь» Джона Хаппа и Джона Шока должен был нести положительную миссию: по замыслу разработчиков, перемещаясь между подключенными к сети компьютерами, «Червь» был призван проверять операционную систему на наличие уязвимостей и по возможности устранять их, загружая с удаленного сервера соответствующие обновления. Однако на практике все получилось совсем не так, как задумали разработчики. Запустив вечером экспериментальную версию «Червя», Хапп и Шок отправились домой. Когда утром программисты вернулись на работу, они увидели, что все компьютеры, установленные в многоэтажном здании исследовательского центра Xerox, расположенного в калифорнийском городке Паоло-Альто, благополучно зависли. В исходном коде «Червя» была допущена незначительная ошибка, благодаря которой программа начала бесконтрольно распространяться между различными узлами сети и блокировать их работу. Перезагрузка машин не помогала: часть входящих в сеть компьютеров была установлена в закрытых комнатах, к которым Хапп и Шок не имели доступа, и как только на перезагружаемой машине запускалась операционная система, «Червь» тут же копировал себя в ее память с другого компьютера, после чего система мгновенно выходила из строя. Отключив одну из машин от локальной сети, программисты вынуждены были экстренно создать другую программу, которая уничтожила бы взбесившегося «Червя». На полную ликвидацию последствий их совместного творчества ушло несколько дней.
Как бы то ни было, все эти случаи можно считать всего лишь прелюдией, своего рода подготовительным этапом перед целой эпохой, ознаменовавшейся появлением и распространением настоящих вредоносных программ и компьютерных вирусов.
Эпоха вирусов
Что бы ни говорили о безопасности и защищенности данной системной платформы многочисленные поклонники компьютерной техники производства небезызвестной «яблочной» компании из города Купертино, первым в истории компьютерным вирусом, обнаруженным в «живой природе» (то есть за пределами компьютерной системы или вычислительной лаборатории, где он был написан), стала вредоносная программа Elk Cloner для персональных компьютеров Apple II. Произошло это в 1981 году.
Собственно, выбор создателя Elk Cloner, 15-летнего школьника Ричарда Скренты, пал на компьютер производства Apple не случайно — на заре 80-х именно эти относительно недорогие и весьма «продвинутые» персоналки пользовались чрезвычайно высокой популярностью в США, занимая значительную долю розничного рынка. Скрента относился к категории молодых людей, которых сейчас принято называть жаргонным термином «гики» — он был не просто пользователем Apple II, а «продвинутым компьютерным гением», любившим покопаться в архитектуре операционной системы и «внутренностях» прикладных программ. Одноклассники часто брали у Ричарда дискеты с играми, которых у него имелось множество, однако он быстро заработал себе репутацию проказника и шутника, поскольку постоянно модифицировал одалживаемые друзьям программы, чтобы они время от времени выводили на экран компьютера различные забавные, а порой и неприличные или оскорбительные фразы. В конечном итоге приятели и вовсе перестали просить программы у Скренты, предпочитая заимствовать игры из более надежных источников. Именно тогда Ричард задумался о том, как он смог бы модифицировать программы дистанционно, физически не прикасаясь к дискете. Итогом его размышлений и стал вирус Elk Cloner.
Вирус распространялся вместе с компьютерной игрой, при каждом 50-м запуске которой отображал на экране стишок следующего содержания:
It will get on all your disks
It will infiltrate your chips
Yes, it’s Cloner!
It will stick to you like glue
It will modify RAM too
Send in the Cloner!
Он влезет на все ваши диски,
Он проникнет в ваши чипы,
Да, это Cloner!
Он прилипнет к вам, словно клей,
Модифицирует оперативную память.
Представляем Cloner!
Если компьютер загружал операционную систему Apple DOS 3.3 с инфицированной дискеты, Elk Cloner копировался в оперативную память компьютера, после чего дожидался, пока пользователь вставит в дисковод «чистую» системную дискету, и заражал ее, обеспечивая этим собственное распространение. Поскольку компьютеры под управлением Apple DOS 3.3 были чрезвычайно популярны в Северной Америке, Elk Cloner быстро сделался самым настоящим стихийным бедствием — вирус распространился настолько широко, что компания Apple вынуждена была даже выпустить специальную утилиту для его уничтожения, которая к тому же предотвращала повторное заражение системных дискет. Ну, а сам Ричард Скрента навсегда вписал свое имя в историю развития компьютерных технологий и информационной безопасности. Закончив Северо-Западный университет (Чикаго, Иллинойс), Скрента поработал программистом в таких известных компаниях, как Sun Microsystems, Netscape, America On-Line (AOL), а позже создал собственную фирму в Кремниевой долине, занимающуюся разработкой оригинального поискового движка, известного сейчас под наименованием Blekko.
В том же 1981 году было зафиксировано распространение самореплицирующейся программы под названием Virus 1,2,3 — и тоже в операционной системе Apple DOS 3.3 для компьютеров Apple II. Ну, а уже в 1986 году разразилась первая эпидемия среди IBM-совместимых компьютеров, массово заражавшихся вирусом-буткитом Brain.
Авторами этого творения стали 19-летний пакистанский программист Басит Фаруд Алви и его родной брат Амджат. Сами братья утверждали, что вирус был написан ими для защиты от нелицензионного копирования разработанного ими же медицинского программного обеспечения и предназначался только для компьютерных пиратов. После своего запуска Brain подменял собственной копией загрузочную запись на дискетах, отформатированных в файловой системе FAT (File Allocation Table), используемой, в частности, операционной системой MS-DOS. Оригинальная загрузочная запись перемещалась в другой сектор диска, помечавшийся как «плохой» (bad), а в качестве метки тома устанавливалось значение «©Brain». За год своего существования вирус заразил множество компьютеров во всем мире, в первую очередь на территории США и Великобритании.
Следующий, 1987 год, стал поистине урожайным на появление новых вредоносных программ. Так, в течение последующих двенадцати месяцев были выявлены вирусы, известные под именами Vienna, Stoned, Ping Pong, Cascade. Наиболее масштабное распространение получила вредоносная программа Jerusalem, обнаруженная в Иерусалиме в октябре 1987 года и инфицировавшая компьютеры под управлением MS-DOS по всему миру.
Jerusalem был резидентным вирусом, использовавшим около 2 Кбайт оперативной памяти компьютера и заражавшим все запускающиеся в системе исполняемые файлы за исключением основного компонента ядра MS-DOS — файла command.com. Вирус обладал несколькими вредоносными функциями: благодаря возможности перехватывать используемые DOS системные прерывания, он мог значительно замедлять работу зараженной машины, спонтанно отключать рабочие станции от сети и препятствовать нормальному выводу документов на печать. Однако главная его опасность заключалась в том, что каждую пятницу, выпадавшую на 13-е число (кроме 1987 года), вирус уничтожал исполняемые файлы всех без исключения запускающихся на инфицированном компьютере программ, что, естественно, нарушало нормальную работу персоналок.
Примерно с этого момента различные инциденты, связанные с массовым распространением компьютерных вирусов и других вредоносных приложений, уже перестали кого-либо удивлять, и многочисленные журналисты, специализирующиеся на освещении событий в области «высоких технологий», попросту не обращали на них чересчур пристального внимания. За исключением одного случая, наделавшего по-настоящему много шума.
Роберт Моррис, старший сын Боба Морриса, одного из ведущих экспертов отдела Агентства Национальной Безопасности США по расследованию компьютерных преступлений, рос тихим и скромным мальчиком. Его единственной страстью были компьютеры. Уже в четырнадцатилетнем возрасте он переписал популярную у подростков компьютерную игру The Four Corners, добавив в нее множество новых функциональных возможностей. В 16 лет он стал настоящим экспертом по системе безопасности UNIX, обнаружив в «классическом» берклиевском коде этой платформы множество ошибок, которые не замедлил исправить. Однако он и сам не брезговал пользоваться обнаруженными «дырами» в защите, время от времени подключаясь к удаленным электронным сетям в поисках интересующей его информации. Это увлечение привело к тому, что вскоре в компьютерном журнале Smitsonian появился материал, в котором Роберта называли одним из наиболее известных молодых хакеров в Америке. Именно Роберт Моррис является автором и разработчиком одной из наиболее известных реализаций протокола передачи данных UUCP — Unix-To-Unix CoPy. Обучаясь на четвертом курсе Гарвардского университета, Роберт уже читал лекции в Национальном Агенстве Безопасности США и исследовательских лабораториях военно-морского флота по безопасности операционной системы UNIX.
Полученные Робертом в ходе его самостоятельных разработок и изучения уже существующего опыта других программистов знания требовали практического применения. В качестве эксперимента Роберт решил написать программу, которая, используя обнаруженные им недоработки в созданном для UNIX протоколе FTP и программе sendmail, могла бы самостоятельно распространяться между объединенными в сеть компьютерами, но при этом умела бы эффективно «прятаться» в операционной системе и самостоятельно размножаться. Иными словами, «Червь» Морриса должен был объединять в себе все достоинства предыдущих попыток создания аналогичных программ. Поскольку эта разработка была всего лишь научным экспериментом, тестом на безопасность объединенных в сеть компьютерных систем, Роберт заложил в код «Червя» алгоритмы, сдерживающие его распространение, никаких модулей, разрушающих файловую систему атакованных компьютеров, также задумано не было. 2 ноября 1988 года в 18.30 Роберт Моррис подключился к компьютерам лаборатории искусственного интеллекта MIT и запустил свою программу на исполнение. Когда спустя полчаса он снова попытался подключиться к сети, чтобы проверить ход эксперимента, удаленный компьютер не ответил: благодаря закравшейся в исходный код ошибке «Червь» начал бесконтрольно размножаться, блокируя нормальную работу вычислительных систем, и вскоре вырвался из локальной сети MIT на просторы ARPANET’a — глобальной компьютерной сети, являвшейся на тот момент предшественницей современного Интернета.
Программа Морриса-младшего стала настоящим бедствием для США: в течение нескольких дней функционирование ARPANET было парализовано практически полностью. По различным подсчетам, эпидемия поразила порядка 6000 компьютеров — около 10% всех работавших тогда в сети вычислительных машин, нанесенный «Червем» ущерб оценивался от скромной цифры в 150 000 до значительной суммы в 75 млн долларов США. Вскоре к делу подключилось ФБР, однако расследование длилось недолго: Моррис сам признался в содеянном, а пресса раздула скандал до неимоверного масштаба, прежде всего благодаря профессии его отца — ведущего эксперта АНБ США по борьбе с компьютерной преступностью.
Судебное дело Роберта Морриса было одним из первых дел по обвинению в совершении компьютерного преступления в США, до этого по данной статье под суд попал лишь известный во всем мире хакер Кевин Митник. Морриса признали виновным и приговорили к выплате штрафа в размере 10 000 долларов и 400 часам исправительных работ. Однако слава Роберта Морриса, получившего широкую известность благодаря созданному им «Червю», до сих пор не дает покоя сотням и тысячам вирусописателей на разных континентах. С тех пор многим амбициозным молодым людям, разбирающимся в программировании, рано или поздно приходит в голову идея попробовать свои силы в создании программы, которая, распространяясь по Сети, могла бы дестабилизировать работу удаленных компьютеров. Именно их стремление к дешевой славе принесло пользователям множество бессонных ночей, проведенных за восстановлением разрушенных систем.
Новое время
На заре 90-х годов развитие компьютерных технологий набрало поистине фантастическую скорость. Не отставали от мировых тенденций и вирусописатели. Еще в 1989 году появилась первая классическая троянская вредоносная программа, известная под именем AIDS. Этот троянец использовал механизм монетизации, который стал повсеместно распространенным только спустя 17 лет, с возникновением вредоносных программ-шифровальщиков: AIDS делал недоступной всю хранящуюся на дисках компьютера информацию, после чего демонстрировал на экране требование о выкупе в размере 189 долларов. Однако в те далекие времена еще не существовало анонимных платежных систем вроде Bitcoin, которые позволили бы злоумышленникам получать от своих жертв деньги, оставаясь при этом в тени, поэтому автор троянца был арестован полицией при попытке обналичивания чека и осужден за вымогательство.
В 1990-м году получили распространение первые стелс-вирусы, такие как Frodo и Whale. Особенностью данной категории вредоносных программ является умение полностью или частично скрывать свое присутствие в зараженной операционной системе путем перехвата ряда системных функций и обращений ОС к инфицированным файловым объектам. Так, стелс-вирусы, способные заражать исполняемые файлы, обычно перехватывали обращения операционной системы на чтение файла, запись в файл или загрузку/отображение файла в память, с целью скрыть изменение размера этого файла после заражения. Кроме того, Whale, исполняемый модуль которого «весил» всего 9 килобайт, обладал довольно совершенными алгоритмами шифрования и антиотладки, весьма затруднявшими его детектирование и анализ.
Тогда же, в 1990 году, впервые были обнаружены полиморфные вирусы, первенцем среди которых принято считать вредоносную программу, известную под названием Chameleon. Полиморфные вирусы используют специальную технологию, формирующую код вредоносной программы прямо во время ее исполнения, то есть буквально «на ходу». При этом сам код, описывающий алгоритм формирования исполняемого файла вируса, тоже не остается постоянным и меняется от одного инфицированного объекта к другому. Благодаря тому что вирус в результате всех этих манипуляций непрерывно «мутирует», его опознание, выявление и обезвреживание средствами антивирусных программ были в то время чрезвычайно затруднены. Другим известным полиморфным вирусом, также распространявшимся в 90-м году, стала вредоносная программа под названием Tequila.
1992 год ознаменовался массовой эпидемией вируса Michelangelo, заразившего миллионы компьютеров по всему миру. Michelangelo можно назвать одним из первых в истории загрузочных вирусов, поскольку он, инфицируя компьютеры, работающие под управлением MS-DOS, модифицировал основную загрузочную запись операционной системы (Master Boot Record, MBR). Свое название вирус получил за то, что активировал свои вредоносные функции один раз в год, 6 марта, в день рождения великого художника эпохи Возрождения. В этот день он заполнял первые 100 секторов жесткого диска зараженного компьютера нулями. Поскольку вирус заражал загрузочную запись, он внедрялся в память компьютера во время запуска операционной системы. Стоило пользователю вставить в дисковод инфицированной персоналки любую дискету, и при обращении к гибкому диску вирус немедленно заражал его, обеспечивая таким образом собственное распространение. Поскольку большую часть времени эта вредоносная программа находилась в состоянии «сна», активизируясь только раз в год, она успела широко распространиться по всему миру, прежде чем была впервые обнаружена.
Следующая крупная эпидемия, вызванная распространением загрузочного вируса, произошла уже в 1994 году, и ее виновником стала очень опасная вредоносная программа, получившая известность под именем OneHalf. OneHalf представлял собой полиморфный загрузочный файловый вирус. Инфицировав основную загрузочную запись (Master Boot Record, MBR), при запуске операционной системы он передавал управление своему основному исполняемому модулю, который при каждом запуске компьютера шифровал по две дорожки на жестком диске со случайным ключом. Загруженный в оперативную память резидентный компонент вируса выполнял роль своего рода драйвера, перехватывая все обращения операционной системы к диску и расшифровывая ранее подверженные шифрованию данные «на лету», вследствие чего операционная система не испытывала каких-либо проблем в процессе чтения-записи файлов и фактически «не замечала» присутствие вируса в системе. Однако при попытке удаления вредоносной программы доступ к хранящейся на зашифрованных участках жесткого диска информации автоматически прекращался. После успешного шифрования половины доступного объема диска в момент загрузки операционной системы вирус в некоторых случаях выводил на экран компьютера сообщение: «Dis is one half. Press any key to continue…». После нажатия пользователем любой клавиши на клавиатуре компьютера загрузка MS-DOS возобновлялась в штатном режиме. Вирус отличался присутствием в своей архитектуре полиморфных алгоритмов, обладал различными функциями антиотладки, препятствующими попыткам его анализа, и обладал способностью заражать исполняемые файлы.
Поскольку OneHalf шифровал диск от конца к началу, рано или поздно он зашифровывал весь его доступный объем, включая загрузочную область. В результате при следующем включении компьютера запуск операционной системы становился невозможным, и вся информация на диске безвозвратно терялась. В начале 1994 года OneHalf вызвал настоящую пандемию среди пользователей MS-DOS, он встречался на инфицированных компьютерах вплоть до второй половины 90-х.
1995 год оставил свой след в мировой истории запуском каталога «Yahoo!», первой стыковкой американского Шаттла с российской станцией «Мир», началом работ по восстановлению храма Христа Спасителя в Москве и выпуском операционной системы Microsoft Windows 95. Именно последний факт оказал наиболее серьезное влияние на сферу информационной безопасности, поскольку появление принципиально новой по своей архитектуре ОС открыл перед вирусописателями широчайшие горизонты для творчества.
Именно в 1995 году появились первые в истории макровирусы, использовавшие в целях реализации своей вредоносной деятельности скриптовые языки, предназначенные для создания макросов в приложениях пакета прикладных программ Microsoft Office, и, в частности, Microsoft Word.
Развитие операционных систем семейства Windows 90-х повлекло появление и новых вредоносных программ, так или иначе использующих их ресурсы. Так, в 1998 году разразилась эпидемия вируса Melissa, предназначенного для массовой рассылки нежелательных рекламных почтовых сообщений — спама, а вскоре пользователей компьютеров постигла новая напасть — распространение вируса Win95.CIH, также известного под народным наименованием «Чернобыль».
Эта вредоносная программа была написана тайваньским студентом Чэнь Инхао, она представляла собой резидентный вирус, способный работать только на компьютерах под управлением операционной системы Windows 95/98. Вирус активизировался 26 апреля 1999 года (в годовщину аварии на Чернобыльской АЭС, из-за чего он и получил свое название) и уничтожил все данные на жестких дисках инфицированных компьютеров, а в некоторых случаях модифицировал содержимое микросхем FlashBIOS, приводя компьютеры в полностью неработоспособное состояние. Таким образом, Win95.CIH стал первым в истории компьютерным вирусом, способным взаимодействовать с компонентами аппаратной архитектуры ПК, такими как микросхемы BIOS.
Начиная с конца 90-х годов появление новых модификаций вредоносных программ стало приобретать лавинообразный характер, и к началу 2000-х число вирусов и троянцев для операционных систем семейства Microsoft Windows насчитывало уже сотни тысяч.
Наши дни
Если вирусописатели 90-х были, в основной своей массе, энтузиастами-одиночками, создававшими вредоносное ПО либо для собственного развлечения, либо в целях самоутверждения, то в новом тысячелетии производство троянских программ и компьютерных вирусов встало на коммерческие рельсы. Злоумышленники научились извлекать из распространения своих творений непосредственную финансовую выгоду, и в наши дни объемы этого незаконного теневого рынка составляют, по разным подсчетам, многие сотни миллионов долларов.
В 2000 году серьезную опасность для пользователей представлял червь «I LOVE YOU», распространявшийся в виде вложения в сообщения электронной почты. Потенциальная жертва получала письмо с вложением, содержавшее строку «ILoveYou». При попытке открыть вложение на атакуемом компьютере запускался VBS-сценарий, который рассылал копию червя по всем адресам электронной почты из адресной книги Microsoft Outlook. В общей сложности от действия этой вредоносной программы пострадало более 3 млн пользователей по всему миру.
Другой почтовый червь, известный под наименованием MyDoom, атаковал компьютеры пользователей в 2004 году. Инфицировав компьютер, MyDoom блокировал пользователю доступ к сайтам антивирусных компаний и компании Microsoft. Червь предназначался для организации массовых атак на отказ в обслуживании (DDoS-атак) на различные сайты.
В 2006 году было зафиксировано появление первых массовых ботнетов — вредоносных сетей, созданных с использованием автономно действующих дистанционно управляемых программ (ботов). Одной из первых и наиболее крупных таких бот-сетей стал Rustock. Данный ботнет, предназначенный для рассылки рекламных почтовых сообщений — спама, насчитывал на начальном этапе более 150 тысяч зараженных ПК, а в момент пика своего роста — более 2 миллионов. Компьютеры, инфицированные Rustock, позволяли злоумышленникам отсылать более 25 тысяч рекламных писем в час, благодаря чему ботнет приносил своим создателям миллионные прибыли.
В 2007 году в России было отмечено появление первых троянцев-винлокеров, получивших в последующие годы чрезвычайно широкое распространение, быстро принявшее масштабы настоящего национального бедствия, а в 2010 году троянцы этого типа впервые вышли за рамки российских границ. Эта категория программ-вымогателей блокировала нормальную работу операционной системы Microsoft Windows, демонстрируя на экране компьютера изображение-баннер с требованием заплатить выкуп за разблокировку. Широкому распространению этого типа угроз способствовало также и то, что злоумышленники создали специальные программы-конструкторы для быстрого создания троянцев-винлокеров, благодаря чему производить таких троянцев в поистине промышленных масштабах получили возможность даже люди, абсолютно далекие от программирования.
Примерно в 2008 году появились первые троянцы-энкодеры (шифровальщики). Эти вредоносные программы также традиционно относят к категории троянцев-вымогателей, однако они представляют более серьезную опасность для пользователей, поскольку шифруют хранящиеся на дисках компьютера файлы и требуют оплаты выкупа за их расшифровку. На момент написания этой книги специалистам по информационной безопасности известно более тысячи модификаций троянцев-шифровальщиков, причем новые их разновидности появляются с завидной регулярностью.
Еще одна крупная эпидемия разразилась в 2008 году: ее причиной стал почтовый червь Conficker, заразивший более 12 миллионов компьютеров во всем мире. Этот червь распространялся, используя уязвимости в архитектуре ОС Microsoft Windows, и потому в течение довольно длительного времени борьба с ним была весьма затруднена — до тех пор, пока корпорация Microsoft не выпустила соответствующие обновления безопасности. По оценкам экспертов, червь нанес совокупный ущерб пользователям в размере, превышающем 9 млрд долларов, а в устранении последствий эпидемии помимо Microsoft принимали участие крупнейшие мировые антивирусные компании. В том же 2008 году появились первые банковские троянцы, предназначенные для хищения денежных средств непосредственно с банковских счетов своих жертв, использующих системы дистанционного банковского обслуживания («банк — клиент»).
С ростом популярности мобильной операционной системы Google Android к ней заметно повысился и интерес со стороны злоумышленников: первые вредоносные программы для портативных устройств под управлением Android появились в 2010 году. А в 2012 году специалисты российской антивирусной компании «Доктор Веб» выявили первый в истории ботнет, состоящий из компьютеров Apple с установленной на них операционной системой Mac OS X, зараженных троянцем-бэкдором BackDoor.Flashback.39. В момент пика своей деятельности бот-сеть BackDoor.Flashback.39 насчитывала более 650 тысяч зараженных компьютеров Apple по всему миру.
В настоящий момент в лаборатории антивирусных компаний поступает на анализ до миллиона файлов различных типов ежедневно, из них вредоносными признаются десятки тысяч. А вирусописатели непрерывно изыскивают все более изощренные способы избежать детектирования своих творений современными антивирусными программами.
Глава 2. Сравнительная вирусология
В настоящий момент в мире отсутствует какая-либо общепринятая единая система классификации вредоносных программ: каждая антивирусная компания использует собственный метод их идентификации и наименования. Вместе с тем существует определенная исторически сложившаяся практика, позволяющая относить вредоносные приложения к различным типам и категориям.
Классификация по типу операционной системы
Так, наиболее очевидной (и наименее точной) методикой классификации вредоносного ПО можно считать распределение угроз по сис-темным платформам, на заражение которых ориентировано то или иное опасное приложение. В этом отношении абсолютным и безоговорочным лидером являются операционные системы семейства Microsoft Windows, на которые сегодня рассчитано порядка 95% всех существующих в мире вредоносных программ.
На втором месте по числу опасных приложений располагается мобильная платформа Google Android. Согласно статистическим данным, опубликованным российской антивирусной компанией «Доктор Веб», в 2010 году специалистам по информационной безопасности было известно всего лишь порядка 30 вредоносных, нежелательных и потенциально опасных Android-программ, к 2011 году их количество составило уже 630, еще через год оно возросло до 1267, к концу 2014 года превысило 5600, а уже в июне 2015 года достигло 10 144. Эти цифры наглядно демонстрируют, что прирост числа угроз для платформы Android постепенно принимает экспоненциальный характер. Если подобная динамика сохранится в дальнейшем, можно предположить, что к декабрю 2015 года общее число известных специалистам вредоносных Android-программ превысит значение в 20 000.
Основная причина такого бурного роста числа угроз для Android в целом очевидна: вирусописатели заинтересованы в извлечении прибыли от распространения своих вредоносных приложений, а мобильные платформы — это живые деньги. Фактически современный смартфон представляет собой мобильный электронный кошелек, и простор для творчества со стороны злоумышленников здесь поистине огромен: они могут рассылать платные СМС-сообщения, совершать в тайне от пользователя телефонные звонки на различные коммерческие номера, подписывать жертву на те или иные виртуальные услуги, за использование которых с ее счета будут ежедневно списываться денежные средства, крутить на телефоне рекламу, а если его владелец использует системы мобильного банкинга — просто красть с его счета деньги, перехватывая входящие СМС с одноразовыми паролями и кодами авторизации. Сегодня существуют даже блокировщики и троянцы-шифровальщики для Android. Потенциальная емкость этого теневого рынка огромна, и он будет освоен, причем стремительно. Сейчас мы как раз наблюдаем этот процесс вживую.
Безусловно, 99% современных троянцев для Android неискушенный пользователь запускает на своем устройстве самостоятельно, скачав их из Интернета под видом игры или какой-либо полезной программы. Казалось бы, достаточно проявлять элементарную осмотрительность, и можно гарантированно избежать опасности заражения. Однако не стоит также сбрасывать со счетов тот факт, что ОС Android — это массовая и чрезвычайно популярная операционная система, занимающая львиную долю на современном рынке мобильных устройств. Она рассчитана на обычного, рядового, среднестатистического владельца смартфона, который может даже не знать такого термина, как «системная платформа». Все, что от него требуется, — это умение интуитивно нажимать на кнопки. И потому, когда загруженная из Интернета игра, запускаясь на выполнение, потребует от него доступа к СМС, сети, списку контактов, внутренней памяти телефона, личным данным и холодильнику на кухне, он нажмет «Ок» не задумываясь, потому что просто не поймет, что все эти слова означают. Впрочем, он и не должен этого понимать, он — пользователь, от слова «использовать». Именно это «слабое звено» и эксплуатируют в своих неблаговидных целях киберпреступники.
Третью позицию по количеству известных угроз занимает операционная система Apple Mac OS X, широко известная среди обывателей своей «неприступностью» и «безопасностью». Троянских программ для OS X и вправду существует сравнительно немного, но, тем не менее, они есть, причем первый троянец, ориентированный именно на OS X, был выявлен в 2006 году. Подавляющее большинство среди угрожающих пользователям Apple вредоносных программ составляют так называемые рекламные троянцы, многие из которых реализованы в виде надстроек (плагинов) для наиболее популярных браузеров: Safari, Chrome, Firefox. Их основное назначение заключается в демонстрации потенциальной жертве назойливой рекламы при открытии им в окне браузера различных веб-страниц. Существуют троянцы-майнеры для OS X, использующие вычислительные мощности компьютеров Apple для «добычи» электронных криптовалют путем сложных математических вычислений. Одним из немногих и весьма редких примеров вредоносной программы, способной проникнуть на «мак» вообще без участия пользователя и абсолютно незаметно для него, является уже упоминавшийся мною ранее бэкдор BackDoor.Flashback.39, использовавший для своего распространения уязвимость в Java-машине OS X. Следует, между делом, отметить, что если бы инцидента с Flashback не случилось, пользователей «маков» наверняка постигла бы другая аналогичная эпидемия — например, спустя короткое время после выявления упомянутой выше угрозы был обнаружен троянец BackDoor.Sabpub.1, использовавший для своего распространения ту же самую уязвимость, что и Flashback. Беды удалось избежать лишь потому, что корпорация Apple вовремя выпустила «заплатку» для своей реализации Java (вовремя — это спустя два месяца после выхода аналогичного обновления от Oracle). Этих двух месяцев вполне хватило на то, чтобы BackDoor.Flashback успел инфицировать 600 000 с лишним машин. По данным на 22 июня 2015 года, во всем мире до сих пор насчитывается порядка 26 700 компьютеров Apple, зараженных Flashback, при этом большая их часть (13 966) находится на территории США, на втором месте по числу заражений (4 781) — Канада, на третьем (2 115) — Австралия.
Безусловно, с точки зрения архитектуры и разграничения прав доступа операционная система от Apple намного безопаснее Windows, однако абсолютно безопасных системных платформ не бывает в принципе. Любая ОС — это по большому счету конгломерат программ различного назначения, которые пишут люди. А им, в свою очередь, свойственно ошибаться. То, что вирусописатели всерьез заинтересовались OS X, — серьезный признак роста распространенности системной платформы от Apple. Ни один создатель троянцев не станет писать вредоносное ПО под непопулярную ОС: чем больше число пользователей, тем выше шанс заразить чью-либо машину. Чистая математика, ничего личного. И эпидемия BackDoor.Flashback.39 — признак того, что Mac OS X перешагнула некий незримый рубеж между «игрушкой для избранных» и «массовой системной платформой». И это — естественный процесс, получивший свое развитие еще в момент перехода Apple на аппаратную платформу Intel.
На четвертом месте по распространенности в «дикой природе» занимают вредоносные программы для ОС семейства Linux. Интерес злоумышленников к данной платформе обусловлен тем, что эти операционные системы активно используются для поддержки веб-серверов, а также FTP- и почтовых серверов в Интернете, благодаря чему заражение такой машины может открыть злоумышленникам, например, доступ к SMTP-серверу для организации массовых рекламных рассылок, к веб-серверу — для реализации автоматических перенаправлений посетителей сайта на интернет-ресурсы, распространяющие другое вредоносное ПО, в целях хищения пользовательских учетных данных, а также для организации массовых DDoS-атак. Причиной заражения во многих случаях является недостаточная компетентность администраторов Linux-серверов при настройке операционной системы, установка различного ПО из недоверенных репозиториев, а также использование ими «слабых» паролей, неустойчивых к взлому путем простого подбора по словарю или с применением методов «брутфорса» (подбор пароля полным перебором, также известен как взлом с использованием «грубой силы»).
Отдельную подкатегорию Linux-угроз составляют троянцы, предназначенные для заражения устройств, работающих под управлением встраиваемых версий Linux, например бытовых маршрутизаторов (сетевых и wi-fi-роутеров), в том числе использующих аппаратную архитектуру MIPS и ARM. Известны случаи, когда такие троянские программы подменяли настройки DNS-маршрутизатора, что приводило к автоматическому перенаправлению пользователей на вредоносные интернет-ресурсы при просмотре веб-сайтов или вызывало неожиданное появление рекламных сообщений в окне браузера. Некоторые вредоносные программы подобного типа реализовывали функции прокси-сервера, осуществляя фильтрацию пользовательского трафика с различными неблаговидными целями (фишинг, подмена поисковой выдачи, автоматическое перенаправление на вредоносные и мошеннические интернет-ресурсы и т.д.).
Угрозы для других системных платформ в количественном выражении составляют малозначительные величины. Так, по данным на 2015 год, число вредоносных программ, способных представлять опасность для пользователей мобильной платформы Apple iOS, вообще исчисляется единицами, да и те представляют угрозу в основном для устройств, подвергшихся процедуре jailbreak (несанкционированного производителем устройства получения доступа к файловой системе).
Классификация по вредоносным функциям
Более распространенной и логически правильной формой классификации вредоносных программ является их распределение по типам и подклассам согласно формальным признакам, определяющим их вредоносные функции. Ниже мы рассмотрим основные виды вредоносных программ по их деструктивному функционалу, архитектурным особенностям и практическому назначению, а также перечислим их основные характерные признаки.
Вирусы
Сегодня существует огромное количество различных программ, способных причинить вред вашему ноутбуку, компьютеру, смартфону или планшету, однако большинство пользователей отчего-то традиционно называет все их «вирусами». Это в корне неправильно. Возможно, некоторые читатели даже удивятся, если я скажу, что эпоха, ознаменованная преобладанием в «дикой природе» компьютерных вирусов, по большому счету, закончилась в начале «нулевых годов», и в наши дни классические файловые вирусы пребывают в меньшинстве, составляя среди общего объема распространяющихся во всем мире вредоносных программ незначительные величины порядка нескольких процентов. Основной массив вредоносного ПО представляют различные разновидности троянцев, о которых мы поговорим позже.
Фактически на июнь 2015 года можно назвать лишь ограниченное число активно действующих файловых вирусов, представляющих реальную угрозу для пользователей. Прежде всего это представители семейства Rmnet (Ramnit — по классификации компании ESET), способные выполнять на пользовательском компьютере веб-инжекты (о том, что это, мы побеседуем в разделе, посвященном обзору функций вредоносных программ), благодаря чему вирус теоретически в состоянии получить доступ к банковским счетам жертвы, если она пользуется системами «банк — клиент». Также эти вирусы осуществляют кражу паролей от популярных FTP-приложений, которые впоследствии могут быть задействованы злоумышленниками для проведения таргетированных сетевых атак, а также выполнять поступающие от киберпреступников команды.
Еще один распространенный в наши дни вирус относится к семейству Sector (Sality — по классификации Symantec, ESET и «Лаборатории Касперского») — представители этого семейства способны загружать из Сети и запускать на инфицированной машине различные исполняемые файлы, а также выполнять ряд иных вредоносных функций. Также определенную распространенность сейчас имеют вирусы семейств Win32.MewsSpy, Win32.VirLock и некоторые другие.
Чтобы отнести вредоносную программу к категории компьютерных (файловых) вирусов, она должна отвечать двум важным критериям:
обладать способностью к саморепликации — иными словами, способностю к распространению в автоматическом режиме путем создания собственных копий без участия пользователя;
обладать способностью заражения (инфицирования) файловых объектов.
Вот об этом следует поговорить чуть подробнее. Собственно, умением самостоятельно создавать собственные копии (самореплицироваться) обладает и еще одна категория вредоносных программ — компьютерные черви (worms). А вот умение заражать файлы характерно в первую очередь для вирусов. Под заражением понимается технология, с использованием которой вирус внедряется непосредственно в файл исполняемого приложения (программы), не нарушая при этом ее основных функциональных возможностей. Запуская такую программу на исполнение, пользователь одновременно запускает и встроенный в нее вирус, который, загрузившись в память инфицированного компьютера, реализует заложенные в него создателями деструктивные функции. Таким образом, распространение вируса происходит в том числе вместе с зараженными программами, в которые успел встроиться вирус.
Помимо классических файловых вирусов принято различать еще несколько разновидностей компьютерных вирусов, которые кратко упоминались в предыдущей главе.
Полиморфные вирусы — вирусы, с целью затруднить свое обнаружение и уничтожение способные «на лету» изменять свой код непосредственно в процессе его исполнения. Процедура, отвечающая за динамическое изменение кода вируса, тоже может меняться от заражения к заражению. Самый простой способ модифицировать структуру исполняемого файла вируса, не меняя алгоритм его работы, — добавить в программу «пустых операторов», пустых циклов, пустых строк и прочего «мусорного кода», не оказывающего существенного влияния на функциональные возможности вируса, но затрудняющие создание сигнатуры для его детектирования. Практически все современные файловые вирусы используют те или иные полиморфные технологии.
Стелс-вирусы — вирусы, способные полностью или частично скрывать свое присутствие на инфицированном компьютере, например, путем перехвата обращений операционной системы к зараженным файловым объектам, памяти или загрузочным областям диска. Фактически, перехватив обращение операционной системы, стелс-вирус возвращает операционной системе недостоверную информацию о состоянии соответствующего объекта, например о размере исполняемого файла, с целью сокрытия увеличения его объема в результате добавления в файл вирусного кода. Этот термин применялся по отношению преимущественно к вирусам, действовавшим в операционной системе MS-DOS, и потому сейчас его можно считать устаревшим. Вредоносные программы, использующие механизмы сокрытия своего присутствия в зараженной системе, принято называть руткитами.
Макровирусы — вирусы, написанные с использованием скриптовых языков, применяющихся для создания макросов в различных офисных приложениях, таких как Microsoft Office, в частности Microsoft Word.
Резидентные вирусы. Сам термин «резидентный» традиционно принято использовать в контексте «выполняющийся в фоновом режиме». Ранее «резидентными вирусами» называли вредоносные программы, действующие непосредственно в памяти зараженного компьютера параллельно с другими запущенными задачами и процессами. Иногда к этой же категории относили вирусы, не хранящиеся где-либо на диске в виде обособленного физического файла. Такие вирусы либо уничтожали исходный файл после своего запуска, либо хранили его в недоступных пользователю и операционной системе областях диска, либо «собирали» свое тело непосредственно в оперативной памяти из отдельных разрозненных компонентов (каждый из которых сам по себе не представлял какой-либо опасности). С появлением многозадачных операционных систем само понятие «резидентный вирус» принято считать устаревшим, а угрозы, действующие непосредственно в памяти инфицированного устройства и не хранящиеся на физических носителях в виде обособленных файлов, часто называют общим термином «бесфайловые вредоносные программы».
Черви
Компьютерные черви (worms) — разновидность вредоносных компьютерных программ, обладающих способностью к саморепликации, то есть к автоматическому распространению без участия пользователя — по локальной сети, по каналам электронной почты, с использованием сменных носителей информации или иными методами. При этом считается, что большинство червей не способно заражать файловые объекты, хотя из данного правила имеются некоторые исключения.
В наши дни довольно широко распространены так называемые почтовые черви — эти вредоносные программы, запустившись на исполнение, отыскивают все хранящиеся на зараженном компьютере адреса электронной почты (некоторые сканируют для этих целей не только адресные книги почтовых клиентов, но также различные текстовые документы, локально хранящиеся на диске веб-страницы и документы Office), после чего рассылают свою копию по этим адресам в виде вложения в электронное письмо. Адрес отправителя такие вредоносные программы также зачастую заимствуют из списка контактов на зараженной машине. В этом отношении нельзя не отметить, что получатель подобного сообщения, увидев послание, якобы отправленное знакомым ему человеком, с большой долей вероятности попытается открыть такое письмо и в результате сам станет очередной жертвой почтового червя.
Многие черви распространяются, копируя себя на съемные носители информации. Например, некоторые вредоносные программы данного типа размещают в корневой папке съемного накопителя (флэшки или карты памяти) файл autorun.inf, обеспечивающий автоматический запуск червя при каждом обращении к инфицированному накопителю (в устаревших версиях операционных систем, где функция запуска и открытия содержимого смонтированных дисков не отключена по умолчанию, например, в ранних редакциях Windows XP, запуск червя может произойти автоматически при подключении зараженного диска к компьютеру). Другие черви перемещают все содержимое съемного носителя информации в скрытую папку, а вместо него размещают собственные копии с прежними именами папок и файлов. В результате пользователь, щелкнув мышью на значке такого файлового объекта, вместо открытия нужной ему папки или файла запустит на выполнение вредоносную программу.
Троянские программы (троянцы)
Это самый многочисленный и распространенный тип вредоносных программ. В отличие от вирусов и червей, троянцы не способны ни к саморепликации, ни к заражению файловых объектов.
Название данной категории угроз восходит к знаменитой легенде про деревянного коня, которого ахейцы преподнесли в подарок жителям осажденной Трои — напомню, что ночью из огромной деревянной статуи вылезли прятавшиеся внутри воины и открыли ворота спящего города атакующей армии. Троянские программы действуют практически аналогичным образом: маскируясь под какое-нибудь полезное приложение — утилиту для просмотра видео, компьютерную игру, даже под антивирус или безобидный, на первый взгляд, документ, присланный по электронной почте — например счет, квитанцию о штрафе или судебный исполнительный лист, — троянец при попытке запуска или открытия файла начинает свою вредоносную деятельность на зараженной машине. Выловить вредителя не так-то просто, особенно с учетом того, что многие троянские программы умеют «прятаться» в недрах операционной системы и даже хитроумно обходить некоторые типы антивирусной защиты.
Из сказанного выше можно сделать простой и очевидный вывод: троянские программы жертва запускает на своем компьютере самостоятельно, при этом злоумышленники заставляют ее сделать это различными хитроумными способами. Вот только один из нескольких сотен примеров возможного пути распространения троянцев. Однажды в папке личных сообщений пользователь социальной сети находит послание, отправленное кем-либо из его списка друзей (этот аккаунт, разумеется, был ранее взломан злоумышленниками). В сообщении содержится информация о том, что на сайте YouTube выложен компрометирующий пользователя видеоролик, а также приводится ссылка на соответствующую страничку. Перейдя по ссылке, пользователь попадает на принадлежащий киберпреступникам фишинговый сайт, полностью копирующий оформление сервера youtube.com. Подделка настолько похожа на оригинальный YouTube, что отличить его от настоящего сайта популярного видеохостинга, на первый взгляд, довольно-таки сложно. На фишинговой веб-странице обозначено название видеоролика, в котором содержится имя жертвы, например, он может быть озаглавлен следующим образом: «%username% is in the leading role. Shocking performance!», что в переводе означает: «%username% в главной роли. Шокирующее поведение!», где вместо %username % автоматически подставляется имя потенциальной жертвы. Также страничка содержит несколько фальшивых комментариев от других пользователей сайта, которые «были шокированы, ознакомившись с этим видео». Чтобы просмотреть ролик, пользователю предлагается скачать и установить обновленный flash-проигрыватель, в роли которого выступает исполняемый файл с именем Flash-Player.exe. В этом файле и содержится троянец.
Однако чаще злоумышленники не изобретают подобных сложных схем, а массово рассылают троянцев в виде вложений в сообщения электронной почты под видом коммерческих предложений, сообщений почтовых служб и интернет-магазинов, скидочных купонов, бухгалтерских документов — счетов или счетов-фактур, различных договоров, судебных бумаг и т. д. Кроме того, очагами распространения троянских программ традиционно являются сайты категории «для взрослых», всевозможные коллекции пиратских и взломанных коммерческих программ, файлообменные интернет-ресурсы, сборники утилит для взлома лицензионных продуктов (всевозможные «кряки», «кейгены» и т. д.). Шанс получить вместе со «взломанной» программой или игрой бесплатный «подарок» в виде опасного троянца намного выше, чем в случае загрузки этого же приложения с сайта разработчиков или покупки такой программы у официальных дистрибуторов.
Бэкдоры
Если мы попытаемся перевести с английского языка слово «бэкдор» (Backdoor), то получится что-то вроде словосочетания «черный ход» или «задняя дверь». Вредоносные программы-бэкдоры, к которым относят и троянцев, и некоторые виды вирусов, как раз и выполняют на зараженном устройстве подобные функции: они без ведома пользователя открывают злоумышленникам полный доступ к инфицированному компьютеру или смартфону, о чем его владелец зачастую даже не догадывается. С помощью бэкдоров киберпреступники могут не только увидеть все хранящиеся на устройстве личные файлы и по желанию скопировать их себе, но также полностью управлять зараженной машиной: запускать на ней различные программы, отдать команду на полное уничтожение всей имеющейся на устройстве информации, поместить на диск компрометирующие пользователя документы или фотографии, похитить деньги, если жертва пользуется системой «банк — клиент» или электронными платежными системами, даже использовать зараженный компьютер в качестве промежуточного звена в процессе интернет-атаки на банк или какой-нибудь другой сервер: в ходе последующего расследования служба безопасности или полиция могут выйти на владельца инфицированного устройства благодаря оставленным в сети следам, а настоящие преступники останутся неузнанными.
Наиболее простые с архитектурной точки зрения модификации бэкдоров могут транслировать поступающие извне (от принадлежащего злоумышленникам командного центра) директивы командному интерпретатору операционной системы (cmd в Microsoft Windows, bash или sh в Linux), более «продвинутые» обладают собственной системой команд, позволяющей выполнять различные операции с файловыми объектами и самой операционной системой. Данные, которыми обменивается бэкдор с удаленным сервером злоумышленников, как правило, шифруются.
Буткиты
Буткиты (от англ. boot — «загрузка» и kit — «инструмент»), или так называемые загрузочные вирусы — это вирусы или троянцы, способные заражать загрузочную запись на диске компьютера, благодаря чему запускаются либо раньше операционной системы, либо одновременно с ней, но в любом случае перед загрузкой основных средств антивирусной защиты. Из этого логически вытекает основная сложность борьбы с буткитами — поскольку они стартуют еще на раннем этапе загрузки компьютера, буткиты перехватывают некоторые функции управления операционной системой и, как следствие, могут парализовать запуск и нормальную работу антивирусных программ, а также блокировать попытки «вылечить» инфицированное устройство. При неудачном удалении такой угрозы может произойти повреждение логической структуры диска, благодаря чему система и вовсе перестанет загружаться, и сложное электронное устройство «превратится в кирпич». Этим они и опасны.
Существуют разновидности буткитов: некоторые из них заражают главную загрузочную запись диска (Master Boot Record, MBR), некоторые — загрузочную запись тома (Volume Boot Record, VBR). В общем случае алгоритм действия буткита таков: запустившись на инфицированном компьютере, он размещает свою копию в одной из свободных логических областей диска, а затем модифицирует существующую загрузочную запись, внедряя в нее собственный код, который получает управление при запуске операционной системы и загружает в оперативную память основное тело буткита. По окончании этого процесса буткит передает управление дальнейшей загрузкой оригинальной загрузочной записи, позволяя ОС стартовать в штатном режиме. На момент завершения загрузки операционной системы вредоносная программа уже находится в памяти и может выполнять различные деструктивные действия, например, перехватывать те или иные системные функции и предотвращать запуск антивирусных программ, а также блокировать пользователю доступ к сайтам их разработчиков.
Особая опасность буткитов заключается еще и в том, что, запускаясь вместе с операционной системой, эти вредоносные программы могут получить в ней максимальные привилегии (например, полномочия администратора), даже если текущий сеанс открыт пользователем с ограниченными системными правами. Таким образом, буткит имеет на зараженном компьютере поистине неограниченные возможности для реализации всевозможных вредоносных функций, включая полный доступ к файловой системе, компонентам ОС, памяти и драйверам.
Руткиты
Руткитами специалисты по информационной безопасности обычно называют вредоносные приложения, умеющие скрывать свое присутствие в зараженной операционной системе, а также активно противодействовать попыткам их поиска или удаления. Кроме того, некоторые руткиты специально разработаны с целью сокрытия на инфицированном компьютере деятельности других вредоносных программ. В подобной ситуации несколько опасных приложений действуют как бы в связке: одно из них «обеспечивает прикрытие», а второе — реализует свой вредоносный функционал.
Обобщая, можно сказать, что руткиты предназначены для реализации в инфицированной операционной системе следующих функций:
• сокрытия различных объектов (файлов, папок, запущенных приложений и/или загруженных драйверов);
• сокрытия происходящих в системе процессов (запуск и выгрузка приложений, загрузка динамических библиотек, встраивание в запущенные процессы, заражение файловых объектов и т. д.);
• контроля над происходящими в системе процессами (перехват системных функций, обращений, контроль над иными системными событиями).
Многим руткитам для реализации своих функций необходимы полномочия администратора операционной системы, для чего некоторые из них стараются повысить собственные привилегии с использованием различных уязвимостей в архитектуре операционной системы. Подобные руткиты, действующие на уровне ядра операционной системы, принято называть kernel-mode, однако существуют руткиты и user-mode, действующие, с точки зрения используемых системных привилегий, на уровне пользователя. Например, руткит-модуль, встроенный в некоторые модификации широко известного банковского троянца семейства Zeus, является именно таким.
Для реализации своих деструктивных функций руткиты используют различные методы: перехват системных функций, захват таблиц вызовов, использование драйверов или непосредственную модификацию системных объектов и объектов ядра ОС (Direct kernel object manipulation) и другие.
Биоскиты
Биоскиты — это вредоносные программы, способные модифицировать содержимое микросхем BIOS инфицированного компьютера. Подобные угрозы встречаются в природе достаточно редко, точнее, на сегодняшний день практически совсем не встречаются. Последняя такая программа, получившая наименование Trojan.Bioskit.1, была обнаружена специалистами антивирусной компании «Доктор Веб» еще в сентябре 2011 года, и по всем признакам она походила скорее на экспериментальную и незавершенную разработку академического характера, чем на реальную угрозу.
Trojan.Bioskit.1 использовал для заражения микросхемы BIOS стороннюю утилиту производства компании Phoenix Technologies, при этом теоретической опасности подвергались лишь компьютеры, оборудованные материнской платой, которая использует BIOS с прошивкой от Award Software, да и то при соблюдении ряда условий. В случае успешной перепрошивки содержимого BIOS уже сама эта микросхема могла стать источником повторного заражения компьютера даже после успешного лечения инфекции на уровне операционной системы.
Безусловно, не стоит недооценивать опасность такого рода угроз, особенно с учетом того, что в будущем подобные технологии могут получить дальнейшее развитие. Однако на момент написания этой книги можно смело сказать, что биоскиты не имеют широкого распространения и не представляют серьезной опасности для пользователей.
Боты
Ряд вирусов, троянцев и бэкдоров иногда называют ботами (от английского слова bot, сокращенного от robot) — это вредоносные программы, наделенные способностью объединяться в ботнеты (или бот-сети). Ботнетом называют сеть зараженных устройств, дистанционно управляемых злоумышленниками, например, с использованием одного или нескольких командных серверов, и умеющих обмениваться информацией. Для чего киберпреступники создают ботнеты? В частности, для централизованной атаки на различные серверы Интернета. Скажем, если к какому-нибудь веб-сайту по команде одновременно обратится несколько сотен тысяч компьютеров, при этом они станут посылать ему запросы с интервалом в несколько микросекунд, у сервера попросту не останется ресурсов для обслуживания других клиентов и он откажется работать под такой неожиданно возросшей нагрузкой. Подобный тип атак называется «атака на отказ в обслуживании» — Distributed Denial of Service, или, сокращенно, DDoS-атаками. Подобным способом некоторые не слишком разборчивые в средствах владельцы коммерческих сайтов иногда «устраняют» своих конкурентов, а киберпреступники получают прибыль, продавая подобные услуги на подпольных форумах. Другой пример — массовая рассылка спама: «подцепив» где-нибудь троянскую программу, входящую в спаммерскую бот-сеть, ПК жертвы может стать одним из миллиона компьютеров, рассылающих по электронной почте рекламу виагры или сайтов для взрослых, при этом содержание рекламных писем и список адресов для рассылки поступают спам-ботам по команде из единого управляющего центра.
Существуют боты, способные самостоятельно настраиваться на различные управляющие серверы и автоматически менять их в случае необходимости (например, если какой-либо из таких серверов внезапно перестанет работать). Есть ботнеты, вообще обходящиеся без командных центров: они формируют так называемые Peer-to-Peer, или P2P-сети, — одноранговые и децентрализованные, уничтожить которые очень непросто. А, например, троянцы семейства IRC.Bot используют в качестве управляющего сервера… чаты для обмена текстовыми сообщениями, созданные с использованием протокола Internet Relay Chat (IRC). Подключаясь к одному из таких чат-каналов, специально созданных злоумышленниками, IRC.Bot ожидает получения от киберпреступников команд, которые те отправляют в виде простого текстового послания. Некоторые боты для мобильной платформы Android, например представители многочисленного семейства Android.SmsBot, могут получать управляющие директивы в СМС-сообщениях, поступающих на зараженный мобильный телефон. Подробнее о ботнетах мы поговорим в одной из следующих глав.
Шпионы (Spyware)
Шпионское программное обеспечение (spyware) чрезвычайно широко распространено в современном мире — значительная часть шпионских программ реализована в виде классических троянцев. Предназначение таких программ вполне очевидно: они способны следить за пользователем и передавать злоумышленникам информацию, получаемую с его устройства.
Один из наиболее популярных типов программ-шпионов — это так называемые кейлоггеры, то есть приложения, считывающие и сохраняющие в специальный журнал коды нажимаемых пользователем клавиш, а потом передающие эту информацию злоумышленникам. Таким образом, можно, например, похищать вводимые жертвой в различные экранные формы логины и пароли, а также любую иную набираемую на клавиатуре информацию. К слову, для хищения вводимых в экранные формы данных на различных веб-страницах существует специальная категория утилит, которые называют грабберами, — в отличие от кейлоггеров, фиксирующих все нажатия клавиш, они способны получать только интересующие злоумышленника значения, например путем анализа передаваемых от клиента серверу с помощью протокола HTTP GET и POST-запросов или при помощи перехвата используемых браузером API-функций.
Другие троянцы-шпионы могут создавать и отправлять киберпреступникам скриншоты — снимки содержимого экрана зараженного компьютера, осуществлять скрытую съемку с использованием встроенной видеокамеры устройства. Кроме того, программы-шпионы, ориентированные на мобильную операционную систему Google Android, могут транслировать злоумышленникам географические GPS-координаты текущего положения зараженного устройства, передавать журнал звонков, фотографии, выполнять несанкционированную фото- и видеосъемку, записывать телефонные разговоры и даже использовать встроенный микрофон мобильного устройства для скрытой диктофонной записи с последующей передачей полученных звуковых файлов на удаленный управляющий сервер.
Очевидно, что присутствие на персональном компьютере, ноутбуке или мобильном устройстве программы-шпиона является прямой угрозой конфиденциальности и частной жизни пользователя.
Нежелательные и нерекомендуемые приложения
Помимо вредоносных программ существует широчайший ассортимент разнообразных потенциально опасных и нежелательных приложений, которые сами по себе вредоносного потенциала не несут, но при определенных обстоятельствах способны доставить пользователю кучу ненужных проблем. В частности, к такой категории относятся приложения класса Adware — утилиты, которые, возможно, и имеют какую-то полезную нагрузку, но при этом помещают во все просматриваемые пользователем веб-страницы назойливую рекламу. Работать в Интернете на компьютере с установленными приложениями категории Adware становится практически невозможно: рекламные баннеры высвечиваются в самых неожиданных частях веб-страниц, выпрыгивают в отдельных окнах, браузер самостоятельно открывает дополнительные вкладки, произвольно меняется его стартовая страница…
С одной стороны, смертельной опасности такое поведение компьютера для пользователя не представляет, с другой — доставляет ему значительное неудобство.
Среди нежелательных программ отдельно можно отметить приложения семейства Fakealert: если перевести с английского это наименование, получится что-то вроде «ложного предупреждения». К этой категории относятся всевозможные поддельные антивирусы, утилиты для оптимизации системного реестра, «ускорения» Интернета и «лечения» компьютера. Выполнив «проверку» пользовательского устройства, они обнаруживают различные угрозы и неполадки, за устранение которых требуют оплаты. Разумеется, на самом деле никакой проверки не выполняется, а все выявленные таким приложением проблемы и неисправности существуют только в буйной фантазии разработчиков этой программы. Цель они преследуют лишь одну: как следует напугать пользователя и заставить его заплатить как можно больше денег.
Классификация по степени опасности
Именно этот принцип лежит в основе классификаций, используемых большинством антивирусных компаний в современном мире. Данный способ классификации во многом напоминает предыдущий, однако определяющей точкой в нем является не набор деструктивных функций, реализуемых той или иной вредоносной программой, а степень опасности, которую представляет поведение каждой конкретной угрозы на инфицированном компьютере.
При этом в подобной классификации реализуется принцип поглощения классов в виде определенной иерархической последовательности, например «Файловые вирусы -> Черви -> Бекдоры -> Троянцы». Пример такой иерархической структуры демонстрирует иллюстрация на следующей странице.
Рис. 1. Пример классификации вредоносных программ по степени опасности поведения
Почему такая система классификации является наиболее распространенной? Дело в том, что многие современные вредоносные программы являются многофункциональными и обладают формальными признаками сразу нескольких классов. Например, некий поступивший на анализ в вирусную лабораторию образец наделен способностью заражать файловые объекты (признак файлового вируса), но при этом может распространяться, создавая свои копии в общедоступных сетевых папках (признак сетевого червя), а также умеет выполнять поступающие от злоумышленников команды (признак бэкдора). В этом случае перед вирусным аналитиком возникает нелегкая задача: к какой категории отнести такой сложный экземпляр? Здесь на помощь приходит принцип поглощения классов, проиллюстрированный на представленной выше схеме, который позволяет отделить второстепенные по уровню опасности признаки от первостепенных. На указанной схеме мы видим, что наиболее опасное поведение находится в верхней части иерархии, а наименее опасное — в нижней. Так, способность предоставлять злоумышленникам несанкционированный доступ для управления зараженной машиной (бэкдор) менее опасна, чем умение самостоятельно распространяться без участия пользователя (червь). А оно, в свою очередь, представляет примерно равную опасность со способностью заражать файловые объекты (вирус): обе эти функции находятся в верхней части иерархической цепочки. Таким образом, аналитик скорее всего отнесет этот образец к классу файловых вирусов с признаками червя. Однако возможна ситуация, при которой основная опасность данной конкретной угрозы будет заключаться как раз в способности быстро и бесконтрольно распространяться по сети путем создания собственных копий, в то время как заложенный в программу механизм заражения файлов может срабатывать только при наступлении строго определенных условий или в ряде конкретных случаев. Тогда вирусный аналитик может отнести указанный образец к классу сетевых червей, и мы получим, ради разнообразия, червя, обладающего функцией заражения исполняемых файлов.
Тот же принцип будет распространяться, скажем, на программу, реализующую на зараженном компьютере сервер, который «слушает» определенный порт в ожидании поступающих от злоумышленников команд или установки входящего соединения (признак бэкдора), и при этом может похищать пароли от различных приложений (это умеют многие троянцы). Такой образец скорее всего будет отнесен к классу бэкдоров, поскольку функция предоставления несанкционированного удаленного управления опаснее кражи конфиденциальных данных. Вредоносная программа с разнообразным набором менее деструктивных функций может считаться троянцем.
Итак, с основными типами и категориями вредоносных программ мы разобрались. В следующей главе обсудим основные разновидности троянцев и поговорим о том, какую опасность они могут представлять для пользователя.
Глава 3. Внимание, опасность!
Фантазия создателей вредоносных приложений поистине безгранична, однако все они так или иначе преследуют одну цель: тем или иным способом заработать деньги на пользователях, ставших жертвами их программных творений.
Про троянцев, рассылающих с инфицированного компьютера спам или подключающих его к подпольной сети для атаки на веб-сайты, я уже рассказывал ранее. В этом случае злоумышленники получают доход не непосредственно от владельца зараженного компьютера, а от заказчиков массированных атак или рекламных рассылок.
Троянцы-бэкдоры, предоставив злодеям доступ к зараженной машине, открывают перед ними возможность делать с данным устройством все что угодно. В итоге инфицированный компьютер может быть использован в качестве промежуточного звена при атаке на какой-либо банковский или правительственный сервер, для хранения краденых паролей или детского порно, для организации на нем архива с рецептами изготовления наркотиков и т. д. Устройство, на котором работает бэкдор, своему номинальному владельцу больше не принадлежит. Многие троянцы способны красть на зараженных машинах конфиденциальную информацию, такую как логины и пароли для доступа к электронной почте, социальным сетям, номера кредитных банковских карт, сведения из адресной книги. Всю добытую информацию злоумышленники потом продают за неплохие деньги: адреса электронной почты востребованы у спамеров; получив доступ к социальным сетям, мошенники смогут отправлять от имени жертвы ее же друзьям рекламные ссылки и просьбы пополнить счет мобильного телефона, с помощью ворованных реквизитов банковской карты можно купить какой-нибудь товар в интернет-магазине, а изображение паспорта пригодится для оформления сим-карты или открытия на имя владельца паспорта счета, на котором будут аккумулироваться деньги от продажи нелегального контента (причем узнает он об этом, только когда к нему домой нагрянет с обыском полиция). Не думайте, что хранящиеся на вашем устройстве файлы, документы и фотографии никому не нужны: на любой товар всегда найдется свой покупатель.
Каким еще образом киберпреступники утоляют свою жажду наживы? Об этом мы и поговорим в рамках настоящей главы, представляющей собой краткий обзор деструктивных функций наиболее распространенных в настоящее время вредоносных программ.
Троянцы-блокировщики (винлокеры)
Троянские программы-блокировщики, или винлокеры, принято относить к общей категории программ-вымогателей, которые в англоязычных источниках называют также термином ransomware. Первые случаи заражения вредоносными программами данного семейства были зафиксированы еще в конце 2007 года, а в период с ноября 2009-го по февраль 2010 года их распространение приняло буквально эпидемический характер. Винлокеры блокировали Рабочий стол Windows графическим окном-баннером, в котором демонстрировался текст с требованием выкупа за разблокировку системы и описанием возможных способов оплаты.
Первые модификации таких программ-вымогателей весьма успешно маскировались под встроенный механизм активации операционной системы Windows XP (Microsoft Product Activation, MPA). Окно программы, блокировавшее Рабочий стол Windows, имитировало своим оформлением интерфейс MPA, при этом пользователю демонстрировалось сообщение о том, что на его ПК установлена нелицензионная копия операционной системы, которую предлагалось активировать, отправив платное СМС-сообщение. Прервать работу этих ранних версий винлокеров было относительно несложно, удалив соответствующий процесс в Диспетчере задач, изменив в системном реестре значение оболочки по умолчанию или воспользовавшись утилитой Восстановление системы, для чего следовало загрузить Windows в безопасном режиме. Однако программа стремительно совершенствовалась: достаточно быстро винлокеры научились отслеживать нажатия сочетаний «горячих» клавиш, блокировать запуск Диспетчера задач, Редактора реестра, утилиты Восстановление системы, Командной строки, антивирусных приложений и некоторых апплетов Панели управления Windows. Троянец вносил определенные изменения в файл %SYSTEMROOT%\System32\drivers\etc\hosts, чтобы пользователь не мог открыть в браузере сайты разработчиков наиболее популярных антивирусных программ. Модифицировалось и оформление окна, нарушающего нормальную работу компьютера: оно могло демонстрировать различные непристойные изображения или сведения о том, что пользователь посещал сайты порнографического характера, либо обвинения в незаконной загрузке информации, запрещенной законодательством.
Таким образом, троянцы-блокировщики использовали для достижения своих целей принципы социальной инженерии: многие владельцы компьютеров, в действительности посещавшие порнографические интернет-ресурсы либо использовавшие на своем ПК контрафактное ПО, отправляли злоумышленникам платные СМС, либо пополняли указанные ими счета мобильных операторов, опасаясь огласки. Кроме того, некоторые версии винлокеров в случае отказа от оплаты либо попыток разблокировать компьютер иными методами угрожали уничтожением всей хранящихся на жестких дисках информации.
В 2011 году появились разновидности блокировщиков, не вносивших изменения в конфигурацию операционной системы, а модифицировавших главную загрузочную запись (Master Boot Record), делая невозможным запуск самой ОС. Такой троянец вносит изменения в Master Boot Record, однако оригинальная загрузочная запись и таблицы разделов обычно сохраняются. При каждом последующем включении питания компьютера вымогатель блокирует загрузку операционной системы, считывает из соседних секторов жесткого диска в память основной код винлокера и демонстрирует на экране требование заплатить выкуп за разблокировку компьютера.
А уже в 2014 году появился первый троянец-блокировщик для мобильных телефонов и планшетов, работающих под управлением операционной системы Google Android. Такие блокировщики попросту отключают сенсорный дисплей или выводят перекрывающее доступ к системе окно с требованием выкупа, которое невозможно удалить с экрана никакими стандартными методами. На сегодняшний день известно несколько десятков различных модификаций подобных мобильных троянцев, и их число постепенно растет.
Троянцы-шифровальщики (энкодеры)
Троянцы-шифровальщики, или энкодеры, — одна из наиболее опасных компьютерных угроз на момент написания этой книги. Такие троянцы также относятся к условной категории программ-вымогателей. Энкодеры впервые появились в 2009 году, и на текущий момент специалистам компьютерной безопасности известно уже порядка 1800 их разновидностей. Запустившись на инфицированном компьютере, энкодеры зашифровывают хранящиеся на дисках пользовательские файлы с использованием различных криптостойких алгоритмов, после чего требуют у жертвы выкуп за их расшифровку. Отказавшись выплачивать требуемое злоумышленниками денежное вознаграждение, пользователь рискует в одночасье потерять все свои данные. Аппетиты у злоумышленников могут быть различными: вымогаемый ими выкуп может составлять эквивалент и нескольких десятков, и нескольких тысяч долларов. К сожалению, в некоторых случаях восстановить поврежденные данные бывает практически невозможно, даже несмотря на обещания злоумышленников. Даже оплата требуемого киберпреступниками вознаграждения не дает никакой гарантии того, что поврежденные троянцем-энкодером файлы будут когда-либо расшифрованы. Подавляющее большинство троянцев данного типа ориентировано на устройства, работающие под управлением Microsoft Windows, но в 2014 году появились первые энкодеры и под Android, способные зашифровывать содержимое внутренней памяти мобильного устройства.
Троянцы-шифровальщики не обладают какими-либо механизмами саморепликации и проникают на атакуемый компьютер преимущественно в виде вложений в сообщения электронной почты, либо под видом каких-либо «полезных» приложений или игр. Иными словами, в подавляющем большинстве случаев потенциальные жертвы сами запускают вредоносную программу на своем ПК. Можно отметить следующие характерные пути распространения троянцев-энкодеров:
• вредоносные почтовые рассылки, содержащие во вложении самого троянца (например, под видом важного документа), либо троянца-загрузчика, выполняющего скачивание и запуск шифровальщика;
• загрузка троянца пользователем из Интернета под видом полезного приложения (различные кодеки, утилиты, игры, проигрыватели медиафайлов);
• непосредственный запуск троянца на инфицированном компьютере, к которому злоумышленники имеют несанкционированный удаленный доступ (благодаря наличию на таком ПК бэкдора или компрометации учетной записи пользователя операционной системы).
Вредоносные программы данного семейства применяют около двух десятков различных алгоритмов шифрования пользовательских файлов. Определенные модификации троянцев — даже несколько поочередно, с целью затруднить последующую расшифровку информации. Широкому распространению подобных программ способствует то обстоятельство, что злоумышленники нередко выставляют на продажу на подпольных форумах исходные коды троянцев-шифровальщиков, помимо этого существуют специальные программы-конструкторы, с помощью которых вирусописатели могут создавать новые версии троянцев, даже не обладая знаниями в области криптографии и программирования. Еще один аргумент, свидетельствующий об опасности таких приложений, заключается в том, что некоторые версии подобных вредоносных программ содержат ошибки, поэтому расшифровать пострадавшие от их действия файлы иногда не в состоянии даже сами создатели троянца. После успешного запуска на компьютере жертвы энкодер в общем случае выполняет перечисленную ниже последовательность действий:
• автоматически генерирует по определенному алгоритму ключ шифрования либо получает его с принадлежащего злоумышленникам удаленного сервера;
• осуществляет поиск на дисках зараженного компьютера файлов, удовлетворяющих заданным вирусописателями критериям;
• шифрует все удовлетворяющие условиями файлы;
• создает и сохраняет на диске документы с перечислением действий для последующей расшифровки файлов и условиями выкупа.
После того как файлы оказываются зашифрованными, троянцы-энкодеры, в зависимости от версии, могут изменить фон рабочего стола атакованного компьютера на графическое изображение с указанием дальнейших инструкций для своей жертвы. Требуемая злоумышленниками сумма может варьироваться от десятков до нескольких тысяч долларов. В целях конспирации некоторые модификации шифровальщиков размещают свои управляющие серверы в анонимной сети TOR, что значительно затрудняет их идентификацию и последующую расшифровку данных.
На сегодняшний день наиболее эффективным методом противодействия троянцам-энкодерам является использование современного антивирусного ПО, обладающего механизмами превентивной защиты, и своевременное резервное копирование всей актуальной информации на независимые носители, хранящиеся отдельно от основного компьютера пользователя — в качестве таковых могут, в том числе, выступать отключаемые облачные хранилища.
Банковские троянцы
Банковские троянцы предназначены для кражи денег со счетов жертвы, пользующейся системами дистанционного банковского обслуживания — то есть системами «банк — клиент», или другими электронными платежными инструментами. Сегодня практически любой банк оказывает своим клиентам услуги дистанционного банковского обслуживания (ДБО): как правило, для частных лиц они сводятся к предоставлению доступа на специальный защищенный сайт, где клиент может проверить состояние своего счета, перевести средства с одного счета на другой, а также оплатить ряд услуг в организациях, с которыми у банка имеется соответствующий договор. В простейших случаях доступ к подобным системам осуществляется по протоколу HTTPS с использованием логина и пароля. Также в качестве меры безопасности некоторые банки применяют подтверждение входа по СМС или с использованием электронной цифровой подписи клиента. Порой для организации связи применяется специализированное программное обеспечение. Безусловно, использование ДБО крайне удобно для большинства клиентов: не нужно тратить время на поездки в офис банка или поход до ближайшего банкомата, чтобы уточнить баланс счета — простые операции с безналичными средствами выполняются одним щелчком мыши. Однако подобные системы неизбежно привлекают внимание злоумышленников.
Пик распространения так называемых банковских троянцев — вредоносных программ, предназначенных для кражи учетных данных и необходимых для организации доступа к системам ДБО файлов — пришелся на 2011 год, однако инциденты, связанные с хищением денежных средств держателей банковских счетов при помощи таких вредоносных программ, происходят с завидной регулярностью и сегодня. К категории наиболее опасных можно отнести сразу несколько банковских троянцев — это Trojan.Carberp, Trojan.PWS.Ibank, Trojan.PWS.Panda (также известная под именами Zeus и Zbot) и Trojan.PWS.SpySweep (также известный под именем SpyEye).
Запускаясь на инфицированной машине, банковский троянец предпринимает целый ряд действий для того, чтобы уйти от всевозможных средств контроля и наблюдения. Так, например, Trojan.Carberp внедряется в другие работающие приложения, а свой основной процесс завершает; таким образом, вся дальнейшая работа происходит частями внутри сторонних приложений, что является его характерным свойством и затрудняет лечение заражения. Среди команд, которые способен выполнять Trojan.Carberp, имеются директивы запуска произвольных файлов на инфицированном компьютере, команда установки сеанса «удаленного рабочего стола» по протоколу RDP, и даже удаления на зараженном ПК операционной системы. Кроме того, в этом троянце скрыта возможность деактивации антивирусов, уничтожения «конкурирующих» банковских троянцев, а также кража паролей от множества различных программ: браузеров, мессенджеров, FTP-клиентов, почтовых программ и т. д. Помимо прочего, благодаря расширяемой архитектуре данная троянская программа имеет возможность скачивать специальные встраиваемые дополнения (плагины) для выполнения других деструктивных действий.
Для перехвата связанной с работой ДБО информации Trojan.Carberp использует различные методы: это логирование нажатий пользователем клавиш, вклинивание в HTTP-трафик в поисках учетных данных и передаваемых значений экранных форм, встраивание в процессы программ системы «банк — клиент», создание снимков экрана в моменты ввода важной информации, перехваты отдельных функций, которые могут участвовать в передаче данных, поиск и похищение цифровых сертификатов и ключей. Вредоносные программы семейства Trojan.Carberp способны объединяться в ботнеты, координируемые из одного (или нескольких) командных центров.
Троянцы семейства Trojan.PWS.Ibank также позволяет выполнять на инфицированном компьютере поступающие от удаленного командного центра директивы, включая команду уничтожения ОС. Причем адрес командного сервера троянец вычисляет динамически, используя для этого специальный алгоритм. Для перехвата важной информации используются анализатор трафика, система мониторинга сетевой активности банк-клиентов, утилита для снятия снимков экрана, сборщики ключевой информации для различных систем банк-клиент. Основное назначение троянца — перехват данных, вводимых в экранные формы, сбор файлов сертификатов систем защищенного документооборота, а также перехват сетевого трафика и направление полученной информации злоумышленникам.
Нельзя обойти вниманием такого знаменитого троянца, как Trojan.PWS.Panda, известного также под именами Zeus и Zbot. Основной его функционал заключается в краже пользовательских паролей, хотя этот троянец обладает достаточно обширными возможностями, включая стандартный функционал бэкдора. Созданный еще в 2007 году, Zeus представляет определенную опасность для пользователей и по сей день. Этот троянец способен работать во всех версиях Windows, он умеет перехватывать информацию, вводимую пользователем во всех распространенных на сегодняшний день браузерах, красть пароли большинства FTP-клиентов.
Среди иных вредоносных функций Trojan.PWS.Panda следует отметить способность устанавливать и удалять в инфицированной системе цифровые сертификаты, файлы cookies, подменять «домашнюю страницу» в браузерах, блокировать доступ к различным URL, загружать и запускать программы, по команде с удаленного сервера выключать и перезагружать компьютер, удалять на жестких дисках любые файлы. Иными словами, функционал этой вредоносной программы обширен.
Еще один троянец, созданный со схожими целями, — Trojan.PWS.SpySweep, также известный под именем SpyEye. Как и Trojan.Carberp, SpyEye внедряет свой образ в адресные пространства других процессов. Функционал его в целом схож с возможностями Zeus: Trojan.PWS.SpySweep способен выполнять поступающие от злоумышленников команды, похищать конфиденциальную информацию, загружать и запускать на инфицированном компьютере различные приложения.
В 2011 году появился и первый банковский троянец для платформы Android: это Android.SpyEye.1. Риску заражения вредоносной программой Android.SpyEye.1 подвергались в первую очередь пользователи, компьютеры которых уже инфицированы троянской программой SpyEye. При обращении к различным банковским сайтам, адреса которых присутствуют в конфигурационном файле троянца, в просматриваемую пользователем веб-страницу осуществлялась инъекция постороннего содержимого, которое может включать различный текст или веб-формы.
Таким образом, ничего не подозревающая жертва загружала в браузере настольного компьютера или ноутбука веб-страницу банка, в котором у нее открыт счет, и обнаруживала сообщение о том, что банком введены в действие новые меры безопасности, без соблюдения которых пользователь не сможет получить доступ к системе «банк — клиент», а также предложение загрузить на мобильный телефон специальную программу, якобы содержащую «электронные ключи безопасности», а в самом деле представляющую собой троянца. Некоторые банковские троянцы внедряют в веб-страницы банка целые подробные инструкции по установке таких мобильных приложений. В альтернативном варианте пользователю будет предложено ввести в специальное поле номер своего мобильного телефона, на который он получит СМС-сообщение со ссылкой для скачивания «необходимой» программы, являющейся в действительности вредоносной.
После загрузки и инсталляции на мобильном устройстве Android.SpyEye.1 перехватывает и отправляет злоумышленникам все входящие СМС-сообщения. Таким образом злоумышленники осуществляют эффективный обход так называемой двухфакторной аутентификации — способа проверки подлинности платежа при помощи передаваемых через СМС одноразовых паролей (mTAN-кодов).
В наши дни для обхода банковских систем двухфакторной аутентификации злоумышленники используют более «продвинутые» и гибко настраиваемые мобильные вредоносные приложения, например троянцев семейства Android.SmsSpy (некоторые из них также известны под именем Perkele).
Как видим, принцип работы и функциональные возможности большинства современных банковских троянцев в целом схожи, да и цели, которые преследуют вирусописатели, также практически одинаковы, различается только конкретная техническая реализация этих задач.
Рис. 2. Пример обхода банковской системы двухфакторной аутентификации с использованием одноразовых паролей (mTAN-кодов): 1 — в момент захода пользователя в систему «банк — клиент» действующий на его компьютере троянец требует для продолжения работы ввести во внедренное на веб-страницу банка поле номер мобильного телефона клиента; 2 — на мобильный телефон клиента приходит СМС со ссылкой на установку банковского троянца для Android; 3 — клиент вводит свои учетные данные в форму на странице банка, вся информация из которой передается троянцем злоумышленникам; 4 — мобильный троянец перехватывает поступающее на телефон СМС-сообщение с одноразовым паролем (mTAN-кодом) и также пересылает его злоумышленникам.
Отдельную категорию угроз составляют мобильные банковские троянцы для ОС Android, паразитирующие на программах класса «мобильный банк». Наиболее примитивные из них просто заменяют собой настоящее мобильное банковское приложение или «рисуют» поверх него собственную форму для ввода учетных данных, которые незамедлительно передаются злоумышленникам. Разумеется, мобильные банковские троянцы способны перехватывать и передавать киберпреступникам все входящие СМС-сообщения, в том числе содержащие одноразовые пароли и коды авторизации. Более «продвинутые» троянцы данного типа умеют не просто красть аутентификационные данные, а похищать средства с расчетного счета пользователя, управляя транзакциями с использованием СМС-команд или интерфейса самого банковского приложения. При этом с точки зрения самого банка подобные транзакции будут выглядеть легитимными, поскольку осуществлялись они с телефона, номер которого «привязан» к счету клиента, а кроме того в процессе выполнения банковских операций была зафиксирована успешная авторизация мобильной банковской программы на сервере банка. Вернуть похищенные таким образом средства жертве киберпреступников становится впоследствии очень затруднительно.
Веб-инжекты
Веб-инжекты — это не отдельный вид вредоносных программ, а специальная технология, используемая различными вирусами и троянскими программами для достижения своих целей, например банковскими троянцами и троянцами-вымогателями. Эта технология уже кратко упоминалась в предыдущем разделе при описании одного из способов обхода двухфакторной аутентификации в процессе хищения средств с банковских счетов пользователей.
Под веб-инжектом принято понимать встраивание вирусом или троянцем постороннего содержимого в просматриваемую пользователем в окне браузера веб-страницу. Отдельно следует упомянуть, что этот процесс осуществляется на стороне пользователя, то есть непосредственно на инфицированном компьютере работающей на нем вредоносной программой. Иными словами, жертва веб-инжекта наблюдает правильный URL — корректный адрес веб-страницы в адресной строке браузера, если соединение выполняется с использованием защищенного протокола HTTPS, это условие также соблюдается, а вот содержимое веб-страницы будет отличаться от оригинального. С какой целью вирусописатели добавляют в свои творения функционал для осуществления веб-инжектов?
Прежде всего этой технологией активно пользуются многочисленные банковские троянцы для реализации различных схем финансового мошенничества. Например, в веб-страницу сайта банка может быть встроена фальшивая форма для ввода логина и пароля (данные из которой впоследствии передаются злоумышленникам), сообщение со ссылкой о необходимости установить для входа в систему «банк — клиент» дополнительное приложение, «сертификат безопасности» или программу для мобильного телефона, под видом которых распространяется мобильное вредоносное ПО и т. д.
Полученное браузером с сервера содержимое веб-страницы модифицируется троянцем перед загрузкой и демонстрацией ее в окне браузера и происходит для потенциальной жертвы совершенно незаметно. При этом отображаемый вредоносной программой контент гибко настраивается с помощью специального конфигурационного файла, который троянец может загрузить с принадлежащего злоумышленникам узла. Это позволяет киберпреступникам, во-первых, оперативно менять оформление встраиваемых в веб-страницу элементов, включая содержащиеся в них изображения и текст, а также путем однократного внесения изменений на управляющем сервере настроить параметры веб-инжекта сразу на всех зараженных компьютерах.
Рис. 3. Стандартная схема веб-инжекта: 1 — компьютер клиента запрашивает у сервера веб-страницу; 2 — сервер передает веб-страницу на локальный клиентский компьютер; 3 — заразивший этот компьютер троянец встраивает в веб-страницу постороннее содержимое; 4 — модифицированная веб-страница отображается в окне браузера
С технической точки зрения наиболее ранние реализации механизма веб-инжектов были довольно примитивными: например, на страницах популярных интернет-магазинов троянец мог разместить поддельную форму для ввода реквизитов банковской карты, используя которые, злоумышленники впоследствии совершали несанкционированные держателем карты покупки (приобретенные таким способом дорогостоящие товары впоследствии сбывались различными способами, например, через системы онлайн-аукционов или электронных досок объявлений). Позже встраиваемое в веб-страницы содержимое стало использовать различные интерактивные элементы, в частности, сценарии на языке JavaScript или функции библиотеки jQuery для имитации действий пользователя или сокрытия последствий хищения.
Так, после проведения несанкционированной транзакции с использованием системы «банк — клиент» некоторые банковские троянцы в течение определенного времени демонстрировали пользователю прежнее значение баланса по счету, чтобы усыпить его бдительность. В другом, известном специалистам по информационной безопасности, случае троянец в момент входа в систему «банк — клиент» отображал на экране пользователя сообщение о том, что на его счет была ошибочно зачислена некая денежная сумма с просьбой вернуть ее отправителю на указанный номер счета. Одновременно с этим при помощи веб-инжекта вредоносная программа показывала информацию о состоянии счета, на котором действительно отражалась эта «лишняя» сумма — в самом деле указанная информация являлась, конечно, недостоверной. Жертва сама переводила злоумышленникам деньги, даже не подозревая об обмане.
Рис. 4. Веб-инжект, выполненный в веб-страницу социальной сети троянцем Trojan.Mayachok
Кроме банковских троянцев веб-инжектами пользуются и различные мошеннические вредоносные программы. Так, троянцы семейства Trojan.Mayachok применяют веб-инжекты совершенно в иных целях. При попытке владельца зараженного этим троянцем компьютера зайти на сайт какой-либо из популярных социальных сетей, Trojan.Mayachok демонстрирует ему на экране сервисное сообщение якобы от имени данной социальной сети (оформленное в ее фирменном стиле) с информацией о том, что его личная страничка была взломана. Для восстановления доступа пользователю предлагается ввести в специальную форму номер мобильного телефона, а затем — пришедший в ответном СМС-сообщении код подтверждения. Обычно потенциальная жертва не задумываясь выполняет предложенные действия, поскольку входящие СМС у большинства операторов сотовой связи — бесплатные, и даже не подозревает о том, что сообщение в ее браузере сгенерировано коварным троянцем. Указав в предложенной форме код, пользователь соглашается с условиями платной подписки. Теперь с его мобильного счета будет ежедневно сниматься определенная денежная сумма до тех пор, пока прозревший владелец телефона не отменит навязанную тайком услугу, либо пока счет не опустеет.
Помимо широко известных социальных сетей троянцы данного типа успешно «охотились» и на пользователей других популярных серверов — почтовых служб mail.ru, yandex.ru, видеохостинга youtube.com, сайтов знакомств и т. д.
Кроме сайтов популярных интернет-сервисов, некоторые модификации Trojan.Mayachok просто-напросто полностью блокировали своим жертвам доступ в Интернет из любых браузеров, выводя на экран сообщение якобы от имени обслуживающего пользователя интернет-провайдера примерно следующего содержания: «Канал вашего района перегружен, и мы вынуждены ограничить загрузку некоторых сайтов на время. Если работа в сети Интернет на текущий момент для вас критична, вы можете подключить резервный канал вашего района. Чтобы подтвердить намерение и крайнюю необходимость перейти на резервный канал, введите ваш номер телефона и ответьте на входящее СМС-сообщение». Результатом этой операции, как и в других аналогичных случаях, была потеря денег на счете мобильного телефона пользователя.
Еще одним примером нестандартного применения веб-инжекта может служить троянская программа Trojan.Mayachok.18831. Она не просто блокирует пользователю доступ к сайту социальной сети под предлогом «взлома», а видоизменяет его анкету прямо на локальном компьютере. Заглянув однажды на свою собственную страничку «В Контакте», пользователь с ужасом замечает, что вместо его фотографии в профиле социальной сети отображается снимок порнографического характера, а в списке «интересов» перечислены весьма нестандартные увлечения, включая склонность к нетрадиционным сексуальным связям. При попытке отредактировать профиль на экране появляется якобы сервисное окно социальной сети, в котором от жертвы требуется указать ее номер мобильного телефона и ввести проверочный код из ответного СМС.
Разумеется, все «признания» пользователя о его необычных эротических предпочтениях, равно как и непристойные снимки, в веб-страницу «В Контакте» встраивал троянец: если бы жертва зашла в социальную сеть с любого другого незараженного компьютера, она увидела бы свою обычную анкету без каких-либо визуальных изменений. Ну, а выполнив требования злоумышленников, пользователь незамедлительно терял средства на своем мобильном счете.
Троянцы-загрузчики
Создатели троянцев-загрузчиков зарабатывают установкой на инфицированный компьютер других вредоносных программ. Распространители вирусов платят им за «раздачу» ничего не подозревающим пользователям какого-то количества бэкдоров, банковских троянцев или энкодеров, после чего заказчики уже сами начинают зарабатывать на потенциальных жертвах. Вот почему после заражения троянцем-загрузчиком компьютер жертвы очень быстро может превратиться в настоящий «зоопарк», кишащий всевозможной вредоносной «живностью». Антивирусные программы в процессе сканирования порой «вылавливают» на таких зараженных машинах до нескольких сотен различных разновидностей вредоносных программ, включая кейлоггеры, бэкдоры, банковские троянцы и майнеры. А началось-то все с одного маленького и незаметного троянца-загрузчика.
Другие разновидности загрузчиков стараются не связываться с откровенно криминальным вредоносным ПО, а вместо этого скачивают и инсталлируют на зараженную машину различные сомнительные приложения, за установку которых им платят вознаграждение многочисленные проекты, гордо именующие себя «партнерскими программами по монетизации файлового трафика». В самом же деле все эти «партнерские программы» являются обычными жульническими схемами по несанкционированному «впариванию» пользователям всяких «ускорителей Интернета», «очистителей реестра», «помощников по поиску», «улучшателей графики» и прочего программного хлама. Подцепив где-нибудь троянца-загрузчика, жертва сетевых жуликов однажды обнаруживает, что ее компьютер полностью замусорен всякими рекламными баннерами, десятком непонятных браузеров, кучей «оптимизаторов» и прочих программ, значительно замедляющих работу операционной системы. Причем их удаление стандартными средствами ОС обычно не помогает: через пару дней весь этот зверинец возвращается на свои места, даже заметно прибавив в количестве и ассортименте. Единственным эффективным выходом из подобной ситуации является поиск и уничтожение изначального источника проблемы: прячущегося где-то на диске троянца-загрузчика.
Майнеры
Первым в истории электронным платежным средством, которое можно отнести к категории криптовалют, стала виртуальная денежная единица Bitcoin, изобретенная криптографом Сатоси Накамото в 2009 году. Для защиты транзакций в системе Bitcoin используются различные криптоалгоритмы, а сама система является децентрализованной — иными словами, в ней отсутствуют какие-либо обособленные управляющие или процессинговые центры. Особенность подобных платежных систем заключается в том, что объем имеющей в них хождение виртуальной валюты строго ограничен, причем пользователи могут не только «обмениваться» электронными «монетами», покупая на них всевозможные товары, но и добывать их, как старатели в реальном мире добывают золото, превращающееся потом в платежное средство. Для этого компьютер с помощью специальной программы должен выполнить ряд очень сложных математических вычислений. Этот процесс называется «майнингом» (от англ. mining, «добыча»).
Собственно, троянцы-майнеры, заразив компьютер, и нагружают его под завязку подобными расчетами, заставляя систему поминутно «тормозить» и «зависать». Ну, а все добытые таким образом деньги отправляются, естественно, не владельцу инфицированного устройства, а жулику-вирусописателю.
Существуют троянцы-майнеры не только для ОС Windows, но также для Mac OS X и Google Android. И хотя на первый взгляд они и не представляют серьезной опасности для инфицированной системы, деятельность майнеров заметно замедляет скорость работы компьютера или мобильного устройства, а также вызывает перегрев процессора или чипа видеокарты (существует категория майнеров, использующих для вычислений мощности графических процессоров современных видеоадаптеров). В случае физических неполадок в системе охлаждения компьютера это может привести к фатальным последствиям вплоть до выхода из строя соответствующего оборудования.
Фишинг
Весьма распространенным термином «фишинг» (от англ. phishing, производное от fishing — «выуживание») называется несанкционированное получение учетных данных пользователя для доступа к какой-либо приватной информации, например логинов и паролей. Зачастую сетевые мошенники создают поддельные веб-сайты, имитирующие своим оформлением страницы популярных социальных сетей или почтовых сервисов, и всеми силами завлекают туда посетителей, в частности, с использованием так называемых методов социальной инженерии — обмана пользователя без применения сложных технических средств. Так, жулики рассылают по электронной почте сообщения якобы от имени различных сетевых служб знакомств, публикуют тизерную рекламу, имитирующую всплывающее сообщение социальной сети о добавлении нового контакта и т. д. Таким образом жертва попадает на поддельный сайт, URL которого мошенники также стремятся сделать похожим на оригинальный — например, «odonlkassinki.ru» вместо «odnoklassniki.ru». Далеко не все замечают, что ссылка отличается от «оригинала» одним или несколькими символами.
Вероятно, читатель уже догадался, что нажатие на такую ссылку неизбежно приведет пользователя на поддельный сайт, внешне копирующий оформление одной из популярных социальных сетей, но фактически таковой не являющийся. Достаточно ввести в соответствующие поля формы авторизации свой логин и пароль, чтобы ими завладели злоумышленники. После этого от имени скомпрометированной учетной записи в социальной сети могут распространяться как безобидные рекламные сообщения, так и вредоносные программы. Распространены ситуации, когда мошенники, завладев чужой учетной записью, просят у знакомых «одолжить» им некоторую сумму, пополнив счет мобильного телефона злоумышленника. Шансы на то, что пользователь «купится» на такое сообщение, достаточно высоки: ведь с психологической точки зрения степень доверия к информации, полученной от одного из известных пользователю контактов, значительно выше, чем к сообщению, пришедшему от постороннего человека.
Однако одними лишь методами социальной инженерии киберпреступники не ограничиваются: в ход идут и вредоносные программы, предназначенные для фишинга — яркими их представителями является, в частности, семейство Trojan.Hosts. В операционных системах семейства Microsoft Windows для получения IP-адреса интернет-ресурса по введенному пользователем в адресную строку браузера URL используются DNS-серверы, однако перед отправкой запроса на них система обращается к локальному файлу %SYSTEMROOT%\system32\drivers\etc\hosts, в котором некоторыми приложениями сохраняются записи соответствия определенным URL IP-адресов в целях ускорения доступа к ним. Обосновавшись в операционной системе, Trojan.Hosts помещает в этот файл строки, подменяющие адреса сайтов популярных социальных сетей и поисковых систем на IP-адреса принадлежащих злоумышленникам веб-страниц. Таким образом, набрав в адресной строке браузера, например, «vk.com», потенциальная жертва попадает на сайт жуликов, имитирующий данную социальную сеть. Введенные на этой страничке логин и пароль тут же передаются киберпреступникам.
Другое семейство троянцев подобного типа — Trojan.DnsChange — подменяет корректные адреса DNS-серверов в сетевых настройках Windows на IP-адреса принадлежащих злоумышленникам DNS-серверов. Таким образом, в ответ на запросы, направляемые операционной системой на этот сервер, компьютер жертвы будет получать IP-адреса мошеннических интернет-ресурсов, в том числе страниц, с которых распространяется другое вредоносное ПО.
Случается и так, что программа-вредитель сама ворует логин и пароль для входа в социальную сеть, не заставляя пользователя вводить их вручную. Примерно так действовал наделавший много шума червь Win32.HLLW.AntiDurov, эпидемия которого разразилась в российском сегменте Интернета в 2008 году. Пользователи социальной сети «В Контакте» получали от друзей ссылку на забавную картинку deti.jpg, при открытии которой на компьютер загружался вредоносный файл deti.scr. Вслед за этим червь прописывался под именем Vkontaktesvc.exe в папку Application Data текущего пользователя и запускался в качестве фоновой службы с именем «Durov VKontakte Service». Затем червь анализировал хранящиеся на зараженном компьютере файлы cookies в поисках учетных данных для входа в социальную сеть «В Контакте», и если таковые обнаруживались, по списку «друзей» жертвы рассылалось сообщение со ссылкой на тот же рисунок, загружающий вредоносный файл. Деструктивная функция червя заключалась в том, что 25 числа каждого месяца в 10 часов утра он выводил на экран компьютера сообщение: «Работая с ВКонтакте.РУ Вы ни разу не повышали свой рейтинг и поэтому мы не получили от Вас прибыли. За это Ваш компьютер будет уничтожен!» и начинал удалять файлы с жесткого диска. Этот пример показывает, насколько опасными могут быть вредоносные программы, распространяющиеся через социальные сети.
Рекламные троянцы
Про рекламных троянцев я уже рассказывал в предыдущей главе, здесь стоит лишь кратко упомянуть о них, как об одном из наиболее распространенных типов угроз. Рекламные троянцы позволяют своим создателям зарабатывать деньги за счет рекламодателей, заставляя пользователей просматривать во время путешествий по Интернету назойливые объявления, которые выпрыгивают на экран, как чертики из табакерки, в совершенно неожиданных местах и мешают нормальному просмотру веб-страниц. Опасность таких троянцев заключается еще и в том, что рекламируют они, как правило, всевозможные финансовые пирамиды, «лохотроны», опасные для здоровья диеты, несертифицированные медицинские препараты и биологически активные добавки, а также другие товары и услуги сомнительного толка. Некоторые такие троянцы «умеют» подменять стартовую страницу браузера, самостоятельно открывают новые вкладки при просмотре веб-страниц, а также изменяют выдачу в поисковых системах, «подсовывая» пользователю вместо ссылок с результатами обработки поискового запроса в Google, «Яндексе» и других поисковиках ссылки на всевозможные мошеннические ресурсы.
Распространяются рекламные троянцы с использованием так называемых партнерских программ — специальных сайтов, позволяющих недобросовестным создателям веб-страниц зарабатывать деньги на посетителях своих ресурсов: чем больше пользователей установит такую вредоносную программу на свой компьютер, тем большее вознаграждение получит участник «партнерской программы». Поэтому вредоносную программу предлагают скачать под видом различных игр, «полезных» утилит, музыкальных записей, бесплатных электронных книг и т. д. Как правило, оформлены они либо в виде отдельного приложения, либо в виде надстроек (плагинов) к популярным браузерам.
Узкоспециализированные вредоносные программы
Помимо троянцев, использующих «традиционные» схемы отъема денег у пользователей, существуют узкоспециализированные вредоносные программы, созданные для осуществления так называемых таргетированных атак, то есть для реализации некой конкретной и четкой цели. Например, BackDoor.Dande, проникнув на компьютер, в первую очередь проверял, не установлена ли на нем специальная программа, предназначенная исключительно для заказа на оптовом складе лекарств и используемая в основном аптеками, больницами и другими медицинскими учреждениями. Если такая программа отсутствовала, троянец самоуничтожался, не причиняя никакого вреда. Если же она неожиданно обнаруживалась, бэкдор аккуратно собирал все сведения о совершенных пользователем этого компьютера закупках медикаментов и отправлял их на сервер своих разработчиков. Предположительно эта вредоносная программа была создана по заказу какой-то крупной фармацевтической компании для оценки рынка сбыта лекарств, потребительского спроса и слежки за конкурентами.
Другой троянец, являющийся характерным примером реализации технологий промышленного шпионажа, заражал только те компьютеры, на которых была установлена инженерная система для разработки чертежей AutoCad. Все копии созданных и обнаруженных на атакованном компьютере чертежей троянец упаковывал в архив и незамедлительно отправлял на сервер, расположенный в Китае. А ведь многие удивляются: как китайцам удается создавать точные копии электронных устройств, телефонов, компьютеров, автомобилей и истребителей, причем порой даже раньше, чем на свет появляется сам оригинал?
Другой троянец, получивший наименование Trojan.SteamBurglar, эксплуатировал в своих интересах любовь некоторых пользователей к компьютерным играм. Ряд современных многопользовательских электронных игр представляет собой настоящие виртуальные миры с собственными социальными и экономическими законами. В таких вселенных игрок может приобретать различные виртуальные предметы и ресурсы — например, доспехи, магические заклинания или дополнительную броню, — которые дают ему ряд тактических преимуществ перед другими игроками. Причем многие подобные артефакты можно купить за реальные деньги (на чем и зарабатывают некоторые издатели компьютерных игр, делая саму игру бесплатной), а ставшие ненужными игровые предметы — продать другим пользователям. Этим и прославился Trojan.SteamBurglar: он воровал у незадачливых игроков различные ценные виртуальные предметы и тут же продавал их на специализированных интернет-площадках за вполне реальные доллары, которые переводил на счет своих создателей. Чем не бизнес?
Все сказанное выше лишь подтверждает тезис, озвученный в самом начале этой главы: практически все существующие сегодня вредоносные программы рассчитаны исключительно на получение прибыли за счет своих жертв.
Глава 4. Ботнеты
Термином «ботнет», или «бот-сеть», принято обозначать сети, созданные с использованием автономно действующих дистанционно управляемых вредоносных программ (ботов). Такие сети могут выполнять централизованно отдаваемые киберпреступниками команды и имеют различную архитектуру: как с использованием удаленных командных серверов (Command and Control Server, C&C), так и без них. Злоумышленники строят ботнеты с различными целями. Как правило, это рассылка спама, организация массированных атак на отказ в обслуживании (DDoS-атаки) или загрузка других вредоносных приложений на инфицированные компьютеры (сети, состоящие из троянцев-загрузчиков). Некоторые ботнеты способны выполнять сразу несколько деструктивных функций. Владельцы бот-сетей обычно предлагают свои услуги другим злоумышленникам на различных подпольных форумах, извлекая таким образом из своей деятельности прибыль. Иными словами, как сами ботнеты, так и предоставляемые ими нелегальные услуги зачастую становятся объектом купли-продажи.
История вопроса
В их современном виде бот-сети возникли на рубеже «нулевых» годов XXI века, хотя и до этого вирусописатели предпринимали успешные попытки собрать в единую систему зараженные компьютеры, доступные для удаленного управления — например системы, инфицированные бэкдорами. Исторически первым массовым ботнетом принято считать бот-сеть, созданную злоумышленниками в 2004 году с использованием почтового червя Beagle, заразившего порядка 230 000 компьютеров по всему миру. Червь Beagle мог инфицировать все существовавшие на тот момент версии Microsoft Windows и с использованием собственной реализации механизма SMTP рассылал свои копии по электронной почте. Beagle обладал руткит-модулем, способным скрывать собственное присутствие в системе, а также умел завершать процессы некоторых антивирусных программ.
В 2006 году заявил о себе массовый ботнет Rustock, предназначенный для рассылки спама. Инфицированные Rustock компьютеры могли рассылать до 25 000 почтовых сообщений в час, а в периоды максимальной активности — до 192 писем в минуту. Бот-сеть успешно действовала до 2011 года, когда была практически полностью уничтожена в результате тщательно спланированной кампании, проведенной экспертами из корпораций Microsoft, FireEye и специалистами из университета Вашингтона в сотрудничестве с федеральными агентами безопасности США.
С тех пор ботнеты различного функционального назначения стали появляться на свет с завидной регулярностью. 2007 год отметился появлением сети Cutwail (также известен как Bulknet). По различным подсчетам, Cutwail заразил в общей сложности порядка 1,5 млн компьютеров по всему миру. Этот ботнет также был предназначен для рассылки спама и имел довольно-таки простую структуру: действующие на зараженном компьютере вредоносные программы соединялись напрямую с командным сервером и получали оттуда все данные, необходимые для рассылки рекламных писем, а после успешного выполнения задачи боты передавали злоумышленникам отчет, содержащий подробную статистику о проделанной «работе».
2008 год стал периодом бурного распространения червя Conficker (также известного под именем Kido), заразившего в общей сложности более 10,5 млн компьютеров (по другим данным — порядка 12 млн) в 200 странах мира. По сей день этот ботнет считается одним из наиболее масштабных. Используя уязвимости в операционных системах семейства Microsoft Windows, червь загружал себя на атакуемый компьютер из Интернета, а также распространялся с использованием съемных носителей информации. В феврале 2009 года корпорация Microsoft объявила награду в 250 000 долларов за любую информацию о создателях этого червя. Кроме того, данная вредоносная программа обладала возможностью получать собственные обновления непосредственно с других зараженных узлов, минуя управляющий сервер, что значительно затрудняло борьбу с ним.
Начиная с 2010 года стали возникать бот-сети, состоящие из компьютеров, инфицированных банковскими троянцами (в частности, TDL/TDSS). В 2011 году получил широкое распространение файловый вирус Rmnet (Ramnit), также способный самоорганизовываться в ботнеты и инфицировавший в общей сложности порядка 3 млн компьютеров (по другим данным — более 5 млн). Несмотря на громкие заявления некоторых антивирусных компаний о полной и безоговорочной победе над этой угрозой, бот-сеть Rmnet продолжает действовать и сегодня. Так, в нескольких известных специалистам по информационной безопасности подсетях этого ботнета на 27 июня 2015 года действует более 461 000 зараженных компьютеров (из них более 6000 — на территории России).
Злоумышленники продолжают создавать и активно эксплуатировать ботнеты. В частности, в 2014 году киберпреступники встроили вредоносную программу в приложение, предназначенное для поисковой оптимизации сайтов, в результате чего сумели создать бот-сеть для рассылки спама, состоящую из более чем 250 тыс. зараженных узлов.
Не обделяют своим вниманием злоумышленники и рынок портативных платформ. Еще в 2010 году был зафиксирован первый ботнет, состоящий из мобильных устройств под управлением ОС Android, инфицированных троянцем Geinimi. А всего пару лет спустя, в 2013 году, специалисты компании «Доктор Веб» зафиксировали крупнейший мобильный ботнет, состоящий из смартфонов и планшетов, инфицированных троянцами семейства Android.SmsSend — заражению подверглись 200 000 с лишним устройств, при этом более 128 000 из них принадлежали российским пользователям.
Поскольку эксплуатация ботнетов приносит злоумышленникам определенную прибыль, можно предположить, что этот вид незаконного бизнеса будет процветать и в дальнейшем.
Архитектура ботнетов
Простые ботнеты
Исторически самые первые бот-сети имели довольно примитивную структуру. Все вредоносные программы, инфицировавшие компьютеры своих жертв, подключались к единому управляющему серверу, с которого получали конфигурационные файлы, необходимые им для дальнейшей работы, обновления и собственно команды для последующего выполнения. В качестве управляющего узла мог выступать и чат-сервер, предназначенный для организации обмена текстовыми сообщениями по протоколу IRC (Internet Relay Chat) — этой технологией, в частности, пользовались троянцы семейства BackDoor.IRC.Bot. Боты этого типа соединялись с соответствующим IRC-сервером, подключались к определенному чат-каналу и начинали «слушать» его в ожидании входящих команд. Адрес управляющего сервера был, как правило, «зашит» в теле самого бота и в лучшем случае был зашифрован в целях затруднить его поиск и анализ. Бот расшифровывал адрес командного центра непосредственно во время своего выполнения. Таким образом, ранние ботнеты имели звездообразную структуру и обладали существенным архитектурным недостатком: при отключении или перехвате управляющего сервера вся бот-сеть становилась нефункциональной, и усилия, приложенные злоумышленниками на распространение вредоносного ПО, оказывались затраченными впустую.
Рис. 5. Первые ботнеты имели простую звездообразную структуру: 1 — зараженные компьютеры; 2 — управляющий сервер. Ботнеты, использующие DGS
Следующим эволюционным этапом в развитии бот-сетей стало появление технологии генерации доменных имен контрольно-управляющих серверов (DGS, domain generation system). Создана эта система была в первую очередь в целях борьбы с противодействием работе бот-сетей со стороны антивирусных компаний и для повышения «живучести» ботнетов.
Вместо адреса контрольно-управляющего сервера или списка таких адресов в состав ботов злоумышленники стали включать специальный алгоритм, генерирующий адрес управляющего сервера по определенной схеме «на лету». Таким образом формировался перечень подобных адресов. Далее бот опрашивал полученные адреса по очереди, и, если с одного из них приходил заранее обусловленный ответ, этот сервер становился для бота управляющим. Например, некоторые троянцы составляли адреса серверов из последовательности латинских символов и цифр, добавляя к ним обозначение домена первого уровня .com или .org. Зная используемый вредоносной программой алгоритм генерации имен, злоумышленник мог оперативно зарегистрировать такой домен для управляющего сервера. Если этот домен по каким-либо причинам оказывался заблокированным, киберпреступник попросту регистрировал новый.
Отчасти задачу владельцам ботнетов упрощало и то обстоятельство, что некоторые крупные зарубежные регистраторы доменов в рекламных целях практикуют отсрочку платежей — зарегистрированный домен становится доступным для использования сразу, а оплату за него можно внести спустя определенный срок, например через месяц — в случае отказа от платежа делегирование домена автоматически прекращалось. Используя эту особенность, некоторые киберпреступники регулярно меняли домены управляющих серверов для своих ботнетов, не платя никому ни цента. Кроме того, даже в случае утраты доступа к управляющему серверу (например, из-за его блокировки хостинг-провайдером по жалобе пользователей или антивирусной компании) злоумышленнику ничто не мешает в считанные минуты развернуть еще один управляющий сервер на новой площадке и прилинковать к нему новый (или уже существующий) домен.
Некоторые владельцы бот-сетей использовали сразу несколько параллельных командных центров, разбивая ботнет на отдельные независимо управляемые подсети, что также повышало их устойчивость к различным внешним воздействиям. Таким образом, структура бот-сетей, построенных с применением технологии DGS, немного усложнилась.
С одной стороны, DGS сделала бот-сети более управляемыми и устойчивыми к внезапному отказу командных центров, с другой — значительно упростила их перехват с использованием метода sinkhole (о нем мы побеседуем чуть позже). В целях борьбы с этим методом перехвата управления ботнетами злоумышленники стали заметно усложнять механизм коммуникации бот-сети с управляющим центром: протоколы обмена данными стали активно использовать шифрование, управляющие сервера для подтверждения своей подлинности обменивались с вредоносной программой специальным образом сформированной цифровой подписью. Например, один из представителей семейства вирусов Win32.Virut способен генерировать до 100 адресов управляющих серверов в сутки. Последовательно опрашивая их, вирус ожидает поступления ответного пакета, содержащего цифровую подпись домена. Если проверка цифровой подписи проходит успешно, бот считает сервер с таким доменом управляющим.
Рис 6. Структура ботнета, построенного с использованием технологии генерации доменных имен контрольно-управляющих серверов (DGS): 1 — инфицированные компьютеры; 2 — управляющие серверы P2P-ботнеты
Еще одной категорией бот-сетей являются так называемые P2P (Peer-To-Peer), или пиринговые одноранговые сети. Такие сети вовсе не используют управляющих серверов, вместо этого они «общаются» с другими инфицированными компьютерами, передавая команды по сети от «точки к точке». Одноранговые бот-сети являются децентрализованными и потому их невозможно вывести из строя, уничтожив одним метким «ударом» управляющий сервер — за полным отсутствием такового. Ярким примером пиринговой вредоносной сети можно считать ботнет, созданный киберпреступниками с использованием файлового вируса Win32.Sector, заразившего в общей сложности более миллиона компьютеров. Этот вирус может загружать из P2P-сети и запускать на зараженной машине другие вредоносные программы, останавливать работу некоторых антивирусов и предотвращать пользователям зараженной машины доступ к сайтам их разработчиков.
Общеизвестно, что подключенный к Интернету компьютер может иметь собственный внешний IP-адрес, либо не иметь его в случае, если в его локальной сети используется механизм NAT (Network Address Translation). NAT позволяет передавать пакеты за пределы локальной сети, направляя их от узлов с «внутренним» IP-адресом, недоступным из Интернета, внешнему получателю и обратно путем замены в заголовке пакетов «внутреннего» IP-адреса на реальный адрес шлюза или роутера, через который осуществляется подключение всей локальной сети к Интернету.
Рис. 7. Организация одноранговой бот-сети на примере Win32.Sector: «Bot» — зараженные компьютеры, не имеющие внешнего IP-адреса; «Node» — зараженные компьютеры, имеющие внешний IP-адрес и выполняющие функции маршрутизатора для компьютеров «Bot»
Заразив компьютер, Win32.Sector проверяет, имеет ли он внешний IP-адрес или нет. Если имеет, такой бот, условно называемый «Node», начинает играть роль маршрутизатора для других зараженных машин («Bot»), не имеющих реального внешнего IP-адреса. Инфицированные компьютеры типа «Bot» начинают «общаться» с Интернетом и другими зараженными узлами через него. Каждый инфицированный узел такой сети получает начальный список из 100 IP-адресов других ботов, с которыми он пытается установить соединение, причем этот список периодически обновляется. При подобной структуре сети потеря одного «Node» (например, если владелец компьютера вылечит его от вируса) ничем не грозит всей системе в целом: «Bot» просто подключится к другому «Node» для получения дальнейших управляющих команд. Так, на 20 мая 2014 года специалисты компании «Доктор Веб» насчитали в ботнете Win32.Sector 1 197 739 зараженных компьютеров, из них внешний IP-адрес имели только 109 783.
Ботнеты смешанного типа
Примером более сложной бот-сети смешанного типа может служить ботнет Trojan.Dridex.49. Этот троянец умеет встраиваться в запущенные на инфицированном компьютере процессы, а все сообщения, которыми он обменивается в сети, шифруются. Основное назначение этих вредоносных программ — выполнение веб-инжектов, при помощи которых они могут похищать различную конфиденциальную информацию, в том числе получать доступ к системам дистанционного банковского обслуживания.
Для связи с управляющими серверами Trojan.Dridex.49 использует сложную по своей архитектуре одноранговую бот-сеть, состоящую из двух промежуточных слоев прокси. Заразив компьютер, Trojan.Dridex.49 может принять на себя одну из трех возможных ролей:
• роль «Bot» — троянцы этого типа работают на компьютерах, не имеющих внешнего IP-адреса. «Bot» осуществляет связь с управляющим сервером через троянцев с ролью «Node»;
• роль «Node» — троянцы этого типа работают на компьютерах, имеющих внешний IP-адрес, и передают данные от троянцев с ролью «Bot» троянцам с ролью «Admin Node», а также в обратном направлении;
• роль «Admin Node» — троянцы этого типа работают на компьютерах, имеющих внешний IP-адрес, и осуществляют связь друг с другом, а также непосредственно с управляющим сервером.
Цепочка связи инфицированного компьютера, не имеющего внешнего IP-адреса, с управляющим сервером ботнета, выглядит в общем случае следующим образом: Bot -> Node -> Admin Node -> другие Admin Node -> Управляющий сервер. При этом в целях обеспечения безопасности соединения троянцы обмениваются между собой цифровыми ключами. Схематически структура этой сети показана на рис. 8.
Так, чтобы получить с управляющего сервера новый перечень IP-адресов ботов с ролью «Node» или конфигурационных данных, необходимых для выполнения веб-инжектов, троянцы с ролью «Bot» передают запрос троянцу с ролью «Node», тот переправляет его троянцу с ролью «Admin Node», который, в свою очередь, может перебрасывать его другим «Admin Node» до тех пор, пока запрос не достигнет управляющего сервера. Передача запрошенных данных от управляющего сервера троянцу «Bot» осуществляется в обратном иерархическом порядке. Аналогичным образом осуществляется доставка дополнительных функциональных модулей вредоносной программы: «Node» запрашивают их у управляющего сервера через «Admin Node», а «Bot» получают эти модули по запросу у троянцев с ролью «Node». Такая многоуровневая и запутанная система значительно затрудняет отслеживание управляющих серверов бот-сети и перехват информации, которой обмениваются инфицированные машины.
Рис. 8. Архитектура бот-сети смешанного типа на примере Trojan.Dridex.49
Некоторые современные вредоносные программы, например определенные модификации банковского троянца Zeus, используют еще более сложную и изощренную структуру P2P-ботнета с применением туннелирования. Например, запустившись на целевом компьютере, такой троянец может расшифровать из собственного конфигурационного файла список других ботов с ролью «Node» и попытаться установить с ними соединение, а если наладить связь не удалось, он сгенерирует перечень доменов с использованием алгоритма DGS и попытается получить актуальный список «Node»-узлов ботнета оттуда. При этом ресурсы на доменах, содержащие списки узлов сети, не являются управляющими серверами — они просто хранят данные перечни IP-адресов «Node»-узлов, которые отдают ботам по запросу. Связь с истинным управляющим сервером реализуется в такой сети через отдельные «Node»-узлы, работающие как туннелирующий сервер. Сам злоумышленник, управляющий ботнетом, также передает на управляющий сервер список команд не напрямую, а через туннель — в целях затруднения своей локализации и идентификации. Общая схема такой сети показана на рис. 9.
Рис. 9. Схема сложной комбинированной P2P-сети на примере банковского троянца Zeus Ботнеты с использованием TOR и «облаков»
В последнее время в связи со стремительным развитием антивирусных технологий злоумышленники начали размещать управляющие серверы ботнетов в сети TOR, а также активно использовать облачные технологии.
TOR (от англ. The Onion Router —«луковый маршрутизатор») — система так называемой «луковой маршрутизации», состоящая из многослойной структуры прокси-серверов, и позволяющая устанавливать анонимное соединение, защищенное от стороннего прослушивания и слежения. TOR реализует модель анонимных виртуальных тоннелей с использованием шифрования и благодаря распределенной сети узлов связи позволяет пользователю сохранять приватность, препятствуя работе всевозможных механизмов перехвата и анализа трафика.
Структура сети TOR позволяет создавать скрытые веб-сервисы в псевдодоменной зоне .onion, к которой имеют доступ только пользователи TOR-сети и в которой невозможно отследить реальное физическое местоположение сервера. Этим и пользуются злоумышленники, размещая в сети TOR управляющие серверы ботнетов. В случае отсутствия на инфицированной машине TOR-клиента вирусописатели используют для обмена данными с командным центром соответствующие шлюзы, например сервис TOR2WEB.
В частности, управляющий сервер в сети TOR использовал ботнет Mevade (альтернативное наименование — Sefnit), а также довольно крупный ботнет Skynet, предназначенный для проведения массированных DDoS-атак и добычи (майнинга) криптовалют. По данным различных источников, в 2012 году в эту бот-сеть входило порядка 12–15 тыс. зараженных компьютеров.
Активно используют управляющие серверы в TOR и различные троянцы-энкодеры, осуществляющие через «скрытую сеть» обмен ключами шифрования и принимающие оплату за расшифровку файлов в Bitcoin с помощью сайта, размещенного в TOR-сети на домене .onion. К таким энкодерам относится, например, широко распространенный Critroni (альтернативное название — CTB-Locker, Trojan.Encoder.686).
Для затруднения обнаружения и фильтрации вредоносного трафика ботнета вирусописатели все чаще стали использовать в своих целях облачные технологии и социальные сети. Так, еще в 2008 году были выявлены троянцы, получающие команды с определенной учетной записи в социальной сети Twitter и в специально созданной вирусописателями ветке открытых дискуссионных форумов Google Groups.
Для хранения компонентов вредоносных программ, которые могут быть загружены и установлены на инфицированной машине, киберпреступники нередко используют облачные сервисы Google Docs и Google Drive. Кроме того, известны случаи задействования публичных облачных сервисов для организации коммуникации вредоносной программы с ее командным центром. Например, обнаруженная в 2012 году вредоносная программа-бэкдор BackDoor.Makadoc использовала для обмена данными со своим управляющим сервером облачный сервис Google Docs. Встроенное в этот сервис веб-приложение Google Docs Viewer обрабатывает все входящие запросы как обычный открытый прокси-сервер, при этом такие запросы не вызывают «подозрений» у встроенного брандмауэра Windows, чем и воспользовались злоумышленники. В процессе обработки запросов Google Docs Viewer даже не требует у клиента обязательной авторизации в сервисе Google Docs, просто перенаправляя их на командный сервер, что еще более облегчило задачу киберпреступникам.
Нетрадиционные схемы
Помимо описанных выше «традиционных» способов организации взаимосвязи зараженного компьютера и управляющего сервера, злоумышленники порой изобретают более замысловатые схемы, проявляя недюжинную фантазию. Одним из примеров может служить ботнет, в который на конец сентября 2014 года входило порядка 18,5 тыс. инфицированных компьютеров Apple с уникальными IP-адресами, работающих под управлением операционной системы Mac OS X. Причиной заражения стал троянец Mac.BackDoor.iWorm, активно использующий в своей работе различные криптографические алгоритмы.
Для получения списка адресов управляющих серверов Mac.BackDoor.iWorm обращался с запросом к встроенной поисковой системе популярного публичного новостного сайта reddit.com, в котором зарегистрированные пользователи могут оставлять различные ссылки и краткие сообщения. Поисковая строка включала в себя шестнадцатеричные значения первых 8 байт хэш-функции MD5 от текущей даты. В ответ поисковая система Reddit выдавала троянцу ссылки на оставленные злоумышленниками комментарии со списком управляющих серверов ботнета и портов для установки соединения.
Mac.BackDoor.iWorm последовательно перебирал полученный список, отправляя запросы в случайном порядке на первые 29 адресов из этого перечня, и обменивался с удаленными узлами пакетами данных, проверяя с помощью сложного математического алгоритма подлинность каждого сервера. Если проверка завершалась успешно, троянец сообщал на удаленный узел свои идентификационные данные и ожидал от него поступления управляющих команд.
Еще один бэкдор, известный под именем BackDoor.Zetbo.1, на сей раз — угрожающий пользователям Windows, использовал не менее оригинальный способ получения конфигурационных данных, необходимых ему для осуществления вредоносной деятельности. Управляющий сервер, с которого загружала свои параметры эта поделка турецких вирусописателей, внешне выглядел вполне безобидно: на нем размещалось несколько веб-страниц, содержащих графические кнопки с различными гиперссылками. Анализируя HTML-код этих кнопок, троянец вычленял из него значения определенных атрибутов HTML-тегов и путем ряда преобразований получал из них всю интересующую информацию, то есть осуществлял парсинг (синтаксический разбор) кода веб-страницы. Для стороннего же наблюдателя данный сайт не представлял никакой угрозы и не вызывал подозрений — внешне он выглядел, как самая обычная веб-страничка, которых в Интернете сотни миллионов.
Схожим образом действовал один из троянцев-загрузчиков, активно распространявшихся осенью 2012 года, — с его помощью, в частности, на компьютеры пользователей попадали банковские троянцы семейства Zeus (Zbot, Trojan.PWS.Panda). Заразив атакуемый компьютер, загрузчик расшифровывал из своего тела список адресов удаленных веб-сайтов и обращался к каждому из них по протоколу HTTPS. В ответ троянец получал хранящуюся в корневой папке каждого сайта веб-страницу и осуществлял ее парсинг в поисках тега вставки изображения: <img src=”data:image/jpeg;base64…>. В качестве аргумента этого тега веб-страница содержала зашифрованный исполняемый код вредоносной программы, который загрузчик извлекал, расшифровывал и запускал на исполнение на инфицированной машине.
Другая троянская программа, Linux.Sshdkit, предназначенная для заражения работающих под управлением Linux серверов, использовала следующий алгоритм получения имени командного сервера. Троянец по специальному алгоритму генерировал два IP-адреса, которые являлись адресами принадлежащих злоумышленникам DNS-севреров. Если оба этих DNS-севрера при обращении к ним ссылались на один IP-адрес, этот адрес с помощью специального математического алгоритма преобразовывался в другой IP-адрес. Он-то и являлся истинным адресом командного центра, на который вредоносная программа загружала всю похищенную на зараженном сервере информацию.
Рис. 10. Алгоритм генерации имени командного сервера троянцем Linux.Sshdkit Командная система ботнетов
Как уже упоминалось ранее, некоторые боты, фактически совмещающие в себе функции бэкдоров, могут транслировать поступающие извне директивы встроенному командному интерпретатору операционной системы, другие используют собственный набор команд, при этом весь передаваемый в бот-сети трафик обычно шифруется.
Наиболее часто административный интерфейс управляющего сервера ботнета реализован в виде набора сценариев на языке PHP или с использованием другого скриптового языка, и в целом напоминает административный раздел стандартных систем управления контентом (CMS, Content Management Systems). Авторизовавшись на сервере, злоумышленник получает доступ к статистике ботнета — на специальной страничке, как правило, отображается общее количество установленных и активных ботов, перечень последних выполненных ботами команд, данные об успешности/провале завершения этих операций, в некоторых случаях (если ботнет связан с какой-либо «партнерской программой») — полученный злоумышленниками совокупный доход. В отдельном разделе «админки» киберпреступник может отдать ботам соответствующие команды, просто набрав их в специальной экранной форме.
Однако способ трансляции команд ботнету может значительно различаться в зависимости от используемого бот-сетью для передачи данных протокола. Все команды можно условно разделить на две категории:
директивы, общие для всего ботнета;
команды, отдаваемые отдельным подсетям или ботам.
В частности, практически все ботнеты поддерживают команду на загрузку с удаленного сервера и установку обновлений ботов, получение конфигурационных данных: спам-боты загружают в качестве таковых текст рассылаемых сообщений и адреса почтовых серверов для отсылки писем, предназначенные для выполнения веб-инжектов троянцы — встраиваемый в веб-страницы код и список узлов, при установке соединения с которыми осуществляется веб-инжект. Ботнеты, предназначенные для проведения массированных атак на отказ в обслуживании (DDoS-атак) могут получать команду на начало или окончание атаки определенного типа с использованием поддерживаемых вредоносной программой протоколов. Большинство современных DDoS-бот-сетей обладают возможностью осуществлять следующие виды атак.
SYN Flood — отсылка определенным образом сформированных пакетов на атакуемый узел до тех пор, пока тот не перестанет отвечать на запросы.
UDP Flood — бот устанавливает соединение с атакуемым сервером по протоколу UDP, после чего отправляет ему большое количество «мусорных» дейтограмм.
Ping Flood — троянец формирует эхо-запрос с использованием протокола ICMP, который направляется с определенным временным интервалом на атакуемый узел.
DNS Amplification — троянцы отсылают массированные запросы на указанные злоумышленниками серверы DNS с целью вызвать их отказ.
NTP Amplification — отправка массированных запросов на серверы NTP с целью вызвать их отказ.
Большинство банковских троянцев может выполнять команду на полное уничтожение операционной системы на инфицированном компьютере: в результате после успешного хищения средств с банковского счета компьютер жертвы перестает загружаться. Это дает злоумышленникам временную фору до того момента, пока пострадавший от действия вредоносной программы пользователь не начнет бить тревогу и обратится в банк с требованием заморозить несанкционированную транзакцию.
Существуют и оригинальные виды команд, которые могут выполнять некоторые вредоносные программы. Например, предназначенный для рассылки спама и организации DDoS-атак многокомпонентный троянец Trojan.Tofsee обладает некоторыми функциями антивируса: он умеет искать на диске зараженного компьютера файлы по полученному с управляющего сервера списку, отслеживать запущенные в Windows процессы и проверять содержимое системного реестра с одной любопытной целью: отыскания и уничтожения конкурирующих угроз. Таким образом, создатели троянца реализуют своего рода естественный отбор в экосистеме инфицированной машины — устраняя «чужие» вредоносные программы, так или иначе проявляющие активность, Trojan.Tofsee борется за собственную «выживаемость». Следует отметить, что это далеко не единственный подобный случай: специалистам антивирусных компаний известно множество вирусов и троянцев, способных устранять на зараженном ПК другие работающие вредоносные программы в целях конкурентной борьбы за аппаратные ресурсы машины, а также в попытках скрыть от пользователя сам факт заражения.
Методика перехвата управления ботнетами (sinkhole)
Как уже упоминалось ранее, технология DGS обладает рядом архитектурных особенностей, позволяющих специалистам по информационной безопасности успешно перехватывать управление ботнетами. При этом под «перехватом» понимается получение полного управления и контроля над бот-сетью с возможностью не только осуществлять мониторинг и отслеживать состояние сети, но и отдавать команды ботам. Один из наиболее распространенных методов носит наименование sinkhole (англ., «выгребная яма»).
Суть метода кроется в самой реализации механизма DGS. Исследовав образец вредоносной программы методом реверс-инжиниринга, то есть дизассемблировав ее и изучив исходный код, аналитики получают в свое распоряжение алгоритм, с использованием которого бот генерирует адреса управляющих серверов. Зарегистрировав несколько таких адресов, специалисты создают с их помощью собственные управляющие серверы ботнета, способные в ответ на запрос вредоносной программы отправить ей корректный отклик и успешно пройти проверку на подлинность (всю необходимую информацию, как правило, можно почерпнуть из декомпилированного и расшифрованного кода самой вредоносной программы). После этого достаточно лишь тем или иным способом ликвидировать действующие управляющие центры бот-сети. Утратив связь с командным сервером, боты начинают генерировать адреса альтернативных управляющих серверов с использованием уже известного специалистам по информационной безопасности алгоритма DGS, устанавливают связь с принадлежащим им «поддельным» управляющим центром и после успеха этой операции прекращают поиски альтернативных командных узлов. Управление ботнетом захвачено.
В частности, с использованием этого метода сотрудникам российской антивирусной компании «Доктор Веб» удалось перехватить управление несколькими подсетями ботнета Rmnet, бот-сетью Linux.Sshdkit, а также угрожавшим пользователям компьютеров Apple обширным ботнетом BackDoor.Flashback.39.
Почему специалисты по информационной безопасности в некоторых случаях предпочитают перехватить у злоумышленников управление бот-сетью, вместо того чтобы просто уничтожить ее управляющие центры? Потому что в большинстве случаев это не принесет никакого результата: злоумышленники оперативно запустят новые командные серверы, а сами зараженные компьютеры можно избавить от угрозы только в том случае, если их владельцы осознают необходимость установки и своевременного обновления антивирусных программ — убедить в целесообразности этого шага несколько миллионов пользователей инфицированных машин, очевидно, невозможно. В то же самое время перехват управления ботнетом позволяет «заморозить» его, предотвратив дальнейшую вредоносную деятельность сети: злоумышленники больше не могут отдавать команды ботам, и, следовательно, использовать бот-сеть в своих противоправных целях.
В случае с бот-сетями, использующими пиринговые технологии, использование описанного здесь метода, безусловно, невозможно. Вместе с тем, у специалистов по информационной безопасности остается возможность отправлять таким ботам различные команды, например, запрос, в ответ на который вредоносная программа вернет список IP-адресов других зараженных машин, что позволяет оценить размеры ботнета и его географию. Также можно передать ботам список IP-адресов, принадлежащих вирусным аналитикам компьютеров, выполняющих в такой бот-сети функцию маршрутизаторов (узлов Node) с тем, чтобы к ним обращались инфицированные машины, не имеющие выделенного IP-адреса или расположенные в сети, использующей NAT. Это нельзя назвать «перехватом управления» бот-сетью, однако подобный метод позволяет получить достоверное представление о масштабах распространения угрозы.
Глава 5. Технологии проникновения
Существует несколько возможных путей распространения вредоносных программ, причем все они известны довольно давно и хорошо изучены, однако это ничуть не уменьшает масштабов вирусных эпидемий и числа заражений пользовательских устройств троянцами и вирусами. В целом можно сказать, что самая распространенная и основная причина вирусных заражений — это неграмотность самих пользователей, которые не только не желают соблюдать очевидные меры безопасности, но даже не подозревают о том, в каких ситуациях их устройство может быть инфицировано. Давайте кратко рассмотрим основные пути распространения вредоносных программ и дадим им соответствующую характеристику.
Сменные носители информации
Файловые вирусы и черви умеют распространяться самостоятельно, заражая переносные накопители информации — флэшки, sd-карты, даже мобильные телефоны и планшеты, подключаемые к зараженному компьютеру для обмена файлами, например, чтобы скачать на ПК фотографии, или, наоборот, закачать на переносное устройство музыку. Впоследствии достаточно подключить такое инфицированное устройство к компьютеру, и его заражение с большой долей вероятности произойдет автоматически. Выбор устройства для заражения троянец обычно осуществляет путем перечисления имен дисков, содержащих значение «USB», а также смонтированных в системе разделов и логических дисков в поисках съемных накопителей.
Некоторые вредоносные программы просто копируют себя на съемный носитель, а затем создают в его корневой папке файл autorun.inf, автоматически запускающий троянца или червя при обращении к такому накопителю. В некоторых версиях Windows (например, ранних версиях Windows XP) запуск мог осуществиться и вовсе в момент подключения такого устройства к компьютеру.
Другие вредоносные программы могут, например, переместить в Корзину (или скрытую папку с атрибутами «system» и «hidden») все находящиеся на съемном носителе файлы и директории, а затем создать вместо них ссылающиеся на исполняемый файл троянца пусковые ярлыки с теми же именами, по щелчку мышью на которых сначала запускается троянец, а потом открывается уже исходный файловый объект. Щелкнув мышью на таком ярлыке в попытке, например, открыть папку или просмотреть фотографию, не слишком искушенный пользователь запустит троянца на исполнение.
Некоторые черви, активно распространявшиеся ранее, аналогичным образом заражали системную папку Windows, использовавшуюся в качестве буферной при записи компакт-дисков (%userprofile%\Local Settings\Application Data\Microsoft\CD Burning\). Таким образом, все CD или DVD-диски, записанные на зараженном компьютере, также автоматически оказывались инфицированными и содержали файл autorun.inf, запускавший троянца при помещении диска в оптический привод. В наши дни, в связи с распространением флэш-накопителей и карт памяти, технология CD/DVD постепенно отмирает, и этот вектор атак сейчас уже можно назвать архаичным.
Вредоносные почтовые рассылки
Пожалуй, это самый популярный на сегодняшний день метод распространения вредоносных программ. Злоумышленники рассылают червей и троянцев под видом каких-либо документов: счетов, извещений о почтовых отправлениях, сообщений с просьбой подтвердить заказ в интернет-магазине, даже уведомлений о штрафах и судебных исках. Нередко вирусы и троянские программы приходят по электронной почте под видом предложения о знакомстве с приложенными «фотографиями», вместо которых, как правило, оказывается вредоносное вложение. При этом в тексте таких сообщений нередко присутствует ссылка якобы на профиль отправителя на сайте знакомств или в социальной сети. Переход по такой ссылке, как правило, также чреват заражением компьютера.
Пользователи мобильных устройств зачастую получают подобные рассылки с использованием СМС, причем злоумышленники задействуют в своих целях сервисы сокращения ссылок, вследствие чего потенциальная жертва зачастую не может заранее определить, что именно ожидает ее при переходе по предложенной ссылке. Однако можно смело сказать, что там ее не ожидает ничего хорошего. Входящие СМС маскируются под сообщения систем электронного банкинга, различных биллинговых систем, а также под уведомления о доставке MMS-сообщений.
Вот один из примеров рассылаемого злоумышленниками письма, во вложении к которому распространялся опасный троянец-энкодер, зашифровывавший все хранящиеся на компьютере жертвы файлы и требовавший выкуп за их расшифровку (орфография и синтаксис оригинала):
Тема: Процесс №315
Уведомление о начале судебного разбирательства
Здравствуйте.
Поскольку ваша финансовая задолженность не была урегулирована в добровольном порядке, новый кредитор вынужден прибегнуть к принудительным мерам взыскания, предусмотренным законодательством Российской Федерации: направлению выездных групп по адресу регистрации, судебному разбирательству, инициированию исполнительного производства до полного погашения задолженности. Напоминаем Вам, что в случае Вашего неучастия в процессе, решение суда может быть вынесено заочно, что может повлечь за собой принудительное исполнение решения суда. Всю информацию о ходе предварительного судебного производства и сроках рассмотрения, включая копию искового заявления, Вы можете получить ознакомившись с приложенной к настоящему письму документацией или перейдя по ссылке находящейся в конце этого письма.
Это письмо создано автоматической системой и не требует ответа.
Как правило, вредоносные сообщения содержат вложение либо в виде zip-архива (в целях затруднения его детектирования некоторыми антивирусными программами, которые способны анализировать почтовый трафик), либо в виде исполняемого .exe, .bat или .scr-файла. В ряде случаев сообщение может содержать крошечный VBS-скрипт, который скачивает исполняемый файл троянца из Интернета и запускает его на исполнение. Также злоумышленники нередко рассылают настоящие документы в формате Microsoft Office (.doc/.docx, .xls/.xlsx) или PDF-файлы, запускающие вредоносный компонент с использованием уязвимостей в прикладном ПО.
Уязвимости
Общеизвестно, что и операционные системы, и прикладные программы создаются программистами, а программистам, как и всем людям, свойственно допускать ошибки. Некоторые скрытые ошибки в коде приложений или самой системы, называемые уязвимостями, злоумышленники и используют в своих целях, при этом заражение зачастую происходит автоматически, без участия жертвы, при выполнении каких-либо рутинных действий, например, в момент открытия веб-страницы в окне браузера или текстового документа — в окне Microsoft Word. Яркий пример — уязвимость в ранних версиях Android, позволявшая сохранять внутри установочного .apk-файла с дистрибутивом программы два элемента с одинаковым именем, при этом сама ОС Android в процессе инсталляции такой программы проверяла первый элемент, а устанавливала и запускала — второй. С помощью эксплуатации этой уязвимости у вирусописателей появилась возможность заражать троянцами множество устройств, работающих под управлением ОС Android.
Природа уязвимостей может быть различной: некоторые из них связаны с недостатками архитектуры операционной системы или приложения, другие — с ошибками разработчиков ПО. Например, какая-либо программа может выполнять проверку недостаточно эффективно или вовсе не проверять обрабатываемые ею и загружаемые в память данные, чем могут воспользоваться злоумышленники, либо передавать в буфер информацию без фактической проверки его границ (атака на переполнение буфера). Для закрытия уязвимостей разработчики операционных систем и прикладных программ периодически выпускают обновления своих продуктов, также порой называемые в обиходе «заплатками», или «патчами» (от англ. patch — «заплатка», «пластырь»). Среди уязвимостей принято особо выделять критические уязвимости — с помощью которых имеется возможность полностью нарушить работоспособность операционной системы или программы, а также уязвимости нулевого дня — уязвимости, уже известные злоумышленникам, для которых производитель ПО или ОС еще не успел выпустить соответствующего обновления, закрывающего данную брешь в безопасности.
Злоумышленники специально выискивают уязвимости в операционных системах и прикладных программах с целью распространения вирусов и троянцев. Самый простой метод такого поиска — анализ выпускаемых производителями софта обновлений. Например, киберпреступник может проанализировать содержимое опубликованного корпорацией Microsoft критического обновления безопасности для ОС Windows, заменяющего несколько системных динамических библиотек. Сравнив «старую» версию этих файлов с обновленной, злодей может без труда выяснить, в чем именно заключалась ликвидируемая обновлением уязвимость. До тех пор, пока все пользователи Windows не установят это обновление, они являются беззащитными для целевой атаки в данном направлении. А это сотни миллионов компьютеров по всему миру.
Программа, файл, электронный документ, фрагмент исполняемого кода или последовательность команд, использующая ту или иную уязвимость для реализации различных вредоносных функций, называется эксплойтом, эксплоитом, или сплоитом (от англ. exploit, «эксплуатировать»). Например, возможность устаревших версий текстового редактора Microsoft Word автоматически запускать встроенные в документы .doc макросы — это уязвимость. А сам документ, в момент открытия сохраняющий при помощи макроса на диск компьютера и запускающий опасного троянца — это эксплойт.
В качестве еще одного примера можно назвать уже давно устаревший метод атаки, при которой злоумышленники рассылали пользователям Outlook письма в формате HTML, «прячущие» в себе скрытый фрейм. Поскольку эта почтовая программа ранних версий не умела правильно обрабатывать такие письма, из скрытого фрейма вызывался вредоносный скрипт, который загружал из Интернета троянца на пользовательскую машину и запускал его на выполнение. Это и был эксплойт — один из самых распространенных, с которыми многие наши соотечественники сталкивались на практике в начале «нулевых». Можно сказать, что притчей во языцех стали и многочисленные эксплойты, реализованные в виде документов в формате Adobe PDF или встраиваемых в веб-страницы интерактивных элементов в формате Adobe Flash — подобные творения злоумышленников появляются с завидной регулярностью, поскольку некоторые (особенно устаревшие) продукты корпорации Adobe с точки зрения информационной безопасности являются лакомой приманкой для злоумышленников.
Эксплойты являются популярным предметом купли-продажи на различных подпольных форумах, где общаются представители компьютерного андеграунда. Например, с использованием крайне распространенного у вирусописателей комплекта эксплойтов «Black Hole» («черная дыра») было инфицировано несколько миллионов компьютеров по всему миру. Один из частных случаев применения на практике данной схемы распространения вредоносного ПО выглядит следующим образом. При просмотре некоторых веб-сайтов, не несущих в себе какого-либо подозрительного контента, внезапно происходит открытие нового окна браузера, в котором загружается веб-страница, имитирующая своим оформлением интерфейс популярной службы «Ответы@Mail.ru». Разумеется, данная веб-страница физически располагается на другом сервере, адрес которого может отдаленно напоминать URL службы mail.ru. Уже одного факта открытия этой странички в браузере достаточно, чтобы антивирусное ПО начало выдавать предупреждения о попытках загрузки и установки на компьютер вредоносных программ и запуска подозрительных скриптов. Теоретически вредоносная страница может быть любой и нести в себе совершенно иное визуальное оформление.
Анализ HTML-кода такой странички показывает, что она содержит несколько скрытых фреймов, в которых запускается скрипт, выполняющий переадресацию пользователя на принадлежащий злоумышленникам сайт. Этот сайт в свою очередь эксплуатирует набор эксплойтов «Black Hole», реализующих загрузку на компьютер жертвы вредоносного ПО с использованием известных уязвимостей браузеров и операционной системы. Какие именно троянские программы попадут при этом на компьютер жертвы, зависит от используемой ею версии браузера, версии операционной системы и наличия на ней установленных обновлений безопасности, наличия или отсутствия в атакуемой системе брандмауэра и современного антивирусного ПО.
Особо следует упомянуть об опасности, которой подвергаются пользователи операционной системы Google Android. По данным на июль 2015 года, для различных версий данной мобильной платформы известно в общей сложности 11 уязвимостей (9 на уровне компонентов самой операционной системы, 2 — для «рутованных» устройств, в которых пользователь работает с привилегиями суперадминистратора (root)), притом некоторые из них время от времени эксплуатируются разработчиками вредоносных программ. Однако поскольку сама ОС Android является, по большому счету, встраиваемой и распространяется в виде предустановленной заводской прошивки для смартфонов и планшетов, далеко не все производители этих устройств озабочены регулярным обновлением операционной системы. Скорее дела обстоят прямо наоборот: обновления прошивки выпускаются, в основном, для флагманских продуктов наиболее известных и крупных корпораций, а большинство бюджетных моделей мобильных гаджетов, особенно китайского производства, не обновляется вообще. Соответственно, пользователь не в состоянии сам закрыть подобные уязвимости, поскольку они содержатся в системных компонентах, к которым он в обычных условиях не имеет доступа. Самое забавное, что и антивирусные программы для Android также не в состоянии закрыть такие уязвимости, поскольку они не имеют возможности модифицировать компоненты ОС. Антивирусы могут лишь предупредить пользователя о наличии бреши в защите и обезвредить вредоносные программы при попытке запуститься на защищаемом устройстве с использованием той или иной уязвимости.
Кроме того, специалистам широко известны случаи, когда вредоносные программы были внесены в Android-прошивку телефона самим его производителем, и смартфоны поступали в продажу уже зараженными. В особенности это касается дешевых устройств (зачастую — имитирующих дорогостоящие модели известных брендов), выпущенных никому не известными небольшими китайскими заводами. Именно таким образом распространялся, например, Android.Becu.1.origin — компонент этого вредоносного приложения, способного скрытно загружать и устанавливать по команде с управляющего сервера различные вредоносные программы, «прятался» в одном из системных каталогов, имел цифровую подпись самой операционной системы и потому обладал на инфицированном устройстве поистине неограниченными полномочиями.
Еще один встроенный в прошивку некоторых дешевых китайских телефонов троянец, Android.Oldboot.1.origin, действовал как буткит, загружаясь еще до момента запуска операционной системы. С его помощью злоумышленники инфицировали более чем 350 000 Android-устройств. Нередки случаи заражения при установке на телефоны и планшеты так называемых кастомных (созданных сторонними разработчиками) Android-прошивок: многие из них таят в себе очень неприятные сюрпризы.
Таким образом, при выявлении очередной уязвимости в ОС Android устройство в большинстве случаев остается подверженным заражению вредоносными программами, и спасти ситуацию может, по большому счету, только замена такого устройства на более современную модель с более новой версией ОС, в которой уязвимость уже устранена разработчиками.
Загрузчики
Об опасности троянцев-загрузчиков я уже неоднократно упоминал. Множество вредоносных программ может проникнуть на устройство, уже инфицированное троянцем-загрузчиком, основное назначение которого — закачка из Интернета и запуск других вредоносных программ. Вот почему, однажды допустив заражение, пользователь рискует превратить свой компьютер в настоящий рассадник вирусов и троянцев.
Вредоносные программы-загрузчики нередко объединяются в ботнеты, услуги которых злоумышленники продают на различных подпольных форумах. Создатели банковских троянцев, троянцев-шпионов, рекламных троянцев и троянцев-вымогателей платят им за определенное число успешных загрузок своих творений на компьютеры потенциальных жертв. Именно поэтому данный вектор распространения вредоносных программ является весьма популярным и актуальным.
Социальная инженерия
Под термином социальная инженерия принято понимать комплекс используемых злоумышленниками психологических приемов, позволяющих обмануть пользователя или ввести его в заблуждение, чтобы заставить выполнить те или иные нужные киберпреступнику действия, например, передать пароли от аккаунта в социальных сетях, сообщить реквизиты банковской карты или запустить на компьютере вредоносную программу. Так, от одного из друзей в социальной сети (аккаунт которого был ранее взломан) пользователю может прийти личное сообщение примерно следующего характера: «Ты с ума сошел, выкладывать такое видео? Я в шоке!» — далее в послании присутствует ссылка якобы на видеоролик, выставляющий получателя в неприглядном свете. Порой троянцы, рассылающие подобные послания, могут сгенерировать целую переписку, создавая поддельные комментарии пользователей, якобы успевших ознакомиться с видео. Однако для просмотра ролика потенциальной жертве предлагается скачать и запустить специальный кодек или приложение-проигрыватель, в котором скрывается… догадались что?
Само понятие социальной инженерии, по утверждениям ряда источников, ввел в обиход известный американский хакер Кевин Митник. Согласно рассказам его коллег и современников, сам Митник не обладал глубокими техническими познаниями в сфере информационных технологий, однако являлся при этом неплохим психологом. Он не брезговал покопаться в мусорных контейнерах на заднем дворе крупных офисных центров, куда сотрудники могли выбросить содержащие конфиденциальную переписку или важные пароли бумаги, распечатки внутренних документов и другие ценные источники информации. Он мог несколькими телефонными звонками выведать у работников различных фирм те или иные интересующие его сведения. Например, представившись новым руководителем одного из подразделений компании, Митник мог поинтересоваться по телефону у одного из сотрудников техподдержки, где найти системного администратора, чтобы подключить на его рабочем месте принтер, и заодно узнать, как его зовут. Затем, представившись тем самым системным администратором, он выведывал у ничего не подозревающей секретарши пароль от ее электронного почтового ящика.
Вот лишь несколько простых примеров применяющихся на практике приемов социальной инженерии, используемых современными злоумышленниками:
• «забытые» в людных местах флэшки, которые при подключении к компьютеру заражают его вредоносной программой;
• телефонные звонки якобы от имени службы безопасности банка по поводу блокировки пластиковой карты, для разблокирования которой у жертвы просят назвать ее реквизиты и CVV-код (впоследствии с использованием этих данных мошенники могут совершить дорогостоящие покупки в Интернете);
• звонки якобы от имени попавшего в беду родственника с просьбой перечислить деньги на номер мобильного телефона;
• звонки от имени службы технической поддержки провайдера (или компании) с сообщением о возникшей на рабочем месте проблеме с предложением для ее решения выполнить определенные (требуемые злоумышленнику) действия или сообщить конфиденциальную информацию (логин, пароль, иные учетные данные).
Существуют и иные различные способы мошенничества, когда киберпреступники, например, рассылают пользователям популярных онлайновых служб занятости выгодные приглашения на работу, однако требуют оплатить какие-либо курсы обучения или внести определенную сумму якобы за оформление необходимых документов. Разновидностью социальной инженерии являются и классические «нигерийские письма», получившие свое название благодаря тому, что этим видом мошенничества промышляли в основном жители солнечной Нигерии. Они отправляли потенциальным жертвам электронные послания на ломаном английском, представляясь адвокатами якобы недавно умершего богатого родственника получателя. Для оформления наследства требовалось всего ничего: оплатить «адвокату» небольшую сумму, чтобы правильно завизировать все бумаги или заплатить взятку коррумпированным нигерийским чиновникам.
Отдельной категорией сетевого мошенничества, использующего методики социальной инженерии, является так называемый dating scam — под этим термином понимается технология обмана пользователей многочисленных сайтов знакомств, к которым злоумышленники втираются в доверие с целью обогащения.
В последние годы традиционные способы мошенничества «на доверии», когда сетевые жулики под видом одинокой барышни знакомились на форумах с иностранцами, расписывали ужасы жизни в каком-нибудь провинциальном городке и слезно просили «выслать немного денег в голодную Россию», уже не работают, да и зарубежные граждане научились относиться к «русским красавицам» с определенной долей осторожности. Теперь индустрия обмана использует более продвинутые технологии, а сам процесс поставлен на конвейерный поток.
На подпольных хакерских форумах значительной популярностью пользуются комплекты не студийных фотографий, на которых изображена не слишком примелькавшаяся в Интернете симпатичная девушка. Стоимость набора из полутора сотен фото и нескольких видеороликов может составлять от $400 до $1000, в зависимости от качества «натуры» и выдвигаемых заказчиком требований. Нередко жуликам требуются услуги «девушки с поддержкой» — в этом случае модель должна время от времени передавать мошенникам фотографии, отснятые в заранее оговоренном антураже или видеоролики, в которых барышня произносит заранее оговоренные фразы.
Не менее высоким спросом пользуются услуги профессиональных переводчиков и копирайтеров, способных составлять от имени девушки грамотные и нешаблонные письма. Обычно мошенники до мелочей продумывают биографию для своего персонажа, включая имя девушки, место ее рождения и проживания, ее историю, увлечения, вкусы и предпочтения. Как правило, копирайтерам заказывают 20–30 шаблонов писем постепенно увеличивающегося объема, со сквозным сюжетом и строгими требованиями к стилистике.
Для девушки мошенники создают веб-сайт или страницу в социальной сети, где размещают несколько заранее подготовленных фотографий. Согласно сценарию, девушка обычно проживает в небольшом провинциальном российском городе и имеет творческую профессию — художника, фотографа или дизайнера. В письмах мошенники рассказывают о каких-то забавных случаях или ситуациях, связанных с ее работой и жизнью в небольшом российском городке. Ради придания переписке романтического ореола (и с целью избежать обвинений в легкомысленности) жулики обычно упоминают о том, что девушка ранее переписывалась с иностранным мужчиной, но он обманул ее ожидания, оказавшись женатым пенсионером с кучей детей, — по этой же причине она избегает телефонных звонков и видеосвязи, надеясь сначала узнать своего избранника получше. На определенном этапе жулики выясняют почтовый адрес мужчины и высылают ему небольшой трогательный подарок — например, фотографию девушки с нарисованным помадой сердечком. Когда жертва окончательно растает от потоков романтики и знаков внимания, на работе у девушки внезапно происходит какая-либо катастрофа: разбивается дорогой зеркальный фотоаппарат или любимый дизайнерский планшет. Далее события могут развиваться по двум сценариям: доверчивую жертву «раскручивают» на приобретение дорогостоящего устройства, которое затем успешно продается, либо заманивают на сайт поддельного интернет-магазина, где можно приобрести недорогую, но «уникальную» вещь — в этом случае влюбленный мужчина рискует и вовсе расстаться со всеми средствами на счете своей банковской карты, добровольно передав мошенникам ее реквизиты. С учетом того, что одни и те же шаблоны сообщений могут использоваться в процессе переписки сразу с несколькими десятками адресатов, злоумышленники могут получить весьма внушительный нелегальный доход.
Согласно сообщениям, регулярно публикуемым на различных форумах, последнее время процветает еще один вид преступлений, связанных с общением в Интернете. Злоумышленники находят на сайтах знакомств одинокую женщину или мужчину, старающихся наладить личную жизнь, завязывают романтическую переписку и, выяснив, что жертва проживает в своей квартире одна, предлагают ей приехать в другой город для личной встречи. Зачастую мошенники даже приобретают для нее билеты на поезд или самолет (как правило, воспользовавшись для этого крадеными платежными реквизитами) и высылают по указанному адресу. И пока жертва в предвкушении счастливой встречи с избранником мчится в другой конец страны, квартирные воры, никуда не торопясь, выносят из ее жилища все ценные вещи и деньги.
Социальная инженерия активно используется и для взлома электронных почтовых ящиков. Например, в социальной сети потенциальной жертве может поступить сообщение от незнакомого человека, в котором он, крайне вежливо и обходительно извинившись за беспокойство, сообщает, что, возможно, учился в одном классе с матерью получателя. Чтобы убедиться в этом, он просит уточнить ее девичью фамилию. Нередко такие письма поступают пользователям и от отправителей, якобы озабоченных поиском дальних родственников. Отвечая на такие послания, самое время задуматься: а не является ли вопрос «девичья фамилия матери» ключевым для восстановления пароля в используемом жертвой почтовом сервисе? Если это так, злоумышленники очень быстро завладеют ее почтовым ящиком, а с помощью него — незамедлительно получат доступ к аккаунтам во всех социальных сетях и других подобных сервисах, допускающих восстановление пароля доступа при помощи электронной почты.
Распространение вредоносных программ с применением методов социальной инженерии применяется чрезвычайно широко. Практика показывает, что заставить не слишком опытного пользователя запустить на своем компьютере полученную по электронной почте вредоносную программу — не слишком сложная задача. Киберпреступники активно используют в своих целях и фишинг, заманивая пользователя на поддельные сайты, которым он доверяет, — с них ему предлагают скачать вредоносное ПО под видом новой версии браузера или необходимых обновлений.
Поддельные сайты
Этот транспорт, которым пользуются злоумышленники для распространения вредоносных программ, также можно условно отнести к категории фишинга.
В Интернете чрезвычайно распространены всевозможные сайты файлового обмена и торренты, с которых можно скачать полезные программы, игры и музыку, а также сайты из разряда «Вопрос — ответ», где пользователи могут разместить запрос о поиске какой-либо программы и получить соответствующую ссылку. Злоумышленники не гнушаются подделывать такие сайты, размещая там ссылки на вредоносные приложения. Например, пользователю нужно переконвертировать снятый портативной видеокамерой клип из формата .MOV в другой формат, скажем, .AVI. Он вводит соответствующий запрос на сайте поисковой системы и получает ссылку на страничку, где другой пользователь уже задавал похожий вопрос: «Всем привет! Моя камера сохраняет видео в формате mov, а мне нужно записать ее на диск в avi. Как это делается?». И тут же получает ответ: «Для этого тебе нужна специальная программа-конвертер, вот ссылка. Я тоже долго искал такую и нашел — там все просто! Не благодари!». Сайт, на котором опубликован этот диалог, вроде бы, известный и надежный (в действительности злоумышленники создали его копию-двойник), поэтому потенциальная жертва с радостью нажимает на предложенную ссылку… И машина в считаные секунды оказывается заражена троянской программой.
Бесплатные и взломанные приложения
Как известно, бесплатный сыр бывает только в мышеловке, да и то — исключительно для последней по счету мыши. В Интернете распространяется множество различных бесплатных программ. Однако истинных альтруистов среди их разработчиков не так уж и много, программистам тоже хочется есть, поэтому в комплекте с некоторыми бесплатными приложениями часто идут различные «коммерческие» дополнения, от установки которых, впрочем, как правило, можно отказаться, сбросив соответствующие флажки на этапе принятия лицензионного соглашения. Однако лицензионные соглашения обычно никто никогда не читает, поэтому вместе с нужным приложением на компьютер иногда инсталлируется и несколько нежелательных утилит. Этим пользуются многочисленные «партнерские программы», позволяющие разработчикам монетизировать свои бесплатные приложения. Так, в частности, распространяются рекламные троянцы. Достаточно невнимательно прочитать условия использования бесплатной программы или игры, и на экран вашего компьютера отовсюду будут выпрыгивать назойливые рекламные объявления.
Весьма распространенным способом внедрения на компьютер опасного, нежелательного и откровенно вредоносного ПО являются взломанные версии платных коммерческих приложений, распространяемых через торренты и файлообменные ресурсы. Троянцами зачастую оказываются и всевозможные «лекарства» для взлома коммерческого ПО — различные «кряки», «кейгены», «активаторы» и прочие пиратские утилиты. Известны случаи распространения троянцев даже под видом музыки, видео и книг в популярных форматах, в частности FB2 — внутри скачанного архива вместо нового бестселлера известного писателя вполне может оказаться опасный исполняемый файл.
Системы TDS
В целях максимального охвата потенциальной аудитории злоумышленники используют всевозможные системы управления трафиком (TDS, Traffic Distribution Systems). С их помощью осуществляются автоматические перенаправления пользователей (редиректы) на различные вредоносные ресурсы в зависимости от заданных киберпреступником условий. Например, встроенный злоумышленниками в веб-сайт TDS-сценарий может определить по IP-адресу географическое местоположение посетителя, и пользователя из России отправить на русскоязычную страницу, с которой ему будет предложено скачать вредоносную программу под видом популярной игры, а иностранного посетителя — на англоязычную версию этого же сайта. Определив версию браузера, TDS-скрипт автоматически перенаправит пользователя на страницу, содержащую эксплойт конкретно для его версии Internet Explorer, Firefox или Chrome. Наконец, по параметру User Agent, определяющему тип клиентского приложения, пользователи «настольной» версии Windows будут автоматически перенаправлены на страницу с троянцем для этой системы, пользователи мобильных устройств под управлением Android — на страницу загрузки мобильной вредоносной программы, пользователи Apple — на сайт, с которого можно скачать троянца для Mac OS X. Иными словами, TDS позволяют заразить максимальное количество посетителей какого-либо вредоносного сайта, не потеряв привлеченный на него трафик впустую.
К слову, комплекты скриптов для реализации TDS являются весьма популярным и востребованным товаром на всевозможных подпольных форумах.
Ресурсы «для взрослых»
Порнографические ресурсы являются одним из самых массовых источников «компьютерной заразы». Подцепить троянскую программу при просмотре порно — гораздо более вероятно, чем не подцепить ее. В процессе посещения порносайтов у пользователя обычно притупляется критическое мышление, поэтому он с большей долей вероятности нажмет на какую-нибудь кнопку во всплывающем окне, загрузит исполняемый файл под видом фотографии или попытается скачать кодек, якобы необходимый для просмотра видеоролика. Этим и пользуются многочисленные распространители вирусов и троянцев. Число случаев заражения вредоносным ПО среди пользователей ресурсов «для взрослых», по статистике, значительно выше по сравнению с людьми, не посещающими интернет-ресурсы подобной категории.
Взломанные сайты
В последние годы значительно увеличилось количество успешных взломов различных веб-сайтов, работающих с использованием популярных систем управления контентом (CMS, Content Management Systems) с открытым исходным кодом, таких как, например, Wordpress или Joomla. CMS позволяют администраторам сайтов менять опубликованный на собственном интернет-ресурсе контент с использованием удобной административной панели, не прибегая к необходимости вручную править структуру веб-страниц или код разметки гипертекста. Во встроенном в CMS редакторе можно добавлять на страницы сайта текст, иллюстрации, таблицы, менять оформление ресурса, добавлять или удалять разделы, выполнять другие редакторские операции.
Поскольку такие системы управления контентом, как Wordpress и Joomla, установлены на сотнях тысяч сайтов в Интернете, а их исходный код общедоступен и открыт для изучения, злоумышленники зачастую отыскивают в нем уязвимости, которые впоследствии используют для незаконного взлома таких сайтов. Вот лишь некоторые пути, используемые злоумышленниками для достижения этих целей:
• использование уязвимостей в системе авторизации административного интерфейса CMS или подсистеме обработки сессий;
• SQL-инъекции (внедрение в запросы к используемой «движком» реляционной базе данных некорректно обрабатываемых данных);
• создание и распространение бесплатных плагинов и компонентов для CMS, включающих бэкдоры или намеренно оставленные уязвимости;
• создание и распространение бесплатных шаблонов дизайнерского оформления для CMS, включающих намеренно оставленные уязвимости;
• хищение логинов и паролей для доступа к сайтам по протоколу FTP с использованием троянцев-шпионов и других вредоносных программ;
• фишинг — рассылка администраторам сайтов на адреса электронной почты, полученные с помощью общедоступной системы Whois, писем якобы от имени службы техподдержки хостинг-провайдера с просьбой сменить пароль и ссылкой на поддельную страницу авторизации;
• взлом методом грубой силы (брутфорс).
Существуют и троянцы, специально разработанные для целенаправленного взлома веб-сайтов. Например, вредоносная программа Trojan.WPCracker была ориентирована на взлом систем управления конкретных сайтов путем последовательного перебора паролей, при этом список целевых ресурсов передавали ей злоумышленники с управляющего сервера.
Взломав сайт, киберпреступники обычно загружают на него шелл-скрипт, открывающий доступ к файловой системе атакованного интернет-ресурса, либо размещают в различных файлах, являющихся компонентами CMS, сценарии для перенаправления посетителей сайта на вредоносные ресурсы (элементы TDS) или для непосредственной загрузки троянцев. Отыскать такие «закладки» порой не под силу даже самим администраторам атакованного интернет-ресурса, поскольку вредоносный код обычно оказывается обфусцирован и спрятан глубоко в недрах служебных файлов CMS. Нередко преступники продают доступ к взломанным сайтам третьим лицам (как правило, другим злоумышленникам) с целью получения непосредственного дохода.
Атаки типа MITM
Атаки типа MITM (Man in the middle — «человек посередине») — это способ атак, при которых злоумышленник внедряется в канал связи между отправителем и получателем информации и может видоизменять эту информацию «на лету» непосредственно в процессе ее передачи.
Примером успешной реализации такой атаки в целях распространения вредоносного ПО можно назвать инцидент с использованием троянца OnionDuke, заражавшего выходные узлы сети TOR, в результате чего весь трафик, транслировавшийся через эти узлы, оказывался инфицированным. При попытке пользователя скачать какую-либо программу из сети TOR через скомпрометированный узел она автоматически оказывалась зараженной вирусом.
Случаи практического применения технологии MITM конкретно в целях распространения угроз достаточно редки, однако злоумышленники часто используют ее в целях сниффинга — анализа сетевого трафика для извлечения оттуда различной полезной информации, например логинов и паролей для доступа к тем или иным интернет-ресурсам.
Глава 6. Технологии заражения
О том, какие именно деструктивные функции выполняют на инфицированном компьютере различные вредоносные программы, а также о том, какой транспорт они используют для проникновения в атакуемую систему, мы побеседовали в предыдущих главах. Настало время кратко обсудить методики, используемые вирусами и троянцами для заражения ПК.
Эта глава содержит определенный объем сугубо технической информации, поэтому читатель, не желающий вникать в различные наукообразные сложности, может пропустить данный раздел.
Дроппер
Несмотря на довольно скромные размеры (средний размер вредоносной программы составляет 60–100 килобайт) ряд современных вредоносных приложений, как правило, включает в себя несколько модулей, реализующих различные функции. Один из таких модулей принято называть дроппером, он может быть реализован как в виде отдельного файла, так и в качестве составного компонента сложной угрозы.
Например, широко распространенные троянцы семейства MulDrop представляют собой троянцев-дропперов: основное (и единственное) назначение этих вредоносных программ — установка на атакуемый компьютер другого троянца, который хранится внутри контейнера Trojan.MulDrop, как одна матрешка в другой (как правило — в упакованном и зашифрованном виде). В отличие от троянцев-загрузчиков (Trojan.Download), Trojan.MulDrop не скачивает «полезную нагрузку» из Интернета, а извлекает ее «из себя».
Иными словами, дроппер — это объект, осуществляющий извлечение содержащихся в нем основных модулей вируса или троянца, их распаковку и установку в операционной системе. Основные компоненты вредоносной программы при этом могут помещаться дроппером, например, в одну из папок на диске или загружаться непосредственно в оперативную память. Основная функция дроппера — сохранить в атакуемой системе все компоненты вредоносного приложения, при необходимости зарегистрировать их в автозагрузке и передать им управление.
Инфектор
Еще один компонент вредоносных приложений называют инфектором. Инфектор — это модуль, осуществляющий заражение файловых объектов (например исполняемых файлов или динамических библиотек) либо загрузочной записи компьютера путем изменения их внутренней структуры.
Инжектор
Инжектором принято называть функциональный модуль вредоносной программы, реализующий встраивание вредоносных компонент в запущенный процесс другого приложения (инжект). После успешного осуществления инжекта вредоносный компонент вируса или троянца выполняется в контексте инфицированного процесса.
Объект для инжекта во многом определяется целью злоумышленников и функциональным назначением самой вредоносной программы. Наиболее распространенным объектом для инжектов в Windows являются запущенные в системе процессы браузеров или различные системные процессы, такие как svchost.exe или explorer.exe (проводник).
Лоадер
Лоадером называют компонент вредоносной программы, осуществляющий загрузку других модулей (например, динамических библиотек) в оперативную память компьютера и (в ряде случаев) настройку этих компонентов в памяти. Для загрузки компонент лоадер может использовать как функции API, так и различные собственные механизмы.
Процесс заражения
Соответственно, различные компоненты вредоносной программы в целях инфицирования операционной системы могут действовать совместно. В качестве примера такой функциональной интеграции можно рассмотреть механизм заражения Microsoft Windows одной из ранних версий вредоносной программы, принадлежащей к семейству Ramnit (Rmnet).
Первым на атакуемом компьютере запускается дроппер, который извлекает из своего тела, расшифровывает, а потом помещает во временную папку инфектор загрузочной записи и несколько модулей, реализованных в виде динамических библиотек. Затем дроппер запускает инфектор с помощью одной из системных функций, после чего файл инфектора удаляется.
После успешного запуска инфектор модифицирует основную загрузочную запись компьютера (MBR, Master Boot Record) с целью обеспечения запуска модулей Rmnet до старта средств антивирусной защиты, если таковые установлены на инфицированной машине. Оригинальная MBR вместе с частью вирусной загрузочной записи перемещается в конец диска.
При запуске операционной системы вредоносная программа получает управление, имеющийся в ее архитектуре инжектор встраивает модули Rmnet в один из запущенных процессов, в контексте которого они начинают выполняться. Один из модулей предназначен для саморепликации вредоносной программы, второй выполняет функции бэкдора, третий осуществляет мониторинг сетевого трафика, и, наконец, последний реализует функцию кражи паролей от различных приложений, в частности FTP-клиентов. Описанная здесь схема заражения представлена на рис. 11.
Рис. 11. Одна из реализаций схемы заражения ОС Windows
В зависимости от модификации и типа вредоносного приложения механизм заражения может значительно меняться: представленный выше весьма упрощенный алгоритм является лишь одним из множества возможных вариантов и достаточно схематичен. Современные вредоносные приложения могут использовать различные руткит-технологии, позволяющим им эффективно скрывать свое присутствие в операционной системе, а также применять всевозможные методы антиотладки.
Инфицирование файловых объектов
Современные файловые вирусы реализуют различные методы заражения файлов, иногда достаточно изощренные. В общем случае механизм заражения файловых объектов можно упрощенно представить следующим образом. Определив по тем или иным заданным вирусописателем критериям подходящий для заражения файл, вирус модифицирует его, дописывая в его структуру собственное тело (иногда — в зашифрованном виде, в этом случае при выполнении вредоносного кода задействуется специальный механизм его расшифровки). В частности, вирус может поместить свою копию в начало файла, а оригинальное содержимое перенести в его конец. Затем вирус изменяет код приложения таким образом, чтобы при его запуске первым управление получил встроенный в него вредоносный компонент (например, размещая в соответствующей секции файла команду перехода на начало вируса). После выполнения основного тела вируса управление передается обратно инфицированному приложению, и оно выполняет свои функции так, как и было изначально задумано его разработчиками. Пользователь в большинстве случаев не замечает того, что в момент старта программы произошло что-то необычное. Такой метод заражения можно условно представить в виде схемы (рис. 12).
Рис. 12. Один из возможных алгоритмов заражения файловых объектов вирусом
Существует вариант заражения, при котором оригинальный файл, наоборот, в том или ином виде сохраняется внутри вредоносной программы и в момент запуска вируса отображается в память компьютера или сохраняется в какой-либо папке на диске и запускается оттуда. Схожий алгоритм использовали, например, вирусы семейства Neshta. В процессе заражения машины вирус сохранял свою копию в папке установки Windows под именем svchost.com, а затем изменял параметр ключа системного реестра [HKCR\exefile\shell\open\command], записывая в него значение “(default)” = “%WinDir%\svchost.com “%1” %*”. В результате при попытке запуска пользователем любой программы на инфицированном компьютере в первую очередь запускалось тело вируса из файла svchost.com, которому передавалось имя нужного пользователю приложения в виде параметра. Если этот исполняемый файл еще не был инфицирован ранее, Neshta сохранял его имя в специальном журнале для последующего заражения и запускал оригинальную программу. Если же пользователь пытался запустить ранее зараженный файл, вирус, получив управление, распаковывал оригинальный исполняемый файл нужной пользователю программы, помещал его во временную папку текущего пользователя Windows и запускал оттуда.
С целью избежания повторного заражения вирусы, как правило, используют специальные уникальные идентификаторы — в процессе заражения файла инфектор проверяет наличие в структурах файла соответствующей строки, и в случае ее обнаружения заражения не происходит. Описанная выше схема представлена на рис. 13.
Рис. 13. Альтернативный алгоритм заражения файловых объектов вирусом
Существуют и альтернативные методы заражения, используемые злоумышленниками значительно реже. Например, известно семейство вредоносных программ (иногда их называют общим термином «вирус-компаньон»), действовавших достаточно просто: они сохраняли свою копию в той же папке, где расположен исходный файл приложения, причем с тем же самым именем, а оригинальный исполняемый файл переименовывали. При запуске такой программы пользователем сначала запускался вирус, а после того, как он отрабатывал, управление передавалось оригинальному приложению.
Методы обеспечения автоматического запуска
Собственно, способов, позволяющих вредоносной программе автоматически запуститься на инфицированном компьютере, не так уж и много, и все они зависят в первую очередь от типа операционной системы, в которой действует вредоносная программа, а также от ее типа. Например, троянцы в Mac OS X обеспечивают собственную автозагрузку с использованием файлов PLIST (Property List). Буткиты, о которых мы уже беседовали ранее, модифицируют для этих целей загрузочную запись, получая, таким образом, возможность запуститься одновременно с операционной системой (либо даже до завершения процесса ее загрузки), однако в любом случае — до момента старта действующих на компьютере антивирусных средств защиты.
На ранних этапах эволюции антивирусных программ для ОС Windows троянцы зачастую просто создавали скрытый ярлык, указывающий на исполняемый файл вредоносной программы, в системной папке автозагрузки Windows. Большинство современных угроз для этой цели модифицируют отвечающую за автозапуск приложений ветвь системного реестра, как правило, выбирая в этом качестве ветвь [HKLM или HKCU \Software\Microsoft\Windows\CurrentVersion\Run]. Однако до сих пор существуют троянцы, действующие по старинке: определив место расположения папки автозагрузки для текущего пользователя Windows (для этого троянец получает значение ключа реестра [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders\Startup]), вредоносная программа просто сохраняет в этой директории собственный исполняемый файл, устанавливая для него атрибуты «системный» и «скрытый».
Вредоносные программы для ОС Linux используют другие методы автозапуска, обусловленные особенностями архитектуры этой операционной системы. Так, некоторые Linux-троянцы задействуют для данных целей службу выполнения приложений по расписанию (планировщика задач) cron, создавая соответствующие записи в конфигурационном файле crontab. Другие изменяют содержимое служебной директории «~/.config/autostart/». Один из троянцев, принадлежащих к семейству Linux.BackDoor.Fysbis, добавлял во все найденные в директории /etc/ файлы rc.local строку со ссылкой на инфицированный файловый объект либо (если изменить содержимое файлов не получилось) пытался создать файл службы в папке /usr/lib/systemd/system/ и установить ее в системе, выполнив соответствующую последовательность команд.
Инжекты
Инжект (не следует путать с веб-инжектом) — это механизм, позволяющий вирусу или троянцу встраивать вредоносный объект в запущенный и уже работающий в операционной системе процесс другого приложения, после чего внедренный объект начинает выполняться в контексте данного процесса. Инжекты осуществляются вредоносными программами с несколькими возможными целями. Во-первых, внедрение в процесс приложения позволяет получить доступ к различным ресурсам, используемым данным приложением. Например, инжект в процесс браузера открывает перед злоумышленником возможность обходить установленные в брандмауэре ограничения или перехватывать вызовы соответствующих функций API. Во-вторых, внедренный в работающую программу вредоносный объект не будет демонстрироваться в Диспетчере задач Windows в виде отдельного процесса и потому станет как бы невидимым для пользователя. Есть и еще один заметный «плюс» инжекта с точки зрения злоумышленника: вредоносный код выполняется в операционной системе с привилегиями программы-«носителя», то есть основного процесса приложения, в которое инжектирован вредоносный объект. Иными словами, если программа, например, запущена от имени Администратора, вирусный код также получит аналогичные права на зараженной машине и сможет выполнять действия, недоступные для ограниченной учетной записи простого пользователя.
В настоящее время известно порядка 20 различных практических методов выполнения инжектов в процессы, запущенные в ОС семейства Microsoft Windows. Я не буду описывать их подробно, поскольку соответствующую техническую информацию можно без труда отыскать в популярных учебниках по программированию. В общем случае (самый распространенный метод) последовательность действий вредоносной программы такова:
• выбор приложения, в которое будет осуществляться инжект;
• поиск и получение соответствующего дескриптора процесса;
• выделение в адресном пространстве процесса памяти для внедрения вредоносного объекта по соответствующему адресу;
• копирование вредоносного компонента в выделенную область памяти;
• создание нового потока в виртуальном адресном пространстве процесса, в который внедрен вредоносный код.
Многие разработчики инжектов используют для реализации данного механизма стандартные функции API, например, WriteProcessMemory для копирования кода в память процесса и CreateRemoteThread для запуска удаленного потока. Другие поступают иначе. Так, создатели некоторых образцов троянцев семейства Trojan.Inject использовали альтернативную методологию: инжектор вредоносной программы создавал «замороженный» экземпляр процесса svchost.exe (хост-процесс для загружаемых из динамических библиотек служб), подготавливал адреса всех необходимых для работы встраиваемого кода функций API, затем выделял требуемое адресное пространство памяти и полностью копировал троянца в процесс, после чего «размораживал» его.
В некоторых, довольно редких, случаях инжекты выполняются с использованием различных уязвимостей или недокументированных возможностей тех или иных компонентов операционной системы. Так, сразу несколько троянских программ использовали в свое время уязвимость в компоненте explorer.exe, вернее, в его подсистеме GUI (графического интерфейса пользователя). Однако подобные случаи на практике все же встречаются нечасто.
Перехват вызовов функций
Для реализации различных практических задач многие вредоносные программы обладают механизмом перехвата вызовов API-функций в процессах других приложений. Иногда эту технологию называют «хуками».
Кратко процедуру «хукинга» можно описать следующим образом. Очень многие приложения, выполняющиеся в среде Microsoft Windows (если не сказать «почти все»), используют для своей работы так называемые динамические подключаемые библиотеки (Dynamic Link Library), физически представленные в виде файлов с расширением .dll. Динамические библиотеки в свою очередь содержат определенный набор используемых приложениями функций. Сделано это, чтобы «разгрузить» само приложение, избавить его от «лишнего» кода. Например, разные программы могут многократно использовать одну и ту же функцию. Вместо того чтобы размещать ее код в самом приложении, разработчики позволяют этой программе обращаться к соответствующей динамической библиотеке и вызывать нужную ей функцию оттуда. При этом подразумевается, что одной стандартной библиотекой может пользоваться сразу несколько разных программ.
Когда программа запускается на выполнение, ОС Windows создает для нее отдельный процесс, выделяя для приложения определенный объем памяти. В начале каждого исполняемого файла перечислены имена динамических библиотек, которые использует это приложение: система осуществляет их поиск (в папке, где установлена сама программа, или в системных директориях Windows), аллоцирует (выделяет) память в процессе работающего приложения и загружает туда эти библиотеки. Когда программа вызывает какую-либо функцию, нужную ей для работы в данной момент времени, она автоматически определяет, в какой библиотеке и по какому адресу хранится данная функция, после чего строит специальную таблицу зависимости вида «имя функции — имя библиотеки — адрес функции внутри библиотеки» (она называется таблицей импорта функций), отыскивает нужный адрес в памяти процесса и передает на него управление (рис. 14).
Рис. 14. Стандартный механизм работы приложения и перехват вызовов функций с передачей управления на вредоносный объект Собственно, задача «хукинга» заключается в том, чтобы «убедить» программу, будто нужная ей функция хранится не по этому адресу, а расположена в другом месте, например, в совершенно иной динамической библиотеке, которая была предварительно встроена в процесс методом инжекта.
Практически перехват вызовов функций осуществляется обычно перестановкой указателя, то есть, изменением содержимого этой самой «таблицы зависимостей» таким образом, чтобы имя вызываемой функции ссылалось в конечном итоге на нужный злоумышленнику адрес функции в памяти процесса.
Второй метод носит наименование code injection и заключается в том, что злоумышленник непосредственно в памяти процесса заменяет первые байты кода самой функции, вставляя туда инструкцию безусловного перехода на собственную, вредоносную функцию, после выполнения которой управление (в случае необходимости) возвращается обратно оригинальной функции. Этот метод чуть более сложен в реализации и потому встречается на практике реже.
Так, некоторые банковские троянцы при запуске снимают хуки с ряда функций системных библиотек с целью обхода различных инструментальных средств, позволяющих исследовать вредоносную программу — таким образом реализуется механизм антиотладки. Установка перехватов вызовов функций широко используется и в целях непосредственного выполнения приложением деструктивных действий.
Например, встроившись в процесс Проводника, некоторые троянцы могут перехватывать вызов функции ZwQueryDirectoryFile с целью сокрытия собственных файлов на диске инфицированного компьютера — при обращении к такому файлу будет автоматически установлен код ошибки STATUS_NO_SUCH_FILE. Нередко установка хуков на определенные функции применяется троянцами-шпионами для «просеивания» сетевого трафика (сниффинга) в поисках логинов и паролей.
Существует огромное количество практических задач, которые могут быть реализованы с использованием установки тех или иных хуков. Фактически перехват вызовов функций открывает перед злоумышленниками почти полный контроль над приложением. С помощью хуков, например, можно отслеживать действия пользователя (движения курсора и нажатия кнопок мыши), предотвращать создание или закрытие окон, выгрузку компонентов приложения, перехватывать сообщения от других процессов, контролировать работу приложения с файловыми объектами и т. д.
Например, если злоумышленник хочет, чтобы другая программа не завершила используемый им инфицированный процесс, он может установить хуки на функции открытия и завершения процессов (OpenProcess, TerminateProcess), и в момент вызова этих функций другими процессами осуществлять проверку, не пытаются ли они завершить процесс его вредоносного приложения.
С этой точки зрения горизонты применения технологии перехвата вызовов функций ограничены, по большому счету, только набором самих функций, естественными рамками архитектуры операционной системы и фантазией злоумышленника.
Глава 7. Кто пишет и распространяет вирусы?
Современный мир компьютерной преступности представляет собой огромное число различных представителей пестрого племени злоумышленников. Времена энтузиастов-одиночек давным-давно канули в прошлое: в наши дни разработкой и распространением вредоносных программ занимаются целые группы сетевых злодеев, хорошо структурированные и напоминающие по своей иерархии настоящие мафиозные кланы, в которых каждому участнику отведена строго определенная роль.
По долгу службы мне приходится проводить довольно много времени на различных полуподпольных интернет-форумах, в том числе в «глубоком Интернете», где собираются многочисленные представители компьютерного андеграунда: вирусописатели, хакеры, кардеры, спамеры и прочая творческая интеллигенция эпохи высоких технологий. Коллектив там подбирается, как правило, весьма разношерстный, но достаточно интересный. Да и деньги в этом криминальном бизнесе крутятся немаленькие, по крайней мере, тема из разряда «куда вложить лишние 100 000 долларов» не является на подобных сайтах чем-то особенным. Чем же отличаются друг от друга различные представители «темной стороны» IT-технологий? Каковы источники дохода современных киберкриминальных деятелей? Давайте попробуем обобщить эти сведения в рамках настоящей главы.
Кто такие хакеры?
Всякий раз, когда в Интернете или традиционных СМИ я вижу новостные заголовки из разряда «Хакеры организовали очередную вирусную атаку» или «База данных интернет-магазина была похищена хакерами», мне нестерпимо хочется отыскать написавшего это журналиста и стукнуть его по голове чем-нибудь тяжелым. Когда-то, работая редактором компьютерного журнала, я безжалостно вымарывал подобные строки из поступавших в издательство материалов. «Почему ты с таким упорством защищаешь хакеров?» — недоумевали коллеги. «Потому что они ни в чем не виноваты», — всякий раз отвечал я.
Истинное происхождение термина «хакер» сейчас, наверное, установить уже невозможно: предполагается, что оно зародилось в кампусах и аудиториях Массачусетского Технологического университета еще в 60-х годах прошлого столетия. Бытует мнение, что словечко попало в обиход компьютерщиков из жаргона хиппи, где глагол «to hack» означал отнюдь не «взламывать», как это считается сейчас, а «соображать», «врубаться». Собственно, в 70-х «хакерами» как раз и называли тех, кто «врубается» в принципы работы компьютеров, глубоко понимает происходящие в них процессы — то есть высококвалифицированных IT-специалистов, программистов, разработчиков. Хакеры — это прежде всего исследователи, настоящие ученые из мира высоких технологий, те самые косматые парни в очках, сквозь толстые стекла которых можно поджигать муравьев. Настоящие хакеры никогда не взламывали чужие приложения или серверы ради наживы, и уж тем более не совершали преступлений — разве что порой использовали свои знания для организации безобидных розыгрышей. Говорят, один предприимчивый парень, сконструировав «bluebox» — устройство, позволявшее «обманывать» аппаратуру телефонных сетей — однажды сумел дозвониться самому Папе Римскому. Порой хакеры использовали свои умения в личных целях, но все равно старались не наносить компьютерным системам и их пользователям серьезного вреда. По большому счету, хакерами можно назвать Стива Возняка и Билла Гейтса, Линуса Торвальдса и Ричарда Столлмана. Даже создатель первой в истории человечества электронно-вычислительной машины Конрад Цузе был своего рода хакером, хотя в его времена такого понятия не существовало вовсе.
В мире существует множество IT-специалистов, которых можно назвать настоящими профессионалами своего дела. Это системные администраторы, поддерживающие целые кластеры серверов, это программисты, пишущие сложный код, это эксперты по информационной безопасности, архитекторы операционных систем, и, конечно, вирусные аналитики, исследующие опасные угрозы. И все они — немножко хакеры. Вот почему я отношусь к людям, которые заслужили право именоваться именно так, с большим и искренним уважением, ведь хакер — это звучит гордо.
Категории компьютерных злоумышленников
Для парней, взламывающих программы или удаленные серверы с целью заработка, а также разрабатывающих различные средства обхода систем лицензионной защиты, всегда существовало отдельное название — крэкеры, происходящее от английского глагола to crack, «взламывать» (как печенье, только сетевые крэкеры совершенно невкусные). Специалистов по взлому телефонных сетей принято называть фрикерами. Тех, кто использует в незаконных целях банковские карты и системы электронных платежей — кардерами. Отдельную категорию компьютерного андеграунда составляют вирусописатели, создающие и распространяющие вредоносное ПО. В эту разношерстную компанию также входят многочисленные кланы, имеющие довольно-таки узкую специализацию: тех, кто пишет код, нередко называют вирмейкерами, так называемые крипторы упаковывают и шифруют вредоносные приложения, отдельные «специалисты» занимаются раздачей вирусов и троянцев населению, а ботоводы реализуют на «черном рынке» различные «услуги» с помощью принадлежащих им ботнетов, например рассылку спама или DDoS-атаки.
Существуют интернет-мошенники, выманивающие у доверчивых жертв деньги при помощи специально созданных сайтов или с использованием методов социальной инженерии. Такую деятельность нередко называют фродом от английского термина fraud — «мошенничество», а самих мошенников зовут фродерами (нет, знаменитый хоббит из «Властелина Колец» тут совершенно ни при чем). Жуликов, использующих личную информацию потенциальной жертвы в целях обмана или вымогательства именуют скамерами — нередко они паразитируют на сайтах знакомств и промышляют в социальных сетях. Кто такие спамеры, знает, наверное, каждый. Нередко злоумышленники используют незаконные методы для несанкционированного доступа к компьютерным системам. Но таких людей все-таки правильнее именовать «киберпреступниками», считать их хакерами в классическом понимании этого слова — все равно что называть системный блок ПК «процессором».
Ну, а расхожее слово «хакер», некогда обозначавшее просто высококлассного компьютерного специалиста, оказалось затерто до дыр не разбирающимися в вопросе журналистами, которые низвели IT-профессионалов до уровня компьютерных преступников и киберзлодеев. Масла в огонь подлили многочисленные онлайновые издания, благодаря стараниям которых ныне хакером себя мнит любой школьник, купивший на «Горбушке» диск из серии «1000 программ для взлома Интернета».
На чем зарабатывает компьютерный андеграунд?
Итак, некоторая часть населения «подпольного Интернета» представлена собственно вирусописателями, один из источников заработка которых — создание вредоносного ПО. Собственно, сами вирусописатели нередко дают возможность заработать другой категории специалистов, которую можно условно назвать «впаривателями», путем привлечения их к участию в партнерских программах. В этом случае наблюдается своеобразный симбиоз между двумя различными группами киберпреступников: создатели троянцев весьма охотно «покупают загрузки», то есть оплачивают другим специалистам факты инфицирования пользовательских компьютеров их творениями. Те же, кто продает загрузки, то есть, собственно, получает деньги за каждый факт заражения, обычно владеют своей действующей бот-сетью или распространяют вредоносное ПО через собственные сайты, используя методы социальной инженерии, различные системы управления трафиком (TDS), взломанные ресурсы или уязвимости популярных браузеров (а чаще и то, и другое, и третье). Чем же выгодны злоумышленникам покупки «загрузок»? Таким образом, как правило, создаются бот-сети, услуги которых также можно успешно монетизировать, рассылая спам или устраивая за соответствующее вознаграждение DDoS-атаки на неугодные серверы. Кроме того, создателям, скажем, банковских троянцев не нужно заботиться о том, как их вредоносная программа попадет на целевой компьютер — они просто покупают у «впаривателей» или «ботоводов» некоторое количество загрузок либо спам-рассылку, а потом изучают полученный «улов». Например, известны случаи, когда разработчики троянца-шифровальщика не просто предлагали всем желающим приобрести созданный ими энкодер «в аренду», но создавали для него автоматизированный управляющий сервер, на котором жертвы шифровальщика могли авторизоваться при помощи автоматически генерируемого троянцем ключа, дешифровать один пробный файл и оплатить выкуп, процент от которого тут же перечислялся распространителю этой вредоносной программы. Таким «сервисом» не могут похвастаться даже некоторые серьезные коммерческие компании!
Отдельную категорию платных (и весьма востребованных) услуг на подпольном киберрынке составляет так называемое криптование. Что это? Давайте разбираться. Принцип работы большинства антивирусных программ состоит в том, что для каждой выявленной угрозы создается уникальная сигнатура, которая помещается в вирусные базы. При последующем сканировании вредоносные файлы безошибочно определяются по этой самой сигнатуре и успешно удаляются, либо помещаются в карантин. С целью обхода защиты вирусописатели применяют метод переупаковки вредоносных программ с использованием различных упаковщиков исполняемых файлов, нередко нанизывая слои таких «оберток» друг на друга по принципу матрешки: в результате вредоносный файл становится не похож сам на себя, и антивирусная программа «не признает» его за угрозу. Такой троянец не будет распознаваться антивирусным ПО ровно до тех пор, пока его образец не попадет в вирусную лабораторию и соответствующая сигнатура не будет добавлена в базу. К тому же толковый «крипт» несколько затрудняет анализ угрозы: в дизассемблере грамотно упакованный троянец выглядит как запутанный набор инструкций. Не то чтобы распутать такой клубок невозможно, просто занимает это гораздо больше времени… Вот почему услуга по «навешиванию» на вредоносную программу «криптов» весьма востребована. Впрочем, это совершенно не спасает вирусописателей от системы эвристического анализа угроз, так что с появлением подобных технологий ситуация стала понемногу меняться в лучшую сторону: хоть криптуй, хоть не криптуй, все равно получишь… детект. Разумеется, в сети активно продаются и сами троянцы-боты (под заказ их могут перекомпилировать, «зашив» в ресурсы ссылки на требуемые управляющие серверы), и даже исходники некоторых вредоносных программ — их можно приобрести по цене от двух до пяти тысяч долларов.
Весьма распространенный объект купли-продажи — наборы эксплойтов и скриптов для организации систем управления трафиком. Продаются и покупаются похищенные с компьютеров пользователей базы данных, содержащие логины и пароли для доступа к почтовым ящикам, страничкам в социальных сетях, форумам, различным сетевым ресурсам. Вся эта информация используется потом в целях мошенничества, рассылки спама, кражи конфиденциальной информации.
Довольно большим спросом пользуются так называемые дедики, или dedicated-servers, то есть выделенные серверы, которые можно использовать в различных криминальных целях: например, устанавливать на них специфическое ПО, применять в качестве прокси, использовать их как промежуточное звено при осуществлении атаки на другие сетевые ресурсы. «Дедики» добываются с использованием нехитрой технологии: сначала посредством специальных программ осуществляется сканирование выбранного диапазона IP-адресов на наличие открытых портов, затем методом подбора паролей реализуется попытка проникновения на сервер. Вы будете удивлены, узнав, сколько системных администраторов оставляет на серверах активные учетные записи с параметрами удаленного доступа из разряда admin/admin или Administrator/1234. По статистике, за одну ночь соответствующие программы обнаруживают в худшем случае два-три таких «дедика», а при удачном стечении обстоятельств улов может быть и более крупным. «Живучесть» подобных серверов зависит от того, насколько аккуратно ими пользуется злоумышленник: если не перегружать процессор машины своими задачами, не создавать бешеный трафик, прятать в системе используемое ПО и регулярно «чистить» за собой логи, аккаунт может просуществовать достаточно долго. Ну, а если злоумышленнику по каким-либо причинам неохота искать открытые dedicated-серверы самостоятельно, их можно просто купить: данные для доступа продаются в сети пачками по весьма приемлемой цене.
Еще одна востребованная услуга — предоставление абузоустойчивого хостинга, то есть хостинга, администрация которого не реагирует на жалобы пользователей и позволяет размещать в сети практически любой контент: порнографию, сайты, рекламируемые спам-рассылками, администраторские панели бот-сетей, мошеннические странички с массовыми «лохотронами» за СМС, а также веб-страницы, распространяющие всевозможное вредоносное ПО. Причем серверы таких хостинг-провайдеров далеко не всегда располагаются на Каймановых островах: гораздо чаще абузоустойчивый хостинг можно разыскать в сытой Европе. К слову, техподдержка таких провайдеров по уровню сервиса порой может дать фору даже саппорту легальных хостеров. Вот у кого следовало бы поучиться некоторым раскрученным провайдерам…
Следующим номером нашей программы является продажа трафика, в частности iframe-трафика. Требуется нагнать пару тысяч уникальных посетителей на какую-нибудь веб-страничку, чтобы накрутить счетчик? Или просто хочется раздать десятку тысяч пользователей по троянцу-даунлоадеру? К вашим услугам трафик с различных сайтов, часть из которых грешит редиректами, а некоторые оборудованы скрытыми элементами iframe и pop-up-кодом. Причем нередко заказчик может выбирать источник трафика по странам, по крайней мере, ему будет точно известно число посетителей из США, Канады, Китая, Европы. Очень удобно в целях проведения таргетинга при распространении вредоносных программ.
Вы когда-либо пытались взять кредит? Не обязательно в банке, вполне достаточно приобрести в каком-нибудь магазине мобильный телефон или стиральную машину в рассрочку. Будьте уверены: ваш комплект документов, включая отсканированную копию паспорта и водительского удостоверения (часто к этому добавляется еще и фото «клиента» с паспортом в руках) уже продается на подпольных форумах по цене примерно пять долларов за набор. Торговля сканированными комплектами документов — очень выгодная и широко развитая индустрия. С помощью таких комплектов можно, например, получить персональный аттестат в платежной системе Webmoney, или зарегистрировать домен (хотя это нетрудно сделать и вовсе анонимно), открыть счет в некоторых платежных системах. В общем, широчайшее поле для деятельности.
Отдельной категорией «кибербизнесменов» являются мелкие жулики, торгующие «угнанными» номерами мессенджеров или взламывающие под заказ почтовые ящики — в основном используя методы социальной инженерии. Методы, позволяющие выяснить у пользователя данные для ответа на контрольный вопрос, необходимый при восстановлении «забытого» пароля, достаточно просты. Иногда для этого не нужно даже беспокоить самого пользователя: чтобы ввести правильный ответ на контрольный вопрос «имя моего домашнего животного» порой достаточно прошерстить фотоальбомы в социальной сети потенциальной жертвы в поисках снимка с подписью «я и Мурзик». Случаются и более идиотские ситуации: например, в середине «нулевых» пользователям мессенджера ICQ приходили сообщения якобы от имени девушки, работающей менеджером крупной фирмы, которой — внимание! — нужно «поднять рейтинг», для чего жертве предлагалось установить в настройке профиля «аськи» предложенный адрес электронной почты и получить за это кругленькую сумму. Денег жертва, разумеется, не получала, зато получала уникальную возможность «поднять рейтинг собственного IQ», поскольку указанный в профайле «аськи» адрес e-mail — единственный способ восстановить измененный злоумышленником пароль. Сама услуга по взлому электронной почты предоставляется обычно на весьма удобных условиях: заказчик сообщает взломщику адрес ящика, к которому требуется получить доступ, он выполняет все необходимые действия, после чего отправляет клиенту письмо заранее оговоренного содержания с захваченного адреса как свидетельство того, что работа выполнена. После оплаты заказчик получает логин и пароль.
Среди прочих способов заработка можно упомянуть целую категорию людей, промышляющих охмурением страждущих любви пользователей на многочисленных сайтах знакомств. Для этого им требуется не слишком заезженная фотография какой-нибудь очаровательной особы, а также некоторые знания в области психологии. Пообщавшись с юной «куколкой» день-другой, жертва внезапно узнает, что эта милая, трогательная и красивая девочка вот буквально только что случайно потеряла мамин цифровой фотоаппарат, или отдала гопникам дорогой папин мобильник, и теперь родители обязательно ее убьют, как только узнают об этом печальном происшествии… Какой настоящий мужчина не захочет помочь барышне, которая поначалу даже будет отказываться от неожиданной щедрости своего поклонника, но потом все же согласится: волосатые красноглазые обитатели подпольных форумов очень любят пиво, а оно стоит денег… Ну, и иногда они любят пообсуждать между собой, как «этот лох классно развелся на блондинку».
Иными словами, компьютерный андеграунд — целый мир со своими принципами, традициями, сленгом, героями и антигероями, и естественно, со своими финансовыми потоками. В этом мире обитает множество людей, которые зарабатывают себе на пропитание сотнями различных способов, часто балансируя на грани закона и нередко преступая эту грань. Впрочем, для кого-то это уже давно стало привычным стилем жизни.
Так кто все-таки распространяет вирусы?
Обычно созданием и распространением вредоносных программ занимаются совершенно разные люди. Выше я уже упоминал о том, что киберпреступные сообщества в общем и целом напоминают настоящую мафиозную группировку, роли внутри которой четко поделены между ее участниками. При этом зачастую многие из них даже не знакомы друг с другом лично — все общение и взаимодействие осуществляется онлайн, с помощью распространенных в Интернете средств коммуникаций.
Ситуации порой складываются разные, но в общем случае схема разработки и распространения вируса или троянца может выглядеть следующим образом. Итак, программисты-вирусописатели создают вредоносный код. Далее он либо выставляется на продажу на различных подпольных интернет-площадках, либо разработчики организуют «партнерскую программу», к участию в которой привлекаются другие участники киберпреступного сообщества. Иногда сам процесс разработки кода дробится на определенные этапы, каждый из которых реализуется разными людьми: например, один программист создает базовый код, включающий механизмы саморепликации, другой — модули, отвечающие за антиотладку, третий разрабатывает «полезную нагрузку» — компоненты, реализующие основной функционал вредоносного приложения. Нередко определенные элементы заимствуются из кода, попавшего ранее в открытый доступ, — в подобных случаях аналитики, изучающие попавший в вирусную лабораторию образец троянца, обнаруживают в нем давно знакомые черты. Затем специалисты соответствующего профиля криптуют исполняемый файл с тем, чтобы затруднить его распознавание антивирусными программами, и тестируют получившееся приложение, чтобы убедиться в отсутствии антивирусного детекта.
На следующем этапе вредоносное приложение попадает к распространителям, которые «раздают» его пользователям на тех или иных условиях, заранее согласованных с разработчиками. Иногда вирусописатели просто покупают у владельцев ботнетов, состоящих из инфицированных троянцами-загрузчиками компьютеров, какое-то количество установок вредоносной программы на ПК жертв, иногда приобретают наборы эксплойтов и доступ к некоторому количеству взломанных веб-сайтов, после чего занимаются распространением сами. В этом случае очевидно, что взломом интернет-ресурсов, поиском уязвимостей и разработкой эксплойтов занимаются отдельные группы киберпреступников. Иногда команда разработчиков просто «сдает» своего троянца «в аренду», размещая на подпольных форумах соответствующие объявления и предлагая потенциальным партнерам различные условия — либо фиксированную помесячную оплату за эксплуатацию созданной ими вредоносной программы, либо процент от прибыли, если им принадлежит управляющий сервер с функцией биллинга. Например, подобным образом распространяются некоторые троняцы-шифровальщики: их создатели предлагают распространителям саму программу и доступ к управляющему серверу, на котором жертвы энкодера могут получить ключ для расшифровки файлов, оплатив выкуп. Прибыль делится между разработчиками и распространителями троянца.
Наконец, если вредоносная программа предназначена, например, для сбора конфиденциальной информации и шпионажа, полученные с ее помощью данные также нередко выставляются на продажу на подпольных форумах, и ею пользуются в своих целях другие злоумышленники. Так, кардеры приобретают дампы и реквизиты банковских карт с тем, чтобы впоследствии обналичить их или приобрести на них какой-либо товар и реализовать его через подставных лиц (так называемых дропов). Мошенники охотно покупают логины и пароли для доступа к учетным записям в социальных сетях, спамеры — базы действующих адресов электронной почты и т. д. Отдельные личности и группы разрабатывают поддельные веб-страницы, которые могут впоследствии использоваться для фишинга, а также их отдельные элементы, применяющиеся для осуществления веб-инжектов: весь этот «товар» охотно покупают вирусописатели и владельцы бот-сетей.
Иными словами, современный киберпреступный мир весьма неоднороден, роли в нем тщательно распределены, а подпольные форумы напоминают порой огромный восточный базар, где все продается и покупается.
Как вычислить вирусописателя?
С одной стороны, поймать сетевого злоумышленника или вычислить вирусописателя — задача не из самых простых, поскольку Интернет в сочетании с различными средствами обеспечения анонимности предоставляет в распоряжение киберпреступников весьма защищенную среду, в которой они чувствуют себя как рыба в темном омуте. С другой стороны, это ощущение полной анонимности и вседозволенности порой и подводит сетевых злодеев, заставляя их терять бдительность и оставлять следы, по которым их могут впоследствии вычислить специалисты по информационной безопасности. Существует отдельная дисциплина — форензика, — являющаяся подразделом криминалистики и занимающаяся изучением различных аспектов при проведении расследований киберпреступлений и всевозможных инцидентов в сфере информационной безопасности. Но иногда имеется возможность вычислить злоумышленника и без всякой форензики.
Так, известен случай, когда один из администраторов ботнета хранил на том же узле, где он разместил управляющий сервер своей бот-сети, личные фотографии из серии «я и моя девушка у меня дома». Снимки были выполнены с использованием смартфона Apple iPhone, который, как известно, вместе с изображением автоматически сохраняет данные о времени и географической точке, в которой был получен снимок. Вычислить злоумышленника при таких обстоятельствах не составило особого труда.
В другой подобной ситуации киберпреступник оказался более умен и не хранил на управляющем сервере какую-либо компрометирующую его информацию. Вместо этого он разместил среди обслуживающего ботнет программного обеспечения скрипт на языке PHP, через определенные промежутки времени сбрасывавший статистику по работе бот-сети СМС-сообщением на определенный номер мобильного телефона. Сим-карту, к которой был привязан этот номер, злоумышленник предусмотрительно приобрел с рук, и потому был уверен, что вычислить его персональные данные с ее помощью невозможно. Однако специалистам по информационной безопасности оказалось достаточно всего лишь «погуглить» данный телефонный номер, чтобы найти в сети несколько десятков объявлений по купле-продаже различных предметов и личных вещей, в которых нынешний владелец номера оставлял его в качестве контактного. Одним из таких объявлений оказалось сообщение о продаже автомобиля, содержащее фотографию, где был прекрасно виден государственный регистрационный знак с номером авто. Остальное было делом техники.
А вот еще один практический случай, позволивший аналитикам косвенным образом определить авторов одной из опасных вредоносных программ. В апреле 2014 года специалисты антивирусной компании «Доктор Веб» завершили исследование сложного многокомпонентного троянца BackDoor.Gootkit.112, о чем опубликовали на корпоративном сайте весьма подробный отчет. Из него, в частности, можно почерпнуть следующее. Основная полезная нагрузка бэкдора реализована в виде исполняемого файла объемом около 5 Мбайт, базовая часть которого представляет собой интерпретатор языка JavaScript под названием Node.JS, создающего удобный интерфейс для работы с различными встроенными объектами. В архитектуре этого троянца был реализован редко применяемый злоумышленниками метод внедрения вредоносного кода в процессы запущенных приложений (инжектов). Аналогичный метод ранее был подробно описан на одном из интернет-форумов пользователем, скрывающимся под псевдонимом Great. В опубликованной им статье приведены примеры кода, использующего характерные статусы возврата – в точности такие же статусы обнаруживаются и в коде BackDoor.Gootkit.112. Можно предположить, что вирусописатель в процессе создания бэкдора просто-напросто позаимствовал готовое решение из открытых источников, однако здесь внимание аналитиков привлекло еще одно обстоятельство. В примерах кода, опубликованного на форуме wasm.ru, в одну из функций передается структура с уникальным именем DRIVER_TO_SHELLCODE_PARAMETERS. Структура с таким же в точности именем встречается в материале, опубликованном в личном блоге другого автора, описывающего данную технологию инжектов. При этом в указанной статье прямо сообщается, что этот код является собственной разработкой автора блога, созданной им совместно с другим программистом по имени Илья, также известным под ником Great.
В этом же блоге автор сообщает о своей искренней приверженности фреймворку Node.JS, возможности которого активно используются в коде троянца BackDoor.Gootkit.112. Так, автор опубликовал на своем сайте несколько весьма любопытных статей, содержащих практические примеры реализации кода, одна из которых называется «NodeJS\C++: Нативное расширение для реестра» — в ней описываются методы работы с ветвью системного реестра Windows, имеющей характерное имя SOFTWARE\CXS. В другой своей статье, озаглавленной «NodeJS: Spyware на Javascript?» владелец блога повествует об архитектуре специального шпионского модуля SpywareModule, все методы в котором имеют характерный префикс «sp». Удивительно, но факт: аналогичные структуры в практически неизменном виде встречаются в дизассемблированном коде BackDoor.Gootkit.112. Как любил говорить один популярный телеведущий: «Совпадение? Не думаю».
Безусловно, размещение в Интернете статей, подробно раскрывающих некоторые технические аспекты работы вредоносных программ, само по себе еще ни о чем не говорит, однако определенные сомнения специалистов, расследующих подобные вирусозависимые инциденты, в некоторых случаях может развеять сравнение даты компиляции исполняемого файла изучаемого троняца и даты публикации текста, описывающего его внутреннюю архитектуру, известную только разработчику.
Рис. 15. Пример того, как простая публикация в блоге может навлечь на автора подозрения в вирусописательстве
А вот еще пример, связанный с распространением вредоносной программы Trojan.BtcMine.218, предназначенной для скрытной добычи (майнинга) криптовалют. Этот троянец, обнаруженный специалистами антивирусной компании «Доктор Веб», устанавливался на компьютер жертвы с помощью дроппера, написанного на языке AutoIt. При этом дроппер содержал в своей структуре следующую характерную строку:
FILEINSTALL(“C:\Users\Antonio\Desktop\Glue\Install.exe”, @ TEMPDIR & “\Setup_2.exe”)
Из этой строки становится очевидно, что некий вирусописатель, имеющей на своем компьютере, работающем под управлением Windows, учетную запись пользователя с именем Antonio, собрал на Рабочем столе своего ПК дроппер в виде файла Install.exe. Это приложение запускает на компьютере жертвы загрузчик, который, используя специальный конфигурационный файл в формате XML, скачивает из Интернета и устанавливает на атакуемую машину добытчик криптовалюты. В этом конфигурационном файле указано наименование учетной записи, в пользу которой троянец будет эксплуатировать аппаратные ресурсы зараженного ПК для майнинга криптовалюты и на которую будет перечисляться все добытое. Этого пользователя зовут Tonycraft.
Судя по всему, сам Antonio (Tonycraft) не обладает достаточно глубокими познаниями в программировании, поскольку основные модули троянца он поручил написать другому человеку. Однако и здесь Tony, судя по всему, решил немного сэкономить, выбрав в качестве своего партнера не слишком искушенного вирусописателя: создавая код троянца, тот по неосмотрительности оставил в модулях вредоносной программы следующую отладочную строку:
“c:\Users\Кошевой Дмитрий\Documents\Visual Studio 2012\Projects\Miner\Instal\obj\Debug\Instal.pdb”.
О чем говорит нам этот «автограф» вирусописателя? О том, что он пользуется компьютером под управлением Microsoft Windows с учетной записью «Кошевой Дмитрий», проект он назвал Miner и создал его с применением среды разработки Visual Studio 2012. Простой поиск по сети «В Контакте» без труда позволил выявить пользователя, скрывающегося под псевдонимом Tonycoin, активно рекламирующего на своей страничке сайт, посвященный криптовалюте Bitcoin. По странному стечению обстоятельств, этот же самый сайт является ресурсом, с которого установщик загружает на зараженный компьютер основной модуль троянца Trojan.BtcMine.218. Ну, а среди контактов Tonycoin при определенной настойчивости отыскивается и программист «Дмитрий Кошевой».
Известна и вовсе феерическая ситуация, когда троянец, воровавший вводимые пользователем данные в формы авторизации на сайтах «В Контакте», «Одноклассники», «Mail.RU» и «Яндекс», передавал их скрипту, работающему на принадлежащем злоумышленнику сервере. Притом домен для этого сервера он умудрился зарегистрировать на свое настоящее имя, благодаря чему специалистам по информационной безопасности с помощью запроса к службе Whois удалось выяснить его телефон, имя, фамилию и город проживания, а по этим данным — отыскать его анкету на сайте знакомств, где злоумышленник собственноручно опубликовал остальную недостающую информацию: фотографию, рост, вес, дату и место рождения, а также сведения об образовании.
Все описанные случаи свидетельствуют о том, что вирусописателей чаще всего удается вычислить вследствие элементарных просчетов в области обеспечения анонимности, а также благодаря их самоуверенности, неопытности или стремлению к дешевой славе.
Глава 8. Методы борьбы
Считается, что антивирусные программы появились на свет практически одновременно с первыми компьютерными вирусами, поскольку пользователи остро нуждались в адекватном средстве для борьбы с вредоносным ПО. История развития антивирусной индустрии насчитывает множество увлекательных страниц, однако о самой первой из них до сих пор ведутся ожесточенные споры. Кто придумал антивирусы? Когда появилась первая подобная программа? Об истории развития технологий информационной безопасности и некоторых особенностях работы антивирусных программ мы и поговорим в настоящей главе.
Немного истории
Существует мнение, что первое приложение для выявления и удаления вредоносного ПО разработал в 1984 году американский программист Энди Хопкинс — речь идет об утилите CHK4BOMB, позволявшей сканировать исполняемые файлы в поисках характерных фрагментов кода и текстовых сообщений. Другая утилита того же автора, BOMBSQAD, могла перехватывать операции записи в файл и команду форматирования. В течение длительного времени этих двух утилит было вполне достаточно для обеспечения информационной безопасности, поскольку вредоносных программ существовало не так уж и много. Например, в 1985 году по американским электронным доскам объявлений (BBS) гулял текстовый файл «Грязная дюжина» (“The Dirty Dosen — An Unloaded Program Alert List”), представлявший собой составленный владельцем одной из BBS Томом Нельфом список опасных программ, которые пользователи загружали в файлообменники. Первоначально перечень включал всего лишь 12 вредоносных приложений, но он постоянно пополнялся. Ассортимент опасных программ ширился, и вскоре простого списка оказалось уже недостаточно для отражения все новых и новых угроз — пользователи понемногу осознали необходимость в постоянной антивирусной защите.
Спрос, как известно, рождает предложение, и первая резидентная антивирусная программа под названием DPROTECT, разработанная программистом и основателем американской софтверной компании GEE WIZ Sofware Company Ги Вонгом, появилась в начале 1985 года. Программа DPROTECT распространялась бесплатно, однако желающие могли сделать добровольное пожертвование в размере пяти долларов. Приложение не использовало в своей работе вирусные базы, содержащие сигнатуры вредоносных программ, а отслеживало активность запущенных программ, перехватывая обращения к файловой системе. Таким образом резидентный монитор DPROTECT позволял обезопасить защищаемый компьютер от деструктивных действий вирусов и троянцев, которые могли, например, отформатировать диск или испортить загрузочную запись.
Вторая половина 80-х годов ознаменовалась широкой экспансией на международном рынке персональных компьютеров семейства IBM PC и ростом популярности операционной системы MS-DOS. К этому же периоду относятся и первые масштабные вирусные эпидемии: летом 1986 года множество компьютеров оказались заражены стелс-вирусом Brain. Написанный студентом из Новой Зеландии вирус Stoned, получивший распространение в том же 1987 году, заражал загрузочную запись ПК и блокируя запуск ОС. От этой напасти пострадало несколько тысяч компьютеров по всему миру. А в пятницу, 13 мая 1988 года пользователи познакомились с вирусом Jerusalem, уничтожавшим приложения при попытке их запуска. Эта вредоносная программа вызвала настоящую пандемию, распространившись на территории не только США, но также Европы и Азии. Разумеется, отыскались толковые парни, очень быстро осознавшие, что на компьютерной безопасности можно неплохо заработать — одним из них оказался простой программист из Lockheed Corporation по имени Джон Макафи, выпустивший в 1988 году коммерческий продукт под названием McAfee VirusScan, а в 1989 году основавший компанию имени себя. Вскоре, почувствовав запах прибыли, подтянулись и другие игроки: в 1991 году состоялся релиз первой версии приложения под названием Norton AntiVirus.
Ну, а на отечественном рынке истинным первопроходцем стал Дмитрий Лозинский, разработавший в 1988 году, практически одновременно с Макафи, антивирусную программу-сканер Aidstest, использовавшую технологию сигнатурного поиска угроз. Приложение, дистрибуцией которого занималась компания «Диалог Наука», быстро завоевало заслуженную популярность у пользователей, на долгие годы став своего рода стандартом антивирусного ПО. Дмитрий Николаевич и по сей день вносит ощутимый вклад в борьбу с вирусными угрозами — в качестве одного из ведущих сотрудников компании «Доктор Веб». За минувшие годы мир изменился до неузнаваемости, появились троянцы для различных операционных систем и мобильных платформ, а разработка антивирусного ПО превратилась в целую индустрию. Однако идеи, впервые реализованные Энди Хопкинсом в далеком 1984 году, не утратили своей актуальности и по сей день.
Компоненты антивирусной программы
Антивирусные программы различных производителей включают в себя разное число компонентов, и даже более: одна и та же компания может выпускать несколько версий антивируса, включающих определенный набор модулей и ориентированных на различные сегменты рынка. Например, некоторые антивирусы располагают компонентом Родительского контроля, позволяющего ограничивать доступ несовершеннолетних пользователей компьютера к сайтам определенных категорий, или регулировать время их работы в системе, а некоторые — нет. Так или иначе, обычно современные антивирусные приложения обладают следующим набором функциональных модулей.
Антивирусный сканер — утилита, выполняющая поиск вредоносных программ на дисках и в памяти устройства по запросу пользователя или по расписанию.
Резидентный — компонент, выполняющий отслеживание состояния системы в режиме реального времени и блокирующий попытки загрузки или запуска вредоносных программ на защищаемом компьютере.
Брандмауер (фаервол) — компонент, выполняющий мониторинг текущего соединения, включая анализ входящего и исходящего трафика, а также проверяющий исходный адрес и адрес назначения в каждом передаваемом с компьютера и поступающем на компьютер пакете информации — данные, поступающие из внешней среды на защищенный брандмауэром компьютер без предварительного запроса, отслеживаются и фильтруются. С функциональной точки зрения брандмауэр выступает в роли своеобразного фильтра, контролирующего поток передаваемой между локальным компьютером и Интернетом информации, защитного барьера между компьютером и всем остальным информационным пространством.
Веб-антивирус — компонент, предотвращающий доступ пользователя к опасным ресурсам, распространяющим вредоносное ПО, фишинговым и мошенническим сайтам с использованием специальной базы данных адресов или системы рейтингов.
Почтовый антивирус — приложение, выполняющее проверку на безопасность вложений в сообщения электронной почты и (или) пересылаемых по электронной почте ссылок.
Анти-руткит — модуль, предназначенный для борьбы с руткитами (вредоносными программами, обладающими способностью скрывать свое присутствие в инфицированной системе).
Модуль превентивной защиты — компонент, обеспечивающий целостность жизненно важных для работоспособности системы данных и предотвращающий опасные действия программ.
Модуль обновления — компонент, обеспечивающий своевременное обновление других модулей антивируса и вирусных баз;
Карантин — централизованное защищенное хранилище, в которое помещаются подозрительные (в некоторых случаях — определенно инфицированные) файлы и приложения до момента вынесения в их отношении окончательного вердикта.
В зависимости от версии и назначения антивирусной программы, она может включать в себя и другие функциональные модули, например компоненты для централизованного администрирования, удаленного управления и т. д.
Сигнатурное детектирование
Современные антивирусные программы используют несколько различных методик обнаружения вредоносных программ в различных сочетаниях. Основная из них — это сигнатурное детектирование угроз.
Данный метод детектирования вредоносных программ основывается на создании так называемых сигнатур — уникальных цифровых идентификаторов файла, представляющих собой специальный набор байтов и получаемых на основе содержимого исследуемого файла. Фактически сигнатура представляет собой своего рода «отпечаток пальцев» файла — с помощью сигнатуры можно однозначно идентифицировать тот или иной файл или приложение.
Сигнатуры собираются в набор, называемый вирусными базами. Вирусные базы антивирусных программ периодически обновляются с целью добавления в них сигнатур новых угроз, исследованных за истекшее с момента последнего обновления время в лаборатории антивирусной компании.
В процессе проверки защищаемого устройства антивирусная программа исследует хранящиеся на дисках (или загружаемые из Интернета) файлы и сравнивает результаты исследования с сигнатурами, записанными в антивирусной базе. В случае совпадения такой файл считается вредоносным. Данная методика сама по себе имеет значительный недостаток: злоумышленнику достаточно изменить структуру файла на несколько байт, и его сигнатура изменится. До тех пор, пока новый образец вируса или троянца не попадет в вирусную лабораторию и его сигнатура не будет добавлена в базы, антивирус не сможет распознать и ликвидировать данную угрозу.
Поведенческий анализ
Помимо сигнатурного детектирования большинство современных антивирусных программ используют те или иные механизмы поведенческого анализа. Поведенческий анализ можно отнести к разновидности вероятностного анализа — как следует из наименования данного метода, антивирусная программа следит за поведением приложений, и если оно кажется ей «подозрительным», блокирует работу потенциально опасной программы.
Одним из методов безопасного исследования поведения приложения является его запуск в так называемой песочнице (sandbox) — защищенном изолированном виртуальном контейнере, из которого приложение не может получить доступ к компонентам ОС и файловой системе. Если поведение программы вызывает у антивируса подозрения — например, она пытается встроиться в процессы запущенных приложений (выполнить инжект), модифицировать загрузочную запись, изменить структуру исполняемого файла и т. д., она может быть признана потенциально опасной или вредоносной.
Одним из вариантов поведенческого анализа является, в частности, технология Origin TracingTM, активно применяемая компанией «Доктор Веб» в некоторых программных решениях, например в Антивирусе Dr.Web для Android. В рамках данной технологии для каждого образца вредоносной программы создается специальная запись, описывающая поведение троянца в инфицированной системе. Если приложение, запустившись на устройстве, действует в соответствии с этим шаблоном, оно признается вредоносным. Такой подход позволяет, во-первых, заметно сократить объем вирусных баз (поскольку одной записью в этом случае детектируется целое семейство вредоносных программ), а во-вторых, успешно определять еще неизвестные аналитикам угрозы: если поведение приложения укладывается в эталонную модель, оно будет обезврежено вне зависимости от того, попадал раньше этот образец в вирусную лабораторию на анализ или нет. Нужно отметить, что в мобильной операционной системе Android, где у вредоносных программ (в отличие от Windows) не так много свободы действий, этот метод работает весьма эффективно. Все угрозы с префиксом «origin», детектируемые на смартфонах и планшетах Антивирусом Dr.Web для Android, обезвреживаются при помощи технологии Origin TracingTM.
Эвристический анализ
Эвристический анализ — разновидность вероятностного анализа вредоносных программ, основанная на логических алгоритмах, позволяющих выявить и обезвредить потенциально опасное приложение. Эвристический анализ приходит пользователям на помощь в тех случаях, когда угрозу не удается обнаружить с помощью сигнатурного детектирования.
Упрощая, основной принцип эвристического анализа можно описать следующим образом. Каждой функции, которую может реализовывать программа в операционной системе, назначается некий условный «рейтинг опасности». Какие-то действия приложения могут считаться менее опасными, другие — более. Если по совокупности выполняемых приложением действий оно превышает некий условный «порог безо-пасности», то признается потенциально вредоносным.
Например, если какая-то программа работает в фоновом режиме, не имеет графического интерфейса, последовательно опрашивает удаленные серверы, а потом пытается скачать с них и запустить в системе некое приложение, оно с высокой долей вероятности может оказаться троянцем-загрузчиком. Или утилитой обновления браузера Google Chrome, которая действует аналогичным образом. В этом, очевидно, и кроется основная «ахиллесова пята» эвристического метода анализа вирусных угроз — большая вероятность ложного срабатывания.
Другой метод эвристического анализа — эмуляция исполнения программы. Антивирус загружает подозрительное приложение в собственную буферную память, выполняет разбор кода на инструкции и выполняет их по очереди, последовательно проверяя результат.
Эвристический анализ применяется с целью выявления и обезвреживания угроз, еще неизвестных антивирусу, — то есть тех, сигнатуры которых на текущий момент отсутствуют в вирусных базах. Отсюда логически вытекает еще один недостаток эвристических алгоритмов: даже если неизвестную ранее угрозу удается обнаружить, ее далеко не всегда получается сразу «вылечить». Во многих случаях пользователю приходится ожидать появления очередного обновления вирусных баз, содержащее алгоритмы лечения конкретно для этой вредоносной программы.
Проактивная защита (HIPS)
Проактивную антивирусную защиту, HIPS (Host-based Intrusion Prevention System, англ. «система предотвращения вторжений»), также можно отнести к разновидности антивирусной защиты на основе поведенческого анализа. Антивирус следит за запущенными приложениями и информируют пользователя о тех или иных действиях приложения. Решение о том, позволить или запретить программе выполнять какое-либо действие, принимает пользователь. Это — классический вариант реализации HIPS. Существует еще так называемый экспертный вариант, при котором антивирус самостоятельно блокирует действия тех или иных приложений на основе набора заложенных в него правил и разрешений. Пользователь может при необходимости добавить какую-либо программу в список исключений, разрешив ей выполнение тех или иных действий в защищаемой системе.
Методики противодействия антивирусам
К сожалению, борьба вирусописателей и производителей антивирусных программ носит перманентный характер: первые непрерывно изобретают все новые способы обхода антивирусной защиты, вторые стараются совершенствовать алгоритмы поиска и обнаружения вредоносного ПО. Давайте перечислим основные методики, которыми пользуются злоумышленники для противодействия антивирусным приложениям.
Переупаковка
Это самый распространенный и популярный метод, активно применяемый вирусописателями для обхода сигнатурного детекта. Как я уже упоминал, сигнатура является своего рода аналогом «отпечатков пальцев» каждого конкретного файла, при этом она уникальна для файлового объекта. Соответственно, если в файл будут внесены даже незначительные изменения, антивирус не сможет «опознать» его с помощью сигнатуры, и такой файл не будет детектироваться антивирусом до тех пор, пока не попадет в исследовательскую лабораторию антивирусной компании.
Наиболее простой способ изменить структуру файла, не меняя его функциональных возможностей, — «накрыть» его программным упаковщиком. Программные упаковщики сжимают содержимое файла приложения и дописывают к нему код, необходимый для распаковки и выполнения программы. Некоторые из них к тому же включают различные функции шифрования, затрудняющие анализ и исследование подобного приложения. Этим и пользуются злоумышленники.
При каждой повторной упаковке файла его сигнатура меняется и он становится «невидимым» для системы сигнатурного детектирования антивируса. Некоторые вирусописатели для затруднения исследования вируса или троянца упаковывают и шифруют свои творения в «несколько слоев» — тогда под одним упаковщиком прячется другой сжатый и зашифрованный объект, под ним — еще один, и вся конструкция напоминает в итоге этакую логическую «матрешку», добраться до «сердцевины» которой бывает порой весьма непросто.
Иногда киберпреступники применяют и иной метод: на сервере, с которого жертвам раздается вредоносное ПО, устанавливается специальный сценарий. При активизации этого сценария (например, при переходе пользователя по ссылке) скрипт извлекает из соответствующей директории сервера бинарный файл вируса или троянца, упаковывает его «на лету» и только после этого «отдает» его пользователю. Таким образом каждая жертва получает свой собственный, уникальный, экземпляр вредоносной программы, гарантированно не детектируемой по сигнатуре.
Обфускация
Обфускация (от англ. obfuscate — «запутывать», «сбивать с толку») — сознательное запутывание, усложнение кода вредоносной программы с сохранением ее функциональности в целях затруднения ее исследования и анализа. Для обфускации вирусописатели иногда добавляют в приложение различный «мусорный» код, ненужные инструкции, множественные переходы или вызовы различных функций и т. д. Существуют специальные утилиты — обфускаторы, созданные для запутывания кода приложений.
Обфускация приложений затрудняет реверс-инжиниринг, то есть декомпиляцию вредоносной программы и изучение ее функциональных возможностей на уровне кода, однако одновременно с этим усложняет вирусописателям отладку приложения, а в некоторых случаях увеличивает его размер и снижает быстродействие.
Антиотладка
Большинство современных вредоносных программ оснащено различными мощными механизмами антиотладки, препятствующими их исследованию. Ряд вирусов и троянцев в момент начала работы проверяют, не пытаются ли их запустить в изолированной среде («песочнице»), под отладчиком или в виртуальной машине. Осуществляется это разными методами, например попытками получить имена работающих процессов (и их сравнением с заданным списком), поиском характерных строк в заголовках открытых окон и т. д. Если вредоносное приложение определяет попытку запуска в виртуальной среде или под отладчиком, оно завершает свою работу.
Аналогично многие троянцы и вирусы ищут среди установленных или запущенных программ приложения популярных антивирусов и пытаются завершить их, а если это не получается, прекращают свою работу. Бывают и более интересные варианты: так, троянец, известный под именем Trojan.VkBase.73, менял параметры загрузки Windows, устанавливал в системе специальную службу, которая при перезагрузке системы в безопасном режиме удаляла установленные на компьютере антивирусы. Затем троянец размещал в области уведомлений Панели задач значок соответствующего антивирусного приложения, которое было ранее им удалено. Таким образом, пользователь даже не догадывался, что его компьютер больше не имеет антивирусной защиты. После успешного удаления средств информационной защиты на экран выводилось сообщение на русском или английском языке (в зависимости от версии антивирусного ПО) следующего содержания: «Внимание! Антивирус [название антивируса] работает в режиме усиленной защиты. Это временная мера, необходимая для моментального реагирования на угрозы со стороны вирусных программ. От вас не требуется никаких действий». Данное сообщение демонстрировалось, чтобы пользователь не проявлял беспокойство, обнаружив, что значок антивирусной программы в Области уведомлений Панели задач Windows более не реагирует на щелчки мышью.
Для обхода «песочницы» некоторые вирусы или троянцы имеют специальные «механизмы замедления», которые притормаживают вредоносный функционал приложения или усыпляют его на некоторый срок, активизируя деструктивный функционал по истечении определенного времени. Это позволяет усыпить бдительность защитной программы, которая, запустив приложение в «песочнице» и убедившись в его безопасности, дает ему «зеленый свет». Например, один из современных троянцев использует такой механизм обхода автоматизированных систем анализа: создает во временной папке файл, в которой миллион раз записывает по одному байту, а потом миллион раз читает из него также по одному байту. В результате таких безобидных длительных циклических действий процедура поведенческого анализа завершается раньше, чем троянец начинает реализовывать свой основной вредоносный функционал.
Как защититься?
В предыдущих главах и тематических разделах мы рассмотрели основные виды, принцип действия и методы распространения компьютерных угроз. Теперь давайте перечислим основные способы борьбы с вредоносными программами.
Установите на свое устройство современную антивирусную программу. Помните: бесплатные антивирусы далеко не всегда обеспечивают высокое качество детектирования угроз и должный уровень защиты.
Поддерживайте антивирусные базы в актуальном состоянии, своевременно устанавливайте обновления баз и самого антивируса.
Вовремя устанавливайте обновления операционной системы и прикладных программ, старайтесь использовать их последние версии — чем «новее» версия приложения, тем больше шансов, что в нем устранены все известные ошибки и уязвимости.
Не открывайте вложения в письма, полученные по электронной почте от незнакомых отправителей. Если без этого никак не обойтись (например, вам часто присылают коммерческие предложения по работе), сохраните такое вложение в отдельную папку на диск, не открывая и не запуская его, и проверьте антивирусом.
С осторожностью переходите по ссылкам, полученным в сообщениях электронной почты и СМС. Используйте антивирус, имеющий встроенный модуль фильтрации вредоносных и подозрительных ссылок.
Используйте только лицензионные версии операционной системы и программ. Многочисленные «кряки» и другие средства для взлома лицензионной защиты от копирования зачастую несут в себе неприятные «сюрпризы».
Перед установкой программ, загруженных из Интернета, проверяйте их антивирусом.
Регулярно выполняйте резервное копирование — сохраняйте все нужные и ценные файлы (документы, фотографии, почту) на какой-либо внешний носитель (внешний жесткий диск, флэшку, DVD). Храните диск с резервными копиями отдельно от вашего компьютера.
Пользователям мобильных устройств под управлением Android можно дать еще один совет: не выполняйте процедуру «рутования» (разблокировки учетной записи администратора в операционной системе) и не устанавливайте программы из сомнительных источников. К сожалению, даже загрузка и установка ПО из официального каталога приложений не дает стопроцентной гарантии безопасности: в каталоге Google Play регулярно обнаруживаются программы и игры с вредоносной «начинкой». Производителям ПО для получения права размещать свои творения в каталоге Google Play необходимо заплатить небольшой вступительный взнос — злоумышленники, выполнив платную регистрацию, размещают там вполне безобидную программу, и после прохождения проверки меняют ее на «новую версию», включающую вредоносное содержимое. Конечно, такие учетные записи администрация Google оперативно блокирует, но риск потерять несколько долларов и оплаченный аккаунт не пугает вирусописателей, поскольку потенциальная выгода от распространения троянца в этом случае значительно превышает возможные убытки. Поэтому защитить пользователей Android может только надежная антивирусная программа.
Соблюдение этих несложных правил позволит вам защитить ваше устройство от большинства современных угроз.
ГЛОССАРИЙ
аdware — семейство рекламных приложений, традиционно относящихся к нежелательным.
bitcoin — старейшая в истории криптовалюта; электронная платежная система, допускающая проведение защищенных и анонимных транзакций.
DDoS (Distributed Denial of Service), «распределенный отказ в обслуживании» — разновидность сетевых атак, при которых к атакуемому узлу генерируется большое количество запросов в единицу времени, которые он не в состоянии обработать, что вызывает его отказ.
DGS, domain generation system — технология, позволяющая составляющим ботнет вредоносным программам автоматически генерировать имена управляющих серверов с использованием специальных алгоритмов.
fakealert — семейство программ, традиционно относящихся к «нежелательным»: они запугивают пользователя, «отыскивая» на компьютере различные несуществующие проблемы и требуют оплаты за их устранение.
jailbreak — несанкционированная разработчиком устройства процедура получения доступа к файловой системе (термин применяется в основном по отношению к смартфонам и планшетам производства корпорации Apple).
HIPS (Host-based Intrusion Prevention System) — система проактивной антивирусной защиты, отслеживающая различные действия приложений и выборочно блокирующая их.
MITM (Man in the middle — «человек посередине») — способ атак, при которых злоумышленник внедряется в канал связи между отправителем и получателем информации и может видоизменять эту информацию «на лету» непосредственно в процессе ее передачи.
P2P (Peer-To-Peer), или пиринговые одноранговые сети — сети, в которых отсутствует управляющий сервер, а данные передаются непосредственно от одного узла к другому.
ransomware — общее наименование программ-вымогателей.
sinkhole — метод перехвата управления ботнетом, работающим с использованием технологии DGS, при котором осуществляется регистрация «поддельного» управляющего сервера бот-сети, а действующие серверы выводятся из строя.
TDS, Traffic Distribution Systems — системы управления трафиком, позволяющие злоумышленникам перенаправлять пользователей на различные сетевые ресурсы в зависимости от заданных условий.
TOR (от англ. The Onion Router, «луковый маршрутизатор») — система так называемой луковой маршрутизации, состоящая из многослойной структуры прокси-серверов и позволяющая устанавливать анонимное соединение, защищенное от стороннего прослушивания и слежения.
Whois — онлайн система, позволяющая установить по имени домена данные его администратора.
антивирусный сканер — утилита, выполняющая поиск вредоносных программ на дисках и в памяти устройства по запросу пользователя или по расписанию.
антиотладка — используемый вирусописателями комплекс мер, позволяющий оказывать противодействие антивирусным программам и различным методам исследования вирусов и троянцев.
атака на отказ в обслуживании — см. DDoS (Distributed Denial of Service).
банковские троянцы — вредоносные программы, предназначенные для хищения учетных данных и файлов, необходимых для организации доступа к системам ДБО (дистанционного банковского обслуживания).
биоскит — вредоносные программы, способные инфицировать микросхемы BIOS.
блокировщик, винлокер — вредоносная программа-вымогатель, блокирующая нормальную работу операционной системы, и требующая денег за ее разблокировку.
бот — вредоносная программа, способная объединяться в ботнеты (бот-сети).
ботнет, бот-сеть — сеть зараженных устройств, умеющих обмениваться информацией и дистанционно управляемых злоумышленниками, например, с использованием одного или нескольких командных серверов.
брандмауер (фаервол) — компонент антивирусной программы, выполняющий мониторинг текущего соединения, включая анализ входящего и исходящего трафика, а также проверяющий исходный адрес и адрес назначения в каждом передаваемом с компьютера и поступающем на компьютер пакете информации — данные, поступающие из внешней среды на защищенный брандмауэром компьютер без предварительного запроса, отслеживаются и фильтруются.
брутфорс — метод получения несанкционированного доступа к какому-либо ресурсу путем полного перебора паролей, «взлом методом грубой силы».
буткит — вредоносная программа, модифицирующая загрузочную запись с целью обеспечения своего запуска до (или одновременно с) загрузки операционной системы (но ранее запуска основных антивирусных средств защиты).
бэкдор — вредоносная программа, обладающая возможностью выполнять поступающие от злоумышленников команды, т.е. допускающая несанкционированное удаленное управление инфицированным компьютером.
веб-антивирус — компонент антивирусной программы, предотвращающий доступ пользователя к опасным ресурсам, распространяющим вредоносное ПО, фишинговым и мошенническим сайтом с использованием специальной базы данных адресов или системы рейтингов.
веб-инжект — встраивание вредоносной программой постороннего содержимого в просматриваемую пользователем в окне браузера веб-страницу.
винлокер — см. блокировщик.
вирус — вредоносная программа, способная к саморепликации (автоматическому распространению без участия пользователя) и заражению файловых объектов.
вирусная база — набор используемых антивирусной программой файлов, содержащих сигнатуры вирусов и алгоритмы лечения некоторых угроз
вымогатель — категория вредоносных программ, требующих у жертвы выкуп за определенное действие (например, разблокировку компьютера или расшифровку файлов).
граббер — вредоносная программа, позволяющая перехватывать и передавать злоумышленникам данные из заполняемых пользователем форм
ДБО, системы дистанционного банковского обслуживания — системы типа «банк — клиент», позволяющие осуществлять удаленное управление банковским счетом.
двухфакторная аутентификация — система безопасности, применяемая в некоторых ДБО, и подразумевающая дополнительную проверку подлинности при авторизации пользователя путем ввода одноразового пароля (mTAN-кода), отправляемого в СМС-сообщении.
дроппер — объект, осуществляющий извлечение содержащихся в нем основных модулей вируса или троянца, их распаковку и установку в операционной системе.
загрузочный вирус — см. буткит.
загрузчик, троянец-загрузчик — семейство троянцев, предназначенных для загрузки из Интернета и запуска на инфицированном компьютере других вредоносных программ.
инжект — механизм, позволяющий вирусу или троянцу встраивать вредоносный объект в запущенный и уже работающий в операционной системе процесс другого приложения, после чего внедренный объект начинает выполняться в контексте данного процесса.
инжектор — функциональный модуль вредоносной программы, реализующий встраивание вредоносных компонент в запущенный процесс другого приложения.
инфектор — модуль вредоносной программы, осуществляющий заражение файловых объектов (например, исполняемых файлов или динамических библиотек), либо загрузочной записи компьютера путем изменения их внутренней структуры.
кардер — киберпреступник, специализирующийся на мошеннических действиях с банковскими картами.
кейлоггер — программа-шпион, считывающая и сохраняющая в специальный журнал коды нажимаемых пользователем клавиш, а потом передающиая эту информацию злоумышленникам.
командный сервер (Command and Control Server, C&C) — управляющий сервер ботнета (бот-сети).
криптовалюта — электронное платежное средство, использующее для эмиссии и учета взаиморасчетов методы криптографии.
крэкер (от англ. to crack, «взламывать») — взломщик компьютерных систем, а также разработчик различных средств обхода систем лицензионной защиты.
лоадер — компонент вредоносной программы, осуществляющий загрузку других модулей (например, динамических библиотек) в оперативную память компьютера и (в ряде случаев) настройку этих компонент в памяти.
логическая бомба —наименование категории вредоносных программ, срабатывающих при наступлении определенных условий.
макровирус — категория вирусов, написанных с использованием скриптовых языков, применяющихся для создания макросов в различных офисных приложениях, таких как Microsoft Office, в частности Microsoft Word.
обфускация (от англ. obfuscate — «запутывать», «сбивать с толку») — сознательное запутывание, усложнение кода вредоносной программы с сохранением ее функциональности в целях затруднить ее исследование и анализ.
песочница (sandbox) — защищенный изолированный виртуальный контейнер для безопасного запуска приложений.
поведенческий анализ — анализ поведения программ с целью выявления вредоносных функций.
полиморфизм вирусного кода — способность некоторых вирусов изменять собственный код в процессе выполнения.
полиморфные вирусы — вирусы, с целью затруднения своего обнаружения и уничтожения способные «на лету» изменять свой исполняемый код непосредственно в процессе его исполнения. Процедура, отвечающая за динамическое изменение кода вируса, тоже может меняться от заражения к заражению.
почтовый антивирус — приложение, выполняющее проверку на безопасность вложений в сообщения электронной почты и (или) пересылаемых по электронной почте ссылок.
превентивная защита — компонент антивируса, обеспечивающий целостность жизненно важных для работоспособности системы данных и предотвращающий опасные действия программ.
Комментарии к книге «Pro Вирусы», Валентин Холмогоров
Всего 0 комментариев