Ниже — семантический разбор кейса, а затем готовый HTML-блок статьи. **Поддомен:** Cybersecurity (ИБ). **Роль:** Специалист по ИБ. **Схема структуры:** C — Введение → FAQ → Темы ВКР (карточки) → Основная часть → Чек-лист → Ошибки → CTA → Эксперт → Источник. **Primary keyword:** уязвимость PolyShell в Magento для ВКР по защите веб-приложений. **LSI:** CWE-434, OWASP Top 10 2021, CVSS v3.1, stored XSS, RCE, WAF, SAST/DAST, DFD/STRIDE, Magento Open Source 2.x, Adobe Commerce, Sansec, DevSecOps, полиглот-файл, MIME-валидация. **5 вопросов студентов:** нужен ли реальный Magento-стенд; как считать эффективность, если патч уже вышел; что брать в главу 1, чтобы не пересказывать новость; ГОСТ 34 или ГОСТ 19; чем обосновать выбор WAF. **5 сущностей:** OWASP Top 10 2021, CWE-434, CVSS v3.1, ISO/IEC 25010, ГОСТ 34.601 / ГОСТ 19.201, C4/UML-диаграммы. ```html

Анализ уязвимости PolyShell в Magento для ВКР: от CWE-434 до защищаемых выводов

24 марта 2026 года компания Sansec сообщила об уязвимости PolyShell, затрагивающей все актуальные версии Magento Open Source и Adobe Commerce второй версии. Атакующий без аутентификации загружает на сервер исполняемые файлы — и получает либо удалённое выполнение кода, либо захват учётных записей через хранимую XSS. Для выпускника ИТ-направления это не новость «из мира», а готовый полигон: классический CWE-434, измеримые метрики, наглядная демонстрация и понятная практическая польза. Ниже — как превратить этот кейс в защищаемую ВКР, а не в пересказ пресс-релиза.

Вопросы, которые студент задаёт первым делом

Нужно ли поднимать настоящий Magento или хватит Docker-стенда?

Достаточно локального стенда на Docker: образы Magento Open Source 2.4.x + MariaDB + OpenSearch/Elasticsearch + Redis. Все версии Magento 2 актуальны для демонстрации, потому что уязвимость, по данным Sansec, затрагивает их целиком. В главе 3 вы описываете стенд как испытательный комплекс, фиксируете конфигурацию (версии, переменные окружения, ресурсы) — это требование воспроизводимости, без него результаты не принимаются.

Как считать эффективность защиты, если уязвимость уже закрывают патчем?

Вы оцениваете не «патч поставили / не поставили», а устойчивость системы к классу атак CWE-434. Метрики: доля заблокированных вредоносных загрузок (True Positive Rate), доля ложных срабатываний (False Positive Rate) на легитимных изображениях и PDF, время реакции WAF в миллисекундах, покрытие проверок статическим анализатором. Считаете до и после внедрения контрмер — получаете сопоставимую дельту, а это и есть «эффективность» в терминах ISO/IEC 25010 (Security → Confidentiality, Integrity).

Что взять в главу 1, чтобы это не выглядело как пересказ новости?

Новость — это только точка входа. В главе 1 вы разворачиваете её в анализ: место класса CWE-434 в OWASP Top 10 2021 (A04: Insecure Design и A05: Security Misconfiguration), вектор атаки по CVSS v3.1 с самостоятельным обоснованием оценки, модель угроз по STRIDE, DFD-диаграмму потоков данных Magento с точкой входа «загрузка файла». Три-четыре страницы такого анализа весят больше, чем двадцать страниц реферирования CVE-лент.

ГОСТ 34 или ГОСТ 19 — что выбрать для темы по безопасности?

Если ВКР описывает систему (модуль защиты, сервис мониторинга) — ГОСТ 34.601 и ГОСТ 34.602 на техническое задание. Если акцент на программном изделии и его документации — ГОСТ 19.201 (ТЗ) и ЕСПД. Смешивать их в одной работе без объяснения не стоит: нормоконтроль это ловит. Уточните на кафедре заранее — требование кафедры выше стандарта, который вам больше нравится.

Темы ВКР на базе кейса PolyShell

Как разложить кейс по главам

Глава 1: анализ, модель угроз, обоснование оценки

Начните с DFD-диаграммы Magento 2, где явно видны внешние сущности (покупатель, админ, платёжный шлюз) и накопители (media, БД). Точка входа «загрузка файла» обводится как граница доверия. Дальше — STRIDE по каждому потоку: подмена (S), раскрытие (I), отказ (D), повышение привилегий (E). Оценку по CVSS v3.1 считайте сами и приводите вектор строкой — это снимает половину вопросов на защите.

КритерийКак отражается в ВКРИнструмент
Класс уязвимостиCWE-434, привязка к A04/A05 OWASP Top 10 2021Справочники CWE, OWASP
Оценка серьёзностиВектор CVSS v3.1 с обоснованием каждой метрикиКалькулятор CVSS
Модель угрозSTRIDE + DFD на уровне контейнеровdraw.io, PlantUML
ПоследствияRCE и захват учётных записей через хранимую XSSОписание сценариев атак

Глава 2: проектирование защиты

Здесь работает принцип «эшелонированная оборона»: валидация на уровне приложения, запрет исполнения на уровне веб-сервера, контроль целостности файлов. Архитектуру рисуйте в нотации C4 (уровни Context и Container) — комиссия любит, когда видно границы компонентов, а не абстрактные «модули». Если пишете ТЗ, оформляйте его по ГОСТ 34.602, а функциональные требования нумеруйте так, чтобы в главе 3 можно было сослаться на каждый пункт.

# nginx: запрет исполнения в каталогах загрузок Magento 2
location ~* ^/(media|pub/media|var)/.*\.(php|phtml|phar|php[0-9])$ {
    deny all;
    return 403;
}
location ~* ^/pub/static/.*\.(php|phtml|phar)$ { deny all; }

# отсечение полиглотов на уровне URI
if ($request_uri ~* "^/media/.*\.(phar|phtml|pht)$") { return 444; }
<?php
// Псевдокод плагина валидации загрузки (Magento 2, di.xml → beforeSave)
class UploadGuardPlugin
{
    private const ALLOWED_MIME = ['image/jpeg', 'image/png', 'image/webp', 'application/pdf'];

    public function beforeSave($subject, array $file): array
    {
        $mime = (new \finfo(FILEINFO_MIME_TYPE))->file($file['tmp_name']);
        $ext  = strtolower(pathinfo($file['name'], PATHINFO_EXTENSION));

        if (!in_array($mime, self::ALLOWED_MIME, true)) {
            throw new LocalizedException(__('MIME-тип не разрешён'));
        }
        if (in_array($ext, ['php', 'phtml', 'phar', 'pht'], true)) {
            throw new LocalizedException(__('Расширение заблокировано'));
        }
        // ключевой шаг против полиглотов: перекодировать изображение
        // через GD/Imagick, а не сохранять исходный бинарник
        return [$file];
    }
}

Глава 3: испытания, метрики, доказательства

Без чисел работа превращается в эссе. Эксперимент строится по схеме «до / после»: сначала фиксируете уязвимость на стенде, затем внедряете контрмеры и повторяете тот же сценарий. Все запросы и ответы сохраняйте в приложение — это доказательная база, к которой комиссия может обратиться.

МетрикаКак измеряетсяЧто показывает
TPR (доля блокировок)N успешных блокировок / N атакРеальная защищённость
FPR (ложные срабатывания)N отклонённых легитимных файлов / N легитимныхЦена защиты для бизнеса
Задержка обработкиРазница p95 до и после внедренияВлияние на UX
Покрытие статического анализаНайденные CWE-434 / все внесённые в кодЗрелость DevSecOps

Чему вы научитесь

Что проверить перед сдачей

  1. Задачи из введения дословно совпадают с пунктами глав и выводами — это проверяют первым.
  2. В главе 1 есть ссылка на первоисточник (Sansec / публикация от 2026-03-24), а не на пересказ.
  3. Все диаграммы подписаны, пронумерованы и упомянуты в тексте до их появления.
  4. Метрики в главе 3 имеют единицы измерения и способ получения, а не только итоговое число.
  5. Стенд описан так, что его можно воспроизвести: версии, образы, конфигурация.
  6. ТЗ и ЕСПД оформлены по выбранному стандарту единообразно во всей работе.
  7. Приложения с листингами и логами не дублируют основной текст и имеют оглавление.

Типичные ошибки

1. Пересказ новости вместо анализа. Студент открывает главу 1 фразой «компания Sansec обнаружила уязвимость» и на этом анализ заканчивается. Избежать просто: добавьте классификацию (CWE-434), модель угроз и обоснование CVSS-вектора — новость становится лишь иллюстрацией.

2. Демонстрация атаки на чужом стенде. Эксплуатация реальных магазинов — это не «практическая часть», а статья УК. Работайте исключительно на собственном локальном развёртывании, а в тексте прямо укажите, что эксперимент проводился в изолированном контуре.

3. Метрика ради метрики. Когда в главе 3 стоит «эффективность повысилась на 30%» без указания, что именно измерялось и на какой выборке, комиссия почти всегда просит пересчитать. Фиксируйте формулу, размер выборки и погрешность.

Если тема только формируется, а сроки уже поджимают — начните с консультации: разберём, какая из трёх тем ближе к вашей специальности и какие данные реально удастся собрать за оставшееся время. Стандартный объём работы — около 120 часов, включая стенд, эксперимент и оформление. Первая встреча бесплатная, помощь возможна с темой любой сложности.

Материал подготовлен экспертами компании [Название сайта]. Мы помогаем студентам с 2010 года. Если вам нужна помощь в разработке темы или оформлении работы, наши специалисты готовы подсказать.

Последнее обновление: 2026-09-12

Источник: RCE-уязвимость PolyShell угрожает магазинам на базе Magento (опубликовано 2026-03-24)

```