Статья:

SCANGUARD: ГИБРИДНАЯ ВЕБ-СИСТЕМА ДЛЯ ОБНАРУЖЕНИЯ ВРЕДОНОСНЫХ ФАЙЛОВ

Конференция: XCV Международная научно-практическая конференция «Научный форум: технические и физико-математические науки»

Секция: Информатика, вычислительная техника и управление

Выходные данные
Атеули О.М., Мурат Д.А., Айбаров А.А. SCANGUARD: ГИБРИДНАЯ ВЕБ-СИСТЕМА ДЛЯ ОБНАРУЖЕНИЯ ВРЕДОНОСНЫХ ФАЙЛОВ // Научный форум: Технические и физико-математические науки: сб. ст. по материалам XCV междунар. науч.-практ. конф. — № 4(95). — М., Изд. «МЦНО», 2026.
Конференция завершена
Мне нравится
на печатьскачать .pdfподелиться

SCANGUARD: ГИБРИДНАЯ ВЕБ-СИСТЕМА ДЛЯ ОБНАРУЖЕНИЯ ВРЕДОНОСНЫХ ФАЙЛОВ

Атеули Олжас Мейрханулы
студент 4 курса бакалавриата, образовательная программа Сетевая безопасность, Международный университет информационных технологий (МУИТ), Казахстан, г. Алматы
Мурат Диас Асхатулы
студент 4 курса бакалавриата, образовательная программа Сетевая безопасность, Международный университет информационных технологий (МУИТ), Казахстан, г. Алматы
Айбаров Аят Айбарулы
студент 4 курса бакалавриата, образовательная программа Сетевая безопасность, Международный университет информационных технологий (МУИТ), Казахстан, г. Алматы
Пягай Виктор Тимофеевич
научный руководитель, магистр, сениор-лектор, Международный университет информационных технологий (МУИТ), Казахстан, г. Алматы

 

Аннотация. В статье представлена ScanGuard - веб-система для обнаружения потенциально вредоносных файлов. Система сочетает облегченную универсальную модель на основе интерпретируемых статических признаков, PE-специфичную модель EMBER и опциональный режим Deep Scan, который добавляет результаты VirusTotal. В работе описаны архитектура системы, конвейер сканирования, хранение истории сканов и формирование отчета. Lite-модель оценивалась на пользовательском датасете с независимой holdout-выборкой, а PE-путь - на публичном наборе признаков EMBER 2018 v2. Полученные результаты показывают, что предложенная архитектура обеспечивает быстрый локальный скрининг и более сильную классификацию PE-образцов.

 

Ключевые слова: обнаружение вредоносного ПО, статический анализ, машинное обучение, EMBER, VirusTotal, веб-сервис, сканирование файлов.

 

Введение

Доставка вредоносного ПО уже не ограничивается классическими исполняемыми файлами. Опасное содержимое попадает к пользователям через скрипты, документы, архивы, дропперы и упакованные бинарные файлы. Сигнатурные антивирусные средства по-прежнему необходимы, однако их возможности ограничены при работе с ранее неизвестными образцами и в небольших пользовательских сценариях [1, 2]. Поэтому методы машинного обучения сохраняют актуальность для статического и динамического анализа вредоносного ПО [3, 4].

Во многих исследованиях основное внимание уделяется Windows PE-файлам, поскольку этот формат содержит богатую структурную информацию и для него существуют публичные benchmark-наборы данных. Это удобно для сравнения моделей, но не решает практическую задачу небольшого веб-сканера, куда пользователи загружают файлы разных типов. Сервис, предназначенный для предварительной проверки, должен работать с текстовыми файлами, скриптами, архивами и PE-образцами в одном интерфейсе, сохраняя при этом возможность использовать более сильную специализированную модель для исполняемых файлов.

Целью работы было разработать и оценить веб-сервис, который объединяет универсальную межформатную модель и специализированную PE-ориентированную модель. Созданная система ScanGuard поддерживает режим Quick Scan для локального анализа и режим Deep Scan, который дополняет результаты внешним отчетом VirusTotal [7]. Кроме того, система сохраняет историю сканирований, формирует человекочитаемую сводку и экспортирует PDF-отчет.

Материалы и методы

