Всем привет! Это моя попытка рассказать что-то интересное и попробовать получить новую информацию через фидбэк:)
Начну с того, что расскажу, кто я вообще такой. Я - человек, который с детства хотел стать "хакером" и помогать в борьбе с мошенниками. В январе 2022 года мне предложили сменить мою работу 3D инженера-конструктора в конструкторском бюро на специалиста в кибербезопасности банка. Если честно - я кроме умения пользоваться операционными системами не умел, по моему мнению, ничего, что могло бы там пригодиться. Да и понятие о специалистах кибербезопасности я имел тогда слишком размытое.
Для того, чтобы меня приняли на стажировку в банк, назовём его "ПростоБанк", мне необходисо было изучить достаточно много информаци, например, модель OSI, стек TCP/IP, администрирование ОС и т.д. Рассказывать про все не буду, это лишь вводная часть "обо мне". Первый хаб всё же!) После изучения минимума и ещё чуть-чуть сверху с помощью литературы и видео-курсов, которых существует множество в открытом доступе, я попал на стажировку и уволился с прежней работы.
К весне я уже умел часть технической работы, будь то работа с SIEM-системами, системами контроля доступа, логирование, некоторое сетевое взаимодействие. Но тут нам передали под крыло очень интересную работу, которая стала у нас одной из важнейших. Это и был фишинг.
Напомню, что это за фрукт и с чем его едят. Фишинг - это вид интернет-мошенничества, целью которого является получение конфиденциальных данных пользователя, чаще всего это логин и пароль от учётных записей различных сервисов. Так как я работаю уже в банке, а банк является одним из лучших в стране, то такой вид мошенничества тут процветает и количество пострадавших пользователей становится всё больше и больше.
Ну что ж, фишинг так фишинг. Получаем на вход от некоторых пользователей ссылки на сайты-подделки, которые распространяются как и на сервисах по продаже б/у-вещей, так и в поисковых системах.
Параллельно во время работы я начал разбирать всеми известный язык программирования Python по совету некоторых знакомых. И подружился я с этим языком очень быстро, даже странно для меня, так как с программированием у меня никогда не ладилось еще с университета.
Продолжим в тему фишинга. После получения информации о паре существующих фишинговых страницах мы начали сбор информации. Сейчас кратко перечислю некоторые пункты, на которых заострил внимание:
Ссылка. Как выглядит ссылка на страницу. Чаще всего это было что-то типа "prosto-bank.com", "proctobahk.ru", "postobank.web" и так далее. Различие с URL оригинальной страницы было в несколько букв, в пропуске букв, изменение доменной зоны.
Каким образом распространяется мошеннический ресурс. Чаще всего ресурс находился в рекламном блоке поисковой системы Google. Очень редки случаи других вариантов, что несколько упростило работу. Но возник вопрос, почему Google пропускает в рекламу мошенников. Но с этим дальше разберёмся.
Как вообще выглядит подделка. Нужно было понять отличия от официальной страницы. Это надо было и рассмотреть в коде страницы. Вот тут мне и пригодилось знание вёрстки.
Найти хостинг-провайдеров, которыми пользуется мошенник. Это одна из самых сложных задач и по сей день, спасибо Cloudflare. Но об этом позже.
Каким образом можно заблокировать мошеннический сайт. Тут тоже много подводных камней. Как показал опыт, кроме как поиск реального хостинга и общение с ним тут особо ничего и не поможет.
Ну что ж, пока мы пробовали блокировать наших первых "фишеров", они в свою очередь нам начали отвечать всплеском активности. И тогда уже появилась необходимость как-то оптимизировать и автоматизировать рутинный поиск фишинга. Благо моё обучение языку Python открыло широкий спектр возможностей.
Прошерстил я интернет в поисках опенсурсного решения для борьбы с фишингом и убедился в том, что такой софт может быть полезен для портфолио, ибо ничего крутого и помогающего я не нашёл в свободном доступе (возможно плохо искал, знатоки, заранее простите). Поэтому я нашёл выход в 2-х скриптах на благородном змее:
Простейший скрипт по генерации и проверке доступа на похожие URL
Более сложный в понимании и простой в реализации скрипт-парсер поисковой системы
С горем переступая через первые камни при разработке первого скрипта я понял, что ООП, оказывается, это не что-то сверхъестественное, а достаточно и понятное представление кода. И оказывается, что если генерировать тупо список похожих URL-имён и его "пинговать", то можно и файлы переполнить, и прождать очень долго. Поэтому пришлось познакомиться с многопоточностью. Но дальше кофе у нас не дошло, мне этого хватило.
Ну что, первый скрипт готов, я программист с приставкой супер. Но что я вижу? Я вижу просто охренеть какое количество фишинговых ресурсов, которые работают! Ну как так, вот как работали здесь раньше. Ну, как говорил дед, забитый болт - залог успеха.
Далее была рутинная работа с поисками провайдеров (благо пока их никто нее скрывал за многочисленными прокси-хостингами) и блокировкой ресурсов. В общей сложности по такому принципу удалось заблокировать больше 50 фишинговых ресурсов. И казалось, что я уже спец в кибербезопасности и вообще сын маминой подруги. Но не так всё просто.
Сыном маминой подруги оказался именно "хакер", который наплодил эти все ресурсы. Он мимикрировал и придумал более успешную тактику. Коротко:
Люди, оказывается, очень хотят отдать деньги мошенникам, поэтому не хотят смотреть, куда они тыкают в поисковике. Поэтому достаточно запихнуть фишинг в рекламу и написать описание, чтобы пользователь подумал, что всё хорошо. Поэтому от похожих URL он отказался и началась череда типа "entophishing.net" и так далее. И уже данной меры достаточно было, чтобы обмануть наш скрипт. Очко в пользу дяди-хакера.
Что-то мамкины кибербезопасники быстро блокируют сайты. Поэтому был найден второй выход из этой ситуации. Использование нескольких провайдеров, переадресующих друг на друга, а так же проси-провайдеры, которые могут качественно спрятать следующие ноды до реального хостинга. Ну тут уже привет Cloudflare, DigitalOcean и тому подобные ***. Пока мы чешем репу второе очко забирает себе дядя-хакер.
Ну и третий пунктик. Это использование Яндекса, который у нас в стране использует больше 40% пользователей. А у Яндекса достаточно умная капча, которая хорошо распознает машину. Это мешает работе автоматических процессов поиска фишинга. Но об этом я узнаю значительно позже.+3 по итогу у нашего хацкера.
Начнём разбирать изменения. Первый пункт делает бессмысленным наш скрипт по подбору похожих URL. Поэтому его на помойку, чтобы использовать раз в месяц, а вдруг всё вернётся на круги своя. Теперь нужно делать второй скрипт. Нужно парсить рекламу в Google (потому что чтобы продвинуть на первую страницу фишинг необходимо много времени и трудов, а это невыгодно).
Как оказалось, это достаточно просто. Спасибо разработчикам BeautifullSoup. Всё что нам нужно было найти - это рекламу на странице. Если она есть, а если порыться в коде поисковика, то всё просто вычленяется, то пусть что-то квакает в мессенджер. Но тут опять же вопрос возникает : "Как избавиться от ложных срабатываний или свести их к минимуму?". Список исключений и профит, всё работает как часы. Запустил с периодом проверки в полчаса и новый фишинг не устоит под гнётом мамкиных киберебзопасников. +1 очко в пользу нас. Мы отыгрываемся.
Начнём разбираться с провайдерами. Когда было понятно, что Cloudflare и его сотрудники не раскрывают данных о клиентах, даже если мошенники, то мы обнаружили интересную галочку в abuse-форме, которая гласила "...отправить реальному хостингу ваше письмо с жалобой..." и ... барабанная дробь ... она работает. Реально со временем начались блокировки. Правда, из предыдущих 1-3 дней на блокировку получилось 3-7, т.к. обработка не быстрая и уже посредников несколько. Но это уже +1 балл нам. Итого 3:2 в пользу мошенника.
Решаем третью проблему с Яндексом. Тут всё сложнее по двум причинам:
Капча. Она слишком умная. Это было сделано от роботов и работала достаточно хорошо.
На странице поисковика можно вместо ссылки написать всё что угодно. Поэтому пришлось бегать по страницам
Как говорил кто-то (а может и не говорил) - все проблемы у нас в голове. Поэтому после ночи работы я понял, как работает Selenium и капча в Яндексе и смог всё же пробиваться мимо неё, пусть пришлось и увеличить время между проверками.
Вуаля, 3:3, идём ноздря в ноздрю. Эта битва продолжается и до сих пор и судя по статистике, перевес идёт в нашу сторону. То ли люди начали слушать про мошенничество, то ли помогли некоторые меры в "ПростоБанке", то ли мошенник начал переходить к другим жертвам. А сейчас короткие заметки, которые я понял за небольшой, но ёмкий опыт работы над мошенничеством:
Кроме тебя никому не важно, что есть кибермошенничество, и что оно такое же, как и другие кражи. Поэтому не стоит надеяться на органы или какие-то другие организации.
Люди сами хотят быть обманутыми. Им не важно, что говорят какие-то дяди-специалисты. Они сами всё лучше знают. В итоге потерянные деньги не вернуть, как бы того не хотелось.
Никто не понимает и половины того, что ты им расскажешь о киберпреступлениях. Для них это всё где-то там, далеко. Но ровно до того момента, пока не попадут.
Самый простой способ отличить дурака от умного человека - это спросить, всё ли он понимает. У умного человека всегда будут вопросы.
Cloudflare как добро, так и зло. Их не интересует, кто использует их сервисы. Будь ты мошенником или меценатом - для них все одинаковые. Поэтому не стоит ожидать от них содействия.
Очень многие российские хостинг-провайдеры плевать хотели на то, что у них хостятся мошенники. Им нужно долбить и долбить письмами, иначе могут просто спустить на тормоза. (Один из таких начинается на be и заканчивается на get)
Существует очень много крутых сервисов, которые помогут найти корни мошеннических сайтов. Например : 2ip, whois от reg.ru, dnsdumpster, phish.report. Учитесь искать информацию в архивах поисковых систем, в записях whois, сертификатах SSL и на других хабах.
Ну и повторюсь - неразрешимых проблем нет, есть только те проблемы, которые решать не хочется.
Надеюсь данная статья как-то вас заинтересует и появятся вопросы, чтобы я мог дальше чем-то делиться. Буду рад объективной критике и какой-либо дополнительной информации в комментариях. Enjoy:)