Pull to refresh

Фишинг и история о том, как я начал с ним бороться костылями

Reading time6 min
Views4.6K

Всем привет! Это моя попытка рассказать что-то интересное и попробовать получить новую информацию через фидбэк:)

Начну с того, что расскажу, кто я вообще такой. Я - человек, который с детства хотел стать "хакером" и помогать в борьбе с мошенниками. В январе 2022 года мне предложили сменить мою работу 3D инженера-конструктора в конструкторском бюро на специалиста в кибербезопасности банка. Если честно - я кроме умения пользоваться операционными системами не умел, по моему мнению, ничего, что могло бы там пригодиться. Да и понятие о специалистах кибербезопасности я имел тогда слишком размытое.

Для того, чтобы меня приняли на стажировку в банк, назовём его "ПростоБанк", мне необходисо было изучить достаточно много информаци, например, модель OSI, стек TCP/IP, администрирование ОС и т.д. Рассказывать про все не буду, это лишь вводная часть "обо мне". Первый хаб всё же!) После изучения минимума и ещё чуть-чуть сверху с помощью литературы и видео-курсов, которых существует множество в открытом доступе, я попал на стажировку и уволился с прежней работы.

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

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

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

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

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

  • Ссылка. Как выглядит ссылка на страницу. Чаще всего это было что-то типа "prosto-bank.com", "proctobahk.ru", "postobank.web" и так далее. Различие с URL оригинальной страницы было в несколько букв, в пропуске букв, изменение доменной зоны.

  • Каким образом распространяется мошеннический ресурс. Чаще всего ресурс находился в рекламном блоке поисковой системы Google. Очень редки случаи других вариантов, что несколько упростило работу. Но возник вопрос, почему Google пропускает в рекламу мошенников. Но с этим дальше разберёмся.

  • Как вообще выглядит подделка. Нужно было понять отличия от официальной страницы. Это надо было и рассмотреть в коде страницы. Вот тут мне и пригодилось знание вёрстки.

  • Найти хостинг-провайдеров, которыми пользуется мошенник. Это одна из самых сложных задач и по сей день, спасибо Cloudflare. Но об этом позже.

  • Каким образом можно заблокировать мошеннический сайт. Тут тоже много подводных камней. Как показал опыт, кроме как поиск реального хостинга и общение с ним тут особо ничего и не поможет.

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

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

  • Простейший скрипт по генерации и проверке доступа на похожие URL

  • Более сложный в понимании и простой в реализации скрипт-парсер поисковой системы

С горем переступая через первые камни при разработке первого скрипта я понял, что ООП, оказывается, это не что-то сверхъестественное, а достаточно и понятное представление кода. И оказывается, что если генерировать тупо список похожих URL-имён и его "пинговать", то можно и файлы переполнить, и прождать очень долго. Поэтому пришлось познакомиться с многопоточностью. Но дальше кофе у нас не дошло, мне этого хватило.

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

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

Сыном маминой подруги оказался именно "хакер", который наплодил эти все ресурсы. Он мимикрировал и придумал более успешную тактику. Коротко:

  1. Люди, оказывается, очень хотят отдать деньги мошенникам, поэтому не хотят смотреть, куда они тыкают в поисковике. Поэтому достаточно запихнуть фишинг в рекламу и написать описание, чтобы пользователь подумал, что всё хорошо. Поэтому от похожих URL он отказался и началась череда типа "entophishing.net" и так далее. И уже данной меры достаточно было, чтобы обмануть наш скрипт. Очко в пользу дяди-хакера.

  2. Что-то мамкины кибербезопасники быстро блокируют сайты. Поэтому был найден второй выход из этой ситуации. Использование нескольких провайдеров, переадресующих друг на друга, а так же проси-провайдеры, которые могут качественно спрятать следующие ноды до реального хостинга. Ну тут уже привет Cloudflare, DigitalOcean и тому подобные ***. Пока мы чешем репу второе очко забирает себе дядя-хакер.

  3. Ну и третий пунктик. Это использование Яндекса, который у нас в стране использует больше 40% пользователей. А у Яндекса достаточно умная капча, которая хорошо распознает машину. Это мешает работе автоматических процессов поиска фишинга. Но об этом я узнаю значительно позже.+3 по итогу у нашего хацкера.

