Фишинговые программы позволяют. Фишинг в корпоративной среде

Алексей Комаров

Возникшие с появлением фишинга угрозы потребовали внедрения адекватных мер защиты. В рамках данной статьи будут рассмотрены как уже широко распространенные способы противодействия фишингу, так и новые эффективные методы. Разделение это весьма условно: к традиционным отнесем хорошо известные (в том числе и самим злоумышленникам) способы противодействия фишингу и проанализируем их эффективность в первой части данной статьи. Согласно отчету APWG, за первую половину 2008 г. было выявлено 47 324 фишинговых сайтов. В этом же отчете приведены и средние потери пользователей и компаний в результате работы фишерского сайта – они составляют не менее $300 в час. Несложные умножения позволяют сделать вывод о высокой доходности этого вида черного бизнеса.

Современный фишинг

Слово "фишинг" (phishing) образовано от английских слов password – пароль и ёshing – рыбная ловля, выуживание. Цель этого вида Интернет-мошенничества – обманный увод пользователя на поддельный сайт, чтобы в дальнейшем украсть его личную информацию или, например, заразить компьютер пользователя, перенаправленного на подложный сайт, трояном. Зараженный компьютер может активно использоваться в ботнет-сетях для рассылки спама, организации DDOS-атак, а также для сбора данных о пользователе и отправки их злоумышленнику. Спектр применения "выуженной" у пользователя информации достаточно широк.

Механизмы фишинга

Главный вектор атаки фишинга направлен на самое слабое звено любой современной системы безопасности – на человека. Далеко не всегда клиент банка точно знает, какой адрес является правильным: mybank.account. com или account.mybank. com? Злоумышленники могут использовать и тот факт, что в некоторых шрифтах строчная i и прописная L выглядят одинаково (I = l). Такие способы позволяют обмануть человека с помощью похожей на настоящую ссылку в электронном письме, при этом даже наведение курсора мыши на такую ссылку (с целью увидеть настоящий адрес) не помогает. В арсенале злоумышленников есть и другие средства: от банальной подмены в локальной базе IP-адресов реального адреса на поддельный (в ОС Windows XP, например, для этого достаточно отредактировать файл hosts) до фарминга. Еще один вид мошенничества – подмена Web-страницы локально, "на лету". Специальный троян, заразивший компьютер пользователя, может добавлять в отображаемый браузером сайт дополнительные поля, отсутствующие на оригинальной странице. Например, номер кредитной карты. Конечно, для успешного проведения такой атаки надо знать банк или платежную систему, которыми пользуется жертва. Именно поэтому тематические базы электронных адресов пользуются большой популярностью и являются на черном рынке ликвидным товаром. Нежелающие нести дополнительные расходы фишеры просто направляют свои атаки на наиболее популярные сервисы – аукционы, платежные системы, крупные банки – в надежде на то, что случайный получатель спам-письма имеет там учетную запись. К сожалению, надежды злоумышленников зачастую оправдываются.

Традиционные методы противодействия фишинговым атакам

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

Другой вариант – выдать клиенту фальшивое предупреждение об истечении срока действия его изображения и предложить выбрать новое...

Одноразовые пароли

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

В отличие от классического, одноразовый пароль используется только один раз, то есть при каждом запросе на предоставление доступа пользователь вводит новый пароль. Для этого используются, в частности, специальные пластиковые карточки с нанесенным защитным слоем. Клиент банка каждый раз стирает очередную полоску и вводит нужный одноразовый пароль. Всего на карточку стандартного размера помещается около 100 паролей, что при интенсивном использовании услуг телебанкинга требует регулярной замены носителя. Более удобными, но, правда, и дорогими представляются специальные устройства – генераторы одноразовых паролей. В основном различают два типа генерации: по времени, когда текущий одноразовый пароль отображается на экране и периодически меняется (например, раз в две минуты); по событию, когда новое значение генерируется каждый раз при нажатии пользователем на кнопку устройства.

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

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

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

Односторонняя аутентификация

Использование протокола безопасных соединений SSL (Secure Sockets Layer) обеспечивает защищенный обмен данными между Web-сервером и пользователями. Несмотря на тот факт, что протокол позволяет аутентифицировать не только сервер, но и пользователя, на практике чаще всего применяется только односторонняя аутентификация. Для установления SSL-соединения необходимо, чтобы сервер имел цифровой сертификат, используемый для аутентификации. Сертификат обычно выдается и заверяется третьей доверенной стороной, в роли которой выступают удостоверяющие центры (УЦ) или центры сертификации (в западной терминологии). Роль УЦ заключается в том, чтобы подтверждать подлинность Web-сайтов различных компаний, позволяя пользователям, "поверив" одному единственному удостоверяющему центру, автоматически иметь возможность проверять подлинность тех сайтов, владельцы которых обращались к этому же УЦ.

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

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

