审计与监控
跟踪数据库活动
审计与监控 是 CoddyKit 上的免费 Cyber Security Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 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 次后锁定账户或进行限流。
- 实时向安全团队发出警报。
监控与审计
两者相关,但并不相同:
- 审计是供日后查看的持久事件记录。
- 监控是实时分析并发出警报。
您需要先将事件审计记录到日志,再监控这些日志以便快速采取行动。
将日志转发到 SIEM
将审计日志发送到中央SIEM(安全信息与事件管理)系统。集中存储日志可以防止攻击者擦除本地证据,还能实现跨系统关联分析。
# ship postgres logs to a syslog collector
# /etc/rsyslog.d/pg.conf
if $programname == 'postgres' then @@siem.internal:514
& stop检测异常
先定义正常情况,再针对偏离正常的行为发出警报:
- 只读账户突然执行
UPDATE。 - 一个只在工作时间运行的应用在凌晨 3 点执行查询。
- 单个查询返回数百万行(可能表示数据外泄)。
保护日志
审计日志本身也是攻击目标。攻击者会尝试删除或篡改日志,以隐藏踪迹。
- 将日志写入仅追加存储或远程存储。
- 限制可以读取或清除审计数据的人员。
- 使用数据库中的
dba分离机制,使应用用户无法停用审计。
保留与审查
只有在日志得到保留并确实经过审查时,审计才有价值。
- 设置符合策略要求的保留期限(通常为 1 年或更长)。
- 安排定期审查,而不只是发生事件时才查阅。
- 自动生成报告,作为合规证据。
性能考量
审计会增加开销。请进行调优,避免其严重拖慢数据库。
- 审计敏感表和特权操作,而不是审计每一条
SELECT。 - 将日志写入卸载到单独的磁盘,或通过流传输。
- 先在预发布环境中测试性能影响。
快速检查
区分审计与监控。
回顾
审计和监控可以让您了解数据库活动:
- 审计登录、权限变更、架构变更和敏感访问。
- 使用原生工具(pgAudit、审计插件)以及集中式 SIEM。
- 监控日志,以便实时发现异常并发出警报。
- 保护、保留并定期审查日志。
常见问题解答
「审计与监控」课时是免费的吗?
是的 — 「审计与监控」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Cyber Security Academy 课程的其余内容,请升级到 CoddyKit PRO。 Cyber Security Academy 课程共包含 4 节课。
「审计与监控」这节课中我会学到什么?
跟踪数据库活动 你通过在浏览器中直接运行的动手代码来练习 Cyber Security Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Cyber Security Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Cyber Security Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「审计与监控」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Cyber Security Academy 课中编写并运行代码吗?
能。每节 Cyber Security Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。