
Опубликовано: 2 января 2025 г. | Scientific Reports
Авторы: Хазем М. Котб, Тарек Габер, Салем АльДжанах, Хоссам М. Завбаа, Мохаммед Алькатхами и др.
Кибербезопасность остаётся одной из самых критичных задач для современных предприятий. Хотя организации традиционно инвестируют в периметровую защиту — межсетевые экраны и системы обнаружения вторжений (IDS), — возрастающее число инсайдерских угроз сместило фокус на выявление внутренних аномалий. Инсайдерские угрозы — будь то злонамеренные сотрудники, неосторожные пользователи или скомпрометированные учётные записи — составляют значительную долю инцидентов. Дополнительную сложность вносит генеративный искусственный интеллект (ИИ): автоматические системы способны создавать убедительные поддельные профили, имитирующие легитимное поведение.
В этом материале мы рассматриваем новую модель Deep Synthesis-Based Insider Intrusion Detection (DS-IID), которая решает обе задачи: выявляет вредоносных инсайдеров и отличает реальные профили от сгенерированных ИИ. Мы разберём принцип работы, технические детали, примеры кода и результаты испытаний на наборе данных CERT.
Источником инсайдерских угроз являются внутренние субъекты — сотрудники, подрядчики или доверенные устройства — обладающие легитимным доступом к ресурсам. Благодаря привилегиям их аномальное поведение часто ускользает от традиционных средств защиты. По последним исследованиям, до 79 % инцидентов связано с инсайдерами.
Генеративные модели способны создавать реалистичные синтетические данные, маскируя вредоносную активность под «обычную». Классические IDS зачастую не различают настоящие и искусственные события, что приводит к «слепым зонам» безопасности.
Модель DS-IID сочетает глубокий синтез признаков, генеративное моделирование и бинарную классификацию глубоким обучением, преследуя три цели:
DFS автоматически извлекает подробные профили из сырых журналов и сетевого трафика, что:
Генеративные модели симулируют нормальное поведение, а бинарный классификатор, обученный на реальных и синтетических данных, решает — легитимный ли профиль или вредоносный. Такой дуэт обеспечивает:
В кибербезопасности нормальные события доминируют над редкими атаками. DS-IID применяет «on-the-fly» взвешенную случайную выборку, динамически повышая весомость редких вредоносных примеров и снижая риск ложно-положительных и ложно-отрицательных срабатываний.
Используются открытые наборы, например CERT. Шаги:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Dropout
# Определяем бинарную модель DS-IID
def build_ds_iid_model(input_dim):
model = Sequential()
model.add(Dense(128, activation='relu', input_dim=input_dim))
model.add(Dropout(0.3))
model.add(Dense(64, activation='relu'))
model.add(Dropout(0.3))
model.add(Dense(32, activation='relu'))
model.add(Dropout(0.3))
model.add(Dense(1, activation='sigmoid'))
model.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
return model
if __name__ == "__main__":
input_dimensions = 30 # Пример числа признаков после DFS
model = build_ds_iid_model(input_dimensions)
model.summary()
#!/bin/bash
# Путь к журналу (пример: /var/log/auth.log)
LOG_FILE="/var/log/auth.log"
# Шаблон подозрительных записей (много неудачных входов и т. д.)
PATTERN="Failed password|Invalid user"
echo "Сканирование журнала на подозрительную активность..."
grep -E "$PATTERN" "$LOG_FILE" > suspicious_activity.log
echo "Количество найденных записей:"
wc -l suspicious_activity.log
echo "Первые 10 подозрительных строк:"
head -n 10 suspicious_activity.log
import pandas as pd
from datetime import datetime
# Парсим лог-файл в DataFrame
def parse_log_file(log_file_path):
data = []
with open(log_file_path, 'r') as f:
for line in f:
parts = line.split()
timestamp_str = " ".join(parts[0:3])
try:
timestamp = datetime.strptime(timestamp_str, '%b %d %H:%M:%S')
except ValueError:
continue
data.append({
'timestamp': timestamp,
'hostname': parts[3],
'service': parts[4].split('[')[0],
'message': " ".join(parts[5:])
})
return pd.DataFrame(data)
# Пример синтеза признаков
def generate_features(df):
feature_df = df.groupby('hostname').size().reset_index(name='suspicious_count')
df['hour'] = df['timestamp'].dt.hour
hourly = df.groupby(['hostname', 'hour']).size().unstack(fill_value=0)
return feature_df.merge(hourly, on='hostname', how='left')
if __name__ == "__main__":
log_df = parse_log_file('suspicious_activity.log')
features = generate_features(log_df)
print("Сгенерированные признаки:")
print(features.head())
features.to_csv('user_features.csv', index=False)
Использовались 9 показателей: Kappa, TPR, FPR, FAR, recall, precision, F1, accuracy, AUC. Взвешенная выборка позволила сохранить высокую эффективность при дисбалансе классов.
В отличие от правил-базированных IDS или кластеризации без учителя, DS-IID объединяет автоматический синтез признаков и учёт синтетических данных, обеспечивая преимущество в точности (54–98 % у конкурентов против 97 % у DS-IID).
DS-IID предлагает значительный шаг вперёд в обнаружении инсайдеров, особенно в эпоху генеративного ИИ. Ключевые достоинства:
Интеграция DS-IID в инфраструктуру кибербезопасности открывает надёжный путь к снижению рисков от внутренних и ИИ-генерированных угроз.
Сочетая передовые методы и практические примеры кода, эта инструкция демонстрирует многосторонний подход DS-IID. Будь вы специалист по кибербезопасности или дата-сайентист, модель DS-IID предлагает масштабируемое решение для сложных задач обнаружения инсайдерских угроз. Удачной работы и надёжной безопасности!
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.