Начнём разбирать изменения. Первый пункт делает бессмысленным наш скрипт по подбору похожих URL. Поэтому его на помойку, чтобы использовать раз в месяц, а вдруг всё вернётся на круги своя. Теперь нужно делать второй скрипт. Нужно парсить рекламу в Google (потому что чтобы продвинуть на первую страницу фишинг необходимо много времени и трудов, а это невыгодно).

Как оказалось, это достаточно просто. Спасибо разработчикам BeautifullSoup. Всё что нам нужно было найти - это рекламу на странице. Если она есть, а если порыться в коде поисковика, то всё просто вычленяется, то пусть что-то квакает в мессенджер. Но тут опять же вопрос возникает : "Как избавиться от ложных срабатываний или свести их к минимуму?". Список исключений и профит, всё работает как часы. Запустил с периодом проверки в полчаса и новый фишинг не устоит под гнётом мамкиных киберебзопасников. +1 очко в пользу нас. Мы отыгрываемся.

Начнём разбираться с провайдерами. Когда было понятно, что Cloudflare и его сотрудники не раскрывают данных о клиентах, даже если мошенники, то мы обнаружили интересную галочку в abuse-форме, которая гласила "...отправить реальному хостингу ваше письмо с жалобой..." и ... барабанная дробь ... она работает. Реально со временем начались блокировки. Правда, из предыдущих 1-3 дней на блокировку получилось 3-7, т.к. обработка не быстрая и уже посредников несколько. Но это уже +1 балл нам. Итого 3:2 в пользу мошенника.

Решаем третью проблему с Яндексом. Тут всё сложнее по двум причинам:

  1. Капча. Она слишком умная. Это было сделано от роботов и работала достаточно хорошо.

  2. На странице поисковика можно вместо ссылки написать всё что угодно. Поэтому пришлось бегать по страницам

Как говорил кто-то (а может и не говорил) - все проблемы у нас в голове. Поэтому после ночи работы я понял, как работает Selenium и капча в Яндексе и смог всё же пробиваться мимо неё, пусть пришлось и увеличить время между проверками.

Вуаля, 3:3, идём ноздря в ноздрю. Эта битва продолжается и до сих пор и судя по статистике, перевес идёт в нашу сторону. То ли люди начали слушать про мошенничество, то ли помогли некоторые меры в "ПростоБанке", то ли мошенник начал переходить к другим жертвам. А сейчас короткие заметки, которые я понял за небольшой, но ёмкий опыт работы над мошенничеством:

  • Кроме тебя никому не важно, что есть кибермошенничество, и что оно такое же, как и другие кражи. Поэтому не стоит надеяться на органы или какие-то другие организации.

  • Люди сами хотят быть обманутыми. Им не важно, что говорят какие-то дяди-специалисты. Они сами всё лучше знают. В итоге потерянные деньги не вернуть, как бы того не хотелось.

  • Никто не понимает и половины того, что ты им расскажешь о киберпреступлениях. Для них это всё где-то там, далеко. Но ровно до того момента, пока не попадут.

  • Самый простой способ отличить дурака от умного человека - это спросить, всё ли он понимает. У умного человека всегда будут вопросы.

  • Cloudflare как добро, так и зло. Их не интересует, кто использует их сервисы. Будь ты мошенником или меценатом - для них все одинаковые. Поэтому не стоит ожидать от них содействия.

  • Очень многие российские хостинг-провайдеры плевать хотели на то, что у них хостятся мошенники. Им нужно долбить и долбить письмами, иначе могут просто спустить на тормоза. (Один из таких начинается на be и заканчивается на get)

  • Существует очень много крутых сервисов, которые помогут найти корни мошеннических сайтов. Например : 2ip, whois от reg.ru, dnsdumpster, phish.report. Учитесь искать информацию в архивах поисковых систем, в записях whois, сертификатах SSL и на других хабах.

  • Ну и повторюсь - неразрешимых проблем нет, есть только те проблемы, которые решать не хочется.

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

Tags:
Hubs:
Total votes 18: ↑12 and ↓6+6
Comments30

Articles