SQL Server セキュリティの基本
SQL データベース サーバーは、他のデータベース サーバーと同様、ほとんどの組織にとって重要な資産です。現在発生しているデータ侵害の多くは、セキュリティが不十分なデータベース サーバーに起因している可能性があります。
適切なセキュリティ対策がなければ、データベースは簡単にサイバー攻撃のゲートウェイとして機能してしまいます。たった 1 つの過失でも、組織の SQL データベースの安全性とセキュリティが損なわれる可能性があります。攻撃者ができること 悪意のあるコードを挿入する 、データベースの整合性、機密性、可用性が損なわれます。
適切なセキュリティ対策を実装することは、データベース サーバーを保護し、ビジネス リスクやセキュリティ リスクへの曝露を最小限に抑えるのに大いに役立ちます。この記事では、SQL Server のセキュリティとパフォーマンスを管理するための主要なツールのいくつかを含む、SQL Server セキュリティの重要な基本とベスト プラクティスについて概説します。
物理的セキュリティ
適切な物理的セキュリティがなければ、情報セキュリティを完全に達成することはできません。物理的なセキュリティは防御の最前線である必要があり、SQL Server がホストされている施設への不正アクセスの防止を含める必要があります。物理的セキュリティは、施設と人のアクセス制御、外部境界保護メカニズム、侵入検出、および是正措置を扱います。侵入者、盗難、環境の脅威、物理的損傷などから資産を保護します。
物理的なセキュリティは、多層防御アプローチを使用して実装する必要があります。この考えは、攻撃者が 1 つの制御層を突破した場合、完全なアクセスを取得する前に他の多くの制御層が邪魔になるということです。データベース サーバーの物理的なセキュリティが侵害されると、生産性、評判、顧客の信頼が失われる可能性があります。
SQL Server の物理的なセキュリティを強化するには、Microsoft は次のことを行うことをお勧めします。
- サーバーは、権限のある人だけがアクセスできる部屋に設置してください。
- データベースをホストするコンピューターを物理的に保護された場所に配置します。理想的には、監視された洪水検知システムと火災検知または鎮火システムを備えた施錠されたコンピューター室です。
- データベースは企業イントラネットの安全なゾーンにインストールし、SQL Server をインターネットに直接接続しないでください。
- すべてのデータを定期的にバックアップし、バックアップをオフサイトの場所に安全に保管します。
ネットワークセキュリティー
ネットワーク セキュリティは、データベース サーバーの基盤となるネットワーク インフラストラクチャを不正アクセスから保護することに関係します。エッジとネットワークでポリシーと制御を実装する複数の防御層を組み合わせます。許可されたユーザーはネットワーク経由でデータベースにアクセスできますが、許可されていないユーザーはアクセスを拒否されます。データベース サーバーのセキュリティを考慮して設計されたネットワーク インフラストラクチャは、ネットワーク セキュリティ インシデントによって発生する損失からデータベースを保護します。
ネットワーク セキュリティの実装は、権限のないユーザーをネットワークから遠ざけることから始まります。ここでネットワーク ファイアウォールが役に立ちます。ファイアウォールは、SQL Server アプリケーションのセキュリティを確保する上で重要な役割を果たします。データベースをファイアウォールの内側に置くことで、悪意のあるトラフィックがサーバーに到達するのを防ぐ別のセキュリティ層が作成されます。ファイアウォールは、データ漏洩などの悪意のある送信トラフィックの防止にも役立ちます。
ファイアウォールは、Microsoft が推奨する次のガイドラインに従っている場合に最も効果的です。
- サーバーとインターネットの間にファイアウォールを置きます。ファイアウォールを有効にします。ファイアウォールがオフになっている場合は、オンにします。ファイアウォールがオンになっている場合は、オフにしないでください。
- ネットワークをファイアウォールで区切られたセキュリティ ゾーンに分割します。すべてのトラフィックをブロックし、必要なものだけを選択的に許可します。
- 多層環境では、複数のファイアウォールを使用して、スクリーンされたサブネットを作成します。
- Windows ドメイン内にサーバーをインストールする場合は、Windows 認証を許可するように内部ファイアウォールを構成します。
- アプリケーションが分散トランザクションを使用する場合、Microsoft 分散トランザクション コーディネーター (MS DTC) トラフィックが別個の MS DTC インスタンス間を流れることを許可するようにファイアウォールを構成する必要がある場合があります。また、MS DTC と SQL Server などのリソース マネージャーの間でトラフィックが流れるようにファイアウォールを構成する必要もあります。
- SQL Server、Web サーバー、ドメイン ネーム システム (DNS) 上の NetBIOS やサーバー メッセージ ブロックなどの不要なポートとプロトコルをすべて無効にして、攻撃対象領域を減らします。 TCP 1433 (データベース エンジン)、2383 (分析サービス)、4022 (サービス ブローカー)、UDP 1343 (ブラウザ アクセス) など、SQL Server の機能に不可欠なプロトコルとポートのみを許可します。
アプリケーションとデータのセキュリティ
Microsoft SQL Server は、アプリケーションとそれに含まれるデータのセキュリティを可能にするいくつかの組み込み機能を提供します。データベース管理者は、これらの機能を活用したり、必要に応じて追加のセキュリティ対策を使用して、SQL アプリケーションとデータのセキュリティ ニーズに対応できます。
追加のセキュリティ対策には、特に次のようなものがあります。
- SQL およびその他のインジェクション攻撃に対する保護 名前が示すとおり、SQL インジェクションは、悪意のあるコードまたはコマンドをクエリ文字列に挿入する攻撃です。これらのコマンドは、データベースに損傷を与えたり破損したり、機密データを抜き出すために使用される可能性があります。すべてのデータベース入力をサニタイズして、コードの実行に使用できる文字が含まれていないことを確認することで、SQL インジェクション攻撃を阻止できます。動的 SQL を回避し、すべてのユーザーの権限を制限しながら、ストアド プロシージャとパラメータ化されたコマンドを使用することがベスト プラクティスです。また、SQL Server へのログイン中に発生する接続文字列インジェクション攻撃からも保護する必要があります。 SQL Server ログイン文字列で有効なキーワード ペアがチェックされない場合、攻撃者はサーバー上で不正なアクションを実行できる追加の文字を追加する可能性があります。 SqlConnectionStringBuilder を使用して実行時に接続文字列を作成および検証するか、可能な限りより安全な Windows 認証を使用することで、このリスクを軽減できます。
- 詳細エラーの悪用 SQL Server は、エラー ログ、システム イベント ログ、パフォーマンス カウンター データなど、あらゆる種類のログを生成します。こうしたエラーが悪者の手に渡らないようにする方法を見つける必要があります。そうしないと、攻撃者がこれを使用して、悪用する可能性のある固有の脆弱性を特定する可能性があります。これらのデフォルトの SQL Server エラー メッセージがユーザーに届かないように、すべてのプロシージャ コードでエラー処理が使用されていることを確認してください。
- 権限昇格攻撃 これらの攻撃は、ユーザーが何らかの理由でアカウント所有者や管理者など、信頼できるアカウントの権限を引き受けたときに発生します。これにより、データやデータベース機能に不正にアクセスできるようになります。このリスクを軽減するには、常にユーザーを最小特権のアカウントとして実行し、必要なアクセス許可のみを割り当て、管理者アカウントまたは所有者アカウントからコードを実行する機能をブロックします。これにより、攻撃が成功した場合に発生する可能性のあるダメージの量が制限されます。ユーザーがタスクを実行するために追加のアクセス許可を必要とする場合は、タスクの期間中のみ証明書を使用してストアド プロシージャまたは偽装に署名します。
- 分散型サービス拒否 (DDoS) 攻撃 運用 SQL Server データベースは DDoS 攻撃を受ける可能性があります。DDoS 攻撃では、攻撃者がデータベースに偽のクエリを大量に送り込み、正規ユーザーのパフォーマンスを低下させ、最終的にはダウンタイムを引き起こします。 SQL Server をクラウドで実行している場合は、DDoS 保護サービスを利用して、悪意のあるトラフィックをキャプチャしてデータベースから遠ざけることができます。
SQL Server セキュリティのベスト プラクティス
以下は、SQL データベースのセキュリティを強化できる SQL Server セキュリティの重要なベスト プラクティスの一部です。
- 定期的にバックアップする データベースを定期的にバックアップする必要性は、どれだけ強調してもしすぎることはありません。バックアップによりデータの可用性が保護され、データ侵害、ランサムウェア、またはサービス妨害攻撃に直面してもデータベースの回復力が確保されます。セキュリティ戦略の一環として、優れた SQL Server バックアップ ソリューションへの投資を検討してください。これにより、攻撃が発生した場合にミッションクリティカルなデータを復元するためのライフラインが提供されます。
- 定期的なセキュリティ監査 セキュリティ監査は、ほとんどの業界の規制要件です。しかしそれを超えて、SQL Server セキュリティ監査は、潜在的な攻撃を防止し、健全な SQL データベースを維持するのに役立ちます。不足しているデータベース オブジェクト、繰り返されるサーバー ログインの失敗、権限や構成の変更を特定することに取り組む必要があります。 Microsoft は、サーバー レベルおよびデータベース レベルの監査を作成するために使用できる SQL Server Audit という組み込みツールを提供しています。
- 最小特権の原則に従う これは、資産のリスクを軽減するのに役立つ実証済みの原則です。計画では、SQL Server サービスとユーザーには、タスクの実行に必要な適切な権限のみを付与し、それ以上は付与しないことになっています。サービス アカウントの場合は、可能な限り低いアクセス許可と特権を使用して SQL Server サービスを実行し、関連付けます。
- 強力なパスワードポリシーを設定する 強力なパスワード、できれば推測しにくいパスフレーズを設定することは、データベースのセキュリティにとって不可欠です。 Kerberos 認証、SQL Server への接続用の Windows 認証、およびパスワード管理を強化するためのパスワード マネージャーの使用を検討してください。
- アップデートを定期的に適用する 定期的なアップデートの重要性は、どれだけ強調してもしすぎることはありません。 OS と SQL Server の更新プログラムには、データベースの健全性とセキュリティを維持する重要なセキュリティ拡張機能が含まれています。これらの更新をテストし、できるだけ早く運用サーバーに適用します。
- 暗号化を使用する 組み込みの SSL/TLS および Windows Data Protection API (DPAPI) 暗号化プロトコルにより、転送中のデータと保存中のデータをそれぞれ暗号化できます。これにより、データベースの機密性が保護されます。
- SQL監視ツールを使用する SQL 監視ツールは、データベース サーバーのセキュリティとパフォーマンスを管理する自動化された手段を提供します。このツールは、サーバー設定の変更をスキャンして検出できる必要があります。
SQL Server セキュリティのためのトップ ツール
市販されているいくつかのツールは、SQL Server のセキュリティとパフォーマンスの管理を自動化できます。以下は、SQL Server のセキュリティとパフォーマンスを管理するためのいくつかの主要なツールのレビューです。これが、あなたのビジネスに適切なソリューションを選択するプロセスのガイドになれば幸いです。
1. SolarWinds セキュリティ イベント マネージャー (無料トライアル)