ScanGuard включает статический фронтенд, backend на Node.js/Express, отдельный сервис машинного обучения на FastAPI и базу данных PostgreSQL. После загрузки файла backend создает идентификатор сканирования, сохраняет исходные метаданные, вычисляет хэш SHA-256 и передает файл в ML-сервис. Возвращенные классификация, вероятность, порог, риск-оценка и список причин объединяются в объект отчета. В режиме Deep Scan backend дополнительно запрашивает данные VirusTotal и добавляет их в итоговый отчет. Архитектура системы и сценарий сканирования показаны на рис. 1 и рис. 2.

 

Рисунок 1. Общая архитектура системы ScanGuard

 

Рисунок 2. Рабочие процессы Quick Scan и Deep Scan

 

Lite-модель была разработана как универсальный модуль предварительной проверки для разнородных файлов. Она вычисляет компактный набор интерпретируемых статических признаков по сырым байтам и декодированному превью: размер файла, энтропию Шеннона, долю печатных символов, количество URL, наличие EICAR-строки, командных ключевых слов, признаков макросов и длинных base64-подобных фрагментов. Эти индикаторы выбраны потому, что их можно быстро извлечь для любого файла и показать пользователю в отчете. Набор признаков приведен в табл. 1.

Lite-классификатор реализован как конвейер scikit-learn, включающий StandardScaler и LogisticRegression с параметром class_weight="balanced". Обучающая выборка хранится в data/, а data_holdout/ используется только для финальной оценки. Обучающая выборка Lite содержит 688 файлов, включая 353 безопасных и 335 вредоносных образцов. Holdout-набор содержит 132 файла, включая 75 безопасных и 57 вредоносных образцов. Датасет включает реальные безопасные файлы и синтетически расширенные безопасные и malicious-like образцы.

Для Windows PE-файлов ScanGuard может переключаться на специализированную модель, обученную на EMBER 2018 v2 - публичном benchmark-датасете для статического обнаружения вредоносных PE-файлов [5]. В проекте используется классификатор LightGBM [6], обученный на представлении признаков Parquet. Сохраненные метрики указывают на 2 381 числовой признак, максимум 200 000 обучающих образцов и 50 000 тестовых образцов в локальной конфигурации эксперимента. Определение PE-файла основано на сигнатуре MZ и типичных исполняемых расширениях.

Таблица 1.

Статические признаки, используемые в Lite-модели

Признак

Описание

Причина использования

size_bytes

Размер файла

Позволяет различать небольшие дропперы, документы, архивы и более крупные упакованные объекты.

entropy

Энтропия Шеннона

Высокая энтропия может указывать на упаковку, шифрование или обфускацию.

printable_ratio

Доля печатных ASCII-символов

Помогает различать бинарное, текстовое и скриптовое содержимое.

url_count

Количество URL HTTP/HTTPS

Подозрительные ссылки часто встречаются в фишинговых приманках и скриптах.

has_eicar

Строка EICAR

Фиксирует стандартный антивирусный тестовый образец.

has_cmd_keywords

powershell, cmd.exe, wscript, cscript, mshta

Выявляет паттерны командного выполнения и запуска скриптов.

has_macro_keywords

macro, vba, autoopen, document_open

Выявляет индикаторы автоматизации документов.

has_base64_like

Длинный base64-подобный фрагмент

Помечает возможную закодированную нагрузку или встроенные команды.

 

Система возвращает не только бинарную метку. ML-сервис выдает имя движка, PE-флаг, вероятность, порог, риск-оценку от 0 до 100, извлеченные признаки и список причин. Backend дополняет эти данные метаданными файла, SHA-256, режимом сканирования, при наличии статистикой VirusTotal и краткой AI-сводкой на русском языке. Сырые данные файла в API языковой модели не отправляются. Процесс формирования отчета и сохранения результатов показан на рис. 3.

 

Рисунок 3. Процесс формирования отчета и сохранения истории сканирований

 

Результаты

С инженерной точки зрения проект достиг уровня работающего веб-сервиса, а не изолированного модельного эксперимента. Главная страница принимает загрузки и запускает сканирование. Страница отчета показывает итоговый вердикт, вероятность, risk score, причины, AI-сводку и, для Deep Scan, статистику VirusTotal. Страница benchmark считывает экспортированные JSON-метрики Lite- и EMBER-моделей. Страница history отображает сохраненные сканирования с фильтрами по режиму и движку, а также с поиском по имени файла и SHA-256.

