Доступна система глубокого инспектирования пакетов nDPI 3.0

Проект ntop, развивающий инструменты для захвата и анализа трафика, опубликовал выпуск инструментария для глубокого инспектирования пакетов nDPI 3.0, продолжающего развитие библиотеки OpenDPI. Проект nDPI основан после безуспешной попытки передачи изменений в репозиторий OpenDPI, который остался без сопровождения. Код nDPI написан на языке Си и распространяется под лицензией LGPLv3.

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

Отличия от OpenDPI сводятся к поддержке дополнительных протоколов, портированию для платформы Windows, адаптации и оптимизации для применения в приложениях для мониторинга трафика в режиме реального времени (убраны некоторые специфичные возможности замедлявшие движок), возможности сборки в форме модуля ядра Linux и поддержке определения субпротоколов. Всего поддерживается определения 238 протоколов, от OpenVPN, Tor, QUIC, SOCKS, BitTorrent и IPsec до Telegram, Viber, WhatsApp, PostgreSQL и обращений к GMail, Office365 GoogleDocs и YouTube. Имеется декодировщик серверных и клиентских SSL-сертификатов, позволяющий определить протокол (например, Citrix Online и Apple iCloud), используя сертификат шифрования. Для анализа содержимого pcap-дампов или текущего трафика через сетевой интерфейс на базе nDPI подготовлено приложение nDPIreader.

    $ ./nDPIreader -i eth0 -s 20        Detected protocols:       DNS                  packets: 57    bytes: 7904     flows: 28     SSL_No_Cert          packets: 483   bytes: 229203   flows: 6       FaceBook             packets: 136   bytes: 74702    flows: 4     DropBox              packets: 9     bytes: 668      flows: 3     Skype                packets: 5     bytes: 339      flows: 3       Google               packets: 1700  bytes: 619135   flows: 34  

В новом выпуске:

  • Информирование о протоколе теперь осуществляется как можно быстрее, даже когда специфичные поля ещё не разобраны из-за неполучения соответствующих сетевых пакетов, что актуально для анализаторов трафика, которым необходимо сразу реагировать на определённые виды трафика. Для приложений, которым нужен полный разбор протокола предложен API ndpi_extra_dissection_possible (), позволяющий убедиться, что все метаданные протокола определены.
  • Реализован более глубокий разбор TLS с извлечением сведений о корректности сертификата и SHA-1 хеше сертификата.
  • В приложение nDPIreader добавлен флаг »-C» для экспорта в формате CSV, что даёт возможность при помощи дополнительного инструментария ntop выполнять достаточно сложные статистические выборки. Например, для определения IP пользователя, который дольше всего смотрел фильмы в NetFlix:
         $ ndpiReader -i  netflix.pcap -C /tmp/netflix.csv     $ q -H -d ',' "select src_ip,SUM(src2dst_bytes+dst2src_bytes) from /tmp/netflix.csv where ndpi_proto like '%NetFlix%' group by src_ip"      192.168.1.7,6151821  
  • Добавлена поддержка предложенной в Cisco Joy техники определения вредоносной активности, скрытой в шифрованном трафике, используя анализ размера пакетов и времени отправки/задержек. В ndpiReader метод активируется опцией »-J».
  • Обеспечена классификация определённых протоколов по категориям.
  • Добавлена поддержка расчёта IAT (Inter-Arrival Time) для определения аномалий в использовании протокола, например, для выявления использования протокола при совершении DoS-атак;
  • Добавлены возможности анализа данных на основе вычисляемых метрик, таких как энтропия, среднее значение, стандартное отклонение и дисперсия;
  • Предложена начальная версия биндингов для языка Python;
  • Добавлен режим определения в трафике читаемых строк для выявления утечек данных. В ndpiReader режим включается опцией »-e»;
  • Добавлена поддержка метода идентификации TLS-клиентов JA3, позволяющего на основе особенностей согласования соединений и задаваемых параметров определять какое ПО используется для установки соединения (например, позволяет определить использование Tor и других типовых приложений).
  • Добавлена поддержка методов идентификации реализаций SSH (HASSH) и DHCP.
  • Добавлены функции для сериализации и десериализации данных в форматах Type-Length-Value (TLV) и JSON.
  • Добавлена поддержка протоколов и сервисов: DTLS (TLS over UDP), Hulu, TikTok/Musical.ly, WhatsApp Video, DNSoverHTTPS, Datasaver, Line, Google Duo, Hangout, WireGuard VPN, IMO, Zoom.us.
  • Улучшена поддержка анализа TLS, SIP, STUN, Viber, WhatsApp, AmazonVideo, SnapChat, FTP, QUIC OpenVPN UDP, Facebook Messenger, Hangout.



Источник: http://www.opennet.ru/opennews/art.shtml? num=52097

© OpenNet