私が働いている小さな会社のリーダーシップは、SaaSに非常に興奮しており、私たちの製品をSaaS展開に押し込んでいます-これについて懸念しているのは、製品の機能の一部は、ユーザーがビジネスインテリジェンスツールを使用して、アプリケーションの基盤となるデータベースに対してレポートを作成できることに基づいています。
SaaSモデルでその機能をどのように提供する予定かについて尋ねると、私は空白の凝視で迎えられ、インターネット上でデータベースサーバーを公開し、人々に企業ネットワーク内で実行されているかのようにデータベースにクエリを実行します。
これは私からビージーを怖がらせますが、私がただ妄想しているだけなのか、それとも心配する重大な理由があるのかはわかりません。
だから私の質問は、Oracleデータベースサーバーのセキュリティを適切に強化して、インターネット上に公開されるという事実を心配する必要がないようにすることは可能ですか?もしそうなら、これを行うことを学ぶために私はどのようなリソースを研究する必要がありますか?データベースには、クライアントが世界に公開したくない専有情報が保存されますが、この機能をVPNの背後に置くという提案は完全に拒否されました。
Oracleデータベースの強化に関する私の検索では、「ファイアウォールに穴を開けないでください」という文がほとんどすべて含まれているため、ここでの正解は「履歴書をできるだけ早く更新する」である可能性があります。あなたが与えることができるどんなアドバイスにも感謝します。
データベースの公開は実際には 巨人 world + dogにさらされることが多い他のサービスのいくつかと比較して問題があります...ただし、権限のエスカレーションなど、潜在的な脆弱性が多数ある複雑なシステムです。データベースを公開クエリに公開したり、SSLが必要な場合などに実行したりしないようにします。可能だと思いますが、そうです。偏執的であり、公開用に別のデータベースインストールを維持する必要があります。あなたの会社がそのためのライセンス費用を支払う気がないなら、ええ、skedaddle。
顧客/サポート側からは、顧客のISPが特定のタイプのポートまたはトラフィックをブロックしている場合、データベースに直接接続することが問題になる可能性があります。
SaaSモデルでは、一般的にプログラマーに実行してもらいたいのは、アプリケーションからクエリできるAPIを作成することです。この種のAPIは通常、httpsを介して動作し、データをに提供します。 HTTP応答のアプリケーション。追加のボーナス:Webが機能する場所ならどこからでも機能し、memcachedまたはその他のキャッシュテクノロジーを使用して結果セットをキャッシュするのは非常に簡単で、dbサーバーの負荷を軽減します。httpauthは非常によくサポートされ、テストされています。 。
DMZに2番目のデータベースサーバーをセットアップし、そのデータベースにダンプをインポートして、そのデータベースの宣伝を利用できるようにします。
ご同意いただけると思いますが、定義上、アクセスとセキュリティはトレードオフです。そして、あなたは機密データにアクセスできるようにするという任務を負っています。
簡単に言うと、ファイアウォールのトリック、堅固なネットワークアーキテクチャ、更新されたパッチセット、アクセス監査、および大量のバックアップを使用することで、多くのリスクを軽減できます。
パスワード管理も達成するのが難しいこととして頭に浮かびます。多くの場合、アプリケーションアカウントには無期限のパスワードがあり、パスワードの知識を持つ元従業員がデータにアクセスできないように、物理/ネットワークアクセス制御が導入されています。データベースサーバーがインターネット全体に公開されている場合、これは難しいことのように思われます。
また、「私たちは危険にさらされています、私たちは今何をしているのですか?」を定義したいと思うでしょう。戦略。これにより、関係するすべての人に期待を平準化し、運が尽きたときの行動計画を立てることができます。
APIまたはWebサービスのいずれかを使用すると思いますが、エンドユーザー(顧客)が接続する柔軟性が高くなるため、Webサービスをお勧めします。
パート2、経営陣は「それにはナッツ、今すぐ市場に参入する必要がある!」と言うでしょう。そしてそれを開発するためにお金を使いたくない。
パート3では、データベースを直接公開することがなぜ悪いのかを管理者に納得させてから、ホワイトペーパーやセキュリティレポートなどをたくさん作成する必要があります。さらに、ソフトウェアの使用を考えていた場合は SaaS 、私はあなたのセキュリティについてすべて知りたいのですが、あなたがデータベースを公開していることがわかったらすぐに取引は成立しません。
私たちはビジネスの過程でいくつかのSaaSアプリケーションを使用し、これらは2つの方法で実行します。
セキュリティに加えて、マルチテナントシステムのパフォーマンスについて心配する必要があります。 Crystalで作成された1人のユーザーのレポートが、他のすべてのレポートユーザーに影響を与えることは望ましくありません。
SaaSは商品です。
データベースサーバーをインターネットに公開する-あまり良くありません。
なぜ彼らはそれを公開する必要があるのですか? RPCが原因で、静的RPCポートを使用したくないのでしょうか。
しかし、いくつかの優れたアプリケーションファイアウォールがあり、DBのエンドマッパーポートをロックダウンしてからファイアウォールで保護すると、ACLやIP制限などでいくつかの優れた処理を実行できます。
また、イベントログ、脆弱性スキャンなどを監査する必要があります。
DBサーバーをファイアウォールの背後に安全に保管してください。必要に応じて、DBサーバーへのトンネルがある公開Webサイトに存在するWebサービスを作成します。 WebサービスがDBへのアクセスを制限されていることを確認してください。レポートを作成することが要件である場合、Webサービスには読み取り専用アクセスのみが必要です。おそらく、提示したいデータのビューを作成し、基になるテーブル自体ではなく、それらへの読み取りアクセスを許可します。
Robが言ったように、すべてを監査し、脆弱性スキャンを実行し、Webサービスアプリ自体にアクセスログを含めて、誰がいつ何にアクセスしたかを確認できるようにします。