Кстати, очень похожий способ используют некоторые средства по контролю SSL-трафика. Дело в том, что в последнее время участились случаи, когда сайты, зараженные троянскими программами, и сами трояны используют протокол SSL с тем, чтобы миновать шлюзовые системы фильтрации трафика – ведь шифрованную информацию ни антивирусное ядро, ни система защиты от утечки данных проверить не в состоянии. Вклинивание в обмен между Web-сервером и пользовательским компьютером позволяет таким решениям заменить сертификат Web-сервера на выданный, например, корпоративным УЦ и без видимых изменений в работе пользователя сканировать трафик пользователя при использовании протокола SSL.

URL-фильтрация

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

Фишинговые сообщения электронной почты в корпоративной среде обычно знаменуют собой таргетированную атаку , хорошо продуманы и реализованы. В отличии от рядовых пользователей, сотрудники компаний могут быть проинструктированы должным образом о существующих угрозах информационной безопасности. За сообщениями электронной почты может быть установлен тот или иной контроль со стороны сотрудников ИТ/ИБ подразделений.

Прелюдия

Фишинговые письма, направленные на рядовых пользователей обычно мало «персонализированы», для привлечения внимания может быть подставлен только email пользователя. В сфере атак на корпоративные системы фишингу предшествует тщательный сбор и анализ информации об объекте и субъектах атаки, горизонтальные связи, возможные зоны ответственности и полномочия. Это необходимо для разработки продуманного социотехнического сценария и добавления деталей, позволяющих усыпить бдительность получателей письма.

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

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

В данном случае письма предназначались американским чиновникам, которые направлялись в Копенгаген на конференцию по изменению климата. Они получили по почте вредоносные файлы. Что характерно, письма были озаглавлены «Китай и изменение климата», а в качестве обратного адреса был указан поддельный адрес известного журналиста National Journal, который специализируется на статьях по международной экономике. Уже один этот факт свидетельствует о том, что злоумышленники тщательно продумали атаку и рассчитали, что адресаты должны обязательно открыть вложенный файл.

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


Проведение целевых фишинговых кампаний требует от киберпреступников больше времени и денег, чем в случае традиционных фишинговых кампаний. Мошенники должны получить доступ или украсть списки действующих адресов электронной почты для целевой организации или группы лиц, а затем создать правдоподобные письма, которые с высокой вероятностью привлекут получателей и те предоставят свои персональные данные. Однако в случае успеха финансовая отдача от целевого фишинга может быть намного выше, поэтому инвестиции вполне окупаются.
Что общего в нашумевших историях об утечке данных из систем ведущих ритейлеров Target и Neiman Marcus, гиганта медицинского страхования Anthem и Sony Pictures? Все они начались с тщательно спланированной таргетированной фишинговой атаки с использованием сообщений электронной почты. К письмам были приложены документы, зараженные вредоносными программами. При этом все они выглядели вполне обычно и были адресованы конкретным сотрудникам внутри организации.

Точечный фишинг стал самым распространенным типом таргетированной атаки по одной простой причине: эта техника по-настоящему работает, вводя в заблуждение даже тех пользователей, которые серьезно подходят к вопросам безопасности. Она создает для хакеров опорный пункт для проникновения в корпоративную сеть. По данным исследования Check Point, проведенного среди более 10 тысяч организаций по всему миру, в 84% из них за последние 12 месяцев был скачан хотя бы один зараженный документ. Это происходит потому, что злоумышленнику достаточно просто получить представление о компании или о конкретных ее сотрудниках в сети Интернет, а затем написать такое письмо, которое побудит даже самого бдительного работника открыть вредоносное вложение и тем самым инициировать хакерскую атаку.

Сбор информации

Сбор информации проводится из публичных источников, с использованием специализированных инструментов , запросов в поисковых системах , специализированных сервисов , анализа профилей компании в социальных сетях и на сайтах вакансий. Такого рода сбор информации можно соотнести с методологией OSINT (Open Source Intelligence - разведка на основе анализа открытых источников информации). Чем объемнее, точнее (как минимум два-три источника) и актуальнее информация - тем выше успех атаки.

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

Пример формирования back-connect шелла с помощью макросов офисного пакета и powershell:

Кейсы из практики

