Руслан Рахметов, Security Vision
Работающим в сфере ИТ и кибербезопасности часто приходится слышать про снифферы (англ. Sniffer, буквально - нюхач, ищейка), но и само название, и принцип работы, и возможности данных решений многим не до конца ясны. Путаницу усиливает и то, что зачастую злоумышленники также применяют снифферы в своих целях (реализуют т.н. Sniffing и Wiretapping атаки), а кроме этого, есть тип вредоносного ПО, которое также называется сниффер (JavaScript Sniffer). В сегодняшней статье разберем, что такое снифферы и как они применяются для защиты и атаки.
Итак, сниффер - или более точно анализатор сетевого трафика (сетевых пакетов) - это программа или устройство для прослушивания (захвата), сохранения, анализа передаваемых по сети данных. В простейшем случае программа-сниффер устанавливается на устройство, отображает и записывает в файл передаваемые и получаемые устройством данные по проводным и беспроводным сетям. Анализаторы трафика могут также представлять из себя сложное устройство - программно-аппаратный комплекс (ПАК) для получения доступа к передающимся по сети данным за счет подключения "в разрыв" сетевого соединения (метод TAP, Test Access Point) или за счет получения копии трафика с сетевого устройства (подключение через порты SPAN / RSPAN / ERSPAN, также называется зеркалированием, mirroring). Такие ПАК настраиваются для получения доступа к проводным (например, волоконно-оптическим линиям, витым парам, коаксиальным кабелям) и беспроводным (например, сетям Wi-Fi, Bluetooth, GSM/LTE/5G) сетям, а далее либо сохраняют полную копию полученного трафика на быстрых встроенных накопителях большого объема для дальнейшего анализа встроенными средствами, либо отправляют полученные данные в СЗИ (например, в NTA-решения). Однако чаще всего ИБ-специалистам приходится иметь дело всё же с более простыми программными анализаторами трафика, самым популярным из которых является продукт Wireshark.
Wireshark - бесплатное кроссплатформенное решение (выпускается по условиям лицензии GPL), работающее под Windows, MacOS, Linux, FreeBSD, также поддерживается сборка из исходного кода. Продукт поддерживает протоколы, использующиеся в Интернете, локальных сетях, беспроводной связи (Wi‑Fi, Bluetooth, IrDA) и телефонии (VoIP, SS7, PSTN и т.д.), позволяет захватывать передающиеся по Ethernet/WLAN/USB данные, содержит декодеры (названы авторами "protocol dissectors") для более чем 3000 протоколов различного уровня, а также поддерживает расширение функционала с помощью Lua-скриптов.
Первая версия решения, которая называлась Ethereal, была выпущена в 1998 году, в 2006 году решение получило современное название Wireshark, а в 2008 году был выпущен полноценный и завершенный релиз Wireshark 1.0 и стали проводиться ежегодные образовательные конференции SharkFest для разработчиков и пользователей продукта. На момент написания статьи актуальной версией Wireshark является версия 4.4.0, при этом авторами постоянно добавляются новые декодеры для сетевых протоколов, улучшается функционал и быстродействие решения.
Основными пользователями Wireshark являются сетевые инженеры (выявляют и устраняют проблемы в сетях передачи данных), разработчики ПО (проверяют корректность реализации сетевых протоколов в софте), тестировщики (проверяют работу сетевых приложений), кибербезопасники (выявление проблем с сетевой безопасностью), а также те, кто хочет понять, как работают сети. Перед установкой и работой с Wireshark следует прежде всего убедиться, что применимые законодательные и корпоративные нормы и правила разрешают вам прослушивание (захват) и запись сетевого трафика. Далее для того, чтобы осуществлять захват трафика средствами Wireshark, следует установить библиотеку и драйверы Npcap - в среде Windows они устанавливаются вместе с Wireshark, при установке потребуются права администратора, а без административных полномочий возможности Wireshark будут ограничены только открытием ранее сохраненных дампов (записей) трафика. Опционально в среде Windows можно настроить ограничение на запуск Npcap для захвата трафика только для администратора, в Linux-системах права root для захвата трафика требуются по умолчанию. При подключении к проводной сети через хаб можно перевести сетевой адаптер в promiscuous-режим для того, чтобы не отбрасывались пакеты, не предназначенные для данного сетевого адаптера (это увеличит поверхность анализа трафика); однако в современных сетях на базе коммутаторов (свитчей) включение этого режима не имеет смысла, только если на свитч не проводится дополнительная атака методом MAC flooding. При подключении к беспроводной сети - в случае, если стоит задача изучения или изменения трафика, циркулирующего во всех доступных рядом беспроводных сетях - потребуется использовать беспроводной адаптер с поддержкой режимов мониторинга (monitor mode) и внедрения пакетов (packet injection).
Еще одной востребованной задачей может быть инспекция зашифрованного веб-трафика. Для того, чтобы Wireshark смог увидеть содержимое HTTPS-трафика, передающегося с/на устройство, следует воспользоваться рекомендациями производителя и настроить в ОС переменную окружения SSLKEYLOGFILE, создать доступный для чтения и записи лог-файл и указать путь к данному файлу в настройках Wireshark (Правка - Параметры - Протоколы - TLS - в нижней части окна указать путь к созданному лог-файлу). После перезапуска браузера (поддерживаются Firefox, Chrome, Edge) можно будет просмотреть в Wireshark содержимое HTTPS-трафика, зашифрованного в том числе с использованием самого современного протокола TLS v1.3. При этом следует быть внимательным и после окончания работы с Wireshark удалить созданную переменную окружения и лог-файл, содержащий информацию, которую могут использовать злоумышленники для несанкционированного расшифрования HTTPS-трафика.
При корректной настройке Wireshark можно будет увидеть подробную сетевую активность устройства, а широчайший функционал фильтров захвата и отображения, поисковых запросов, отслеживания потоков данных и экспорта объектов помогут разобраться в нюансах работы и безопасности различных сетевых протоколов, приложений, операционных систем и сетевых устройств. Читатели могут попробовать свои силы в анализе образцов различного трафика, представленных в виде файлов формата pcap / pcapng, которые можно открыть в Wireshark:
Общие образцы трафика:
https://wiki.wireshark.org/SampleCaptures
https://www.netresec.com/?page=PcapFiles
https://weberblog.net/the-ultimate-pcap/
Образцы трафика с артефактами сетевых атак и ВПО:
https://github.com/chrissanders/packets
https://github.com/sbousseaden/PCAP-ATT
https://github.com/markofu/pcaps/
https://github.com/elcabezzonn/Pcaps
https://www.malware-traffic-analysis.net/index.html
Образцы трафика, собранные в сегментах АСУТП, SCADA и в OT-инфраструктуре:
https://github.com/ITI/ICS-Security-Tools/tree/master/pcaps
https://github.com/automayt/ICS-pcap/
https://github.com/EmreEkin/ICS-Pcaps/
Разумеется, кроме Wireshark есть и другие полезные бесплатные инструменты для работы с сетевым трафиком, например:
· tcpdump - утилита, встроенная в большинство Linux-дистрибутивов, позволяет прослушивать, анализировать и сохранять (в поддерживаемые Wireshark файлы формата pcap) сетевой трафик;
· pktdump - утилита, встроенная в современные ОС Microsoft Windows, позволяет выполнять диагностику сетевых соединений, прослушивать, анализировать и записывать (в поддерживаемые Wireshark файлы формата pcapng) сетевой трафик;
· Telerik Fiddler Classic - инструмент для отладки и выявления проблем с безопасностью веб-приложений, с поддержкой расшифрования HTTPS-трафика через реализацию MitM-инспекции с помощью устанавливаемого в ОС корневого сертификата;
· HTTP Toolkit - инструмент для перехвата, анализа, редактирования HTTP/HTTPS-трафика.
Методы захвата, перехвата, перенаправления, анализа и расшифрования сетевого трафика также активно используются и атакующими, причем зачастую они пользуются теми же инструментами, что и ИТ/ИБ-специалисты. Атаки, связанные с обработкой и подменой сетевого трафика, называются Sniffing и Wiretapping атаки. Рассмотрим ряд примеров сетевых атак такого типа:
1. ARP spoofing (или ARP cache poisoning) - атака перезаписи APR-таблицы (сопоставляющей IP-адреса и MAC-адреса устройств в локальной сети) путем отправки атакующим множественных ARP-оповещений о соответствии целевого атакуемого IP-адреса (например, IP-адреса шлюза по умолчанию) MAC-адресу сетевой карты атакующего. В результате, устройства в локальной сети начнут отправлять атакующему хосту сообщения, предназначенные для шлюза, и злоумышленник сможет анализировать трафик сетевого сегмента, а затем реализовать дальнейшие MitM-атаки. Простейшей защитой от данного типа атак может стать создание статических записей в ARP-таблицах на хостах (например, жестко прописать сопоставление IP-адреса шлюза его MAC-адресу).
2. MAC flooding - атака переполнения адресной таблицы коммутатора, в результате чего он может перейти в режим отправки трафика по всем портам (по сути, в fail-open режим хаба). Защитой от данного типа атак будет использование механизма Port Security и/или внедрение аутентификации устройств на канальном уровне с помощью технологии Dot1x (IEEE 802.1x).
3. DHCP Spoofing / DHCP Starvation - атаки на протокол DHCP, при которых злоумышленник внедряет вредоносный DHCP-сервер в корпоративную сеть, выводит легитимный DHCP-сервер из строя за счет флуда поддельными запросами (DHCP Starvation - буквально истощение DHCP), а затем от имени «нового» DHCP-сервера начинает сообщать DHCP-клиентам недостоверную информацию (поддельный IP-адрес DNS-сервера, поддельный IP-адрес шлюза по умолчанию) для реализации дальнейших MitM-атак. Защитой от атак подобного типа будет использование технологии DHCP Snooping, которая разрешает прохождение служебных DHCP-сообщений (DHCPOFFER и DHCPACK) только через определенный порт коммутатора.
4. VLAN Hopping / VLAN double tagging / VLAN double encapsulation - атака на технологию VLAN (виртуальная локальная сеть), которая позволяет обойти ограничение на доступ атакующего устройства к сетевому трафику других VLAN. Защитой от данного типа атак будет настройка сетевых устройств: например, отключение динамического транкинга (технологии Auto Trunking / протокола DTP) и запрет использования дефолтного административного VLAN с ID=1 (перенос Native VLAN на любой другой номер, например, 999).
5. DNS spoofing (или DNS cache poisoning) - атака, основанная на отсутствии проверки подлинности передающейся по протоколу DNS информации и на использовании протокола UDP для DNS-запросов/ответов, в результате чего атакующий может передать кэширующему (локальному, рекурсивному) DNS-серверу поддельные данные о сопоставлении DNS-имени запрашиваемого сайта IP-адресу сервера, который контролируется атакующим и на котором производится MitM-атака (например, внедряются вредоносные скрипты, похищаются учетные данные, отображается недостоверная информация). Защитой от подобных атак будет использование технологий DNSCrypt, DNSSEC, DNS-over-TLS, DNS-over-HTTPS. Кроме того, владельцы веб-сайтов могут использовать современные технологии для защиты трафика своих посетителей, такие как Certificate Transparency (эволюция устаревших технологий SSL Pinning и HTTP Public Key Pinning) и HSTS (HTTP Strict Transport Security). Однако, как это часто бывает, технологии, направленные на защиту конфиденциальности пользователей, привносят затруднения в процесс анализа трафика в целях обеспечения кибербезопасности: так, технология Certificate Transparency мешает сетевым защитным решениям выполнять санкционированную TLS-инспекцию зашифрованного веб-трафика на предмет наличия в нём угроз безопасности (хотя есть методы настройки исключений), технологии DNS-over-TLS и DNS-over-HTTPS мешают сетевым СЗИ проводить анализ DNS-трафика на вредоносность, а атакующим позволяют прятать в зашифрованном DNS-трафике вредоносную нагрузку, управляющие команды для ВПО и украденные данные.
6. Атаки внедрения вредоносного содержимого в веб-трафик или в содержимое веб-сайтов - это тип атак, который позволяет злоумышленникам эксплуатировать уязвимости браузеров, загружать ВПО, "накручивать" трафик сайтов, похищать данные учетных записей и банковских карт. Так, атаки внедрения вредоносного содержимого в веб-трафик могут быть реализованы, если злоумышленник прослушивает сеть и может внедрять свои данные - например, если ранее были реализованы атаки ARP spoofing или DNS spoofing, а пользователь посещает незащищенные HTTP-ресурсы или на сайте не настроен протокол HTTPS, не используются технологии HSTS, SOP (Same Origin Policy), CORS (Cross-Origin Resource Sharing), CSP (Content Security Policy), допускается загрузка сторонних элементов сайта (скриптов, изображений, веб-форм) по небезопасному протоколу HTTP.
Атаки внедрения вредоносного содержимого в содержимое веб-сайтов реализуются атакующими, которые взломали сайт и получили несанкционированный доступ с правами на внесение изменения в код сайта - в этом случае они могут внедрить на страницы сайта вредоносное содержимое, которое будет пытаться «пробить» браузеры посетителей (т.е. проэксплуатировать одну или несколько уязвимостей веб-браузеров, используя связку эксплойтов), «накрутить» трафик или число посетителей на сторонних сайтах, спровоцировать пользователя на загрузку и запуск ВПО (например, выводя поддельное сообщение об устаревшей версии браузера и предлагая скачать и запустить вредоносный файл), а также похитить данные веб-форм, в которые пользователи вводят свои учетные данные (логины, пароли, одноразовые коды) или данные банковских карт. Такой тип ВПО называется JavaScript Sniffer - он внедряется на взломанные сайты и отправляет атакующим введенную пользователем в веб-форме информацию, что особенно опасно для сайтов банков, платежных систем и платежных шлюзов, маркетплейсов, турфирм, транспортных и страховых компаний, обрабатывающих огромные объемы персональных данных и платежной информации.
7. Атаки на беспроводные сети - это целый класс атак, которые реализуются злоумышленниками в зоне действия беспроводных сетей компаний, отелей, кафе, частных лиц, включая такие атаки, как:
7.1. Evil twin - создание злоумышленником поддельной копии точки доступа (или Wi-Fi роутера), причем устройства под управлением некоторых версии ОС будут подключаться к поддельной беспроводной сети, даже если с настоящей точкой доступа совпадает только название сети (SSID), а MAC-адрес (BSSID) поддельной точки доступа может отличаться от MAC-адреса настоящей точки. Весь сетевой трафик пользователя, подключившегося к поддельной точке доступа, будет доступен для просмотра и анализа атакующими, которые постараются реализовать дальнейшие MitM-атаки для кражи учетных данных (логины/пароли) пользователей и внедрения вредоносных скриптов в отображаемые пользователю страницы, особенно в случае, если посещаемые пользователем веб-сайты не используют технологии HSTS, SOP, CORS, CSP, Certificate Transparency, а сам пользователь игнорирует предупреждения браузера о проблемах с сертификатом и/или небезопасности посещаемой веб-страницы. Кроме того, под предлогом регистрации пользователя в Wi-Fi-сети (якобы во исполнение требований об оказании услуг связи и идентификации пользователей Wi-Fi в общественных местах, предъявляемых Постановлениями Правительства РФ №№ 2606, 2607), злоумышленники могут настроить Captive-портал, который при первом подключении пользователя запросит у него номер телефона, паспортные данные, логин/пароль для социальной сети или код из СМС от портала Госуслуг якобы для «идентификации пользователя» - все эти данные окажутся в руках атакующих. Атакующие также могут обманом заставить пользователей Apple-устройств установить поддельные профили конфигураций (configuration profile) или профили регистрации (enrollment profiles) для iOS якобы для корректной работы гаджета в публичной Wi-Fi-сети, которые позволят атакующим полностью контролировать устройство.
7.2. Использование уязвимостей технологий защиты Wi-Fi-сетей - атакующие взламывают беспроводные сети с шифрованием WEP (тривиальный подбор пароля к сети за счет низкой стойкости используемой криптографической схемы), WPA или WPA2 (расшифрование Wi-Fi-трафика через атаки PMKID или KRACK).
7.3. War driving - использование передвижного (например, на базе микроавтобуса) пункта несанкционированного подключения к Wi-Fi-сетям.
7.4. War shipping - отправка хакерского устройства (например, Raspberry Pi или Flipper Zero) в офис атакуемой компании по почте или курьером, также возможны негласная установка подобных устройств в переговорных комнатах или в местах со свободным доступом посетителей (ресепшн, фойе, холл).
7.5. Атаки на Bluetooth: BlueSnarfing (несанкционированный доступ к данным устройства через протокол Bluetooth ранних версий), BlueJacking (отправка нежелательных или оскорбительных сообщений через Bluetooth), BlueSmack (вариант DoS-атаки через Bluetooth), BlueBorne (использование связки уязвимостей для удаленного выполнения кода и утечки информации через Bluetooth на платформах Android, iOS, Linux, Windows), BlueDucky (эмуляция злоумышленником нажатия клавиш на Bluetooth-клавиатуре без ведома пользователя), BLUFFS (взлом сессионного ключа шифрования Bluetooth, внедрение вредоносного трафика и расшифрование перехваченных сообщений между устройствами) и ряд других.
Для защиты Wi-Fi-сетей следует использовать оборудование с поддержкой современного стандарта безопасности WPA3, применять технологию EAP для аутентификации устройств по сертификатам при подключении к беспроводной сети, использовать механизм изоляции точки доступа (AP Isolation) и фильтрацию MAC-адресов подключающихся к беспроводной сети устройств.