10 уязвимостей сайтов и методы их устранения

Nmap — это сокращение от Network Mapper. Это инструмент безопасности с открытым исходным кодом для исследования сети, сканирования и аудита. Однако команда nmap поставляется с большим количеством опций, которые могут сделать утилиту сложной для новых пользователей. Эта статья посвящена ознакомлению пользователя с инструментом командной строки nmap для сканирования хостов и сети, чтобы найти возможные уязвимости. Давайте рассмотрим распространенные примеры использования.

Зачем нужна команда nmap?

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

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

Описание курса

Обновленная версия курса на 24 часа!

Материал курса позволяет получить ключевые знания по обеспечению комплексной безопасности сетевой инфраструктуры, что позволит значительно уменьшить риск взлома сетей и сервисов предприятия или минимизировать последствия такого взлома. Уникальной особенность курса являются лабораторные работы, позволяющие слушателям побывать по обе стороны «баррикад» — в роли хакеров и в роли администраторов безопасности сети.

Читайте также:  Установка Linux — пошаговая инструкция на примере Ubuntu

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

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

Узнать больше

Что такое уязвимость сайта

Легче будет разобраться на примере. Вообразите себе такую картину: ваша веб-платформа — это укрепленный замок, очень надежный, с высокими стенами, охраняемыми воротами, с пушками в бойницах, а вокруг — ров, наполненный водой. Все идеально функционирует и охраняется. И вот нашелся злоумышленник, который сумел перелезть через ограждение. Другой спокойно вошел через ворота, сделав вид, что он простой торговец. А третий нашел секретный ход для своих и сумел им воспользоваться.

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

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

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

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

Рекомендуем «Уязвимости сайта: поиск и устранение» Подробнее

На практике в большинстве случаев причиной проблем становится принятие веб-ресурсом плохо проверенных данных (которые вносит пользователь). Таким образом любые некорректные и опасные команды оказываются вставленными в интерпретируемый код.

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

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

Доступные обновления для исправления уязвимости

Системный пакет Systemd сопровождает многочисленные дистрибутивы Linux, включая RHEL, Debian, Ubuntu, CoreOS, Fedora, Mint и SUSE.

После обнаружения ошибки Lennart Poettering, создатель Systemd, опубликовал исправление безопасности для всех дистрибутивов Linux в зависимости от system-networkd.

Кроме того, Ubuntu и Red Hat также опубликовали рекомендации по безопасности, описывающие ошибку и признающие патч. Хотя ошибка затрагивает большинство дистрибутивов Linux, она, как утверждается, не всегда влияла на RHEL 7. Как поясняется в рекомендациях RHEL:

Сканирование Фаервола на Уязвимости

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

Когда сканируется система отвечающая требованиям RFC, любой пакет, не содержащий установленного бита SYN, RST или ACK, повлечет за собой отправку RST в ответ в случае, если порт закрыт, или не повлечет никакого ответа, если порт открыт.

Т.к. ни один из этих битов не установлен, то любая комбинация трех оставшихся (FIN, PSH и URG) будет являться правильной.

Читайте также:  Автоматический перевод в Опере: подключение и настройка

TCP Null сканирование:

$ nmap -sN

* Не устанавливаются никакие биты (Флагов в TCP заголовоке 0).

TCP Fin сканирование:

$ nmap -sF

* Устанавливается только TCP FIN бит.

TCP Xmas сканирование:

$ nmap -sX

* Устанавливаются FIN, PSH и URG флаги (пакет светится как новогодняя елка).

№ 19: Установите и используйте систему обнаружения вторжений

Система обнаружения сетевого вторжения (network intrusion detection system — NIDS) — это система обнаружения вторжения, которая с помощью мониторинга сетевого трафика пытается зафиксировать злонамеренную активность, такую как атаки вида «denial of service» (отказ в обслуживании), сканирование портов и даже попытки проникновения в компьютер.

Хороший практический подход – прежде, чем система будет подключена к сети в режиме эксплуатации, развернуть любую интегрированную программную систему проверки. Если возможно, то прежде, чем система будет подключена какой-либо сети, установите пакет AIDE. AIDE является кросс-хостинговой системой обнаружения вторжения (host-based intrusion detection system — HIDS). Она может осуществлять мониторинг и анализ процессов, происходящих внутри самих компьютерных систем.

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