CVE-2022-40684
Fortinet Multiple Products
2022-10-11
Fortinet FortiOS, FortiProxy, and FortiSwitchManager contain an authentication bypass vulnerability that could allow an unauthenticated attacker to perform operations on the administrative interface via specially crafted HTTP or HTTPS requests.
Технический анализ и план устранения
Суть уязвимости
CVE-2022-40684 — это критическая уязвимость обхода аутентификации (Authentication Bypass) в административном интерфейсе FortiOS, FortiProxy и FortiSwitchManager. Проблема заключается в некорректной проверке заголовков HTTP-запросов (в частности, Forwarded, X-Forwarded-For и User-Agent).
Злоумышленник может отправить специально сформированный запрос, который заставит устройство считать, что запрос исходит от доверенного внутреннего процесса (например, node.js скрипта), что дает полный административный доступ к API устройства без ввода логина и пароля. Это позволяет удаленно изменять конфигурацию, создавать новых пользователей и полностью компрометировать систему.
Как исправить
Основным способом устранения является обновление прошивки до актуальных версий, в которых уязвимость закрыта.
1. Обновление FortiOS: * Версии 7.0.x: обновиться до 7.0.7 или выше. * Версии 7.2.x: обновиться до 7.2.2 или выше.
2. Обновление FortiProxy: * Версии 7.0.x: обновиться до 7.0.7 или выше. * Версии 7.2.x: обновиться до 7.2.1 или выше.
3. Обновление FortiSwitchManager: * Версии 7.0.x: обновиться до 7.0.0. * Версии 7.2.x: обновиться до 7.2.1 или выше.
Команда для проверки текущей версии:
get system status
Временные меры
Если немедленное обновление невозможно, необходимо ограничить доступ к административному интерфейсу.
1. Отключение HTTP/HTTPS администрирования на внешних интерфейсах: Необходимо оставить управление только через доверенные внутренние сети.
2. Настройка Local In Policy (рекомендуется): Создайте правило, разрешающее доступ к портам управления (по умолчанию 443/80) только с определенных IP-адресов администраторов.
Пример настройки для FortiOS (замените srcaddr на вашу доверенную сеть):
config firewall address
edit "Trusted_Admin_IPs"
set subnet 192.168.1.0 255.255.255.0
next
end
config firewall local-in-policy
edit 1
set intf "wan1"
set srcaddr "Trusted_Admin_IPs"
set dstaddr "all"
set action accept
set service "HTTPS" "HTTP"
set schedule "always"
next
edit 2
set intf "wan1"
set srcaddr "all"
set dstaddr "all"
set action deny
set service "HTTPS" "HTTP"
set schedule "always"
next
end
3. Использование доверенных хостов (Trusted Hosts): Ограничьте список IP, с которых разрешен вход для конкретных учетных записей.
config system admin
edit "admin"
set trusthost1 192.168.1.100 255.255.255.255
next
end