Примеры и разновидности атак зависят непосредственно от выбранной злоумышленниками цели, давать конкретику довольно сложно, поэтому в качестве десерта пару примеров из практики нашей компании и наших коллег.
На одну из финансовых организаций была произведена фишинговая рассылка. Адреса сотрудников были извлечены с помощью SQL-инъекции с разрабатываемой CRM на одном из поддоменов. Корпоративная почта была настроена на gmail. Фишинговое сообщение содержало ссылку на похожий ресурс и форму входа gmail. Вишенкой на торте был внедренный в эту страницу iframe - код одной из известных связок эксплоитов . Т.е. помимо эксплуатации социотехнического вектора был реализован и дополнительный вектор в виде средств эксплуатации уязвимостей браузеров и их компонентов. Атака позволила злоумышленникам получить контроль на некоторыми учетными записями.

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

Защита

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

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

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

Мы не должны забывать о том, что в первую очередь это наша личная обязанность.

10. Фишинг из 90-х

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

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

9. .NET Keylogger

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

8. Сообщения от адвоката/юриста

Тут схема очень проста, и не существует, наверное, людей, которые не получали бы подобные письма. Рассмотрим реальный случай. Приходит письмо от уважаемого господина по имени Эрик, который представляет интересы «вашего» усопшего родственника из очень далекой страны, например, из Тоголезской Республики (государство в Западной Африке, располагающееся между Ганой и Бенином). Страшно предположить, каким образом там оказались ваши родственники, но всякое бывает. Этот мистер Эрик для подтверждения легальности своей информации даже присылает фотографии себя и своей семьи, а также сканы документов, удостоверяющих его личность и открытый на имя наследника счет.

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

В интернете на профильных сайтах можно найти уйму подобных историй .

Приятного чтения. Будьте бдительней.

7. Программы-вымогатели

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

Справиться с таким недугом помогут большинство современных антивирусов.

6. Вредоносные PDF-файлы

Такая атака позволяет злоумышленнику почувствовать свою полную власть над жертвой. Как правило, вредоносные файлы PDF присылаются по электронной почте и представляются в виде очень важных документов, которые пренепременно необходимо прочесть. Открытый файл PDF внедряет вредоносный код, эксплуатирующий уязвимости программы-просмотрщика. Чтобы усложнить анализ, мошенники используют Zlib, свободную кроссплатформенную библиотеку, для сжатия данных в несколько слоев и сложных для отслеживания имен переменных. Целью атаки может быть, как захват контроля над системой (повышение привилегий), так и нарушение её функционирования (DoS-атака).

5. Возврат НДС

Часто, возвращаясь обратно из-за границы, путешественники пользуются возможностью получить обратно денежные средства, которые были потрачены на уплату налогов при покупке того или иного товара (vat refund – англ.). Это можно сделать сразу в аэропорту, в специальных организациях или банках. Но мало кому хочется тратить свое драгоценное время на это. И тут на помощь приходят мошенники, которые готовы с радостью помочь вам вернуть налоги, не выходя из дома. Заманчиво, правда? Все, что вам нужно – это только указать в ответном письме свои личные данные (номера паспортов, ИНН, адреса и т.д.). Как можно догадаться, деньги вам никто не вернет, как и конфиденциальность ваших данных.

4. Политический скринсейвер

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

3. Зевс и образование

Примерно, в конце октября прошлого года, пользователи стали получать фишинговые письма со взломанного домена «edu». Такие письма содержали троян ZeuS в архиве с информацией о совершенных платежах, которых на самом деле вовсе не было. Мошенники подумали, что домен «edu», созданный специально для образовательных учреждений, просто не покажется жертвам подозрительным, потому что он считается самым защищенным и престижным. Их ожидания оправдались. Такой способ распространения вредоносных программ и воровства данных оказался очень эффективным.

2. Dropbox

Рост популярности облачных сервисов, таких как Dropbox, натолкнул мошенников на создание нового метода доставки вирусного ПО к нам в компьютеры. Мошенники отправляют по email письма с инвойсом от Dropbox. Ссылка на сервис является абсолютно чистой, только она ведет на zip-файл, содержащий файл типа SCR (зараженный скрипт), а не на счета. Dropbox быстро отреагировал и создал защиту для пользователей, но хакеры нашли способ обхода разработанного компанией спам-фильтра. Использование Dropbox настолько распространено, что никому и в голову не придет блокировать этот сервис как потенциально опасный, поэтому пресечь такой вид распространение вирусов и троянов крайне сложно.

