Вопрос: Являются ли IP-адреса «тривиальными для подделывания»?


Я читал некоторые из заметок о Новая публичная служба DNS Google:

Я заметил в разделе безопасности этот параграф:

До тех пор, пока стандартное общесистемное решение для уязвимостей DNS не будет реализовано повсеместно, например, протокол DNSSEC2, открытые DNS-резольверы должны самостоятельно принять некоторые меры для смягчения известных угроз. Было предложено много методов; видеть IETF RFC 4542: меры для повышения устойчивости DNS к поддельным ответам для обзора большинства из них. В Google Public DNS мы внедрили и рекомендуем следующие подходы:

  • Перераспределение ресурсов машины для защиты от прямых DoS-атак на самих преобразователей. Поскольку IP-адреса тривиальны для хакеров для подделки, невозможно заблокировать запросы на основе IP-адреса или подсети; единственный эффективный способ справиться с такими атаками - просто поглотить нагрузку.

Это удручающая реализация; даже при переполнении стека / сбое сервера / суперпользователя мы часто используем IP-адреса в качестве основы для запретов и блоков всех видов.

Думать, что «талантливый» злоумышленник может тривиально использовать любой желаемый IP-адрес и синтезировать столько уникальных фальшивых IP-адресов, сколько они хотят, действительно страшно!

Итак, мой вопрос (ы):

  • Действительно ли это что легко для злоумышленника подделать IP-адрес в дикой природе?
  • Если да, то какие смягчения возможны?

61
2017-12-03 17:53


Источник


Поддельные IP-адреса не должны быть проблемой для запретов на основе IP, поскольку конечной целью является получение доступа, который требует законных ответов. Но некоторые из самых больших рисков: IP, которыми пользуются многие люди (школы, рабочие места, интернет-кафе и т. Д.) И IP-адреса, которые могут измениться на все, как после сброса модема на нестатические DSL. - Halil Özgür
Получение доступа не является основной целью для многих атак с использованием поддельных адресов. Я подозреваю, что различные атаки на усиление с использованием DNS чаще. DNS прекрасен (с DNSSEC хуже) - вы можете отправить небольшой пакет <100 байт с поддельным адресом источника, что приведет к тому, что поддельный адрес получит усиление от 7x до 40x в качестве ответа. - Michael Graff


Ответы:


Как заявлено многими другими, заголовки IP тривиальны для подделывания, если не нужно получать ответ. Вот почему он чаще всего встречается с UDP, поскольку TCP требует трехстороннего рукопожатия. Одним из примечательных исключений является Наводнение SYN, который использует TCP и пытается связать ресурсы на принимающем хосте; опять же, поскольку ответы отбрасываются, адрес источника не имеет значения.

Особенно неприятным побочным эффектом способности злоумышленников обманывать исходные адреса является обратное рассеяние атака. Отличное описание Вот, но вкратце, это инверсия традиционной DDoS-атаки:

  1. Получите контроль над ботнетом.
  2. Настройте все свои узлы, чтобы использовать тот же IP-адрес источника для вредоносных пакетов. Этот IP-адрес станет вашей потенциальной жертвой.
  3. Отправлять пакеты со всех ваших контролируемых узлов на различные адреса в Интернете, настраивать таргетинг на порты, которые обычно не открыты, или подключение к действительным портам (TCP / 80), претендующим на участие в уже существующей транзакции.

В любом из случаев, упомянутых в (3), многие хосты будут реагировать на недопустимый ICMP или сброс TCP, предназначенный для адрес источника вредоносного пакета, У злоумышленника теперь есть потенциально тысячи бескомпромиссных машин в сети, выполняющих DDoS-атаку на его / ее выбранную жертву, используя весь поддельный IP-адрес источника.

Что касается смягчения последствий, этот риск действительно таков, что могут обратиться только к интернет-провайдерам (и особенно к интернет-провайдерам, предоставляющим доступ клиентов, а не к транзиту). Это два основных способа:

  1. Фильтрация входных данных - обеспечение доставки пакетов в вашу сеть осуществляется из диапазонов адресов, которые находятся на другой стороне входящего интерфейса. Многие поставщики маршрутизаторов реализуют такие функции, как переадресация обратного пути одноадресной передачи, которые используют таблицы маршрутизации и пересылки маршрутизатора, чтобы убедиться, что следующий переход исходного адреса входящего пакета является входящим интерфейсом. Это лучше всего выполняется на первом слое 3-го прыжка в сети (т. Е. Ваш шлюз по умолчанию).

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

