2

環境変数は、CloudFoundryランタイムがその環境についてアプリケーションと通信するための手段です。それが伝達する最も重要な情報の1つは、利用可能なサービスとそれらとの接続方法です。

ソース

同じページに、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"}}]

}

このページにはさらに次のように記載されています。

この情報は、Javaの環境変数APIや既存のSpring XML機能を使用してアプリケーションに読み込むことができますが、便利なプロパティオブジェクトに解析する新しいクラウド名前空間(ここで説明)を使用すると、この情報を簡単に利用できます。

これを読んで、この設定がアプリケーションのセキュリティにどのような影響を与えるのか疑問に思いました。具体的には、悪意のある攻撃者がmysqlデータベースなどのバックエンドサービスを直接制御できないようにするために、開発者はどのような対策を講じる必要がありますか?

編集:攻撃者がバックエンドサービスの制御を取得するリスクとは別に、攻撃者がアプリケーションを悪意のあるバックエンドに接続させるリスクも想像できます。

4

1 に答える 1

3

バックエンド(データベース)サービスに接続する場合は、何らかの方法でアプリケーションに資格情報を提供する必要があります。サービスに動的にバインドできるようにするには、環境変数を使用して、アプリケーションの個人情報をアプリケーションに渡すことをお勧めします。

他のアプリケーションの侵害と同様に、アプリケーションがハッキングされるとバックエンドが公開されます。

悪意のあるバックエンドに接続できる唯一の方法は、攻撃者がCloud Foundryインフラストラクチャに悪意のあるサービスをセットアップし、CloudControllerを侵害してアプリケーションが偽造した環境変数を渡すことができる場合です。

于 2011-11-21T22:21:25.423 に答える