2012-04-17 17 views
14

データベースにアクセスするカスタムサーバーアプリケーションを開発しています。私はそのサーバーに資格情報を格納する場所(およびアドレス)を決める必要があります。データベースのパスワードを保存するためのベストプラクティス

よくある解決策は、資格情報を設定ファイルに入れることです。しかし、私は、侵害されたサーバーがハッカーが(別のサーバーでホストされている)DBにアクセスできることを意味することは望ましくありません。

私は環境に資格情報を保存できましたが、それはあいまいさによるセキュリティです。エビル氏はそれを見つけるために環境を見ることができます。

誰かが暗号化を提案しました。しかし、実行可能ファイルにキーを格納すると、コンパイルが速く(Javaを使用しています)、私はまだ運命にあります。

また、私はサーバを起動するたびに言い換えを入力する必要はありません。

提案がありますか?私は何かが簡単でないように感じる。

ありがとうございました

+2

あなたはアプリケーションに資格情報へのアクセスを許可しますが、そのマシンへのルートアクセス権を持っているハッカーはアクセスを拒否されますか? – liquorvicar

+1

**パスフレーズ**を入力しないと、サーバーを起動するたびにEvil氏はこれを実行しません。つまり、サーバーの物理的な場所にアクセスできるユーザーは誰でもアクセスできます。 – byrondrossos

答えて

5

私はあなたが何か簡単なものを見逃しているとは思わないです。問題のサーバは、あなたの助けなしにデータベースに接続することができます。その場合は、には資格情報を持つがあります。それを供給せずに接続することはできません。より厄介なサーバーが資格情報をデータベースに明らかにするためには、をもっと硬くするためにリストアップしたもののようなさまざまな手順を取ることができますが、それらの資格情報を持っている必要がある場合は、 DBサーバーを接続するには、どこかに格納する必要があります  —または少なくとも、それらを得るためのいくつかの手段を持つ必要がありますので、その意味でハッキング可能です。

ベストプラクティスは、侵入(侵害されたサーバー)をできるだけ早く見つけ、最悪の場合オフサイトのオフラインバックアップを維持し、最初に侵入の障壁を大きく上げることです等

3

私はこれを解決した方法を共有しています。

  • 外部ドメインからの認証の詳細を照会するためのAPIを構築します。
  • 公開キーと秘密キーを使用して詳細を確認します。

しかし、正直なところ、これはやった唯一の事は終わっシンプルなものを複雑ました。その後、さまざまな権限でデータベースに複数のユーザーを作成しました。

  • guest同様

    ことができる唯一のSELECT

  • modできるだけCREATEINSERTUPDATEDELETE

などへとユーザーを切り替え、いつでも認証されたユーザーが現れました。

ユーザーとセッションの組み合わせにより、これまでの脅威から逃れることができました。しかし、もちろん、コードの脆弱性を徹底的にテストしなければなりません。

2

ロックダウンします。悪魔が根絶するのを防ぐ。わかりました、簡単ですね?

セキュアなアプリケーションを作成し、アプリケーションサーバーをロックダウンしたままにしておきます。ベストプラクティスをフォローしてください。それが作業の大部分です。

セキュアな環境でデータベースをセットアップしたとき、データベースサーバーと同じ物理ネットワーク上にあった唯一のサーバーはアプリケーションサーバーでした。

  • コンソール
  • 。したがって、データベース・サーバを危うくするために、彼らは、アプリケーションサーバーを妥協する必要があると思います

    1. アプリケーションサーバー:データベースサーバにアクセスするには2つの方法がありました。

      したがって、アプリケーションサーバーをロックダウンします。もちろん、妥協するよりも悪いのは妥協していて、それについて知りません。妥協点を発見した場合、脆弱性が存在する場合は修正する必要があります。フォレンジックは重要です(ログを有効にして監視する)。また、回復計画が必要です。

      予防、検出、訂正、および復旧が最も重要です。

    関連する問題