Даступная сістэма глыбокага інспектавання пакетаў 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-дампаў ці бягучага трафіку праз сеткавы інтэрфейс пастаўляецца ўтыліта nDPIreader.

$ ./nDPIreader -i eth0 -s 20 -f "host 192.168.1.10"

Detected protocols:
DNS пакеты: 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) ад /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),
    Хулу,
    TikTok/Musical.ly,
    WhatsApp Video,
    DNSoverHTTPS,
    Datasaver,
    Line ,
    Google Duo, Hangout,
    WireGuard VPN,
    ІМА,
    Zoom.us.

  • Палепшана падтрымка аналізу TLS, SIP, STUN,
    Viber,
    WhatsApp,
    AmazonVideo,
    SnapChat,
    FTP,
    QUIC
    OpenVPN UDP,
    Facebook Messenger і Hangout.

Крыніца: opennet.ru

Дадаць каментар