友人の新興企業は、Tomcatコンテナ上で実行されるHudson/Jenkinsサーバーに、いくつかのビジネスクリティカルサービスを実装しています。これはオープンソースプロジェクトではありません。実際、このプロジェクトの多くの側面は機密情報です。 Jenkinsは主に、バッチを実行し、それらのバッチから結果をgtheringする手段として使用されます。
ある程度、システムがロックダウンされています。たとえば、ブルートフォースパスワード推測攻撃をブロックすることを目的としたプラグインがインストールされています。 Jenkinsシステムは、ログイン前に確認できる唯一の画面として構成されています。したがって、これらのユーザーはJenkinsサーバーで何でも再構成または実行できます。
質問:このシステムはビジネスに重大なセキュリティ上の脅威をもたらしますか?関連する合理的なセキュリティ対策をすべて講じたか。
たとえば、スタックのある種のまだ未知の脆弱性がエクスプロイトの基礎になる可能性がありますが、せいぜい、理論上、定量化できないリスクについてどの程度懸念する必要があるでしょうか。
次のような対策を講じる必要があります。
そして、常にエクスプロイトが存在する可能性があります。エクスプロイトの問題は、誰かがいつシステムに穴を見つけるかがわからないことです。また、サービスのソースコードと設計を確認しない限り、どの程度懸念すべきかを評価することはできません。検証が不十分または設計が不適切であることがわかった場合は、心配する必要があることがわかります。適切に設計され、適切にコーディングされていて、妥当な検証があれば、心配する必要はありません。しかし、それが起こる可能性は常にあります。
あなたの質問は、一方では非常に広範であり、他方では非常にローカライズされています。
Hudson/Jenkinsを別のサーバーに移動できない場合は、リバースプロキシを使用して、Hudson以外へのリモートアクセスを無効にします(SSLも追加します)。
HudsonなどのTomcatにはバグが存在する可能性が常にあります。バグが引き起こす可能性のある影響を最小限に抑えることができるだけです。
リスクがあります。そのリスクは定量化されていません(リスクがどれほどのリスクがあるのか、現時点ではわかりません)。そのリスクに対して、それを公開することには利点がありません。したがって、リスクが何であれ、比率は何にも反しないため、リスクを評価する価値はありません。
別の質問でEC2を見ていることを知っているので、プライベートな会社のIPアドレスからのアクセスのみを許可するプライベートなセキュリティゾーンを利用してください。 EC2ではなく内部で維持する場合は、予想されるネットワークからのものではないトラフィックをドロップするために同様の努力をすることをお勧めします。
あなたのセットアップを見て、あなたが本当に社外からのアクセスが必要かどうか疑問に思っていますか? 「はい」の場合、VPN、HTTPS、証明書などを使用できますか?クライアントからJenkinsサーバーへの通信を保護するには?
あなたのコメントの1つは本当に私に関するものです。
...これらのユーザーは、Jenkinsサーバーで何でも再構成または実行できます。
ユーザーはそのJenkinsサーバーで何かを実行できるようにする必要がありますか(実際に必要なものだけにアクセス権/アクセス権を与え、予期しない将来に必要になるものは許可しない)? Jenkins/Tomcatの権限を下げることはできますか(Jenkinsはroot /サービスレベルの権限で実行されますか)?ユーザーが社外から接続している場合のみ、ユーザーを閲覧者に制限できますか? Jenkinsサーバー(ファイアウォール)からの脅威から企業ネットワークを保護するのはどうでしょう。つまり、Jenkinsサーバーを会社のネットワークの一部ではないかのように扱います。