29 мая 2014 г.

Elasticsearch (http://www.elasticsearch.org/) – это популярный поисковый сервер с открытым кодом. Недавно нам стало известно о двух потенциальных проблемах с безопасностью в этом ПО. Поскольку эта проблема не касается непосредственно сервисов AWS, мы хотим убедиться, что все наши клиенты знают о ней и могут предпринять соответствующие шаги.

Первая проблема возникла с небезопасными настройками по умолчанию для ранних версий (до 1.2) этого программного обеспечения. Она описана в CVE-2014-3120 (http://bouk.co/blog/elasticsearch-rce/). Злоумышленники могут воспользоваться этой уязвимостью и запускать произвольные команды с привилегиями управляющей программы Elasticsearch.

Вторая проблема – это отсутствие контроля доступа, это касается всех версий Elasticsearch. Любой, кто подключился к поисковому порту, может запросить или изменить какой-либо индекс на сервере. Эти проблемы представляют наибольший риск, когда сервер Elasticsearch открыт для доступа всем пользователям Интернета и работает через порт по умолчанию 9200/tcp.

Самый эффективный способ избежать опасных ситуаций – убедиться, что ваши поисковые серверы не могут быть доступны каждому хосту в Интернете. Вы можете использовать группы безопасности EC2, чтобы разрешить доступ к порту 9200/tcp только тем хостам, которые должны запрашивать ваш поисковый индекс. Подробнее о группах безопасности EC2 см. на странице http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html.

Также если вы используете раннюю версию Elasticsearch (до 1.2), вам нужно отключить поддержку динамического исполнения скрипта в Elasticsearch. Подробнее о том, как это сделать, см. на странице http://bouk.co/blog/elasticsearch-rce/#how_to_secure_against_this_vulnerability.

Если вы используете Elasticsearch на производстве, мы рекомендуем провести аудит групп безопасности и, при необходимости, предпринять соответствующие шаги для ограничения доступа к вашим серверам Elasticsearch.