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

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

Больше материалов о том, как противостоять угрозам в сфере информационной безопасности и оградить свои системы от атак и взлома — в Security Center.

Используйте навигацию, если не хотите читать текст целиком:

Какие порты опасно открывать
Как быть в курсе актуальных уязвимостей
Чек-лист: что делать при обнаружении открытого порта
Заключение

Какие порты опасно открывать


Открытые порты представляют собой «незапертые двери» к потенциально уязвимым сервисам любой сети. Некоторые порты, изначально предназначенные для конкретных служб, могут быть использованы злоумышленниками для взлома. Например, 21/TCP (FTP), 22/TCP (SSH), 23/TCP (Telnet) и 3389/TCP (RDP) — опасные, так как часто подвергаются атакам подбора паролей и эксплуатации уязвимостей.

Для сбора статистики обратимся к данным поисковика Shodan.

Shodan — это поисковая система, которая индексирует устройства, подключенные к

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


Главная страница Shodan.

По данным Shodan некоторые порты открываются чаще других, что может указывать на потенциальные уязвимости. Рассмотрим топ-10 наиболее «распахнутых» интерфейсов и причины их популярности.

1. Порт 22/TCP (SSH). Используется для защищенного удаленного доступа к серверам. Часто подвержен атакам подбора паролей. Рекомендуется использовать ключи SSH вместо паролей для повышения безопасности.

2. Порт 80/TCP (HTTP). Применяется для доступа к веб-страницам. Может быть атакован с помощью XSS, SQL-инъекций и других уязвимостей веб-приложений. Рекомендуем использовать HTTPS для шифрования данных.

3. Порт 443/TCP (HTTPS). Используется для защищенной передачи данных через интернет. Хоть HTTPS и шифрует данные, уязвимости в SSL/TLS могут позволить злоумышленникам их перехватывать. Поэтому крайне важно поддерживать сертификаты и настройки безопасности в актуальном состоянии.

4. Порт 3389/TCP (RDP). Применяется для доступа к службе удаленных рабочих столов в ОС Windows. Часто становится целью атак из-за слабых паролей и уязвимостей данной системы. Рекомендуем ограничивать доступ по IP и использовать многофакторную аутентификацию.

5. Порт 21/TCP (FTP). Используется для передачи файлов. Отправка данных в открытом виде делает FTP уязвимым для перехвата. Рекомендуем использовать FTPS или SFTP для защиты информации.

6. Порт 3306/TCP (MySQL). Применяется для работы с базами данных MySQL. Неконтролируемый доступ к базе данных может привести к утечкам информации. Рекомендуем ограничить доступ к этому порту до авторизованных пользователей.

7. Порт 23/TCP (Telnet). Используется для удаленного доступа и управления устройствами. Как и FTP, Telnet передает данные в открытом виде. Рекомендуем полностью отказаться от Telnet в пользу SSH.

8. Порт 445/TCP (SMB). Применяется для обмена файлами в сетях Windows. Может быть использован для распространения вредоносного ПО. Рекомендуем отключить SMB, если он не нужен, или использовать актуальные версии протокола.

9. Порт 5432/TCP (PostgreSQL). Используется для доступа к базам данных PostgreSQL. Аналогично MySQL, открытый порт может быть использован для атак. Рекомендуем ограничить доступ и использовать надежные пароли.

10. Порт 5900/TCP (VNC). Применяется для удаленного доступа к графическому интерфейсу. Может быть подвержен атакам из-за слабых паролей. Рекомендуем использовать VPN для защищенного доступа.

Актуальные примеры кибератак


В кибератаках часто хактивисты используют уязвимые порты для доступа к системам. Например, в атаках с использованием вредоноса WannaCry использовался 445/TCP (SMB), что привело к масштабным последствиям для организаций по всему миру. Другие примеры включают атаки на серверы, использующие порты 80 и 443 для внедрения вредоносного кода.

Шифровальщики, такие как Ryuk и Cryptolocker, использовали порты 445 и 3389 для распространения вредоносных программ. Эти порты позволяют злоумышленникам получать доступ к системам и шифровать данные. Указанные интерфейсы часто становятся целями для атак, что подтверждается отчетами таких организаций, как McAfee и Kaspersky.

Как быть в курсе актуальных уязвимостей


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

Common Vulnerabilities and Exposures (CVE) — это база данных организации MITRE, которая собирает информацию об общеизвестных уязвимостях информационной безопасности. Каждой присваивается идентификационный номер вида CVE-год-номер, описание и ряд общедоступных ссылок с описанием.


Главная страница CVE.

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

CVE-2024-5035

  • Уязвимое устройство: TP-Link Archer C5400X;
  • Тип уязвимости: CMD-инъекция.

Важно. Уязвимой является служба rftest, работающая на портах 8888/TCP, 8889/TCP, 8890/TCP.

