Стук порта - Port knocking

В компьютерная сеть, стук порта метод внешнего открытия порты на брандмауэр путем создания попытки подключения к набору заранее определенных закрытых портов. После получения правильной последовательности попыток подключения правила брандмауэра динамически изменяются, чтобы разрешить хосту, который отправил соединение, попытаться подключиться через определенный порт (порты). Вариант под названием авторизация одного пакета (SPA), где требуется только один "стук", состоящий из зашифрованный пакет.[1][2][3][4]

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

Обзор

Блокировка порта обычно реализуется путем настройки демон чтобы просмотреть файл журнала брандмауэра на предмет попыток подключения к определенным точкам, а затем соответствующим образом изменить конфигурацию брандмауэра. Это также может быть выполнено на уровне ядра (используя фильтр пакетов уровня ядра, такой как iptables[5]) или с помощью процесса пользовательского пространства, исследующего пакеты на более высоком уровне (с использованием интерфейсов захвата пакетов, таких как pcap ), позволяя использовать уже "открытые" TCP-порты в последовательности стука.

Сам по себе "стук" порта аналогичен секретному рукопожатию и может состоять из любого количества TCP, UDP или даже иногда ICMP и другие пакеты протокола к пронумерованным портам на машине назначения. Сложность стука может быть любой, от простого упорядоченного списка (например, TCP-порт 1000, TCP-порт 2000, UDP-порт 3000) до сложного зависящего от времени, на основе IP-адреса источника и на основе других факторов зашифрованного хеша.

Демон portknock на машине с брандмауэром прослушивает пакеты на определенных портах (либо через журнал брандмауэра, либо путем захвата пакетов). Пользователь-клиент будет иметь дополнительную утилиту, которая может быть такой же простой, как netcat или модифицированная программа ping, или такая сложная, как полный хеш-генератор, и использовать ее до того, как они попытаются подключиться к машине обычным способом.

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

Хотя этот метод защиты доступа к удаленным сетевым демонам не получил широкого распространения в сообществе безопасности, он активно использовался во многих руткиты еще до 2000 года.

Преимущества

Снятие защиты от детонации порта требует крупномасштабных атак грубой силы для обнаружения даже простых последовательностей. Анонимная атака грубой силой против трех ударов TCP Последовательность действий (например, порт 1000, 2000, 3000) потребует от злоумышленника проверки каждой комбинации из трех портов в диапазоне 1–65535, а затем сканирования каждого порта между атаками, чтобы выявить любые изменения в доступе к портам в целевой системе. Поскольку детонация порта по определению имеет состояние, запрошенный порт не будет открыт до тех пор, пока правильная последовательность номеров из трех портов не будет получена в правильном порядке и без получения каких-либо других промежуточных пакетов от источника. В средний случай сценарий требует примерно 141 триллион (655353 / 2) пакетов для определения правильного трехпортового номера. Этот метод в сочетании с ограничением попыток детонации, более длинными или более сложными последовательностями и криптографическими хэшами чрезвычайно затрудняет успешные попытки доступа к портам.

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

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

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

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

Осуществить эту технику очень просто, нужно как минимум сценарий оболочки на сервере и пакетный файл Windows или утилита командной строки на клиенте. Накладные расходы как на сервере, так и на клиенте с точки зрения трафика, ЦПУ а потребление памяти минимально. Демоны блокировки портов несложно кодировать; любой тип уязвимости в коде очевиден и поддается проверке.

Система блокировки портов, реализованная на таких портах, как SSH, позволяет обойти проблему грубая сила парольные атаки на логины. В случае SSH SSH демон не активируется без правильного стука порта, и атака фильтруется TCP / IP стек вместо использования ресурсов аутентификации SSH. Для атакующего демон недоступен до тех пор, пока не будет задан правильный порт.

Соображения безопасности

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

Использование таких стратегий, как динамическая длина и пул длины, может снизить вероятность взлома последовательностей детонации почти до нуля.[6]

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

Блокирование портов следует рассматривать только как часть общей стратегии защиты сети, обеспечивающей защиту от случайных и целенаправленных атак, а не как полное автономное решение.

Сетевая безопасность В прошлом профессионалы в значительной степени игнорировали блокировку портов как решение, поскольку ранние реализации полагались исключительно на предоставление правильных комбинаций портов для достижения доступа. Современные системы блокировки портов включают в себя такие функции, как безопасные криптографические хэши, черные списки, белые списки и динамические ответы на атаки для дальнейшего увеличения возможностей системы. Блокировка портов - эффективное средство максимального увеличения ресурсов сервера в сетях с выходом в Интернет.[нужна цитата ]

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

Недостатки

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

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

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

Блокирование портов не может использоваться в качестве единственного механизма аутентификации для сервера. С точки зрения безопасности, простое постукивание портов зависит от безопасность через безвестность; непреднамеренная публикация последовательности детонации предполагает компрометацию всех устройств, поддерживающих последовательность. Более того, незашифрованный порт уязвим для перехвата пакетов. Сетевая трассировка подходящей длины может определять правильную последовательность детонации с одного IP-адреса и, таким образом, обеспечивать механизм несанкционированного доступа к серверу и, соответственно, к присоединенной сети. После взлома файлы журналов на устройстве становятся источником других допустимых последовательностей детонации, обнаруживая еще одну точку отказа. Такие решения, как обработка каждой последовательности детонации как одноразовый пароль победить цель упрощенного администрирования. На практике блокирование портов необходимо сочетать с другими формами аутентификации, которые не уязвимы для переиграть или же человек посередине атаки, чтобы вся система была эффективной.

Рекомендации

  1. ^ Майкл Рэш (2004) Сочетание блокировки портов и пассивного снятия отпечатков пальцев с fwknop
  2. ^ Майкл Рэш (2006). Авторизация одиночного пакета с помощью Fwknop.
  3. ^ Майкл Рэш (2007). Защита серверов SSH с помощью авторизации отдельных пакетов.
  4. ^ Мокси Марлинспайк (2009). Использование knockknock для авторизации одиночного пакета.
  5. ^ Джастин Эллингвуд (17 января 2014 г.). «Как настроить блокировку портов, используя только Iptables на Ubuntu VPS». digitalocean.com. Получено 2016-04-24.
  6. ^ Шираз, Мухаммед; Боруманд, Лалех; Гани, Абдулла; Хан, Сулеман (2019-10-29). «Улучшенная структура аутентификации с обнаружением портов для мобильных облачных вычислений». Малазийский журнал компьютерных наук. 32 (4): 269–283. Дои:10.22452 / mjcs.vol32no4.2. ISSN  0127-9084.

внешняя ссылка