Могут ли боты, сканирующие мой сервер, изменить исходный IP-адрес? Почему я продолжаю получать атаки даже после блокировки IP?

У меня есть АТС (сервер VOIP), к которому подключаются телефоны для совершения телефонных звонков. АТС, которую я использую, Звездочка. Этот сервер не используется и предназначен только для анализа атак.

Служба АТС не важна, если у меня будет другая служба, такая как mongodb. Я уверен, что боты в Интернете будут искать уязвимости для атаки на эту базу данных.

В любом случае, я анализирую все пакеты, которые приходят на мой сервер через UDP-порт 5060 (именно там прослушивается звездочка), и пакеты, которые приходят, выглядят так:

IP (tos 0x0, ttl 113, id 654, offset 0, flags [none], proto UDP (17), length 521)
    43.249.129.89.58255 > 171.21.78.225.5060: SIP, length: 493
        REGISTER sip:54.84.215.2:5060 SIP/2.0
        To: <sip:824@54.84.215.2>
        From: <sip:824@54.84.215.2>;tag=824e5f4a7221279e4f7a
        Via: SIP/2.0/UDP 10.4.1.117:58255;branch=z9hG4bK183d5a24-59ec-4f05-8325-747389112824;rport
        Call-ID: e5f4a722128024e4f7a824
        CSeq: 1 REGISTER
        Contact: <sip:824@10.4.1.117:58255>
        Expires: 3600
        Max-Forwards: 70
        Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, NOTIFY, MESSAGE, SUBSCRIBE, INFO
        User-Agent: PolycomSoundPointIP SPIP_550 UA 3.3.2.0413
        Content-Length: 0

Этот пакет от бота, потому что я НЕ отправляю пакеты на свой сервер.

Обратите внимание, что единственная цель этого сервера — понять, как работают боты, и увидеть, как они атакуют мой сервер. Я не использую эту АТС; следовательно, любой запрос, поступающий на этот сервер, должен исходить от вредоносного бота. Каждый раз, когда я получаю UDP-пакет, отправленный на порт 5060, я блокирую этот IP-адрес.

Теперь мой вопрос:

Я работаю на этом сервере уже месяц, и каждую минуту или около того я все еще получаю атаки. Я заблокировал более 15 000 IP-адресов! Сколько ботов в интернете? Они меняют свой исходный IP-адрес, и поэтому они продолжают достигать моего сервера? Если они могут изменить свой исходный IP-адрес, это потому, что я использую протокол UDP? Должен ли я использовать TCP вместо UDP для решения этой проблемы?

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

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

№ заказа

1 ответ
1

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

Что я сделал для решения проблемы, так это понял, как работает iptables. Мои правила выглядят так:

~# iptables -L -n
Chain INPUT (policy ACCEPT)
target     prot opt source        destination
DROP       all  --  0.0.0.0/0     0.0.0.0/0       match-set MyBlackList src
ACCEPT     all  --  0.0.0.0/0     0.0.0.0/0       match-set MyWhiteList src
ACCEPT     tcp  --  0.0.0.0/0     0.0.0.0/0       tcp dpt:5060
DROP       udp  --  0.0.0.0/0     0.0.0.0/0       multiport dports 1:65535
DROP       tcp  --  0.0.0.0/0     0.0.0.0/0       multiport dports 1:65535

Chain FORWARD (policy ACCEPT)
target     prot opt source        destination

Chain OUTPUT (policy ACCEPT)
target     prot opt source        destination

С этими правилами я изначально разрешаю подключения только к порту 5060 только через TCP.

Если телефон попытается неправильно подключиться к этому порту, IP-адрес будет добавлен в MyBlackList. В этом случае злоумышленник не сможет делать дальнейшие запросы.

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

После использования этого подхода я редко получаю атаки. Теперь у меня заблокировано только 10 ips вместо тысяч.

№ заказа

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *