валор
Обнаружена проблема с недостаточной защитой API-эндпоинтов, таких как:
Для усиления защиты API предлагаю реализовать следующие меры на уровне Cloudflare:
- Фильтрация HTTP-методов – разрешить только допустимые методы (
GET,POST) для API-запросов. Пример на скрине:
- Проверка заголовков – настроить правила, требующие наличие следующих заголовков:
OriginRefererSec-Fetch-Modeсо значениемcors (на скрине подобное правило, вам нужно добавить только свои эндпоинты апи) ! Так-же перепроверьте какой ставиться origin и referer при ваших АПИ запросах через DevTool network можно глянуть Код правила: (http.request.uri.path eq "/m-api/v1/" and ( http.request.method ne "POST" or http.referer ne "https://valor.bet/" or http.request.headers["origin"][0] ne "https://valor.bet/" or http.request.headers["sec-fetch-mode"][0] ne "cors" ))- Включение rate limiting – ограничить количество запросов к API в минуту с одного IP-адреса (прописывайте свои апи эндпоинты либо contains
/m-api/v1/)
Проверьте включены ли у вас автоматические правила смягчения аттаки cloudflare [Security -> DDoS]
Если у вас есть тариф cloudflare business, активируйте bot fight mode защиту, она реализована на машином обучении и помогает обнаруживать "вредоносный трафик" во время аттак на уровне TLS, HTTP/1.1 HTTP/2 HTTP/3 протоколов и фильтрует аттаку
Также выявлена серьёзная уязвимость: IP-адреса backend-серверов находятся в открытом доступе. Это делает их потенциальной целью для прямых атак, минуя защиту Cloudflare.
Оффициальный диапазон IP Адрессов Cloudflare https://www.cloudflare.com/ips/
Так-же у вас открыт git.valor.bet, что позволяет в будущем легче провести аттаку, ведь аттакующая сторона уже будет знать на каком хостинг провайдере вы находитесь. Аттакующей стороне понадобиться всего пару часов чтобы выявить ваш реальный ип адресс для аттаки ( если вы его ещё не закрыли по методике описаной ниже )
- Закрытие прямого доступа к HTTP(S)-портам (80, 443 и другим, используемым проектом) с любых IP-адресов, кроме тех, что принадлежат Cloudflare.
- Настроить
iptablesс разрешением только доверенных IP-диапазонов Cloudflare:
# Пример: разрешаем Cloudflare IP (замените на актуальные)
iptables -A INPUT -p tcp -s 77.220.207.0/24 -m multiport --dports 80,443 -j ACCEPT
# Разрешаем доступ с внутренних IP (например, для CI/CD)
iptables -A INPUT -p tcp -s ВАШ_ВНУТРЕННИЙ_IP/32 -m multiport --dports 80,443 -j ACCEPT
# Запрещаем всё остальное
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j DROP
#--dports указывайте все ваши хттп порты ❗️
Готовые команды с диапазонами cloudflare
IPV4:
iptables -A INPUT -p tcp -s 77.220.207.0/24 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 45.10.240.0/24 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 45.10.241.0/24 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 45.10.242.0/24 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 186.2.160.0/24 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 186.2.164.0/24 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 186.2.167.0/24 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 186.2.168.0/24 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 185.178.209.197/32 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s 190.115.30.44/32 -m multiport --dports 80,443 -j ACCEPT
IPV6:
ip6tables -A INPUT -p tcp -s 2400:cb00::/32 -m multiport --dports 80,443 -j ACCEPT
ip6tables -A INPUT -p tcp -s 2606:4700::/32 -m multiport --dports 80,443 -j ACCEPT
ip6tables -A INPUT -p tcp -s 2803:f800::/32 -m multiport --dports 80,443 -j ACCEPT
ip6tables -A INPUT -p tcp -s 2405:b500::/32 -m multiport --dports 80,443 -j ACCEPT
ip6tables -A INPUT -p tcp -s 2405:8100::/32 -m multiport --dports 80,443 -j ACCEPT
ip6tables -A INPUT -p tcp -s 2a06:98c0::/29 -m multiport --dports 80,443 -j ACCEPT
ip6tables -A INPUT -p tcp -s 2c0f:f248::/32 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -s ВАШ ИП СЕРВЕРА/32 -m multiport --dports 80,443 -j ACCEPT
iptables -A INPUT -p tcp -m multiport --dports 80,443 -j DROP
После сохраняем чтобы после ребута сервера правила не слетели sudo apt update
sudo apt install iptables-persistent
sudo iptables-save > /etc/iptables/rules.v4
sudo ip6tables-save > /etc/iptables/rules.v6
Если нужно можете добавить доступ к хттп портам разработчикам в команде ввести диапазон их ип адрессов либо вашего корп. впн