SQL Serverをハッカーから保護する方法


9

問題が発生し、その処理方法がわかりませんでした。Windows 2008 R2サーバー上にSQLサーバーがあります。このSQL Server 2005は、インターネット上の他の場所にある別のSQL ServerからDBサブスクリプションを受信するために使用されています。ファイアウォールを介してSQLサーバーのポートを開いていますが、スコープでは、他のSQLサーバーのIPを入力しています。そうすることで、他のSQL Server(ファイアウォールルールのスコープにリストされているIP)からの要求でない限り、そのポートを介した接続要求がSQL Serverに到達しないことを望みました。しかし、ログを見ると、何百もの「login failed user sa」エントリがあります(そして、それらは1秒ごとに来ています)。一部のハッカーがユーザーのパスワードを推測するためにブルートフォースを試みているようです。しかし問題は、ファイアウォールスコープにリストされているIPアドレスからではないのに、Windowsがこれらの要求をSQL Serverに到達させているのはなぜですか?このSQL Serverを保護する正しい方法は何ですか。他のSQL ServerのIP以外のIPは、このSQLサーバーに接続する必要はありません。

編集-詳細情報:

別のマシンからsqlサーバーポートでtelnetを実行しました。Telnetは、ファイアウォールスコープで具体的に言及されているマシンから実行された場合を除き、失敗します。したがって、ファイアウォールがSQLサーバーポートを正常にブロックしているようです。しかし、なぜSQL Serverログに異なるIPアドレスからのユーザー "sa"への失敗したログイン要求が表示されるのですか?ハッカーがポート80経由でマシンに侵入し、SQLサーバーに接続しようとしている可能性はありますか?ポート80と443は誰でも利用できます。SQLサーバーポートを除いて、他のすべてのポートは閉じられています(特定のIPに対してのみ開かれています)。訪問者をSQLサーバーに導く可能性のあるポート80のWebサーバー上で実行されているものはありません。実際、Webサーバーにはindex.html(SQLに接続されていない純粋なHTML)ファイルが1つだけあります。これは、将来使用するためにセットアップされたテストサーバーにすぎません。SQL Serverでのみデータをテストします。

編集:

ファイアウォール接続を有効にして、ドロップ接続と成功接続の両方を含めました。現在、すべてをトレースしています。次に、SQL Serverログに移動し、中国のさまざまなIPアドレスからの失敗したログイン試行を確認します。ただし、ファイアウォールログにこれらのIPアドレスのエントリはありません。これはどのようにして可能ですか?ファイアウォールを完全にバイパスしてSQLサーバーにアクセスできますか?ファイアウォールのポートが開いていて、そこから入る可能性がある場合、ファイアウォールのログにそのIPアドレスのエントリが表示されます。私は完全に途方に暮れています。


ログオントリガーの使用についてはどうですか?また、SQL Serverをインターネットに公開しないでください(一般公開)。また、Windowsファイアウォールのプログラムルールを使用して、IPアドレスの範囲を制限することもできます。
Kin Shah

はい、できますが、これはSQL Serverに関するものではありません。なぜWindowsファイアウォールが本来の動作をしていないのか、つまり、これらの要求が許可された唯一のIPアドレスからのものではないため、通過させない理由を見つけようとしています。

1
はい、Windowsファイアウォールの設定が間違っているようです。たぶん、ポート1433を許可する(またはすべてを許可する)別のより一般的なルールがあるか、インターネットに面しているNICでWindowsファイアウォールが無効になっている可能性があります。設定を見ないで言うのは難しいです。しかし、これは、Maxが言うように、ServerFaultにとって本当に問題です。つまり、Windows 2008 R2ですか?「RC」はリリース候補であり、テスト用のプレリリースソフトウェアです。
James L


1
本当に古いリリース候補のオペレーティングシステムを使用していますか?最初に修正します。
マイケルハンプトン

回答:


12

ファイアウォールが正しく設定されていないようです。これが最初のステップです。

通常、私は自分が書いた本をひっくり返すことはしませんが、この場合は例外を設けます。これはSQL Serverのセキュリティ保護と呼ばれ、良いスタートを切るでしょう。


まあ、あなたの本はこの質問にぴったりです:-)
mfinni

涼しい!インターネットに接続するサーバーでローカル/ Windows認証の代わりに証明書を使用するための規範的なガイダンスはありますか?;-)
Greg Askew

私の編集を見てください。ファイアウォールは問題なく動作しているようです。SQL Serverにアクセスするために、これらの中国のハッカーがプレイしている他のいくつかのトリックです。
アレンキング

1
誰かがパブリックIPアドレスからSQLポートに接続している場合、ファイアウォールは正しく構成されていません。内部IPからのものである場合は、他の種類の問題があります。SQL自体は証明書をサポートしていません。ADと証明書のマッピングを介してこれを行う必要があります。
mrdenny 2013

確かにファイアウォールの図に戻ります。ファイアウォールの状況が解決されるまで、インターネットからSQLサーバーをプルします。これにより、IPアドレスの範囲全体を比較的簡単にIP禁止することができます。
Techie Joe

4

単純に言った-あなたはしません。ファイアウォールなどは使用しません。SQLサーバーにはインターネットに接続する権利がありません。例外はほとんどありません。

複製のために、適切なVPNをセットアップします。


少し混乱しています。DBサーバーがインターネット上にない場合、WebアプリバックエンドサーバーはどのようにしてDBサーバーに到達しますか?
アレンキング

内部ネットワークを通じて。基本的なセットアップ。Webアプリは両方のネットワークにあります。
TomTom

3

ファイアウォールを適切に構成する以外に、SQL Serverをブルートフォース攻撃から保護するための一般的な推奨事項を以下に示します。

  • 「sa」アカウントを無効にします。正確なログイン名を知ることで、攻撃が容易になります

    ALTER LOGIN sa DISABLE
    

別のオプションは、「sa」アカウントの名前をわかりにくい名前に変更することです

ALTER LOGIN sa WITH NAME = SimonXZY
  • 混合モード認証の代わりにWindows認証を使用します。Windows認証はWindowsパスワードポリシーを適用し、ログオン試行が連続して失敗した場合にログインをロックします
  • 失敗したログオンを監査します。これを行う最も簡単な方法は、サーバープロパティの[セキュリティ]タブの[ログイン監査]オプションを[失敗したログインのみ]または[失敗したログインと成功したログインの両方]に設定することです。これはブルートフォース攻撃からの保護には役立ちませんが、攻撃を認識するのに役立ちます

ここでさらに役立つ推奨事項:ブルートフォースまたは辞書攻撃の防止ブルートをルートから遠ざける方法

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.