SolarWinds セキュリティ イベント マネージャー (SEM)データベース管理者は、サーバー ログの監視、データベース エラー率の追跡、SQL ユーザー ログインの監査、SQL Server のセキュリティの維持、サイバー攻撃の検出を行うことができます。 SEM を使用すると、潜在的な脅威を示す可能性のある SQL データベースに対して実行された特定のイベントを追跡、レポート、アラートでき、コンプライアンス目的で SQL Server 監査ログ レポートを生成できます。 SEM は、データベース トランザクションを調査し、既知の脅威を検出し、悪意のあるアクティビティや信頼できないアクティビティを追跡する、すぐに使用できるイベント相関ルールを提供します。
SEM は、SQL インジェクション攻撃を防御し、安全なデータベースを維持するために役立つさまざまなセキュリティ評価プロトコルとアプリケーションをサポートしています。 SEM は、事前に構築された SQL インジェクション ルールとアラートを活用して、常に最新の情報を提供します。悪意のあるユーザーとプロセスを検出して無効にするだけでなく、SQL インジェクション インジケーターが検出されたときにデータベースを保護するために他の自動脅威対応を実行することもできます。無料トライアル版をダウンロードできるので、自分のビジネスに適しているかどうかを判断できます。
試すSolarWinds セキュリティ イベント マネージャー (SEM)全機能を備えた 30 日間の無料トライアルが付いています。
SolarWinds Security Event Manager (SEM) 30 日間の無料トライアルをダウンロード
2. Paessler PRTG ネットワーク モニター (無料トライアル)

