Фишинговые программы позволяют. Фишинговые (мошеннические) программы выманивают ваши пароли. Почти Google Market

Фишинг, или м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 )

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

Прелюдия

Фишинговые письма, направленные на рядовых пользователей обычно мало «персонализированы», для привлечения внимания может быть подставлен только 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-адреса, по которым получатели переходят на вредоносные веб-сайты. При этом мошеннические веб-сайты, куда направляются жертвы, выглядят совершенно так же, как их законно действующие аналоги.

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

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

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

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

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

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

Что будет делать система:

  1. Рассылать фишинговые письма пользователям;
  2. При нажатии на ссылку в теле письма уведомлять пользователя о его ошибке - направлять на web сайт с обучающей страницей;
  3. Вести статистику по невнимательным пользователям.

Рассылка писем

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

Ссылка, ведущая на фишинговый сайт, вида http://phishingsite-327.com/p/[email protected] меняется в зависимости от имени пользователя. Таким образом мы передаем на сайт информацию о пользователе и можем вести отчетность.

Создание обучающей страницы

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


Обучающая страница размещается на Web сервере организации, включает PHP код для ведения статистики.


На локальных DNS серверах организации настраиваем CNAME запись для нашего web сервера таким образом, чтобы ссылка была более похожа на вредоносную, например: http://phishingsite-327.com/

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

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

Отчет помогает оценить уровень подготовки персонала, выявить слабые звенья. А при проведении периодических проверок (ежемесячно/ежеквартально) можно:

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

Опыт внедрения

  • Подготовка ИТ персонала
    Перед проведением рассылки следует предупредить ИТ персонал и объяснить, как следует реагировать на обращения пользователей о странном письме. Но перед этим следует провести тестирование на них самих. В случае невнимательности ИТ персонала не стоит ограничиваться рекомендациями, так как в будущем подобная халатность может быть крайне плачевна для инфраструктуры.
  • Подготовка руководства
    Руководство организации о планирующемся тестировании следует предупредить. Или даже оформить проведение тестирования внутренним актом. Пользователь, в зависимости от его должности и личных качеств при осознании того, что он нарушил требования ИБ, что он "был введен в заблуждение" может реагировать весьма непредсказуемо. Аргументы в пользу службы ИБ в виде документов и поддержки руководства лишними не будут.
  • Выбор цели
    При массовой рассылке по всем сотрудникам сарафанное радио значительно подпортит объективность конечной оценки. Лучше проводить тестирование частями, не забывая менять текст письма.
В первый раз результаты тренинга могут весьма удивить и даже расстроить, ведь они предоставляют более объективную информацию о подготовленности персонала нежели подписи в Журналах инструктажа.
Эффективность подобной меры весьма высока и проведение тренингов на регулярной основе позволяет существенно повысить подготовленность и бдительность персонала.

Top