監査とモニタリング
データベースの活動を追跡します
「監査とモニタリング」はCoddyKit上の無料Cyber Security Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはCyber Security Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Cyber Security Academyコースには全4レッスンが含まれています。
データベースを監査する理由
データベース監査は、誰が、いつ、どこから、何を行ったかを記録します。不正利用の検知、インシデントの調査、コンプライアンスの証明に不可欠です。
アクセス制御は不正な操作を防ぎます。一方、監査によって、制御が試されたり回避されたりした時期を把握できます。
監査対象
セキュリティとコンプライアンスにとって重要なイベントを記録します。
- ログインとログイン失敗の試行。
- 権限とロールの変更(
GRANT、REVOKE)。 - スキーマの変更(
CREATE、ALTER、DROP)。 - 機密性の高いテーブルへのアクセス。
- データの一括エクスポート。
ネイティブ監査ログ
ほとんどのデータベースエンジンには監査機能が組み込まれています。アプリケーションログだけに頼らず、監査機能を有効にしてください。データベースはクライアントに関係なく、すべてのクエリを認識できるためです。
-- MySQL Enterprise / MariaDB audit plugin
INSTALL PLUGIN server_audit SONAME 'server_audit.so';
SET GLOBAL server_audit_logging = ON;
SET GLOBAL server_audit_events = 'CONNECT,QUERY,TABLE';PostgreSQL pgAudit
PostgreSQLでは、ほとんどのコンプライアンス要件を満たす詳細で構造化された監査ログに、pgAudit拡張機能を使用します。
-- enable session and object auditing
LOAD 'pgaudit';
ALTER SYSTEM SET pgaudit.log = 'write, ddl, role';
SELECT pg_reload_conf();ログイン失敗とブルートフォース攻撃
同じ送信元からログインの失敗が繰り返される場合、ブルートフォース攻撃や認証情報スタッフィング攻撃の兆候であることがよくあります。これらを監査し、しきい値を超えたときにアラートを発生させてください。
- アカウントごと、送信元IPごとに失敗を追跡します。
- N回失敗した後にロックまたはスロットリングを行います。
- セキュリティチームにリアルタイムでアラートを送信します。
監視と監査の違い
この2つは関連していますが、異なるものです。
- 監査は、後から確認するためのイベントの永続的な記録です。
- 監視は、アラートを発生させるリアルタイム分析です。
まずログに監査記録を残し、そのログを監視して迅速に対応します。
SIEMへの転送
監査ログを中央のSIEM(セキュリティ情報およびイベント管理)システムに送信してください。ログを一元化することで、攻撃者によるローカル証拠の消去を防ぎ、システム間の相関分析が可能になります。
# ship postgres logs to a syslog collector
# /etc/rsyslog.d/pg.conf
if $programname == 'postgres' then @@siem.internal:514
& stop異常の検知
通常の状態を定義し、そこからの逸脱に対してアラートを発生させます。
- 読み取り専用アカウントが突然
UPDATEを実行する。 - 営業時間中だけ動作するアプリが、午前3時にクエリを実行する。
- 1つのクエリが数百万行を返す(データ持ち出しの可能性)。
ログの保護
監査ログ自体が攻撃対象になります。攻撃者は痕跡を隠すために、ログを削除または改ざんしようとします。
- ログは追記専用ストレージまたはリモートストレージに書き込みます。
- 監査データを読み取ったり完全に削除したりできるユーザーを制限します。
- データベースの
dba分離を使用し、アプリケーションユーザーが監査を無効化できないようにします。
保持とレビュー
監査は、ログを保持し、実際にレビューして初めて価値を持ちます。
- ポリシーを満たす保持期間(通常は1年以上)を設定します。
- インシデント発生時だけでなく、定期的なレビューを予定に組み込みます。
- コンプライアンスの証跡となるレポートを自動化します。
パフォーマンスに関する考慮事項
監査にはオーバーヘッドが発生します。データベースの性能を大きく損なわないように調整します。
- すべての
SELECTではなく、機密性の高いテーブルと特権操作を監査します。 - ログの書き込みを別のディスクまたはストリームにオフロードします。
- まずステージング環境でパフォーマンスへの影響をテストします。
クイックチェック
監査とモニタリングの違いを見分けます。
まとめ
監査とモニタリングによって、データベースのアクティビティを可視化できます。
- ログイン、権限の変更、スキーマの変更、機密性の高いデータへのアクセスを監査します。
- ネイティブツール(pgAudit、監査プラグイン)と中央のSIEMを組み合わせて使用します。
- ログをモニタリングし、異常をリアルタイムで検知してアラートを発生させます。
- ログを保護、保持し、定期的にレビューします。
よくある質問
「監査とモニタリング」レッスンは無料ですか?
はい。「監査とモニタリング」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Cyber Security Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Cyber Security Academyコースには全4レッスンが含まれています。
「監査とモニタリング」で何を学びますか?
データベースの活動を追跡します ブラウザで直接実行するハンズオンコードでCyber Security Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Cyber Security Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのCyber Security Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「監査とモニタリング」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このCyber Security Academyレッスンでコードを書いて実行できますか?
はい。すべてのCyber Security Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。