CVE-2018-15811

DotNetNuke (DNN) DotNetNuke (DNN)

ВЫСОКАЯ ВЕРОЯТНОСТЬ

Дата обнаружения

2021-11-03

Официальное описание

DotNetNuke (DNN) contains an inadequate encryption strength vulnerability resulting from the use of a weak encryption algorithm to protect input parameters.

🛡️
Технический анализ и план устранения

Суть уязвимости

Уязвимость (CWE-326) в DotNetNuke (DNN) связана с использованием слабого алгоритма шифрования (3DES) для защиты входных параметров. Это позволяет злоумышленнику: * Расшифровать данные: Восстановить исходные данные из зашифрованных параметров, передаваемых в URL или форме. * Провести атаку "человек посередине" (MitM): Перехватить и расшифровать трафик между браузером пользователя и сервером DNN. * Подделать параметры: После анализа алгоритма создать поддельные, но валидные зашифрованные параметры для обхода проверок или повышения привилегий.

Как исправить

Основное решение — обновление платформы DNN до версии, в которой используется стойкий алгоритм шифрования (например, AES).

  1. Определите текущую версию DNN: Проверьте номер версии в файле web.config в корне сайта (параметр appSettings/version) или в Панели управления хоста (Host -> Host Settings).
  2. Обновите DNN:
    • Для версий 9.2.0 и ниже: Обновитесь до DNN Platform 9.2.1 или новее. Это минимальная версия, содержащая исправление.
    • Для версий 9.3.0 и 9.3.1: Обновитесь до DNN Platform 9.3.2 или новее.
    • Актуальная версия: Рекомендуется обновиться до последней стабильной версии DNN Platform (проверьте на github.com/dnnsoftware/Dnn.Platform).
  3. Процедура обновления:
    • Создайте полную резервную копию базы данных и файлов сайта.
    • Скачайте установочный пакет нужной версии с официального сайта.
    • Остановите сайт в IIS.
    • Замените файлы платформы (кроме папки App_Data и измененных файлов, например, web.config).
    • Запустите сайт и выполните обновление базы данных через мастер установки (/Install/Install.aspx?mode=upgrade).

Временное решение

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

  1. Настройте WAF (Web Application Firewall):
    • Добавьте правило для блокировки запросов, содержащих в параметрах (GET/POST) зашифрованные данные в формате, характерном для DNN (например, длинные строки в Base64).
    • Пример правила для ModSecurity (CRS): apache SecRule ARGS "@rx ^[A-Za-z0-9+/]+={0,2}$" \ "id:1000,\ phase:2,\ block,\ msg:'Potential DNN encrypted parameter detected',\ severity:'CRITICAL'"
  2. Принудительно используйте HTTPS: Настройте строгое использование TLS 1.2/1.3 на веб-сервере (IIS) и настройте перенаправление всего HTTP-трафика на HTTPS в web.config. Это усложнит перехват трафика. xml <system.webServer> <rewrite> <rules> <rule name="Force HTTPS" stopProcessing="true"> <match url="(.*)" /> <conditions> <add input="{HTTPS}" pattern="^OFF$" /> </conditions> <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> </rule> </rules> </rewrite> </system.webServer>
  3. Ограничьте доступ: Настройте брандмауэр на уровне сети, чтобы разрешить доступ к сайту DNN только с доверенных IP-адресов (например, офисной сети).