Для Lite-модели значение ROC-AUC на holdout-наборе составляет 0.9764. При пороге 0.20 accuracy равна 0.9091, precision - 0.8358, recall - 0.9825, F1 - 0.9032. При пороге 0.50 accuracy равна 0.8864, precision - 0.9565, recall - 0.7719, F1 - 0.8544. Лучшее значение F1 на holdout-наборе в экспортированном threshold sweep составляет 0.9655 при пороге 0.25. Более низкий порог лучше подходит для скрининга, поскольку почти не пропускает вредоносные образцы в holdout-наборе, но увеличивает число ложноположительных срабатываний (табл. 2).

Таблица 2.

Основные метрики оценки моделей ScanGuard

Модель

Данные

Порог

ROC-AUC

Prec.

Recall

F1

Acc.

Lite

Holdout

0.20

0.9764

0.8358

0.9825

0.9032

0.9091

Lite

Holdout

0.50

0.9764

0.9565

0.7719

0.8544

0.8864

EMBER

Test

0.50

0.9931

0.9608

0.9664

0.9636

-

 

Для EMBER-пути экспортированные метрики показывают ROC-AUC 0.9931, precision 0.9608, recall 0.9664 и F1 0.9636 при пороге 0.50. Этот результат сильнее, чем оценка Lite-модели, что ожидаемо, поскольку EMBER работает в более узкой области, использует крупный публичный PE-датасет и более богатое представление признаков. Основные результаты оценки, доступные в текущей версии системы, приведены в табл. 2.

Обсуждение

Гибридная архитектура устраняет инженерное несоответствие между исследовательскими датасетами и пользовательскими загрузками. Один классификатор только для PE-файлов не покрывает текстовые документы, архивы и скрипты, а небольшая универсальная модель не может соперничать с сильным PE-benchmark на исполняемых файлах. Совмещение этих подходов позволяет сервису сохранять широкий охват, не отказываясь от специализированного PE-пути.

Lite-модель полезна тем, что она дешева по вычислениям и интерпретируема. Каждый признак можно показать пользователю и связать с конкретной причиной в отчете. Это особенно важно для учебных и демонстрационных сценариев, где пользователю нужны не только итоговый балл, но и краткое объяснение.

У текущего проекта есть и понятные ограничения. Lite-датасет относительно невелик и частично опирается на синтетические безопасные и malicious-like файлы. Система использует только статический анализ и не запускает образцы в песочнице, не исследует их поведение во время выполнения. PE-путь улучшает обнаружение PE-файлов, но не распространяется на не-PE форматы. Режим Deep Scan также создает компромисс по конфиденциальности, поскольку при запросе расширения VirusTotal файл должен быть отправлен во внешний сервис.

Заключение

ScanGuard объединяет облегченную универсальную модель, PE-специфичную модель EMBER, опциональное обогащение VirusTotal, постоянное хранение истории и формирование отчетов в едином веб-процессе. Текущие результаты подтверждают, что Lite-модель подходит для быстрого предварительного скрининга, а EMBER-модель дает более сильное обнаружение PE-файлов. При этом система остается практическим прототипом, а не заменой промышленным продуктам безопасности, поскольку данные Lite-модели ограничены, а динамический анализ не реализован.

 

Список литературы:
1. Schultz M.G., Eskin E., Zadok E., Stolfo S.J. Data Mining Methods for Detection of New Malicious Executables // Proceedings 2001 IEEE Symposium on Security and Privacy. 2001. P. 38-49.
2. Kolter J.Z., Maloof M.A. Learning to Detect and Classify Malicious Executables in the Wild // Journal of Machine Learning Research. 2006. Vol. 7. P. 2721-2744.
3. Ucci D., Aniello L., Baldoni R. Survey of Machine Learning Techniques for Malware Analysis // Computers & Security. 2019. Vol. 81. P. 123-147. DOI: 10.1016/j.cose.2018.11.001.
4. Singh J., Singh J. A Survey on Machine Learning-Based Malware Detection in Executable Files // Journal of Systems Architecture. 2021. Vol. 112. Art. 101861. DOI: 10.1016/j.sysarc.2020.101861.
5. Anderson H.S., Roth P. EMBER: An Open Dataset for Training Static PE Malware Machine Learning Models // arXiv preprint arXiv:1804.04637. 2018.
6. Ke G., Meng Q., Finley T., Wang T., Chen W., Ma W., Ye Q., Liu T.-Y. LightGBM: A Highly Efficient Gradient Boosting Decision Tree // Advances in Neural Information Processing Systems. 2017. Vol. 30. P. 3146-3154.
7. VirusTotal. API Overview [Электронный ресурс]. URL: https://docs.virustotal.com/docs/api-overview (дата обращения: 29.03.2026).