Обычно считается, что если брандмауэр защищает сеть, то сеть считается защищенной.
Однако это не совсем верно.
Брандмауэры являются фундаментальным компонентом сети, но они не могут полностью защитить сеть от принудительного проникновения или враждебных намерений.
Системы обнаружения вторжений используются для оценки агрессивных или неожиданных пакетов и отправки предупреждения до того, как эти они смогут нанести вред сети.
Система обнаружения вторжений на базе хоста (HIDS) работает на всех устройствах в сети или подключается к внутренней сети организации.
Система обнаружения вторжений на базе сети устанавливается в определенной точке или группе точек, из которых можно отслеживать весь входящий и исходящий трафик.
Преимуществом системы обнаружения вторжений на базе хоста может обнаруживать аномалии или вредоносный трафик, генерируемый самим хостом, т.е. если хост поражен вредоносным ПО и т.д.
Системы обнаружения вторжений (IDS) работают путем мониторинга и анализа сетевого трафика и сравнения его с установленным набором правил, определяя, что следует считать нормальным для сети (т.е. для портов, пропускной способности и т.д.), а на что следует обратить более пристальное внимание.
- 🌎 Как работает система обнаружения вторжений (IDS)?
- Сетевые системы обнаружения вторжений NIDS, HIDS. Виды, различия, плюсы и минусы
Существуют десятки качественных коммерческих IDS, но многие компании и малые предприятия не могут себе их позволить.
Snort – это гибкая, легкая и популярная система обнаружения вторжений, которая может быть развернута в зависимости от потребностей сети, от малых до больших сетей, и предоставляет все функции платной IDS. Snort ничего не стоит, но это не значит, что он не может предоставить те же функции, что и элитная, коммерческая IDS.
Установка Snort
Прежде чем установить Snort, есть несколько программ или пакетов с открытым исходным кодом, которые необходимо установить в первую очередь, чтобы получить максимальную отдачу от этой программы.
Libpcap: Сниффер пакетов, подобный Wireshark, который используется для захвата, мониторинга и анализа сетевого трафика.
Чтобы установить libpcap, используйте следующие команды для загрузки пакета с официального сайта, разархивируйте пакет, а затем установите его:
OpenSSH: Инструмент безопасного подключения, который обеспечивает безопасный канал даже через незащищенную сеть для удаленного входа в систему по протоколу ssh.
OpenSSH используется для удаленного подключения к системам с привилегиями администратора.
OpenSSH можно установить с помощью следующих команд :
MySQL: Самая популярная бесплатная база данных SQL с открытым исходным кодом.
MySQL используется для хранения данных алертов Snort.
Библиотеки SQL используются удаленными машинами для связи и доступа к базе данных, в которой хранятся записи логов Snort.
MySQL можно установить с помощью следующей команды:
Веб-сервер Apache: Наиболее используемый веб-сервер в Интернете.
Apache используется для отображения консоли анализа через веб-сервер.
Его можно загрузить с официального сайта здесь:
http://httpd.apache.org
или с помощью следующей команды:
PHP: PHP – это язык сценариев, используемый в веб-разработке.
Для работы консоли Analysis требуется механизм парсинга PHP.
Его можно загрузить с официального сайта: https://www.php.net/downloads.php, или с помощью следующих команд:
OpenSSL: используется для обеспечения безопасности обмена данными по сети, не беспокоясь о том, что третьи лица могут перехватить или проследить за отправленными и полученными данными.
OpenSSL обеспечивает криптографическую функциональность веб-сервера.
Его можно загрузить с официального сайта: https://www.openssl.org/.
Stunnel: Программа, используемая для шифрования произвольного сетевого трафика или соединений внутри SSL и работающая вместе с OpenSSL.
Stunnel можно скачать с официального сайта: https://www.stunnel.org/, или установить с помощью следующих команд:
ACID: аббревиатура Analysis Control for Intrusion Detection.
ACID – это поддерживающий запросы поисковый интерфейс, используемый для поиска совпадающих IP-адресов, заданных шаблонов, определенной команды, полезной нагрузки, сигнатур, определенных портов и т.д. из всех зарегистрированных алертов.
Он обеспечивает глубокую функциональность анализа пакетов, позволяя определить, чего именно пытался добиться злоумышленник, и тип полезной нагрузки, использованной в атаке.
ACID можно скачать с официального сайта: https://www.sei.cmu.edu/about/divisions/cert/index.cfm.
Теперь, когда все необходимые базовые пакеты установлены, Snort можно скачать с официального сайта snort.org и установить с помощью следующих команд:
Затем выполните следующую команду, чтобы проверить, установлен ли Snort и какую версию Snort вы используете:
После успешной установки в системе должны быть созданы следующие файлы:
- /usr/bin/snort: Это бинарник Snort.
- /usr/share/doc/snort: Содержит документацию и руководства по Snort.
- /etc/snort: Содержит все наборы правил Snort, а также является его конфигурационным файлом.
Использование Snort
Чтобы использовать Snort, сначала необходимо настроить значение Home_Net и задать ему значение IP-адреса сети, которую вы защищаете.
IP-адрес сети можно получить с помощью следующей команды:
Из результатов скопируйте значение inet-адреса нужной сети.
Теперь откройте файл конфигурации Snort /etc/snort/snort.conf с помощью следующей команды:
Наибольшая мощь Snort заключается в его наборах правил. Snort способен использовать большое количество наборов правил для мониторинга сетевого трафика. В последней версии Snort поставляется с 73 различными типами и более 4150 правилами для обнаружения аномалий, которые содержатся в папке “/etc/snort/rules“. Вы можете просмотреть типы наборов правил в Snort с помощью следующей команды: По умолчанию, когда вы запускаете Snort в режиме системы обнаружения вторжений, все эти правила развертываются автоматически. Давайте теперь протестируем набор правил ICMP. Во-первых, используйте следующую команду для запуска Snort в режиме IDS:
Теперь вы можете попробовать пропинговать IP этой машины с другой машины с помощью следующей команды:
Пингуйте его пять-шесть раз, а затем вернитесь на свой компьютер и посмотрите, обнаружит ли его Snort IDS или нет. Здесь мы получили предупреждение о том, что кто-то выполняет ping-сканирование. Вывод даже предоставил IP-адрес машины злоумышленника. Теперь перейдем по IP-адресу этой машины в браузере. В этом случае мы не увидим никакого предупреждения. Попробуйте подключиться к ftp-серверу этой машины, используя другую машину в качестве атакующей:
Мы по-прежнему не увидим никакого предупреждения, потому что эти наборы правил не добавлены в правила по умолчанию, и в этих случаях предупреждение не будет сгенерировано. В этом случае вы должны создать свои собственные наборы правил. Вы можете создать правила в соответствии со своими потребностями и добавить их в файл “/etc/snort/rules/local.rules”, и тогда snort будет автоматически использовать эти правила при обнаружении аномалий. Теперь мы создадим правило для обнаружения подозрительных пакетов, отправленных на порт 80, чтобы при их появлении генерировалось предупреждение в логе: Существует две основные части написания правила, а именно: заголовок правила и параметры правила. Ниже приводится описание правила, которое мы только что написали: Заголовок: Параметры: Мы добавим это правило в файл “/etc/snort/rules/local.rules” и посмотрим, сможет ли оно обнаружить HTTP-запросы на порту 80.
Теперь вы можете открыть Snort в режиме IDS с помощью следующей команды:
Перейдите на IP-адрес этой машины из браузера. Теперь Snort может обнаружить любой пакет, отправленный на порт 80, и в этом случае на экране появится предупреждение “HTTP Packet Found”. Мы также создадим правило для обнаружения попыток входа в систему ftp: Добавьте это правило в файл “local.rules” с помощью следующей команды:
Теперь попробуйте войти в систему с другой машины и посмотрите на результаты работы программы Snort.
Наборы правил Snort
08/24-01:21:55.178653 [**] [1:396:6] ICMP Destination Unreachable Fragmentation
Needed and DF bit was set [**] [Classification: Misc activity] [Priority: 3]
{ICMP} <ip address of attacker’s mmachine> -> <this machine’s ip address>
08/24-01:21:55.178653 [**] [1:396:6] ICMP Destination Unreachable Fragmentation
Needed and DF bit was set [**] [Classification: Misc activity] [Priority: 3]
{ICMP} <ip address of attacker’s mmachine> -> <this machine’s ip address>
08/24-01:21:55.178653 [**] [1:396:6] ICMP Destination Unreachable Fragmentation
Needed and DF bit was set [**] [Classification: Misc activity] [Priority: 3]
{ICMP} <ip address of attacker’s mmachine> -> <this machine’s ip
address>
08/24-01:21:55.178653 [**] [1:396:6] ICMP Destination Unreachable Fragmentation
Needed and DF bit was set [**] [Classification: Misc activity] [Priority: 3]
{ICMP} <ip address of attacker’s mmachine> -> <this machine’s
ip address>
08/24-01:21:55.178653 [**] [1:396:6] ICMP Destination Unreachable Fragmentation
Needed and DF bit was set [**] [Classification: Misc activity] [Priority: 3]
{ICMP} <ip address of attacker’s mmachine> -> <this machine’s ip
address>
08/24-01:21:55.178653 [**] [1:396:6] ICMP Destination Unreachable Fragmentation
Needed and DF bit was set [**] [Classification: Misc activity] [Priority: 3]
{ICMP} <ip address of attacker’s mmachine> -> <this machine’s ip
address>
Создание правила
# alert tcp any any -> $HOME_NET 80 (msg: "HTTP Packet found"; sid:10000001; rev:1;)
80: Порт назначения, на котором мы ожидаем сетевой пакет.
08/24-03:35:22.979898 [**] [1:10000001:0] HTTP Packet found [**]
[Priority: 0] {TCP}<ip address>:52008 -> 35.222.85.5:80
08/24-03:35:22.979898 [**] [1:10000001:0] HTTP Packet found [**]
[Priority: 0] {TCP}<ip address>:52008 -> 35.222.85.5:80
08/24-03:35:22.979898 [**] [1:10000001:0] HTTP Packet found [**]
[Priority: 0] {TCP}<ip address>:52008 -> 35.222.85.5:80
08/24-03:35:22.979898 [**] [1:10000001:0] HTTP Packet found [**]
[Priority: 0] {TCP}<ip address>:52008 -> 35.222.85.5:80
08/24-03:35:22.979898 [**] [1:10000001:0] HTTP Packet found [**]
[Priority: 0] {TCP}<ip address>:52008 -> 35.222.85.5:80
08/24-03:35:22.979898 [**] [1:10000001:0] HTTP Packet found [**]
[Priority: 0] {TCP}<ip address>:52008 -> 35.222.85.5:80
08/24-03:35:22.979898 [**] [1:10000001:0] HTTP Packet found [**]
[Priority: 0] {TCP}<ip address>:52008 -> 35.222.85.5:80
# alert tcp any any -> any 21 (msg: "FTP packet found"; sid:10000002; )
Как видно выше, мы получили оповещение, что означает, что мы успешно создали эти правила для обнаружения аномалий на порту 21 и порту 80.
Заключение
Системы обнаружения вторжений, такие как Snort, используются для мониторинга сетевого трафика с целью обнаружения атаки, осуществляемой злоумышленником, прежде чем она сможет причинить вред или повлиять на сеть.
Если злоумышленник выполняет сканирование портов в сети, атака может быть обнаружена, вместе с количеством предпринятых попыток, IP-адресом злоумышленника и другими деталями.