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 до версии, в которой данная уязвимость исправлена.

  1. Определите текущую версию: bash eoninfo -v

  2. Обновите пакеты EyesOfNetwork до версии 5.3-10 или новее. Процесс зависит от вашего дистрибутива и метода установки.

    • Для установки из официальных репозиториев (рекомендуется): ```bash # Для Debian/Ubuntu sudo apt update sudo apt install eyesofnetwork

      Для RHEL/CentOS/Rocky/AlmaLinux

      sudo yum update eyesofnetwork `` * После обновления система автоматически сгенерирует уникальный случайныйEONAPI_KEY`.

  3. Вручную обновите 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 eyesofnetwork sql UPDATE `configuration` SET `value` = 'ваш_новый_сгенерированный_ключ_здесь' WHERE `key` = 'EONAPI_KEY'; EXIT;
    • Запустите службы: bash sudo systemctl start eonapi.service eyesofnetwork.service

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

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

  1. Немедленно смените статический API-ключ вручную, следуя шагам 3 из раздела "Как исправить" (пункты с генерацией ключа, правкой eonapi.ini и обновлением БД).

  2. Ограничьте сетевой доступ к веб-интерфейсу и 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
  3. Настройте Reverse Proxy (например, Nginx/Apache) перед EyesOfNetwork:

    • Включите аутентификацию на уровне веб-сервера (Basic Auth, клиентские сертификаты).
    • Добавьте дополнительные правила WAF (Web Application Firewall) для фильтрации запросов к /eonapi/, блокируя подозрительную активность.
  4. Активно мониторьте логи (/srv/eyesofnetwork/logs/eonapi/eonapi.log, apache2/access.log) на предмет попыток доступа с использованием старых, скомпрометированных токенов или аномальных запросов к API.