1. «Тот-Кого-Нельзя-Называть» или вредоносная программа Dyre

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

Бонус

Мошенники находят все более и более изощренные способы в фишинге. Этот случай не вошел в Топ-10 2014 года, но он поразил своей простотой и вероломностью. Целью атаки являлось получение контроля над ящиком электронной почты.

0. Письма от популярного сообщества с личным сообщением

Все истории в статье реальны, а эта произошла непосредственно с одной из наших коллег. Вот что она рассказала:

«На email приходит оповещение от известного сайта о новом сообщении. Лично я получила такое письмо от сайта, маскирующего под Хабрахабр. В нём говорится, что такой-то пользователь сообщества оставил мне сообщение, которое можно прочитать, пройдя по ссылке. Абсолютно стандартная процедура. При переходе по ссылке появляется окно на подобие тех, которые возникают при логине на сайт через социальные сети, и предлагается разрешить доступ к вашему ящику электронной почты. Поскольку все выглядит стандартно - рука сама тянется к слову «Разрешить». Но нужно сдерживать свои порывы – потеря ящика электронной почты в наше время является настоящей трагедией. Сразу после этого инцидента я на всякий случай сменила пароль».

Помните, что защита электронной почты требует определённой профилактики. Будьте аккуратны и бдительны! Используйте

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

Статистика фишинга на мобильных платформах.

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

По статистике, на 85% всех мобильных устройств установлена одна из версий Android, и неудивительно, что большинство атак и зловредов нацелены именно на нашу любимую операционную систему. Конечно, ситуация еще не так плoха, как с Windows лет десять назад, но тенденция пугает.

В январе прошлого года мы разбирали, насколько легко создать криптолокер под Android - программу, шифрующую пользовательские данные. И чуть позже, в апреле 2016 года, «Лаборатория Касперского» подтвердила наши опасения: компания заявила о появлении трояна-локера Fusob, атаковавшего смартфоны пользователей более чем из ста стран.

Многообразие фишинга

Мимикрирование вредоносных программ подо что-то полезное - довольно старый тренд. Лет десять-пятнадцать назад был бум популярности сайтов, которые очень похожи на официальные порталы банков или платежных сиcтем. Такие фишинговые ресурсы старались вытянуть пользовательские аккаунты, а еще лучше - данные кредитных карт.

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

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

Рис. 2. Вирусная партнерка на крупном ресурсе

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

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

Почти Google Market

Для фишинга не нужно точь-в-точь реализовывать функциональность Google Market - проще написать приложение, расширяющее его возможности без изменения исходного кода. Интересно узнать, как хакeры проворачивают подобное? Тогда поехали!

Выбор

Будет неправильным пытаться подделать приложение, которым владелец устройства совсем не пользуется. Как и при обычном вторжении, мошеннику нужно сначала оценить, в какую среду он попал. Многообразие вендоров, выпускающих мобильные устройства, привело к большим изменениям и в самой ОС. И хотя, со слов маркетологов, все они работают на единой платформе Android, набор запущенных приложений может быть совершенно разным. В Android есть встроeнный API для получения списка запущенных процессов - это системный сервис ACTIVITY_SERVICE.

ActivityManager am = (ActivityManager ) getSystemService (Context .ACTIVITY_SERVICE ) ;

List < ActivityManager .RunningAppProcessInfo > runningAppProcessInfo = am .getRunningAppProcesses () ;

Google в целях безопасности с каждым годом все больше ограничивает возможности приложений взаимодействовать между собой. В документации это явно не указано, но для Android версии 4.0 и новее такой вызов вернет список только из одного приложения - твоего собственного. Не все потеряно - в основе Android лежит ядро Linux, а значит, у нас есть консоль. К ней можно добраться руками с помощью утилиты adb , входящей в Android Studio.

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

media _ rw1730 1176 7668 1876 1 20 0 0 0 fg inotify_re b75c3c46 S / system / bin / sdcard (u : 0 , s : 3 )

u0 _ a151798 1202 1298044 30520 0 20 0 0 0 fg SyS_epoll_ b72f9d35 S com .google .android .googlequicksearchbox : interactor (u : 3 , s : 1 )

u0 _ a351811 1202 1272580 37692 1 20 0 0 0 fg SyS_epoll_ b72f9d35 S com .android .inputmethod .latin (u : 9 , s : 1 )

u0 _ a81871 1202 1428180 77468 0 20 0 0 0 fg SyS_epoll_ b72f9d35 S com .google .android .gms .persistent (u : 168 , s : 163 )

