Microsoft SQL Serverの監査は、セキュリティ上の問題や違反を特定するために重要です。 さらに、SQL Serverの監査は、PCI DSSやHIPAAなどの規制に準拠するための要件です。
最初のステップは、何を監査するかを定義することです。 たとえば、ユーザーログイン、サーバー構成、スキーマの変更、およびデータの変更の監査を行うことができます。 次に、使用するセキュリティ監査機能を選択します。 便利な機能には、次のものがあります:
- C2監査
- 共通コンプライアンス基準
- ログイン監査
- SQL Server監査
- SQLトレース
- 拡張イベント
- 変更データキャプチャ
- DML、DDL、and logon triggers
この記事は、C2監査、共通コンプライアンス基準、およびSql Server監査の使用を検討しているデータベース管理者(Dba)向けです。 特に大規模な環境や規制された業界では、サードパーティの監査ツールは大きな助けになる可能性がありますが、サードパーティの監査ツールは検討しません。
C2監査とCommon Criteriaコンプライアンスの有効化
現在SQL Serverを監査していない場合は、C2監査を有効にすることを開始するのが最も簡単な場所です。 C2監査は、SQL Serverで有効にすることができる国際的に受け入れられている標準です。 ユーザーログイン、ストアドプロシージャ、オブジェクトの作成と削除などのイベントを監査します。 監査対象を選択することはできず、大量のデータを生成する可能性があります。 さらに、C2監査はメンテナンスモードになっているため、将来のバージョンのSQL Serverでは削除される可能性があります。
Common Criteria Complianceは、C2監査に取って代わる新しい標準です。 これは欧州連合によって開発され、Sql Server2008R2以降のEnterprise editionおよびDatacenter editionで有効にすることができます。 しかし、サーバーが余分なオーバーヘッドに対処するのに十分な仕様でない場合、パフォーマンスの問題を引き起こす可能性があります。
SQL ServerでC2監査を有効にする方法は次のとおりです2017:
1. SQL Server Management Studioを開きます。
2. C2監査を有効にするデータベースエンジンに接続します。 [サーバーへの接続]ダイアログで、[サーバーの種類]が[データベースエンジン]に設定されていることを確認し、[接続]をクリックします。
3. 左側のオブジェクトエクスプローラパネルで、上部のSQL Serverインスタンスを右クリックし、メニューからプロパティを選択します。
4. “サーバーのプロパティ”ウィンドウで、”ページの選択”の下の”セキ
5. [セキュリティ]ページで、ログイン監視を構成できます。 デフォルトでは、失敗したログインのみが記録されます。 または、成功したログインだけを監査することも、失敗したログインと成功したログインの両方を監査することもできます。
図1. アクセス監査の設定
6. [オプション]の[C2監査トレースの有効化]をオンにします。
7. C2Common Criteria準拠監査を有効にする場合は、Enable Common Criteria準拠を有効にするをオンにします。
Common Criteria(CC)準拠は、1から7までの異なる評価保証レベル(Eal)で実装できる柔軟な標準です。 より高いEalは、より厳しい検証プロセスを持っています。 SQL Serverで共通基準準拠を有効にするをオンにすると、CC準拠EAL1が有効になります。 EAL4+用にSQL Serverを手動で構成することができます。
CC準拠を有効にすると、SQL Serverの動作が変更されます。 たとえば、テーブルレベルのDENY権限は列レベルの権限よりも優先され、ログインの成功と失敗の両方が監査されます。 さらに、Residual Information Protection(RIP)が有効になっており、新しいリソースによって使用される前にビットのパターンでメモリ割り当てを上書きします。
8. [OK]をクリックします。
9. 選択したオプションに基づいて、SQL Serverを再起動するように求められる場合があります。 このメッセージが表示された場合は、警告ダイアログでOKをクリックします。 C2Common Criteria準拠を有効にした場合は、サーバを再起動します。 それ以外の場合は、オブジェクトエクスプローラーでSQL Serverインスタンスを再度右クリックし、メニューから[再起動]を選択します。 警告ダイアログで、はいをクリックして、SQL Serverを再起動することを確認します。
SQL Server監査の有効化
SQL Server監査は、C2監査の代わりに有効にすることができます。 SQL Server監査オブジェクトは、サーバーレベルまたはSQL Serverデータベースレベルでイベントを収集するように構成できます。
サーバー監査オブジェクトの作成
サーバーレベルのSQL Server監査オブジェクトを作成しましょう。
1. 左側のオブジェクトエクスプローラパネルで、セキュリティを展開します。
2. [Audits]を右クリックし、メニューから[New Audit…]を選択します。 これにより、サーバーレベルの監査用の新しいSQL Server監査オブジェクトが作成されます。
3. [監査の作成]ウィンドウで、[監査名
]に監査設定に名前を付けます。 Sql Server監査が失敗した場合の処理の指定On Audit Log Failureを使用して、Continueを選択するか、監査対象のサーバーをシャットダウンするか、データベース操作を停止するかを選択できます。 [操作の失敗]を選択した場合、監査されていないデータベース操作は引き続き機能します。
図2. サーバーレベルのSQL Server監査オブジェクトの作成
5. [Audit destination]ドロップダウン・メニューで、SQL監査証跡をファイルに書き込むか、Windowsセキュリティ・ログまたはアプリケーション・イベント・ログのイベントを監査す ファイルを選択する場合は、ファイルのパスを指定する必要があります。
Windowsセキュリティイベントログに書き込む場合は、SQL Serverにアクセス許可を与える必要があることに注意してください。 簡単にするために、アプリケーションイベントログを選択します。 さらに、フィルタを監査オブジェクトの一部として含めることで、結果の狭いセットを提供できます。
6. [OK]をクリックします。
7. これで、新しい監査構成がオブジェクトエクスプローラの監査の下にあります。 新しい監査構成を右クリックし、メニューから監査を有効にするを選択します。
8. [監査の有効化]ダイアログで[閉じる]をクリックします。
Create Database Audit Object
データベースレベルの監査用のSQL Server監査オブジェクトを作成するには、プロセスが少し異なり、最初に少なくとも1つのサーバーレベルの監査
1. オブジェクトエクスプローラーでデータベースを展開し、監査を構成するデータベースを展開します。
2. Securityフォルダを展開し、データベース監査仕様を右クリックし、メニューからNew Database Audit Specification…を選択します。
図3. データベースレベルの監査のためのサーバー監査仕様の作成
3. 監査するステートメント(DELETEやINSERTなど)、アクションが実行されるオブジェクトクラスなどを選択します。
4. 完了したら、[OK]をクリックし、監査オブジェクトを右クリックして[データベース監査仕様を有効にする]を選択して、監査オブジェクトを有効にします。
SQL Server監査ログの表示
C2監査SQL Server監査ログは、SQL Serverインスタンスの既定のデータディレクトリに格納されます。 各ログファイルには、最大200メガバイトを指定できます。 制限に達すると、新しいファイルが自動的に作成されます。
ログファイルビューアと呼ばれるSQL Server監査ログを表示するために推奨されるネイティブソリューション。 これを使用するには、次の手順を実行します。
1. SQL Server Management Studioのオブジェクトエクスプローラパネルで、セキュリティと
2を展開します。 表示する監査オブジェクトを右クリックし、メニューから[監査ログの表示View Audit Logs]を選択します。
3. ログファイルビューアでは、ログが右側に表示されます。 ログがファイルに書き込まれるか、Windowsイベントログに書き込まれるかにかかわらず、ログファイルビューアにログが表示されます。
4. ログファイルビューアの上部で、フィルタをクリックして、表示するログエントリをカスタマイズできます。 SQL Serverのファイルログは保存されます。ログファイルエクスプローラを使用すると、エクスポートをクリックしてログをコンマ区切りで保存できます。ログファイル形式。
でのSQL Server監査ログの確認図4. ログファイルビューアでのSQL Server監査ログの確認