Как узнать, не вмешивается ли третья сторона в TCP-соединение с сервером?

Как узнать, не вмешивается ли третья сторона в TCP-соединение с сервером?

Я работаю под ненадежным ISP/AS, что-то вроде GFW. Они активно пытаются саботировать сеанс TCP+TLS с помощью атак, таких как отправка SYN RSTна установленные соединения, тайм-аут соединения, вмешательство в рукопожатие и т. д.

Есть ли в сетевом стеке утилита, позволяющая определить, подвергается ли сервер таким атакам на качество обслуживания?

Например, чтобы обнаружить a SYN RSTот кого-то, кроме клиента/сервера, мы можем сравнить tcpdump как клиента, так и сервера, чтобы узнать, пришел ли сигнал от третьей стороны или нет. Мы можем сделать это вручную или написать скрипт. Но есть ли готовые инструменты для этого? Можно ли p0fиспользовать для этого?

решение1

В принципе, дактилоскопия может обнаружить атаку. Но вы могли заметить, что это обычновероятностныйВ этом случае вы не сможете наверняка сказать, является ли отдельный пакет безопасным или он подделан для надежной блокировки.

Лучше посмотреть на поля метаданных, такие как TTL, которые для подлинного пакета, вероятно, будут ниже, чем для поддельного, потому что он прошел через больше маршрутизаторов, каждый из которых уменьшает счетчик. Имеет смысл отбросить пакет, если его TTL значительно отличается от тех, которые наблюдались ранее в соединении. Вероятно, это можно реализовать с помощью правил iptables connmark match/CONNMARK target (запись TTL для новых соединений в метку соединения и проверка последующих пакетов).

Вы, возможно, знаете, что многие интернет-ресурсы в России заблокированы. Технологии блокировки различаются, но одна из них заключается в том, чтобы сделать именно то, о чем вы нам говорите — если устройство ТСПУ (что расшифровывается как «технические средства противодействия угрозам», технические средства противодействия угрозам; по сути это DPI) считает, что соединение должно быть заблокировано, оно может отправить TCP RST. Оно не блокирует (или, по крайней мере, не блокировало) последующие нормальные пакеты, поэтомуеслиу вас были средства обнаружения и устранения RST-пакета, вы можете свободно использовать "заблокированный" ресурс. Существует веб-сайт, посвященный методам обхода цензуры,ntc.вечеринка(Я к этому никак не причастен). В частности, один из активных членов сообщества,ВалдикСС, сделал программное обеспечениепрощайDPIкоторыйбыл в состояниичтобы обойти такую ​​блокировку. Кажется, он также использует упомянутое понимание TTL. Он также перечисляет другое программное обеспечение с похожей функцией.


Также я хочу особо остановиться на вопросе, вынесенном в заголовок.IPsecоборачивает весь пакет IP (включая TCP) или только его полезную нагрузку и аутентифицирует его с помощью электронной подписи, тем самым делая невозможным подделку с использованием описанных вами методов. Вам не нужно шифровать пакет, есть ahзаголовок IPsec, который только добавляет (и проверяет) MAC и в противном случае представляет его в открытом виде. Или вы можете зашифровать с помощью espзаголовка.

К сожалению, на это нельзя положиться при подключении к произвольным «анонимным» сервисам, поскольку для включения IPsec вам необходимо поделиться ключами со стороной.прежнийк использованию технологии.

Связанный контент