CVE-2024-44087

  • Уязвимая служба: Automation License Manager вендора Siemens;
  • Тип уязвимости: DoS.

Важно. Уязвимые службы работают на порту 4410/TCP.

CVE-2024-42505-42507

  • Уязвимый протокол: Aruba's Access Point management protocol в составе Aruba OS от вендора HP;
  • Тип уязвимости: CMD-инъекция.

Важно. Доступ к уязвимой службе осуществляется по протоколу 8211/UDP.

CVE-2024-39864

  • Уязвимый продукт: Apache CloudStack от вендора Apache Software Foundation;
  • Тип уязвимости: RCE.

Важно. При неверной конфигурации CloudStack возможно включение API сервера без авторизации на порту 8096/TCP.

CVE-2024-36346

  • Уязвимый продукт: Apache CloudStack от вендора Apache Software Foundation;
  • Тип уязвимости: RCE.

Важно. По умолчанию служба кластера CloudStack работает на порту 9090/TCP и выполняет команды без аутентификации.

CVE-2024-37855

  • Уязвимое устройство: Nepstech Wifi Router xpon (terminal) NTPL-Xpon1GFEVN с прошивками hardware verstion 1.0 и firmware 2.0.1;
  • Тип уязвимости: RCE.

Важно.По умолчанию служба ожидает команды на порту 2345/TCP и без авторизации позволяет выполнить команды.

Как видим, уязвимые службы находятся не на привычных нам стандартных портах, а их доступность после инсталляции сервиса может быть неочевидной.

Чек-лист: что делать при обнаружении открытого порта


Предположим, у вас настроен мониторинг портов или вы используете сторонние сервисы для непрерывного мониторинга вашей инфраструктуры. Что делать, если вам пришло уведомление о новом открытом порту?

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

2. Проанализируйте службы, работающие на порту. Это можно легко сделать с помощью такой команды:

$ sudo netstat -tulpn

Можно увидеть, на каких портах какие службы работают. Само собой, для более быстрого поиска по порту можно грепнуть вывод:

$ sudo netstat -tulpn | grep <номер порта>

Далее с помощью команды можно посмотреть краткое описание выбранного сервиса:

$ whatis <имя службы>

Так можно проанализировать, какие порты относятся к тем или иным службам.

3. Обновите программное обеспечение и системы безопасности.

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

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

5. Установите дополнительные средства защиты (IDPS/WAF) для защиты службы. К слову, мы с коллегами выпустили в Академии Selectel текст про погружение в работу с WAF — если вы новичок, может пригодиться. А вот с IDSP куда интереснее. Есть несколько решений, который можно использовать, и у каждого — свои особенности в настройке. Подробнее о популярных IDPS-системах рассказали в отдельной статье.

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

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

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

Заключение


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

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

Приглашаем 10 октября на Selectel Tech Day
Расскажем о новинках на рынке и обновлениях в наших продуктах. Вас ждут доклады, нетворкинг, мастер-классы и вечерняя программа. Участие бесплатное, но нужно зарегистрироваться.