Собственно, в этом выводе содержится достаточная для фишинга информация: имя процесса, его идентификатор, приоритет выполнения и так далее. Запустить утилиту можно не только руками, но и из приложения - для доступа к шеллу в стандартном API есть класс Shell.

List < String > stdout = Shell .SH .run ("toolbox ps -p -P -x -c" ) ;

Линуксоидам чаcто приходится писать однострочные скрипты, поэтому распарсить такой вывод для них не проблема. Но ООП-разработчики более нежные и наверняка не захотят таким заниматься.

На Гитхабе уже есть проект, в котором реализована необходимая функциональность. Создал его некто Джаред Раммлер (Jared Rummler), за что скажем ему спасибо. Обработка результата выполнения toolbox создана в виде библиотеки, которую можно подключить прямо через Gradle.

Вся информация о запущенных процессах обернута в объект класса AndroidAppProcess . Если посмотреть исходники библиотеки, то ничего лишнего там нет - только пaрсинг консольного вывода. Информацию о конкретном приложении придется вытаскивать прямым перебором.

for (AndroidAppProcess pr : processes ) {

if (pr .getPackageName () .equals (ps_name ) ) {

/ / do smth

Обрати внимание: начиная с Android 7.0 Google ввела ограничение на доступ к информации о процессах других приложений. Теперь ее нельзя получить даже с помощью команды ps и прямого чтения файловой системы /proc. Впрочем, на Android 7+ большая часть юзеров перейдет очень не скоро - если вообще перейдет.

Активные приложения

Успешные фишинговые операции, как правило, хорошо подготовлены - мошенники умеют подобрать момент так, что у пользователя не возникает даже малейших подозрений в подлоге. Поэтому телефон не должен просто так попросить ввести данные бaнковской карты - это будет очень подозрительно. Фишинговые сообщения пoявляются под каким-то предлогом, например платные псевдoобновления для 1C или фиктивные банковские ресурсы на адресах, схожих по написанию с лeгальными.

Многозадачность Android тут может сыграть на руку - в ОС могут работать одновременно с десяток приложений, сменяя друг друга. Неопытный пользователь может даже и не понять (да и вообще не задумываться), в каком именно приложении он сейчас работает. Вывод ps дает информацию, какие именно приложения сейчас активно взаимoдействуют с пользователем - то есть ему видны.

u0 _ a65. . . bg SyS_epoll_ b7366d35 S com .localhost .app .noizybanner (u : 248 , s : 84 )

u0 _ a64. . . fg SyS_epoll_ b7366d35 S com .localhost .app .fragments (u : 7 , s : 11 )

Этот параметр находится в 11-й колонке - тут может быть значение bg (background, скрыт) или fg (foreground, виден). ОС самостоятельно отслеживает такие состояния приложений, поэтому задача разработчика - только время от времени вызывать ps.
На основе библиотеки получается простенький метод, определяющий состояние искомого приложения.

private Boolean isProccessForeground (String ps_name )

List < AndroidAppProcess > processes = AndroidProcesses .getRunningForegroundApps (getApplicationContext () ) ;

. . .

У нас есть возможность сразу выбрать только видимые процессы с помощью одноименного метода. Но он не всегда срабатывает корректно и выдает даже пpиложения, которые сейчас пользователю невидимы. В этой ситуации нужно проверять значение метода foreground, которое будет true, если какое-либо Activity видно пользователю.

for (AndroidAppProcess pr : processes )

if (pr .getPackageName () .equals (ps_name ) && (pr .foreground == true ) ) {

Log .e ("ps" , " " + pr .getPackageName () + " foreground " + pr .foreground ) ;

return true ;

. . .

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

/ / Проверяем, открытлиGoogle Market

if (isProccessForeground ("com.android.vending" ) ) {

Intent i = new Intent () ;

i .setClass (getApplicationContext () , FakeGUI .class ) ;

startActivity (i ) ;

В целом фишингoвая атака уже построена. Для ее эксплуатации нужно настроить периодическое отслеживание приложения-жертвы, а также нарисовать GUI окна для ввода данных банковской карты.

Сервисы

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

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

Сервисы могут быть разными: так называемый foreground service будет работать в системе всегда и остановится только вместе с выключением телефона. Мы уже подробно разбирали работу сервисов раньше, поэтому сегодня буду краток. Foreground service наследуется от класса Service и должен обязательно имeть иконку, которая будет присутствовать в панели уведомлений устройства.

NotificationCompat .Builder mBuilder = new NotificationCompat .Builder (this )

SetSmallIcon (R .mipmap .ic_launcher )