Проблемы безопасности приложений: насколько легко подделать IP-адрес? - PullRequest
4 голосов
/ 21 мая 2011

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

Это немного деликатно, и было бы очень сложно представить другоеуровень аутентификации / защиты.

Мое понимание работы с сетью невелико, потому что это не моя тема, но в своей голове я придумал следующий сценарий:

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

  • Таким образом, он изменяет заголовок своегоIP-пакеты, для которых в качестве передатчика используется IP-адрес веб-сервера.

Что будет дальше?

  • A: Его провайдер отвергаетпакет и говорит: «Эй, это не тот IP-адрес, который вы мне присвоили».- Проблема решена

  • B: Интернет-провайдер передает пакет на следующий уровень (его восходящий канал ...)

ПредположимИнтернет-провайдер скомпрометирован или пакет передан без проверки (я не знаю, так ли это)

Что будет дальше?

  • A: Перевозчик отклоняет пакет и говорит: «Эй, этот IP не находится в диапазоне IP, на котором мы договорились, что вы работаете!»- Теперь, если мой веб-сервер не управляется тем же Интернет-провайдером, на который скомпрометирован мой злоумышленник - Проблема решена

  • B: Интернет-провайдер не проверяет пакет или не скомпрометирован и пересылает его своемуlink.

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

Итак, скажу прямо: злоумышленник, который хочет подделать мой IP-адрес, должен скомпрометировать ОЧЕНЬ того же интернет-провайдера, который отвечает за диапазон IP, в котором работает мой веб-сервер -или этот провайдер не выполняет проверку пакетов.

  • Это правильно?

Хорошо, теперь я представляю, что мой сервер находится в офисе, а его провайдер является региональной кабельной компанией..

Какие шаги необходимо предпринять для отправки пакетов с моего IP-адреса на другой IP-адрес в Интернете?

(Конечно, я только прошу узнать о рисках и выбрать правильную защиту!)

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

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

Я говорюо сегодняшних стандартах в кабельном интернете.

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

Я помнючто NFS-серверы полагаются только на IP-аутентификацию по умолчанию.Потому что это довольно часто - есть ли примеры, когда NFS-серверы были взломаны фальшивыми IP-адресами?

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

В целом, я благодарен за любые комментарии и ваши личные мысли по этому вопросу!

Ответы [ 2 ]

6 голосов
/ 24 мая 2011

Теперь я совершенно уверен, что IP-адреса проверяются и фильтруются при прохождении маршрутизатора.

Это предположение неверно, несмотря на ваш уровень уверенности. «Выходная фильтрация», которая так называется, обычно не выполнено.

Основная защита от широко распространенной подделки IP-адресов заключается в том, что злоумышленник не получит никаких ответных пакетов - все они будут перенаправлены обратно на хост, который законно использует подделываемый IP-адрес. Этот вид атаки известен как «слепая подмена», потому что атакующий работает вслепую.

Чтобы отправить данные по TCP-соединению, вы должны быть в состоянии завершить TCP «трехстороннее рукопожатие». Это требует знания начального порядкового номера, используемого противоположным концом - и поскольку начальные порядковые номера TCP выбираются разумно случайным образом 1 , это не позволяет атаке с использованием слепого спуфинга сделать это. (Также обратите внимание, что это не применимо к UDP - без какого-либо превентивного прикладного уровня, UDP подвергается значительному риску слепой подмены).

Если злоумышленник может видеть, что ответы возвращаются (скажем, потому что он перехватывает восходящую линию связи или локальную сеть вашего сервера), то это также не относится - подделка TCP-соединений в этом случае не только возможна, но и тривиальна .


1. Во всяком случае, в наши дни - это не всегда так.

1 голос
/ 21 мая 2011

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


Я не думаю, что IP-адрес проверяется.Таким образом, вы можете отправлять UDP-пакеты с поддельным IP-адресом отправителя.Но вы не получите ответ, поскольку сервер отправит его реальному владельцу этого IP-адреса.

Это означает, что вы не можете просто подделать IP-адрес в TCP, поскольку для установления соединения требуется рукопожатие.


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


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

...