Комментарии (26)


  1. Wesha
    30.09.2024 16:03
    +2

    Порт 80/TCP (HTTP)
    Порт 23/TCP (Telnet)

    Кто-нибудь, расскажите дяденьке, что любой сервис можно сконфигурировать слушать совершенно любой порт. У меня вот вебсервер отвечает на порту 8421.


    1. redfox0
      30.09.2024 16:03

      У меня на одной из машине подкручены параметры ядра и порт 80 слушает непривилегированный процесс (не root).


      1. Wesha
        30.09.2024 16:03

        Хм, по-моему, апач с детства умел после форканья депривилегизировать себя.


        1. redfox0
          30.09.2024 16:03

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

          А в данном случае я подкрутил параметр net.ipv4.ip_unprivileged_port_start=80


    1. HardWrMan
      30.09.2024 16:03
      +2

      А какая разница, на каком порту слушает уязвимый демон, если сканеры портов детектят сервис вне привязки его к стандартной карте портов? Не порты надо закрывать, а демонов своих держать в тонусе (обновлёнными). Ну и неиспользуемое не открывать "на всякий случай".


      1. Wesha
        30.09.2024 16:03

        Так и я ровно про то же. А то у аффтара так написано, что создаётся впечатление, что "порты — наше всё".


        1. HardWrMan
          30.09.2024 16:03

          создаётся впечатление, что "порты — наше всё"

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


          1. Wesha
            30.09.2024 16:03

            недоумевают, что не так

            ДНК жеж!


  1. LinkToOS
    30.09.2024 16:03
    +8

    Открытые порты представляют собой «незапертые двери» к потенциально уязвимым сервисам любой сети.

    Нам немного иначе преподавали.
    Порт это склад, а не дверь. В него приносят пакеты, а служба их забирает.
    Если порт закрыт, то служба которая его использует нормально работать не сможет. Закрыть порт - сломать службу. Она не станет безопаснее, просто не будет работать.
    Уязвимыми являются службы, а не порты. В любой службе (MS Win.) внезапно может обнаружиться уязвимость. Закрывать надо уязвимости, а не порты. Если открытый порт представляет опасность, значит службе которая его использует требуется заплатка.
    Открытые порты - это нормально. "Неожиданно" открытые порты - вот это возможно признак проблемы. Или необычная активность на портах.


    1. Wesha
      30.09.2024 16:03

      Порт это склад, а не дверь. В него приносят пакеты, а служба их забирает.

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


    1. HardWrMan
      30.09.2024 16:03

      Вот, правильная аналогия. Я вспоминаю TCP/IP времён DOS: там даже TSR сетевой карты назывался REDIRECTOR ("перенаправлятель"), а "открытие порта" суть аренда одного стеллажа этого почтового склада с определённым номером, размер которого, как уже сказали выше, не резиновый. Сродни обычного почтового абонентского ящика до востребования.


  1. CodeDroidX
    30.09.2024 16:03
    +1

    Лучше бы советовали Spacedesk server удалять и его порт закрывать. Порой диву даёшься, сколько обывателей с забытой включённой службой spacedesk сидят в публичных сетях кафе, университетов и светят буквально RDP без какого-либо пароля)


  1. savostin
    30.09.2024 16:03

    Предположим, у вас настроен мониторинг портов или вы используете сторонние сервисы для непрерывного мониторинга вашей инфраструктуры

    Лучше б подробнее рассказали как это настроить или использовать.


  1. Testman2023
    30.09.2024 16:03
    +3

    Проанализируйте службы, работающие на порту. Это можно легко сделать с помощью такой команды:
    sudo netstat -tulpn

    netstat из пакета net-tools давно заменили на ss из iproute2(используется по умолчанию)
    https://packages.debian.org/bookworm/iproute2
    "Эти утилиты взаимодействуют с ядром по интерфейсу (rt)netlink, благодаря чему они предоставляют больше возможностей, чем утилиты ifconfig и route пакета net-tools."
    NetToolsDeprecation
    Page to gather information about the intended deprecation of net-tools.
    https://wiki.debian.org/NetToolsDeprecation
    Nice page with iproute equivalences for every net-tools use:
    http://dougvitale.wordpress.com/2011/12/21/deprecated-linux-networking-commands-and-their-replacements/


    1. alan008
      30.09.2024 16:03

      Судя по ссылке, оно уже в 2011 году считалось deprecated.... ) Видимо в Linux период дожития deprecated функций оооочень велик


      1. Testman2023
        30.09.2024 16:03
        +2

        Пакет сохранили во всех дистрибах. Просто net-tools не устанавливается по умолчанию.
        https://pkgs.org/search/?q=net-tools


      1. NAI
        30.09.2024 16:03

        В windows то же, люди до сих пор используют ipconfig для посмотреть, вместо Get-Net...


  1. Shaman_RSHU
    30.09.2024 16:03

    Скорее всего заголовок статьи должен быть: "Самые опасные сетевые порты по-умолчанию: как узнать и закрыть все лазейки"


  1. 0Bannon
    30.09.2024 16:03

    Shodan — это поисковая система, которая индексирует устройства, подключенные к

    интернету

    Это вымышленный искусственный интеллект и главный антагонист компьютерных игр System Shock и System Shock 2


  1. Vdm_ro
    30.09.2024 16:03
    +2

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

    Фраза аналогична: самый опасный провод - коричневый.


    1. AdmAlexus
      30.09.2024 16:03

      Мне кажется здесь больше подойдет: "Самый опасный провод - тот который под электричеством" :)


      1. Wesha
        30.09.2024 16:03

        Напомнило

        Сидят два электрика на столбе. Мимо идёт старушенция. Старший:
        — Бабуля, подай провод!
        Старушка подаёт и идёт своей дорогой. Старший младшему:
        — Говорил тебе — ноль, а ты всё — "фаза", "фаза"...

        Чернушный вариант

        — Видишь — окочурилась. Говорил я тебе — фаза, а ты всё — "ноль", "ноль"...


  1. dopk
    30.09.2024 16:03

    445 порт можно закрыть на исходящие соединения на роутере. Самая крутая уязвимость была с smb+ntml, которая позваляла украсть креды, достаточно было заставить перейти по ссылке на smb-ресурс, ничего вводить или подтверждать не требовалось, авторизация срабатывала автоматически.

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

    Возможность выхода в интернет на 22 порт - возможность для злоумышленника построить обратный туннель.

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


  1. Frankenstine
    30.09.2024 16:03
    +5

    TL;DR: список опасных портов: 1-65535


    1. HardWrMan
      30.09.2024 16:03

      Но, волков бояться - в лес не ходить!


  1. ogost
    30.09.2024 16:03
    +1

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