ペスラー PRTGは、ネットワーク、ルーター、スイッチ、およびサーバーを監視できるエージェントレスのネットワーク監視ツールです。 PRTGを使用すると、接続の確立、クエリの実行、トランザクションの処理、接続の終了を含むSQLクエリのリクエスト全体に必要な時間を測定でき、そのすべてを視覚化できます。 PRTGダッシュボード。 PRTG ライセンス モデルはセンサー (CPU 負荷、ポート ステータス、ネットワーク トラフィックなど、デバイス上で監視できるパラメータ) に基づいています。すべての主要なデータベース用に事前設定されたセンサーが付属しています。 Microsoft SQLの場合、PRTGはリクエスト全体の応答時間と個別に定義されたクエリの応答時間を監視するMicrosoft SQL v2センサーを提供します。
PRTG には、次のようなさまざまなエディションとバリエーションがあります。
- PRTG Enterprise Monitor - 複数の場所にまたがる数千のデバイスとシステムを含む大規模ネットワークを対象としています。
- PRTG ホスト型モニター -クラウドベースのオプションクラウドから監視できるようになります
- PRTG Desktop - 複数の PRTG サーバーを管理できます。
- PRTG モバイル アプリ - 外出先でもネットワーク、デバイス、センサーをチェックできます。
あ30日間の無料トライアルすべての機能へのフルアクセスがダウンロード可能です。
Paessler PRTG 30 日間の無料トライアルを開始する
3. SQL 用 Microsoft Defender

