Анализ сети с ИИ: iForestNT в кибербезопасности, создаём ИИ для обнаружения анамалий

Анализ сети с ИИ: iForestNT в кибербезопасности, создаём ИИ для обнаружения анамалий

Это алгоритм обучения без учителя, относится к семейству деревьев решений ансамбля. Не требующий предварительного обучения или "Изолирующий лес"

Привет! Меня зовут Алексей, и я хотел бы поделиться с вами информацией об Isolation ForestNT - подходе к обнаружению аномалий в данных сети.

В последние годы обнаружение аномалий стало одной из ключевых задач в области кибербезопасности и анализа данных. Традиционные методы обнаружения аномалий требуют предварительного обучения на метках или экспертных знаниях, что может быть сложно и затратно. Isolation ForestNT представляет собой новый подход, который позволяет обнаруживать аномалии без предварительного обучения.

Isolation Forest NT основан на алгоритме случайного леса. Он использует принцип разделяющих деревьев для разделения данных на аномальные и нормальные образцы. Алгоритм строит несколько случайных деревьев, разбивая данные на различные ветви и листья. Важно отметить, что аномальные образцы требуют меньшего числа разделений для изоляции, чем нормальные образцы. Это основано на предположении, что аномалии более редки и менее характерны для набора данных.

Преимущества ForestNT очевидны. Он способен обнаруживать аномалии без предварительного обучения и без необходимости знания о распределении данных. Это делает его удобным инструментом для работы с большими объемами данных и быстро меняющейся средой. Кроме того, ForestNT устойчив к выбросам, что позволяет ему эффективно работать с зашумленными или неточными данными.

Наши исследования подтверждают эффективность в обнаружении аномалий. Мы провели эксперименты на различных наборах данных и сравнили результаты с другими методами обнаружения аномалий. В результате ForestNT продемонстрировал превосходство в эффективности и точности.

Для практики мы разработали пример кода на Python, который демонстрирует его использование для обнаружения аномалий в сетевом трафике. Этот пример кода может быть полезным ресурсом для разработчиков, желающих применить Isolation Forest в своих проектах. Мы предоставили комментарии и пояснения к коду, чтобы облегчить его понимание и использование.

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

Если у вас есть вопросы или вам нужна дополнительная помощь в разработке или аудите, я буду рад обращайтесь.

import numpy as np from sklearn.ensemble import IsolationForest from sklearn.preprocessing import StandardScaler # Чтение логов трафика из файла def read_traffic_logs(file_path): with open(file_path, 'r') as file: logs = file.readlines() return logs # Предобработка логов трафика def preprocess_traffic_logs(logs): traffic_data = [] for log in logs: # Пример предобработки: разделение строк на значения признаков features = log.strip().split(',') traffic_data.append(features) traffic_data = np.array(traffic_data, dtype=float) return traffic_data # Обнаружение аномалий в сетевом трафике с использованием алгоритма Isolation Forest def detect_anomalies(network_traffic): clf = IsolationForest(contamination=0.05) clf.fit(network_traffic) predictions = clf.predict(network_traffic) return predictions def main(): # Чтение и предобработка логов трафика file_path = 'traffic_logs.txt' traffic_logs = read_traffic_logs(file_path) network_traffic = preprocess_traffic_logs(traffic_logs) # Масштабирование данных scaler = StandardScaler() scaled_traffic = scaler.fit_transform(network_traffic) # Обнаружение аномалий predictions = detect_anomalies(scaled_traffic) # Вывод результатов for i, prediction in enumerate(predictions): if prediction == -1: print("Обнаружена аномалия в сетевом трафике:", network_traffic[i]) if __name__ == "__main__": main()

Инструкции

В этом коде используется файл с логами трафика traffic_logs.txt. Вы можете заменить путь к файлу на свой собственный.

Функция read_traffic_logs читает логи трафика из файла, а функция preprocess_traffic_logs выполняет предобработку логов, разделяя строки на значения признаков.

Затем данные масштабируются с использованием StandardScaler, чтобы привести их к нулевому среднему значению и единичной дисперсии.

Алгоритм применяется для обнаружения аномалий в масштабированных данных. Затем выводятся обнаруженные аномалии вместе с их значениями признаков.

Убедитесь, что у вас есть файл traffic_logs.txt с соответствующим форматом логов трафика в той же директории, что и файл с кодом.

Пример лог файла

Формат логов трафика зависит от конкретного контекста и типа данных, которые вы хотите анализировать. Однако обычно логи трафика содержат информацию о сетевых событиях, таких как исходный и целевой IP-адреса, порты, протоколы и т.д.

Вот пример формата логов трафика в CSV-стиле:

``` timestamp,source_ip,destination_ip,source_port,destination_port,protocol 2022-01-01 08:00:00,192.168.0.1,10.0.0.1,1234,5678,TCP 2022-01-01 08:01:00,192.168.0.2,10.0.0.1,4321,5678,UDP 2022-01-01 08:02:00,192.168.0.3,10.0.0.2,8765,9876,TCP ```

В этом примере каждая строка представляет отдельное сетевое событие, а столбцы представляют различные признаки, такие как временная метка (`timestamp`), исходный IP-адрес (`source_ip`), целевой IP-адрес (`destination_ip`), и т.д.

При использовании приведенного выше кода, функция `preprocess_traffic_logs` предполагает, что каждая строка в файле с логами трафика соответствует отдельному сетевому событию, и значения признаков разделены запятыми.

Однако, если у вас есть другой формат логов трафика, вам может потребоваться адаптировать функцию `preprocess_traffic_logs` для разделения строк на значения признаков в соответствии с вашим форматом логов.

Обратите внимание, что в приведенном коде используется алгоритм IForest для обнаружения аномалий в сетевом трафике. Вы можете настроить параметр `contamination` для указания ожидаемой доли аномалий в данных.

Миграция проектов с Microsoft, Amazon и Google на Яндекс - опытная команда более 15 проектов за 2 года.

Бесплатная консультация по вопросам миграции и аудита проектов! - https://t.me/ru_helpp_bot

Навыки и знания, необходимые для проектирования, развертывания и обслуживания современных защищенных импортонезависимых сетей.

11
Начать дискуссию