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).
- Определите текущую версию DNN: Проверьте номер версии в файле
web.configв корне сайта (параметрappSettings/version) или в Панели управления хоста (Host -> Host Settings). - Обновите 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).
- Процедура обновления:
- Создайте полную резервную копию базы данных и файлов сайта.
- Скачайте установочный пакет нужной версии с официального сайта.
- Остановите сайт в IIS.
- Замените файлы платформы (кроме папки
App_Dataи измененных файлов, например,web.config). - Запустите сайт и выполните обновление базы данных через мастер установки (
/Install/Install.aspx?mode=upgrade).
Временное решение
Если немедленное обновление невозможно, примите следующие меры для снижения риска:
- Настройте 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'"
- Добавьте правило для блокировки запросов, содержащих в параметрах (
- Принудительно используйте 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> - Ограничьте доступ: Настройте брандмауэр на уровне сети, чтобы разрешить доступ к сайту DNN только с доверенных IP-адресов (например, офисной сети).