CVE-2020-8657
EyesOfNetwork EyesOfNetwork
2021-11-03
EyesOfNetwork contains a use of hard-coded credentials vulnerability, as it uses the same API key by default. Exploitation allows an attacker to calculate or guess the admin access token.
Технический анализ и план устранения
Суть уязвимости
Уязвимость (CWE-798) заключается в использовании статического, предустановленного API-ключа (EONAPI_KEY) в продукте EyesOfNetwork. Этот ключ одинаков для всех установок по умолчанию.
- Злоумышленник, зная или угадав этот ключ, может сгенерировать валидный токен доступа администратора (
admin). - Используя этот токен, атакующий получает полный неавторизованный доступ к REST API (
/eonapi/), что позволяет читать конфиденциальные данные, изменять конфигурацию и выполнять произвольные команды на сервере.
Как исправить
Основное решение — обновление EyesOfNetwork до версии, в которой данная уязвимость исправлена.
-
Определите текущую версию:
bash eoninfo -v -
Обновите пакеты EyesOfNetwork до версии 5.3-10 или новее. Процесс зависит от вашего дистрибутива и метода установки.
-
Для установки из официальных репозиториев (рекомендуется): ```bash # Для Debian/Ubuntu sudo apt update sudo apt install eyesofnetwork
Для RHEL/CentOS/Rocky/AlmaLinux
sudo yum update eyesofnetwork
`` * После обновления система автоматически сгенерирует уникальный случайныйEONAPI_KEY`.
-
-
Вручную обновите API-ключ (если после обновления проблема сохранилась):
- Остановите службы:
bash sudo systemctl stop eonapi.service eyesofnetwork.service - Сгенерируйте новый, надежный ключ (например, 32 символа):
bash openssl rand -hex 16 - Измените конфигурационный файл
/srv/eyesofnetwork/eonapi/config/eonapi.ini:ini [security] EONAPI_KEY = ваш_новый_сгенерированный_ключ_здесь - Обновите ключ в базе данных:
bash mysql -u eyesofnetwork -p eyesofnetworksql UPDATE `configuration` SET `value` = 'ваш_новый_сгенерированный_ключ_здесь' WHERE `key` = 'EONAPI_KEY'; EXIT; - Запустите службы:
bash sudo systemctl start eonapi.service eyesofnetwork.service
- Остановите службы:
Временное решение
Если немедленное обновление невозможно, выполните следующие шаги для снижения риска:
-
Немедленно смените статический API-ключ вручную, следуя шагам 3 из раздела "Как исправить" (пункты с генерацией ключа, правкой
eonapi.iniи обновлением БД). -
Ограничьте сетевой доступ к веб-интерфейсу и API EyesOfNetwork (порт 80/443 по умолчанию):
- Настройте правила межсетевого экрана (firewall), разрешающие подключение только с доверенных IP-адресов (административных сегментов, VPN).
- Пример для
iptables(разрешить только сеть 192.168.1.0/24):bash sudo iptables -A INPUT -p tcp --dport 443 -s 192.168.1.0/24 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 443 -j DROP
-
Настройте Reverse Proxy (например, Nginx/Apache) перед EyesOfNetwork:
- Включите аутентификацию на уровне веб-сервера (Basic Auth, клиентские сертификаты).
- Добавьте дополнительные правила WAF (Web Application Firewall) для фильтрации запросов к
/eonapi/, блокируя подозрительную активность.
-
Активно мониторьте логи (
/srv/eyesofnetwork/logs/eonapi/eonapi.log,apache2/access.log) на предмет попыток доступа с использованием старых, скомпрометированных токенов или аномальных запросов к API.