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

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

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 )


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

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

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

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

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

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

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

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

В последнее время фишинг является наиболее простым и популярным среди киберпреступников способом кражи денег или информации. За примерами далеко ходить не нужно. В прошлом году ведущие российские предприятия столкнулись с беспрецедентной по масштабу атакой — злоумышленники массово регистрировали фейковые ресурсы, точные копии сайтов производителей удобрений и нефтехимии, чтобы заключать контракты от их имени. Средний ущерб от такой атаки — от 1,5 млн рублей, не говоря уже про репутационный ущерб, который понесли компании. В этой статье мы поговорим о том, как эффективно детектировать фишинговые сайты с помощью анализа ресурсов (изображений CSS, JS и т.д.), а не HTML, и как специалист по Data Science может решить эти задачи.

Эпидемия фишинга

По данным Group-IB, ежедневно жертвами только финансового фишинга в России становятся свыше 900 клиентов различных банков, — этот показатель в 3 раза превышает ежедневное количество жертв от вредоносных программ. Ущерб от одной фишинговой атаки на пользователя варьируется от 2000 до 50 000 рублей. Мошенники не просто копируют сайт компании или банка, их логотипы и фирменные цвета, контент, контактные данные, регистрируют похожее доменное имя, они еще активно рекламируют свои ресурсы в соцсетях и поисковиках. Например, пытаются вывести в топы выдачи ссылки на свои фишинговые сайты по запросу «Перевод денег на карту». Чаще всего поддельные сайты создаются именно для того, чтобы украсть деньги при переводе с карты на карту или при мгновенной оплате услуг операторов сотовой связи.

Фишинг (англ. phishing, от fishing — рыбная ловля, выуживание) — вид интернет-мошенничества, цель которого — обманным путем вынудить жертву предоставить мошеннику нужную ему конфиденциальную информацию. Чаще всего похищают пароли доступа к банковскому счету для дальнейшей кражи денег, аккаунты в социальных сетях (для вымогательства денег или рассылки спама от лица жертвы), подписывают на платные услуги, рассылки или заражают компьютер, делая его звеном в бот-сети.

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

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

Атакой на пользователей часто занимаются одиночки, и порог входа в этот сегмент преступного бизнеса такой низкий, что для реализации хватит минимальных «инвестиций» и базовых знаний. Распространению данного типа мошенничества способствуют и phishing kits — программы-конструкторы фишинговых сайтов, которые можно свободно купить в Даркнете на хакерских форумах.

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

В России, по нашим оценкам, действует 15 преступных групп, занимающихся фишингом, направленным на финансовые учреждения. Суммы ущерба всегда небольшие (в десятки раз меньше, чем от банковских троянов), но количество жертв, которые они заманивают на свои сайты, ежедневно исчисляется тысячами. Около 10-15% посетителей финансовых фишинговых сайтов сами вводят свои данные.

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

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

Ловля фишей

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

1. Формирование множества подозрительных адресов (URL) для проверки фишинга (краулер, honeypots и т.д.).

2. Формирование множества фишинговых адресов.

3. Классификация уже задетектированных фишинговых адресов по направлению деятельности и атакуемой технологии, например «ДБО:: Сбербанк Онлайн» или «ДБО::Альфа-Банк».

4. Поиск страницы-донора.

Выполнение пунктов 2 и 3 ложится на плечи специалистов по Data Science.

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

Вносить URL в черные списки продуктов Group-IB и продуктов наших партнеров;

Автоматически или вручную отправлять письма владельцу доменной зоны с просьбой удалить фишинговый URL;

Отправлять письма службе безопасности атакуемого бренда;

Методы, основанные на анализе HTML

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

Также весьма эффективные системы для антифишинга могут разрабатывать исследователи phishing kits. Но и в данном случае нужно исследовать HTML-страницу. Кроме того, эти решения не универсальные — для их разработки необходима база самих «китов». Некоторые phishing kits могут быть неизвестны исследователю. И, разумеется, разбор каждого нового «кита» — это достаточно трудоемкий и дорогой процесс.

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

По данным Group-IB, в настоящий момент таких фишинговых сайтов не более 10% от общего количества, однако пропуск даже одного может дорого обойтись жертве.

Таким образом, фишеру для обхода блокировки достаточно просто менять каркас HTML, реже — обфусцировать HTML-страницу (запутывая разметку и/или подгружая контент через JS).

Постановка задачи. Метод, основанный на ресурсах

Гораздо более эффективны и универсальны для обнаружения фишинговых страниц методы, основанные на анализе используемых ресурсов. Ресурс — это любой файл, подгружаемый при рендеринге web-страницы (все изображения, каскадные таблицы стилей (CSS), JS-файлы, шрифты и т.д.).

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

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

