Идентификация поддельного UDP-пакета

#networking #tcp #udp #spoofing

#сеть #tcp #udp #подмена

Вопрос:

Я хочу идентифицировать UDP или TCP-пакет, исходный IP-адрес которого подделан. Я предполагаю, что даже если пакет подделан с помощью программы, такой как hping, MAC-адрес src остается тем же самым во всех поддельных пакетах, это правильно?

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

Спасибо.

Ответ №1:

MAC-адреса тоже могут быть подделаны.

С TCP это легко идентифицировать / обработать. Вы ответите на поддельный SYN-пакет SYN-ACK. Если бы это был настоящий клиент, он ответил бы подтверждением для завершения рукопожатия. Единственное предостережение заключается в том, что вам придется реализовать syn-cookies, чтобы вы не создавали состояние и не расходовали ресурсы в ожидании подтверждения.

С UDP нет способа узнать, поскольку протокол не поддерживает подключение. Если вы отправляете ответ на поддельный пакет, вам не гарантируется ответ от «реального» клиента. Таким образом, нет способа идентифицировать поддельный пакет.

Ответ №2:

На мой взгляд, UDP и TCP не имеют к этому никакого отношения. Вы говорите только об уровне 2 (MAC) и уровне 3 (IP). Даже в этом случае у вас нет способа узнать, потому что MAC-адрес источника должен быть адресом ближайшего маршрутизатора к получателю (при условии, что пакет не был отправлен в вашей подсети). Таким образом, вы должны видеть один и тот же MAC-адрес для большинства всех входящих пакетов (опять же, только для интернет-трафика).

Теперь есть инструменты профилирования, такие как p0f, которые работают с сигнатурами пакетов, и вы могли бы попробовать выполнить некоторые эвристические вычисления на основе этой информации, но ничего конкретного определить не удалось.

Комментарии:

1. Да, это наверняка уровень IP, но не могли бы вы рассказать мне, как такие инструменты профилируют данные для идентификации? Возможно, проверить количество пакетов и посмотреть, сколько источников и проверить соотношение между количеством адресов источников по сравнению с пакетами?

Ответ №3:

Из пакета вы можете получить MAC-адрес ближайшего узла. Да, вы можете отправить подтверждающий пакет на поддельный адрес источника (IP), а затем использовать команду Traceroute, чтобы узнать путь к исходному пакету, чтобы вы могли, по крайней мере, найти местоположение исходного. Это хорошо работает в TCP, и вы также можете получить подтверждение.