Сетевые форензики в одном бинарном файле — живая расшифровка TLS 1.3, JA4, поиск C2. Rust, нулевые настройки. Как это реализовать?

Я прохожу курс “от 0 до Linux админа” на платформе Yodo по ссылке Learn Programming Online | Courses for Developers | YODO, и у меня возникла проблема. Может ли кто-нибудь объяснить, как использовать утилиту NetWatch для выполнения live TLS 1.3 дешифрования и JA4/JA4Q отпечатков в целях поиска C2 трафика, учитывая, что она написана на Rust и не требует предварительной настройки? Особенно интересуют практические примеры использования eBPF для атрибуции процессов и настройки встроенной системы детектирования для порт-сканирования и DNS туннелирования. Буду благодарен за любую помощь или ссылку на полезные ресурсы.

Реализация сетевых форензик на Rust

Привет! Я тут пытался разобраться с темой сетевых форензик, в частности про живую расшифровку TLS 1.3, JA4 и поиск C2. Начал с нуля, чтобы погрузиться в эту тему на Rust. Но, блин, не все сразу пошло гладко.

Что я пробовал

  1. Разобраться с TLS 1.3. Я думал, что поймать трафик и расшифровать его будет легко, но, на самом деле, это оказалось настоящим вызовом. Я на пробовал использовать библиотеку rustls, но столкнулся с проблемой, что TLS 1.3 довольно сильно защищён, и просто так его не расшифруешь.

  2. JA3 и JA4. Тут, вроде, должно быть проще. Сначала я попытался закодировать хеши клиентских и серверных идентфикаторов, но оказалось, что информации на эту тему — как собак нерезаных. Я в итоге чуть не поехал к психотерапевту, потому что все примеры были на других языках, а я упорно ругал Rust.

  3. Поиск C2. Ну и, конечно, я пытался найти управление командой, но мои попытки анализировать сетевой трафик выглядели не очень. Весьма быстро понял, что без хороших инструментов и четкого понимания как все это работает — не обойтись.

Что не получилось

  • Отладка. Постоянно выходили ошибки компиляции. Кажется, что отладчик на Rust немного сложнее, чем я думал. Я даже под конец пытался из-за этого написать свой маленький проект на Python, но не вышло — глюки были. Что, конечно же, меня дико бесило.

  • Документация. Может, я тупил, но я не мог найти грамотных мануалов по живой расшифровке. Упарывался на форумах и долго искал, но то, что находил, было либо устаревшим, либо не очень актуальным.

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

Вот такие пироги. Надеюсь, выскажусь, а то за этот проект я просто умру от скуки и разочарования. Если кто-то есть в теме — дайте знать!