Гипотеза заключается в том, что, основываясь на реальных данных, с достаточно большой долей вероятности можно сказать, что кластер содержит совокупность URL, которые принадлежат одному бренду и генерируются одним phishing kits. Тогда для проверки данной гипотезы каждый такой кластер можно отправить на ручную проверку в CERT (Центр реагирования на инциденты информационной безопасности). Аналитик в свою очередь проставлял бы статус кластеру: +1 («утвержденный») или -1 (отвергнутый»). Всем утвержденным кластерам аналитик также присваивал бы атакуемый бренд. На этом «ручная работа» заканчивается — остальной процесс автоматизирован. В среднем на одну утвержденную группу приходится 152 фишинговых адреса (данные на июнь 2018 г.), а иногда даже попадаются кластеры по 500-1000 адресов! Аналитик тратит около 1 минуты на утверждение или опровержение кластера.

Далее все отвергнутые кластеры удаляют из системы, а все их адреса и ресурсы через некоторое время вновь подают на вход алгоритма кластеризации. В итоге мы получаем новые кластеры. И опять отправляем их на проверку, и т.д.

Таким образом, для каждого вновь поступившего адреса система должна делать следующее:

1. Извлекать множество всех ресурсов для сайта.

2. Проверять на принадлежность хотя бы одному ранее утвержденному кластеру.

3. Если URL принадлежит какому-либо кластеру, автоматически извлечь название бренда и выполнить действие для него (уведомить заказчика, удалить ресурс и т.д.).

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

Простой алгоритм кластеризации по ресурсам

Один из важнейших нюансов, который должен учитывать специалист Data Science в ИБ, — тот факт, что его противником является человек. По этой причине условия и данные для анализа очень быстро меняются! Решение, замечательно устраняющее проблему сейчас, через 2-3 месяца может перестать работать в принципе. Поэтому важно создавать либо универсальные (топорные) механизмы, если это возможно, либо максимально гибкие системы, которые можно быстро доработать. Специалист по Data Science в ИБ не сможет решить задачу раз и навсегда.

Стандартные методы кластеризации не работают из-за большого количества признаков. Каждый ресурс можно представить как булевый признак. Однако на практике мы получаем от 5000 адресов сайтов ежедневно, и каждый из них в среднем содержит 17,2 ресурса (данные на июнь 2018 г.). Проклятье размерности не позволяет даже загрузить данные в память, не то что построить какие-то алгоритмы кластеризации.

Другая идея — попытаться разбить на кластеры с помощью различных алгоритмов коллаборативной фильтрации. В данном случае нужно было создать еще один признак — принадлежность к тому или иному бренду. Задача будет сводиться к тому, что система должна спрогнозировать наличие или отсутствие этого признака для остальных URL. Метод дал положительные результаты, однако обладал двумя недостатками:

1) для каждого бренда нужно было создавать свой признак для коллаборативной фильтрации;

2) нужна была обучающая выборка.

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

Мы начали искать решение этой задачи. И нашли очень простой и эффективный способ.

Для начала построим пары ресурсов по следующему алгоритму:

1. Возьмем всевозможные ресурсы (обозначим их как а ), для которых не менее N 1 адресов. Обозначим данное отношение как #(a ) ≥ N 1 .

2. Построим всевозможные пары ресурсов (a 1 , a 2 ) и выберем только те, для которых будет не менее N 2 адресов, т.е.
#(a 1 , a 2 ) ≥ N 2 .

Затем мы аналогичным образом рассматриваем пары, состоящие из пар, полученных в предыдущем пункте. В итоге получаем четверки: (a 1 , a 2 ) + (a 3 , a 4 ) → (a 1 , a 2 , a 3 , a 4 ). При этом, если хотя бы один элемент присутствует в одной из пар, вместо четверок мы получаем тройки: (a 1 , a 2 ) + (a 2 , a 3 ) → (a 1 , a 2 , a 3 ). Из полученного множества оставим только те четверки и тройки, которым соответствует не менее N 3 адресов.

Величины N 1 , N 2 N U — параметры алгоритма, они задаются вручную. В общем случае мы имеем C L 2 различных пар, где L — количество ресурсов, т.е. сложность для построения пар будет O(L 2) . Затем из каждой пары создается четверка. И в теории мы, возможно, получим O(L 4) . Однако на практике таких пар значительно меньше, и при большом количестве адресов эмпирически была получена зависимость O(L 2 log L) . При этом последующие шаги (превращения двоек в четверки, четверок в восьмерки и т.д.) пренебрежимо малы.

