sql >> データベース >  >> RDS >> Sqlserver

データベース環境を保護するためのSQLServerロックダウンについて

    最近では、あらゆる分野でセキュリティが主な関心事となっています。データベースのセキュリティも、どの顧客にとっても大きな懸念事項です。 SQL Serverは、データベースに格納されているすべてのデータを保護するように設計されていますが、適切な構成セットを適用できず、システムに穴が残ることがあります。ハッカーや許可されていないエイリアンは、これらの抜け穴を使用してシステムに侵入する可能性があります。データが危険にさらされたり悪用されたり、システムリソースが削除されてビジネス活動が停止したり、クライアントのデータが競合他社に公開されたりする可能性があります。

    SQLServerのロックダウンまたは強化

    データベース環境を保護するためのプロセス全体は、データベース\SQLServerロックダウンと呼ばれます。データベース環境を保護するために適用できるさまざまなパラメータと構成の詳細について説明します。

    必要なコンポーネントのみをインストールする

    SQLServerのインストールからロックダウンの練習を始めましょう。 SQL Serverは、DBAがさまざまな要件に対して選択するさまざまなコンポーネントと機能を提供します。これらのコンポーネントと機能の一部を以下に示します。

    1. データベースエンジン
    2. レポートサービス
    3. 統合サービス
    4. 分析サービスエンジン
    5. 通知サービス
    6. ドキュメントとサンプル(サンプルデータベースとコード)
    7. 全文検索
    8. レプリケーション、機械学習サービス、データ品質サービスなどの他の機能

    必要な機能のみをインストールすることをお勧めします。これを行うことで、表面攻撃の可能性を低減または制限することになります。さらに、システムリソースの使用率が低くなります。

    最新のアップデートをインストールする

    必ず時間通りにシステムを更新してください。新しい脆弱性が発見された場合は、製品ベンダーによってセキュリティ情報に掲載されます。

    SQL Serverパッチだけを更新するのではなく、オペレーティングシステムから、マシンにインストールされている他のアプリケーションに至るまで、システムで実行されているすべてのものを更新することについて話します。外部からの脅威や攻撃を防ぐために、常にパッチを適用してソフトウェアを最新の状態に保ちます。

    Windows認証モードを使用する

    SQL Server認証モードを使用するための依存関係がない場合は、ユーザー接続に常にWindows認証モードを選択してください。より安全で、ログインを試行するたびにWindowsActiveDirectoryを使用してWindowsログインを認証します。 SQLServerには2種類の認証モードがあります。

    • Windows認証
    • 混合モード(Windows + SQL Server)

    Windows認証モード: これは、SQLServerのデフォルトの認証モードです。 Windows認証モードでは、SQL Serverへのアクセスを許可するときに、ローカルアカウント、Active Directoryユーザーアカウント、およびグループを利用します。このモードでは、データベース管理者として、個別のSQL Serverアカウントを作成および管理することなく、ドメインまたはローカルサーバーユーザーにデータベースサーバーへのアクセスを許可できます。

    混合モード: 混合認証モードには両方のオプションがあります。 Windowsベースの認証とSQLServerのログインベースの認証を使用できます。 SQL Server認証メカニズムは、パスワードポリシーを含むSQLServer内で管理されるアカウントに基づいています。レガシーアプリケーションをサポートするための依存関係がある場合は、混合認証が必要になる場合があります。

    以下の手順に従って、サーバー認証モードを選択または変更できます。

    1. SQL Server Management Studioを起動し、ターゲットのSQLServerインスタンスに接続します。
    2. SQL Server Management Studioで、SQL Serverインスタンスを右クリックし、プロパティをクリックします。
    3. セキュリティをクリックします 左側のペインのページでは、サーバー認証の下の右側のペインに両方の認証オプションが表示されます。 セクション。インスタンスを保護する場合は、必ずWindows認証モードに切り替えてください。 Windows認証モードのラジオボタンをクリックしてから、 OKをクリックするだけです。 変更を適用します。
    1. [SQL Server Management Studio]ダイアログボックスで、[ OK]をクリックします SQLServerを再起動する必要があることを確認します。

    Windows認証モードはより安全な選択です。ただし、混合モード認証が必要な場合は、SQL Serverログインに複雑なパスワードを提供し、セキュリティを強化するためにsecurity\lockoutポリシーを適用する必要があります。混合認証モードを使用している場合は、SQLServersaアカウントを無効にすることもお勧めします。これについては次のセクションで説明します。

    saアカウントの名前を変更/無効にする

    ログインsaは、SQL Serverのインストール中にデフォルトで作成されるため、攻撃者がこのアカウントをハッキングまたは制御する潜在的な理由の1つである可能性があります。このログインにはシステム管理者権限があるため、このアカウントにアクセスできる人は誰でもデータベースとSQLServerインスタンスを管理できます。

    以下のコマンドを実行して、saアカウントを無効にする必要があります。

    --Disable sa login
    USE MASTER
    GO
    ALTER LOGIN sa DISABLE;
    GO
    

    次の図でその実行を確認できます。

    saアカウントの名前を変更または無効にする前に、管理者権限を持つ別のアカウントがSQLServerインスタンスに存在することを確認してください。

    デフォルトのSQLServerポートを変更する

    SQLServerがクライアントの要求と通信にポート1433を使用することは誰もが知っています。この構成はパブリックドメインであるため、ハッカーはこの構成を標的にしてSQLServerインスタンスに接続できます。

    以下の手順に従って、SQLServerポートを変更できます。

    1. SQLServerがインストールされているターゲットマシンにログインします。
    2. サーバー構成マネージャーを起動します ツール。
    3. SQLServerネットワーク構成を拡張します 左側のペインからノードを選択し、プロトコルを選択します 構成するSQLServerインスタンスの場合。
    4. 右側のペインで、プロトコル名を右クリックします TCP / IP プロパティを選択します
    5. TCP/IPプロパティ ダイアログボックスで、IPアドレスを選択します タブ。サーバーに割り当てられたすべてのIPアドレスに対応するエントリがあります。
    6. 両方のTCP動的ポートの値をクリアします およびTCPポート IPAllの下のIPアドレスを除く各IPアドレス
    7. IPAll 各インスタンスのセクションで、SQLServerがリッスンする新しいポートを入力します。
    8. [適用]をクリックして、SQLServerサービスを再起動します。

    SQLブラウザサービスを無効にする

    SQL Serverブラウザサービスは、SQLServerインスタンスのインストールとともにインストールされます。このサービスは、SQLServerが実行されているポートに接続をリダイレクトします。このサービスが実行されている場合、攻撃者はポート番号を渡さずにSQL Serverに接続できるため、攻撃者にとっては一歩簡単になります。したがって、ポートを変更した後は、このサービスを無効にすることをお勧めします。

    xp_cmdshellオプションを無効にする

    SQL Serverは、SQLServerからオペレーティングシステムコマンドを実行および実行するための拡張ストアドプロシージャxp_cmdshellを提供します。セキュリティ上のリスクを防ぐために、無効にする必要があります。この拡張ストアドプロシージャは、サーバーレベルの構成で、またはsp_configureT-SQLストアドプロシージャを実行することで見つけることができます。以下のT-SQLステートメントを実行して、この構成を無効にすることができます。

    -- Enable advanced options to display configure xp_cmdshell
    sp_configure 'show advanced options', '1'
    RECONFIGURE
    
    -- Disable xp_cmdshell
    sp_configure 'xp_cmdshell', '0' 
    RECONFIGURE
    GO

    データの暗号化またはマスキングを使用する

    SQL Serverは、データを保護するためのさまざまな暗号化手法を提供します。ユーザーがパブリックネットワーク経由でデータにアクセスする場合は、暗号化をお勧めします。 SQL Serverには、ビジネスニーズを考慮して適切な暗号化セットを実装するための複数のオプションがあります。これは、データを保護するために使用できる暗号化またはデータマスキングオプションのリストです。

    • TDE(透過的データ暗号化)
    • 暗号化キーを使用してデータを保護する
    • 常に暗号化
    • 動的データマスキング

    SQLServerからBUILTIN\Administratorsを削除する

    データベースインスタンスへの不要なアクセスを制限するために、SQLServerインスタンスからBUILTIN\Administratorsアカウントを常に削除する必要があります。最善の方法は、ユーザーにSQLServerへの個別のアクセスを許可することです。 Windowsグループにユーザーのグループを追加して、SQLServerへのアクセスを許可することもできます。以下のT-SQLステートメントを使用して、SQLServerインスタンスからこのログインを削除できます。

    SQL Server Management Studioを介してGUIを使用して、このログインをドロップすることもできます。 SQL Serverインスタンスに接続してから、インスタンスレベルのセキュリティフォルダーを展開するだけです。ここで、このログインを右クリックしてSQLServerインスタンスから削除できます。

    --DROP Login
    DROP LOGIN [BUILTIN\Administrators]

    強力なパスワードと適切なユーザー権限

    すべてのユーザーに常に適切な権限を割り当てます。データベースにアクセスする際のユーザーの役割を考慮すると、最小限の権限である必要があります。また、ログインに弱いパスワードを使用したり、同じログインとパスワードを使用したりしないでください。 SQLログインには常にパスワードポリシーを使用してください。

    SQLServerログイン監査の構成

    SQL Serverには、失敗したログインと成功したログインすべてに関する詳細を取得するための監査機能が用意されています。これは、データベースに接続している、または接続しようとしているユーザーを監査する場合に非常に便利な構成です。 SQLServerへのログインが失敗および成功するたびにメール通知を送信するSQLServerアラートを構成できます。以下の手順に従って、ログイン監査を有効にすることができます。

    • SQL ServerManagementStudioでターゲットSQLServerインスタンスに接続します
    • SQL Serverインスタンス名を右クリックし、プロパティをクリックします。
    • セキュリティをクリックします 左側のペインのタブ。 ログイン監査を取得します この記事の最初のスクリーンショットに示されているように、右側のペインに表示されます
    • 目的のオプションを選択し、サーバーのプロパティを閉じます。 ページ
    • SQL Serverサービスを再起動して、この変更を適用します

    未使用のSQLServerログインを削除する

    SQLServerのログインを常に監視してください。使用されなくなったすべてのログインアカウントを削除する場合は注意が必要です。手動で管理するのは難しいと思いますが、すべてのSQLServerログインとその権限に関するメールを送信するようにメールアラートを構成できます。

    結論

    データベースを外部の脅威から保護するために適用できる構成のいくつかについて説明しました。データベース強化ポリシーを環境に展開する際は、上記のすべての点を考慮してください。

    この記事を共有し、コメントセクションでフィードバックをお寄せください。改善できるようになります。


    1. SQLServerで複数のスペースの文字列を返す3つの方法

    2. 映画館予約システムのデータベースモデルを設計する方法

    3. あなたのビジネスで利用可能なトップデータベースモニタリングオプション

    4. Oracleの再帰クエリ