web-dev-qa-db-ja.com

データベースの資格情報を知っている攻撃者は何ができますか?

攻撃者が私のデータベースのユーザー名とパスワードを知っている場合、私のサーバーにアクセスできない場合、攻撃者は何をすることができますか?私のデータベースがMicrosoft SQL Serverを使用しているとしましょう。それらの資格情報を使用してデータベースを操作する方法はありますか?

18
Anonymous

仮定して

  • データベースサーバーがローカル接続のみを受け入れることを100%確信しています。
  • あなたは、攻撃者が接続が許可されているローカル環境にアクセスできないことを100%確信しています。
  • データベースを使用するアプリケーションが安全であることを100%確信しています。
  • これらの資格情報が、システムに直接または間接的に関連する他の目的に使用されないことが100%確信できます。

露出しても問題ありません。

もちろん、ご覧のとおり、これらは非常に大きな仮定です。あなたが賭けをする用意があるなら、先に進んで資格情報が公開されるのを許可してください。そうでない場合(私はそうしません)、セキュリティで可能な限り最善を尽くし、およびこれらの資格情報を秘密に保ちます。 =

27
Adi

彼がデータベースにアクセスできない場合、資格情報は無意味です。それは、ゴビ砂漠の離れた場所に隠された警備隊のバンカーの中にあるドアの鍵を持っているようなものです。キーは、ドアにgetできる場合にのみ役立ちます。

とはいえ、このように資格情報を漏らすことは非常に悪い習慣です。それらが侵害されていると思われる場合は、変更してください。

14
Polynomial

DBサーバーが適切に保護され、資格情報がアクセス権のないIPアドレスに適切にリンクされている限り、DBサーバーは何もできませんが、1レベルの保護が解除され、 DBにアクセスする方法を教えてください。

これは多層防御と呼ばれます。複数のメカニズムにより侵害が防止されますが、1つのレベルが侵害されている疑いがある場合は、侵害を修正するまで安全性が低下します。

8
AJ Henderson

実際には、ほとんどすべてのSQLデータベース(MsSql、MySql、Oracleなど)は、オペレーティングシステムコマンドを実行する機能を持っています。そのため、攻撃者がDBパスワードを知っている場合、DBマシンでOSコマンドを実行できます。 dbエンジンを実行するプロセスに高い特権がある場合、攻撃者はマシン全体を乗っ取ることができます。これを超えてあなたの想像力で制限されます。例えば:

  • 彼/彼女は、dbマシンからネットワーク内の他のコンピューターを攻撃できます。
  • 仮想化を使用している場合、攻撃をVMエンジンに拡張でき、仮想環境上の他のOSが危険にさらされる可能性があります。
  • 将来のソーシャルエンジニアリング攻撃のために非常に重要な官能的なデータを収集します。
  • ユーザーアカウント名とパスワードを取得し、組織の他の情報システムに使用してみます。人々はほとんど同じ強いものを使いますか?複数のシステムのパスワード。
  • ネットワークのトラフィックをリッスンし、重要なデータを盗聴します。
  • 将来のアクセスなどのためにトロイの木馬またはバックドアを挿入する。

攻撃者があなたのdbパスワードを知っていても、自分を守るために何ができるか:

  • Dbユーザーアカウントの権限を制限できます。攻撃者がOSの脆弱性を利用した特別な悪用により、マシンでの権限を増加できることを忘れないでください。
  • DBサーバーのシェル実行機能を無効にします(ただし、ほとんどの場合、dbユーザーアカウントには再度有効にする権限があります)
  • Dbエンジンプロセス権限を制限します。ほとんどの場合、SQLインジェクション攻撃は、DBサーバーのインストールが間違っているために成功します。特にMsSqlセットアップでは、dbアカウント所有者として管理者アカウントを簡単に設定できます。
  • ネットワークからdbマシンを分離します。着信要求のみを許可します。これは、ファイアウォールのような外部のマシンで行う必要があります。攻撃者はOSにアクセスできるので、DBサーバーから制限した場合に攻撃者がそれを有効にできることを覚えておいてください。
  • (もちろんソルトを使用して)ハッシュすることでユーザーのアカウントを保護し、CPUリソースが利用可能な場合は、アプリケーションレベルで対称暗号化を使用して機密データを保護します。

これは完全なリストではありません。大きくなる可能性があります。

3