Следует заметить, что L — это количество некластеризированных URL. Все URL, которые уже можно отнести к какому-либо ранее утвержденному кластеру, не попадают в выборку для кластеризации.

На выходе можно создать множество кластеров, состоящих из максимально больших по размерам множеств ресурсов. Например, если существует (a 1 , a 2 , a 3 , a 4 , a 5 ), удовлетворяющая границам N i , следует убрать из множества кластеров (a 1 , a 2 , a 3 ) и (a 4 , a 5 ).

Затем каждый полученный кластер отправляется на ручную проверку, где аналитик CERT присваивает ему статус: +1 («утвержден») или -1 («отвергнут»), а также указывает, какими являются URL, попадающие в кластер, — фишинговыми или легитимными сайтами.

При добавлении нового ресурса количество URL может уменьшиться, остаться тем же, но никогда не увеличиться. Поэтому для любых ресурсов a 1 a N справедливо отношение:

#(a 1) ≥ #(a 1 , a 2 ) ≥ #(a 1 , a 2 , a 3 ) ≥ … ≥ #(a 1 , a 2 , …,a N ) .

Следовательно, разумно задавать параметры:

N 1 ≥ N 2 ≥ N 3 ≥ … ≥ N U .

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

Использование алгоритма на практике

Заметим, что теперь полностью отпадает необходимость исследовать phishing kits! Система автоматически кластеризует и найдет нужную фишинговую страницу.

Ежедневно система получает от 5000 фишинговых страниц и конструирует всего от 3 до 25 новых кластеров в сутки. Для каждого кластера выгружается список ресурсов, создается множество скринов. Данный кластер отправляется аналитику CERT на подтверждение или опровержение.

При запуске точность алгоритма была невысокой — всего 5%. Однако уже через 3 месяца система держала точность от 50 до 85%. В действительности точность не имеет значения! Главное, чтобы аналитики успевали просмотреть кластеры. Поэтому, если система, например, генерирует около 10 000 кластеров в сутки и у вас только один аналитик, придется менять параметры системы. Если не более 200 в сутки, это задача, посильная для одного человека. Как показывает практика, на визуальный анализ в среднем требуется около 1 минуты.

Полнота системы — около 82%. Оставшиеся 18% — это либо уникальные случаи фишинга (поэтому их нельзя сгруппировать), либо фишинг, у которого малое количество ресурсов (не по чему группировать), либо фишинговые страницы, которые вышли за границы параметров N 1 , N 2 N U .

Важный момент: как часто запускать новую кластеризацию на свежих, непроставленных URL? Мы делаем это каждые 15 минут. При этом в зависимости от количества данных само время кластеризации занимает 10-15 минут. Это значит, что после появления фишингового URL есть лаг во времени в 30 минут.

Ниже приведены 2 скриншота из GUI-системы: сигнатуры для обнаружения фишинга соцсети «ВКонтакте» и «Bank Of America».

Resource screens — какие ресурсы используются.

URL count in built — количество URL в момент построения кластера.

Когда алгоритм не работает

Как уже было сказано выше, алгоритм не работает в принципе, если не достигаются границы, заданные параметрами N 1 , N 2 , N 3 N U , или если количество ресурсов слишком мало, чтобы образовать необходимый кластер.

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

Соединяем все вместе

Соединяем наш модуль с классическими HTML-регулярками, данными, полученными от Threat Intelligence (система киберразведки), и получаем полноту в 99,4%. Разумеется, это полнота на данных, которые уже предварительно классифицированы Threat Intelligence как подозрительные на фишинг.

Какова полнота на всех возможных данных, не знает никто, так как охватить весь Даркнет невозможно в принципе, однако, согласно отчетам Gartner, IDC и Forrester, по своим возможностям Group-IB входит в число ведущих международных поставщиков Threat Intelligence-решений.

А что делать с непроклассифицированными фишинговыми страницами? В день их получается примерно 25-50. Их вполне можно проверить ручным способом. В целом в любой достаточно сложной для Data Sciense задаче в сфере ИБ всегда есть ручной труд, а любые утверждения о 100-процентной автоматизации — это маркетинговый вымысел. Задача специалиста Data Sciense уменьшить ручной труд на 2-3 порядка, сделав работу аналитика максимально эффективной.

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

Возникшие с появлением фишинга угрозы потребовали внедрения адекватных мер защиты. В рамках данной статьи будут рассмотрены как уже широко распространенные способы противодействия фишингу, так и новые эффективные методы. Разделение это весьма условно: к традиционным отнесем хорошо известные (в том числе и самим злоумышленникам) способы противодействия фишингу и проанализируем их эффективность в первой части данной статьи. Согласно отчету 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-фильтрация

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



Просмотров