Оба эти метода наиболее эффективны и легко реализуются, когда это делается в сетях «edge» или «access», где клиенты взаимодействуют с поставщиком. Реализация фильтрации входа / выхода выше уровня доступа становится более сложной из-за сложностей множественных путей и асимметричной маршрутизации.

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


49
2017-12-04 01:57



Звучит противно. Так может ли быть что-нибудь, что мог бы сделать администратор, если бы нашел, что его сервер будет нацелен так? Возможно ли временно заблокировать ICMP-пакеты и сообщения сброса TCP со всех IP-адресов? Могли бы вы работать в каком-то полуестественном виде? - UpTheCreek


Это действительно так легко для злоумышленника   выстроить IP-адрес в дикой природе?

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

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

Запрет людей по IP-адресу умеренно эффективен на SF / SO / SU, поскольку сайт использует http / https, который требует двухсторонней связи.


46
2017-12-03 17:59



http (s) является ключевым здесь. DNS использует UDP, поэтому вся связь осуществляется через отдельные пакеты без подтверждения в протоколе. - noah
Угадай, как электронная почта. Вы можете отправить любой адрес, который вы хотите, если вы не хотите получать ответы - Jorge Bernal
@Jorge: Определенно. Аналогия электронной почты и почтовой почты является отличной для объяснения этого конечным пользователям. - Evan Anderson
В DNS также может использоваться TCP, но в настоящее время это пугает людей. Однако нет встроенного ACK, потому что ответ ACK. - Michael Graff
@noah - на самом деле TCP это ключ, а не HTTP. TCP не невозможно подделать, но он в 100 раз сложнее UDP. - Alnitak


Маленькое доказательство концепции ответа Zordeche (с ubuntu):

$ sudo apt-get install hping3
$ sudo hping3 -1 --spoof 11.10.10.20 www.google.com
HPING www.google.com (eth0 64.233.169.105): icmp mode set, 28 headers + 0 data bytes

Затем в другой консоли:

$ sudo tcpdump -i eth0 'icmp'
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
13:30:19.439737 IP 11.10.10.20 > yo-in-f105.1e100.net: ICMP echo request, id 31297, seq 0, length 8

Так что да, тривиально, но тогда вы не получите ответы, как упоминалось ранее, если у вас нет доступа к 11.10.10.20 или нет сниффера где-то между www.google.com и 11.10.10.20 (И это должно быть прямо перед собой любого конца, поскольку вы не можете предсказать маршрут пакетов). Кроме того, шлюз спутника (ISP) может не допустить, чтобы этот пакет вышел из двери, если у них есть какая-то проверка ip-кода, и посмотрите, что источник плохо пахнет.


22
2017-12-03 18:28



Но интернет-провайдеры обычно не утруждают себя проверкой пакетов? - Pacerier


IP-адреса легко поддаются однонаправленному UDP трафик. Для TCP-пакетов вы можете только подделывать, чтобы получить полуоткрытые TCP-соединения с SYN-пакетами. Это и есть основа атаки DOS. Но вы не можете подделать HTTP-соединение с поддельным адресом (например, если вы фильтруете сеансы для использования одного и того же IP-адреса). Хотя да, вы можете обманывать IP-адрес в пакетах, это полезно только для определенных видов атак типа «отказ в обслуживании».


13
2017-12-03 18:24



Вы имеете в виду, что это жесткий создать соединение HTTP с поддельным адресом или что его даже не возможное сделать это? - Pacerier
В открытом интернет это невозможно. Есть некоторые трюки, если вы находитесь в той же локальной сети, которая может обмануть другой компьютер для отправки трафика вам (web.eecs.umich.edu/~zhiyunq/pub/...). Вы можете думать об этом так. UDP походит на отправку открытки. Вы можете написать любое имя на обратном адресе, который вы хотите. TCP - это как беседа, где, если вы не поместите правильный адрес возврата, вы не сможете продолжить разговор. Некоторые из других ответов здесь объясняют это намного лучше. - FryGuy


