Минутка кибер-безопасности, ваш тех может быть не только вашим другом
Минутка кибер-безопасности, ваш тех может быть не только вашим другом)
Залетел тут аудитить чужой Keitaro — попросили глянуть, почему в одной кампании трафик начал редиректить на левый домен. История получилась занятная, делюсь, чтобы вы у себя то же самое проверили.
Если коротко: их «интегратор» @username, который полгода назад настроил трекер и с тех пор по необходимости заходил на сервер, последние 11 дней спокойно отщипывал себе ~7% трафика на свой партнёрский ID. Заметили только потому, что typosquat-домен (одна буква отличается от родного трекингового) проскочил в редиректе и попался на глаза.
Механика красивая, надо отдать должное:
— Между nginx и роадраннером Keitaro воткнут свой OpenResty на 127.0.0.1:8889
— На каждом 302 от Keitaro подменяется Location на его track.***.com?pid=908*
— Правила сплита тянутся каждые 15 сек с его C2: процент, GEO, девайс, часы — всё рулится удалённо, отсюда «рандомность»
— IP админок автоматически заносятся в whitelist (cron каждые 2 мин парсит /admin из access.log) — заходишь сам, кликаешь свою же ссылку — всё чисто. Поэтому 11 дней никто и не палил
— Каждые 10 минут весь список офферов / GEO / часовая статистика сливаются на его сервер. То есть он заранее знает, где у тебя жирно и куда выгоднее подменять
— Логи затираются каждые 5 минут (journalctl —vacuum-time=1h + cat /dev/null > /var/log/secure), bash_history тоже
— TG-бот шлёт ему алерт, если CR проседает, чтобы вовремя ручки покрутить
Итого за 10 дней:
14 394 угнанных клика, 1 036 уникальных юзеров, по топ GEO до 15% угона. В абсолюте — ~7,3% от всего трафика трекера.
Что хочется сказать:
Если у кого-то кроме вас есть root на ваш трекер
— сходите по SSH, посмотрите
crontab -l
проверьте, что слушает на портах (ss -tlnp), гляньте
/etc/openresty/
и
/usr/lib/.system_cache/
Если ничего этого нет — выдохнули.
Уберите SSH с интернета вообще (VPN / Tailscale), или хотя бы ключи + PasswordAuthentication no + fail2ban.
На этом сервере root SSH стоял на нестандартном порту с паролем — брутфорсили тысячами в минуту, в итоге всё равно зашли.
Если в кампании заметили редирект на похожий, но не ваш домен — не игнорьте, это уже звонок, что у вас кто-то сидит.
Трекер был, Keitaro. И самый сок, в том как именно была сделана подмена, ее не видно в логах трекера, на обьеме трафика, вы даже не заметите что 7% уходит не туда, ведь юзеры проходят по трекеру, и по его логам — УХОДЯТ к реклу, но вот тут и включается хитрая тулза которая на уровне сервера ловит этот редирект — и ставит СВОЮ ссылку.
В общем обход интересный, еще из косвенных признаков, что лог чистился каждые 5 минут, пустой лог — повод задуматься.
Через ТГ бота, технарь — мог менять процент трафика на выбранных кампаниях, отключать редирект на случай палева, и получал уведомления когда сервер уходил в ребут.
Обязательно ставьте
fail2ban
на сервер, ваш трекер 24/7 торчит на весь интернет, с вашим трафиком, и ботнеты ежесекундно тысячями, а то и десятками тысяч подбирают пароль к вашему SSH, и дело времени когда вам нагнут, и снесут.
fail2ban — своего рода антифрод, при попытке 4 раза ввести пароль, отсылает в бан бота на 24 часа, что усложнит подбор.
Конечно это не спасет от более умного подбора со сменой IP каждый подбор, но как полумера пойдет.
А и еще этот неособо умный чел, регнул домен и на домене висело прям его ФИО при скане WHOIS 🤡
Итог какой: Интегратора уволили в тот же день, и он теперь ходит по HH ишет себе новую работу, и может попасть к вам, будьте внимательны)
Вставить свои 5 копеек: