Порт стучит
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В сетях компьютерных выбивание портов — это метод внешнего открытия портов на брандмауэре путем генерации попытки подключения к набору заранее определенных закрытых портов. Как только получена правильная последовательность попыток подключения, правила брандмауэра динамически изменяются, чтобы разрешить хосту, отправившему попытки подключения, подключаться через определенные порты. Существует вариант, называемый авторизацией по одному пакету (SPA), где требуется только один «стук», состоящий из зашифрованного пакета . [1] [2] [3] [4]
Основная цель перехвата портов — не дать злоумышленнику сканировать систему на предмет потенциально уязвимых служб путем сканирования портов , поскольку, если злоумышленник не отправит правильную последовательность перехвата портов, защищенные порты будут выглядеть закрытыми.
Обзор
[ редактировать ]Переключение портов обычно реализуется путем настройки демона на просмотр файла журнала брандмауэра на предмет попыток подключения к определенным точкам и последующего изменения конфигурации брандмауэра соответствующим образом. [5] Это также можно выполнить на уровне ядра (используя фильтр пакетов уровня ядра, например iptables [6] ) или процессом пользовательского пространства, проверяющим пакеты на более высоком уровне (с использованием интерфейсов захвата пакетов, таких как pcap ), что позволяет использовать уже «открытые» TCP-порты в рамках последовательности стуков.
Сам «стук» порта похож на секретное рукопожатие и может состоять из любого количества пакетов TCP , UDP или даже иногда ICMP и других протоколов, направляемых к пронумерованным портам на машине назначения. Сложность проверки может быть любой: от простого упорядоченного списка (например, TCP-порт 1000, TCP-порт 2000, UDP-порт 3000) до сложного, зависящего от времени, зашифрованного хэша на основе IP-адреса источника и других факторов.
Демон portknock на компьютере брандмауэра прослушивает пакеты на определенных портах (либо через журнал брандмауэра, либо путем захвата пакетов). Пользователь клиента будет иметь дополнительную утилиту, которая может быть такой простой, как netcat или модифицированная программа ping, или столь же сложную, как полный генератор хэшей, и использовать ее, прежде чем он попытается подключиться к машине обычным способом.
Большинство portknocks являются системами с отслеживанием состояния: если первая часть «knock» была получена успешно, неправильная вторая часть не позволит удаленному пользователю продолжить работу и, по сути, не даст удаленному пользователю понятия о том, как далеко он прошел. последовательность они потерпели неудачу. Обычно единственным признаком неисправности является то, что в конце последовательности ударов порт, который, как ожидается, должен быть открыт, не открывается. Никакие пакеты не отправляются удаленному пользователю в любое время.
Хотя этот метод защиты доступа к удаленным сетевым демонам не получил широкого распространения в сообществе безопасности, он активно использовался во многих руткитах еще до 2000 года. [ нужна ссылка ]
Преимущества
[ редактировать ]Чтобы обойти защиту от блокировки портов, требуются крупномасштабные атаки методом перебора, позволяющие обнаружить даже простые последовательности. Анонимная атака методом перебора на последовательность TCP из трех ударов (например, порт 1000, 2000, 3000) потребует от злоумышленника проверить каждую комбинацию трех портов в диапазоне 1–65535, а затем сканировать каждый порт между атаками, чтобы обнаружить любые изменения в порте. доступ в целевой системе. Поскольку сбивание порта по определению учитывает состояние, запрошенный порт не откроется до тех пор, пока не будет получена правильная последовательность номеров из трех портов в правильном порядке и без получения каких-либо других промежуточных пакетов от источника. В среднем сценарии требуется примерно 141 трлн (65535 3 / 2) пакеты для определения правильного трехпортового номера. Этот метод в сочетании с ограничением попыток взлома, более длинными или более сложными последовательностями и криптографическими хэшами делает успешные попытки доступа к порту чрезвычайно трудными.
предоставлена успешная последовательность стуков порта После того, как для открытия порта , правила брандмауэра обычно открывают порт только для того IP-адреса , который предоставил правильный стук, добавляя динамическую функциональность поведению брандмауэра. Вместо использования предварительно настроенного статического белого списка IP-адресов на брандмауэре авторизованный пользователь, находящийся в любой точке мира, сможет открыть любой необходимый порт без помощи администратора сервера. Систему также можно настроить так, чтобы позволить аутентифицированному пользователю вручную закрывать порт после завершения сеанса или автоматически закрывать его с использованием механизма тайм-аута. Чтобы установить новый сеанс, удаленному пользователю потребуется пройти повторную аутентификацию, используя правильную последовательность.
Поведение перехвата порта с отслеживанием состояния позволяет нескольким пользователям с разных исходных IP-адресов одновременно находиться на разных уровнях аутентификации перехвата порта, что позволяет законному пользователю с правильной последовательностью перехвата пройти через брандмауэр, в то время как сам брандмауэр находится в середине атаки порта со стороны несколько IP-адресов (при условии, что полоса пропускания брандмауэра не используется полностью). С любого другого атакующего IP-адреса порты брандмауэра по-прежнему будут закрыты.
Использование криптографических хэшей внутри последовательности выбивания порта защищает от перехвата пакетов между исходным и целевым компьютерами, предотвращая обнаружение последовательности выбивания порта или использование информации для создания атак воспроизведения трафика для повторения предыдущих последовательностей выбивания порта.
Выбивание портов используется как часть стратегии глубокоэшелонированной защиты. Даже если злоумышленнику удастся успешно получить доступ к порту, другие механизмы безопасности порта все равно будут действовать, а также механизмы аутентификации назначенных служб на открытых портах.
Реализация этого метода проста: используется как минимум сценарий оболочки на сервере и пакетный файл Windows или утилита командной строки на клиенте. Накладные расходы как на сервере, так и на клиенте с точки зрения трафика, потребления ЦП и памяти минимальны. Демоны блокировки портов не сложны в кодировании и требуют небольшой нагрузки на аудит.
Система перебора портов, реализованная в службах с аутентификацией по паролю, таких как SSH, позволяет обойти проблему подбора пароля при входе в систему. В случае SSH демон SSH не активируется без правильного стука порта, и атака фильтруется стеком TCP/IP, а не использованием ресурсов аутентификации SSH. Для злоумышленника демон недоступен до тех пор, пока не будет предоставлен правильный сигнал порта.
Соображения безопасности
[ редактировать ]Удаление портов — это гибкая, настраиваемая системная надстройка. Если администратор решит связать последовательность стуков с таким действием, как запуск сценария оболочки, в сценарий можно легко включить другие изменения, такие как внедрение дополнительных правил брандмауэра для открытия портов для определенных IP-адресов. Одновременные сеансы легко организовать.
Используя такие стратегии, как динамическая длина и пул длин, вероятность взлома последовательностей сбоев можно свести практически к нулю. [7]
Помимо смягчения последствий подбора паролей и неизбежного роста журналов, связанных с демоном процесса, перебор портов также защищает от использования уязвимостей протокола. Если обнаружен эксплойт, который может скомпрометировать демон в его конфигурации по умолчанию, использование перехвата порта прослушивания снижает вероятность компрометации до тех пор, пока программное обеспечение или процесс не будут обновлены. Авторизованные пользователи будут продолжать обслуживаться после того, как они предоставят правильную последовательность действий, тогда как попытки произвольного доступа будут игнорироваться.
Переключение портов следует рассматривать только как часть общей стратегии защиты сети, обеспечивающей защиту от случайных и целенаправленных атак, а не как полноценное автономное решение.
В прошлом специалисты по сетевой безопасности в значительной степени игнорировали переключение портов как решение, поскольку ранние реализации полагались исключительно на обеспечение правильных комбинаций портов для достижения доступа. Современные системы выбивания портов включают в себя такие функции, как безопасные криптографические хэши, черные и белые списки , а также динамические ответы на атаки, что еще больше увеличивает возможности системы. Удаление портов — это эффективный способ максимизировать ресурсы сервера в сетях с выходом в Интернет. [ нужна ссылка ]
Правильно реализованная блокировка портов не снижает общую безопасность системы. Это эффективная мера, обеспечивающая дополнительный уровень безопасности с минимальными затратами ресурсов сервера. В худшем случае такие системы, как перехват портов, создают новые проблемы безопасности из-за плохой реализации или обнажают двойственное отношение администрации через такие ситуации, как компенсация риска . [ нужна ссылка ]
Недостатки
[ редактировать ]Переключение портов полностью зависит от надежности демона перенаправления портов. Сбой демона приведет к запрету доступа к порту всем пользователям, и с точки зрения удобства использования и безопасности это нежелательная единственная точка отказа . Современные реализации блокировки портов смягчают эту проблему, предоставляя демон мониторинга процессов, который перезапускает неисправный или остановившийся процесс демона блокировки портов.
Системы, не использующие криптографические хэши, уязвимы для атак с подменой IP-адреса . Эти атаки, форма отказа в обслуживании , используют функцию перехвата портов для блокировки известных IP-адресов (например, станций управления администратором) путем отправки пакетов с поддельным IP-адресом на случайные порты. Серверы, использующие статическую адресацию, особенно уязвимы для подобных отказов в обслуживании, поскольку их адреса хорошо известны.
Переключение портов может быть проблематичным в сетях с высокой задержкой. Удаление портов зависит от того, прибывают ли пакеты в правильной последовательности для доступа к предусмотренным функциям. TCP/IP, с другой стороны, предназначен для объединения неупорядоченных пакетов в связное сообщение. В таких ситуациях единственным решением для клиента является продолжение периодической повторной отправки правильной последовательности пакетов до тех пор, пока последовательность не будет подтверждена сервером.
Перенаправление портов не может использоваться в качестве единственного механизма аутентификации для сервера. С точки зрения безопасности, простое переключение портов основано на безопасности за счет скрытности ; непреднамеренная публикация последовательности стуков приведет к компрометации всех устройств, поддерживающих эту последовательность. Более того, перехват незашифрованных портов уязвим для перехвата пакетов. Сетевая трассировка подходящей длины может обнаружить правильную последовательность стуков с одного IP-адреса и, таким образом, обеспечить механизм несанкционированного доступа к серверу и, как следствие, к подключенной сети. После компрометации файлы журналов на устройстве становятся источником других действительных последовательностей сбоев, выявляя еще одну точку сбоя. Такие решения, как рассмотрение каждой последовательности стуков как одноразового пароля, противоречат цели упрощения администрирования. перехват портов должен сочетаться с другими формами аутентификации, которые не уязвимы для повторных атак или атак типа «человек посередине» На практике для того, чтобы вся система была эффективной, .
Ссылки
[ редактировать ]- ^ Майкл Раш (2004) Сочетание стука портов и пассивной идентификации ОС с помощью fwknop
- ^ Майкл Раш (2006). Авторизация одного пакета с помощью Fwknop .
- ^ Майкл Раш (2007). Защита SSH-серверов с помощью авторизации одного пакета .
- ^ Мокси Марлинспайк (2009). Использование «knockknock» для авторизации одного пакета .
- ^ «PortKnocking — Wiki-помощь сообщества» . help.ubuntu.com . Проверено 8 июля 2023 г.
- ^ Джастин Эллингвуд (17 января 2014 г.). «Как настроить перекрытие портов, используя только Iptables на Ubuntu VPS» . digitalocean.com . Проверено 24 апреля 2016 г.
- ^ Шираз, Мухаммед; Боруманд, Лалех; Гани, Абдулла; Хан, Сулеман (29 октября 2019 г.). «Улучшенная платформа аутентификации с перехватом портов для мобильных облачных вычислений» . Малайзийский журнал компьютерных наук . 32 (4): 269–283. дои : 10.22452/mjcs.vol32no4.2 . ISSN 0127-9084 .
Внешние ссылки
[ редактировать ]- SilentKnock: практичная, необнаружимая аутентификация
- Магистерская диссертация Себастьяна Жанкье «Анализ перехвата портов и авторизации отдельных пакетов»
- «Реализация системы стука портов на языке C» — дипломная работа Мэтта Дойла.
- Список ресурсов о PK и SPA (статьи, реализации, презентации...)
- PortKnocking — система скрытой аутентификации через закрытые порты. (в архиве)
- Linux Journal: стук в порты (2003)
- Критика стука в порт (2004)
- fwknop: реализация, сочетающая в себе переключение портов и пассивный сбор отпечатков пальцев ОС.
- WebKnock: онлайн-клиент для прослушивания портов и авторизации отдельных пакетов (SPA) на основе fwknop.
- webknocking: использование веб-страниц вместо портов.
- Обращение к порту, чтобы скрыть бэкдор. Обращение к порту, чтобы скрыть канал связи для вредоносного ПО, пример из дикой природы
- Методы облегченного сокрытия и аутентификации в IP-сетях (2002 г.)