Статья GOOG явно обсуждала DNS. DNS использует как UDP, так и TCP-пакеты. UDP можно подделать, но не TCP. TCP требует 3-стороннее рукопожатие, Если IP-адрес для TCP-пакета подделан, то ковочный компьютер не получит ответ, и соединение не будет выполнено. UDP, как упоминалось в других ответах, является «огнем и забыть» и не требует ответа на ответ. По этой причине атаки DoS приходят почти исключительно в виде пакетов UDP.

В контексте переполнения стека и семейных сайтов вопрос, поднятый Takaun Daikon, очень важен. Существует много способов получить новый IP-адрес от своего интернет-провайдера. Изменение MAC-адреса, безусловно, является самым простым и работает для многих интернет-провайдеров. Кроме того, многие люди, которые до безумия могут использовать публичный прокси или TOR. Очевидно, что блокирование IP-адреса отправления для этих пакетов просто блокирует узел прокси-сервера или терминального узла.

Таким образом, блокировка IP-адресов действительна? Черт, да. Но у вас будут ошибки. Вы заблокируете некоторые IP-адреса, которые на самом деле не являются источником проблемы (например, прокси), и вы также сможете избежать блокирования ваших блоков путем изменения IP-адресов. Человек, которому пока не повезло получить запрещенный IP-адрес, не сможет получить доступ к семейству SO-сайтов. Но ошибка ставка должен быть небольшим. Если вы не блокируете огромные наборы IP-адресов. Но если вы блокируете один или два дня, вы должны быть в порядке.

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


11
2017-12-03 18:20



Вы можете быть подделаны. Просто посмотрите на захват TCP-сессий. google.com/search?q=hijack+tcp+session - Dan
Если злоумышленник не имеет доступа к потоку трафика для начала, атаки TCP с использованием современных операционных систем довольно непрактичны. Если они все равно в середине, то, вероятно, даже не нужно будет угон TCP-соединения. - Evan Anderson


IP-спуфинг будет продолжаться, потому что интернет-провайдеры ленивы.

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

Если я подделываю несколько адресов здесь и там, это ничего не стоит моему провайдеру. Если каждый пользователь моего интернет-провайдера подделывает один пакет между 1:00 и 2:00, он все равно вряд ли будет близок к радару. Однако, когда ботнет отправляет много поддельных пакетов со многих хостов на многих интернет-провайдерах, целевой компьютер или сеть падает.

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

UDP и ICMP проще всего подделать, но TCP также возможен. Для этого требуется небезопасная удаленная ОС, которая использует предсказуемые порядковые номера для использования. Иногда это машины балансировки нагрузки, которые изменяют порядковые номера и делают их предсказуемыми. Таким образом, TCP возможен, но сложнее.

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

DNSSEC делает это еще хуже, с UDP-пакетами, размер которых может достигать 4k.


9
2017-12-03 20:00





IP-адреса тривиальны для подделки по отношению к атакам DOS на основе DNS (D), поскольку они, как правило, относятся к пакетам UDP с пожаром и забыванием. Для HTTP-трафика это не так, поэтому вам нужно либо находиться в той же локальной сети, что и веб-сервер (вполне возможно, конечно, в зависимости от того, где находится ваш сайт), либо управлять промежуточными маршрутизаторами.


6
2017-12-03 18:02





Вы можете отправить письмо кому угодно, и если вы не поместите обратный адрес на конверте (или не ошиблись), они могут нанять все фильтры нежелательной почты в мире и не отфильтровывать ваше сообщение без открытия (обработка ) Это.

Однако, если отправитель хочет получить ответ, адрес возврата лучше будет правильным, или для получения правильного адреса должен быть механизм прикладного уровня. Поэтому я могу заставить вас подумать, что вы открываете письмо от Наны, но даже если я обманываю вас содержанием письма, вы не собираетесь посылать Нане чек, сделанный для ДЕНЕЖНЫХ СРЕДСТВ, на какой-то адрес в Нигерии (если Нана не является нигерийской ). Таким образом, вызов / ответ - эффективная защита, если вы не являетесь также человеком в средней части.


6
2017-12-03 18:05





Я могу установить любой исходный IP-адрес, который я хочу в датаграмме.
Будет ли мой интернет-провайдер выпускать такой пакет в дикую природу, это еще один вопрос.


5
2017-12-03 17:58



Есть ли способ обойти фильтр интернет-провайдера? - Pacerier