We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Интеграция AI‑моделей для обнаружения аномалий в сетевом трафике Linux с использованием TensorFlow Lite в Termux

В современных инфраструктурах обнаружение аномалий в сетевом трафике становится критически важным. Благодаря росту вычислительных возможностей мобильных устройств, платформа Termux позволяет запускать лёгкие AI‑модели непосредственно на Android‑устройствах, которые могут выступать в роли удалённых сенсоров или вспомогательных узлов.

Что будем делать

В этом руководстве мы:

  • Установим Termux и необходимые пакеты.
  • Подготовим модель TensorFlow Lite для классификации пакетов.
  • Настроим захват сетевого трафика с помощью tcpdump.
  • Создадим скрипт на Python, который будет в реальном времени преобразовывать данные пакетов в признаки и подавать их в модель.
  • Оценим производительность и обсудим варианты оптимизации.

Требования

Для успешного выполнения всех шагов требуется:

  • Устройство Android с Termux (рекомендовано Android 8+).
  • Подключение к сети Linux‑серверу (можно через SSH) для получения трафика.
  • Модель .tflite, обученная на наборе признаков сетевых пакетов (например, на базе CIC‑IDS 2017).

Установка Termux и базовых пакетов

pkg update && pkg upgrade -y
pkg install python clang make git wget -y
pip install --upgrade pip

Установим TensorFlow Lite Runtime для Python:

pip install tflite-runtime

Для захвата пакетов понадобится tcpdump:

pkg install tcpdump -y

Подготовка модели TensorFlow Lite

Если у вас уже есть готовая модель (anomaly_detector.tflite), скопируйте её в директорию ~/ml_models. В противном случае можно быстро собрать простую модель:

mkdir -p ~/ml_models && cd ~/ml_models
wget https://example.com/models/anomaly_detector.tflite

Важно, чтобы входные тензоры соответствовали формату, который будет генерировать наш препроцессор (например, массив из 100 чисел, нормализованных от 0 до 1).

Захват сетевого трафика

Запустим tcpdump в режиме «raw» и будем передавать вывод в пайп:

tcpdump -i any -s 0 -w - 'not port 22' | python ~/ml_models/infer.py

Флаг -i any указывает слушать все интерфейсы, -s 0 – захватывать полный пакет, а 'not port 22' исключает SSH‑трафик, чтобы не перегружать модель.

Python‑скрипт для предобработки и инференса

#!/usr/bin/env python3
import sys
import struct
import numpy as np
import tflite_runtime.interpreter as tflite

# Загрузка модели
interpreter = tflite.Interpreter(model_path="/data/data/com.termux/files/home/ml_models/anomaly_detector.tflite")
interpreter.allocate_tensors()
input_details = interpreter.get_input_details()
output_details = interpreter.get_output_details()

def packet_to_features(pkt_bytes):
    # Пример простой фичи: первые 100 байт, дополненные нулями, нормализованных
    max_len = 100
    data = pkt_bytes[:max_len]
    if len(data) < max_len:
        data = data.ljust(max_len, b"\x00")
    arr = np.frombuffer(data, dtype=np.uint8).astype(np.float32) / 255.0
    return arr.reshape(1, max_len)

while True:
    # Чтение заголовка pcap‑файла (24 байта) – пропускаем
    hdr = sys.stdin.buffer.read(24)
    if not hdr:
        break
    # Длина пакета (bytes 16‑20 в заголовке)
    pkt_len = struct.unpack(' 0.7:
        print(f"[ALERT] Anomaly detected: score={anomaly_score:.2f}")

Скрипт читает поток pcap в реальном времени, преобразует каждый пакет в вектор фиксированной длины и получает оценку аномалии от модели.

Оптимизация производительности

Для обеспечения стабильной работы на мобильных процессорах рекомендуется:

  • Использовать модель с 8‑битными весами (quantized), что уменьшает размер и ускоряет инференс.
  • Ограничить количество обрабатываемых пакетов в секунду (например, tcpreplay --pps 1000 для тестов).
  • Включить режим «performance» в Termux: termux-setup-storage && termux-wake-lock.

Безопасность и изоляция

Запуск захвата пакетов требует привилегий root. В Termux можно предоставить их через tsu (если устройство рутировано) или использовать sudo в окружении proot-distro. При работе с конфиденциальными данными убедитесь, что журналирование отключено и доступ к файлам ограничен правами chmod 600.

Тестирование модели

Для быстрой проверки можно использовать готовый набор pcap‑файлов:

wget https://github.com/defcom17/NetFlowDataset/raw/master/pcap/ICMP_DDoS.pcap -O /sdcard/ICMP_DDoS.pcap
tcpdump -r /sdcard/ICMP_DDoS.pcap -w - | python ~/ml_models/infer.py

Ожидается вывод с несколькими строками [ALERT], если модель правильно идентифицирует атакующий трафик.

Заключение

Интеграция TensorFlow Lite в Termux открывает новые возможности для распределённого мониторинга сетей, позволяя использовать мобильные устройства в роли лёгких аналитических узлов. Приведённый пример демонстрирует, как собрать стек: захват пакетов → предобработка → инференс → оповещение, полностью внутри Android‑окружения.

Если вам требуется разработка кастомных AI‑моделей, настройка масштабируемой инфраструктуры мониторинга или профессиональная поддержка проектов в области кибербезопасности, команда RybinskLab готова помочь. Мы предоставляем услуги по обучению моделей, их оптимизации под мобильные платформы и интеграции в существующие IT‑системы.

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен экспертом РыбинскЛАБ.

Поделиться знанием:

Нужна профессиональная помощь?

Меня зовут Усачёв Денис Евгеньевич. Я оказываю ИТ-услуги в Рыбинске и Ярославской области: настройка серверов, безопасность, автоматизация бизнеса. Запомните информация развлекательный ознакомительный носит, не нарушайте закон!

Связаться со мной
Поддержать проект