CVE-2019-7609
Elastic Kibana
2022-01-10
Kibana contain an arbitrary code execution flaw in the Timelion visualizer.
Технический анализ и план устранения
Суть уязвимости
Уязвимость (Prototype Pollution) в компоненте Timelion позволяет злоумышленнику, имеющему доступ к веб-интерфейсу Kibana, внедрить и выполнить произвольный код JavaScript на сервере. Это приводит к полному компрометированию узла Kibana.
Атака возможна через специально сформированный запрос к эндпоинту Timelion (/api/timelion/run), который модифицирует прототипы объектов в Node.js-окружении Kibana.
Как исправить
Основной метод — обновление Kibana до исправленной версии.
- Определите текущую версию Kibana:
bash /usr/share/kibana/bin/kibana --version -
Обновите Kibana до одной из безопасных версий:
- Для ветки 6.x: 6.6.1 или выше.
- Для ветки 5.x: 5.6.15 или выше.
Пример для Debian/Ubuntu (официальный репозиторий Elastic): ```bash
Обновите индекс пакетов и установите исправленную версию
sudo apt update sudo apt install kibana=6.6.1
Или для версии 5.x
sudo apt install kibana=5.6.15 ```
Пример для RHEL/CentOS (официальный репозиторий Elastic): ```bash sudo yum update kibana-6.6.1
Или для версии 5.x
sudo yum update kibana-5.6.15
3. **Перезапустите службу Kibana:**bash sudo systemctl restart kibana ```
Временное решение
Если немедленное обновление невозможно, примените следующие меры:
-
Отключите компонент Timelion. В конфигурационный файл Kibana (
kibana.yml) добавьте строку:yaml timelion.enabled: falseПосле изменения конфигурации перезапустите Kibana:bash sudo systemctl restart kibana -
Ограничьте сетевой доступ. Настройте брандмауэр (например,
iptablesилиfirewalld), чтобы разрешать подключения к порту Kibana (по умолчанию 5601) только с доверенных IP-адресов (например, с адресов администраторов или фронтенд-серверов).bash # Пример iptables для разрешения только с сети 192.168.1.0/24 sudo iptables -A INPUT -p tcp --dport 5601 -s 192.168.1.0/24 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 5601 -j DROP -
Настройте обратный прокси (например, nginx). Разместите перед Kibana веб-сервер, который будет блокировать запросы к уязвимому эндпоинту:
nginx location /api/timelion/run { deny all; return 403; }