Защита параметров сервиса в переменных среды Cloud Foundry - PullRequest
2 голосов
/ 05 июля 2011

Переменные среды - это средство, с помощью которого среда выполнения Cloud Foundry сообщает приложению о своей среде. Одна из наиболее важных частей информации, которую она передает, - это доступные сервисы и способы их подключения.

Источник

На той же странице приведен пример переменных среды, содержащих параметры соединения, такие как пароль имени пользователя для базы данных MySQL.

VCAP_SERVICES: {
"mongodb-1.8":[{"name":"hello-mongo","label":"mongodb-1.8","plan":"free","credentials":{"hostname":"172.30.48.64","port":25003,"username":"e4f2c402-1153-4dfb-8d98-2f6efc65e441","password":"f17f81e4-9855-4b9c-a22b-e6a9e6f113c3","name":"mongodb-5751dac0-3b5e-405b-a1e1-2b384fe4026d","db":"db"}}],
"redis-2.2":[{"name":"hello-redis","label":"redis-2.2","plan":"free","credentials":{"node_id":"redis_node_4","hostname":"172.30.48.43","port":5002,"password":"e1d7acb0-2baf-42be-84bc-3365aa819586","name":"redis-96836b7c-0949-45fd-a741-c7be5951d52f"}}],
"mysql-5.1":[{"name":"hello-mysql","label":"mysql-5.1","plan":"free","credentials":{"node_id":"mysql_node_5","hostname":"172.30.48.24","port":3306,"password":"pw4EKJqL6na6f","name":"dd9b58515e3cb41958a30bf2af88126fc","user":"uLfJbOmxfSEUt"}}]

}

На странице далее указывается:

Вы можете считывать эту информацию в свое приложение, используя API-интерфейс переменной среды Java и / или существующие функции Spring XML, но проще использовать эту информацию, используя новое облачное пространство имен (описанное здесь), которое разбирает ее на удобный объект Properties.

Прочитав это, я подумал, как это повлияет на безопасность приложения. В частности, какие меры должен предпринять разработчик, чтобы не дать злоумышленникам получить прямой контроль над внутренними службами, такими как база данных mysql?

РЕДАКТИРОВАТЬ: Помимо риска того, что злоумышленник получит контроль над бэкэнд-сервисом, я также могу представить себе риск того, что злоумышленник заставит приложение подключиться к вредоносному бэкэнду.

1 Ответ

3 голосов
/ 22 ноября 2011

Если вы хотите подключиться к бэкэнд-службе (базе данных), вы должны как-то предоставить приложению учетные данные. Чтобы иметь возможность динамически связываться со службами, переменные среды являются хорошим выбором для передачи частной информации приложения в приложение.

Как и при любом компрометации приложения, серверная часть раскрывается при взломе приложения.

Единственный способ подключения к вредоносному бэкэнду - это если злоумышленник может настроить вредоносную службу в инфраструктуре Cloud Foundry и может скомпрометировать Cloud Controller для передачи поддельных переменных среды приложения.

...