SQL 用 Microsoft Defenderは、SQL データベースの潜在的な脆弱性や、データベースに脅威をもたらす異常なアクティビティを検出して軽減するのに役立つ SQL Server セキュリティ ツールです。
Microsoft Defender for SQL は、次の 2 つの個別の Microsoft Defender プランで構成されます。
- Azure SQL データベース サーバー用 Microsoft Defender: このプランは、Azure SQL データベース、Azure SQL マネージド インスタンス、および Azure Synapse の専用 SQL プールを保護するように設計されています。
- マシン上の Microsoft Defender for SQL Server: このプランでは、Azure ネイティブ SQL Server の保護を拡張して、ハイブリッド環境を完全にサポートし、Azure や他のクラウド環境でホストされている SQL Server、さらにはオンプレミス マシン (仮想マシン上の SQL Server を含む) を保護します。およびオンプレミスの SQL Server:
これらのプランはサブスクリプション レベルで有効にできます ( クラウド向け Microsoft Defender または REST API、Azure CLI、PowerShell、または Azure Policy 経由)、またはリソース レベルで有効にすることもできます。これらのプランのいずれかを有効にすると、サブスクリプション内に存在するサポートされているすべてのリソース (同じサブスクリプションで作成される将来のリソースを含む) が保護されます。
4. データドッグ

データドッグ は、クラウド アプリケーション、サーバー、データベース、ツール、サービス向けのエージェントベースのオンプレミスおよびクラウド インフラストラクチャ監視サービスです。 Datadog は自動検出サービスを使用して、ネットワーク内のアプリケーション、デバイス、サーバーを探索して識別します。すべてのデバイスとリンクが識別されると、Datadog ダッシュボードからすべてのアクティビティを概要でき、ネットワークへの変更を自動的に検出できます。
Datadog は、SQL Server インスタンスの健全性とパフォーマンスをエンドツーエンドで可視化します。 SQL Server の 2 つのすぐに使えるダッシュボードを含む、SQL Server 監視のためのツールと主要なメトリクスを提供します。
- SQL Server インスタンスの概要をリアルタイムで表示するスクリーンボード。
- SQL Server メトリクスをシステム メトリクスおよびイベントと相関付けるのに適したタイムボード。
あ 14日間の無料トライアル すべての機能へのフルアクセスがダウンロード可能です。その後、ソフトウェアは通常、ホスト、イベント、またはログに基づいた月額サブスクリプション プランを通じて販売されます。
5.ManageEngine アプリケーション マネージャー (APM)

APMは、組織が物理、仮想、クラウド環境全体で SQL Server などのビジネス クリティカルなアプリケーションの最適なパフォーマンスを確保できるようにする、エージェントレスのアプリケーションとサーバーのパフォーマンス監視ソリューションです。 APM は、SQL Server やその他のアプリケーションのすぐに使える検出、可用性、健全性とパフォーマンスの追跡、レポート機能を提供します。
APM を使用すると、データベース管理者は SQL アプリケーションの可視化、リソース使用状況の追跡、SQL Server のパフォーマンスの最適化、エラーの発生の防止、データベース アプリケーション全体の健全性の維持を行うことができます。
ManageEngine APM は次のエディションで利用できます。
- Free エディションは、Professional エディションのほとんどの機能を提供しますが、いくつかの制限があり、最大 5 台のモニターをサポートします。
- Professional エディション: 監視、アラート、レポート機能が含まれており、負荷に基づいて最大 500 のアプリケーションを監視したい SMB をターゲットとしています。
- Enterprise エディション: すべての Professional エディション + 分散監視およびフェイルオーバー機能が含まれており、500 以上のアプリケーションの監視を検討している大企業をターゲットとしています。
あ 30日間の無料トライアル ダウンロード可能です。インストール中に、Professional エディションまたは Enterprise エディションのいずれかを選択できます。