目前数据库存在数据泄露,但是排查不到哪里存在泄露的地方,希望大佬们可以凭借自己的经验,分享一二给小弟学习学习,tidb的数据有同步到好几个地方,tidb–>tidb,tidb–>kafka–>es,tidb–>kafka–>doris,平台页面上也可以查到数据库相关内容
我该如何一一的去排查这里面可能泄露的地方
首先,修改复杂密码,配置最小权限的安全组。
第一想到的是日志,通过有记录的日志分析日志, 有没有数据库的账号信息等。
再者查看服务器运行情况。比如cpu 等。
通过工具看自己的系统是否有SQL注入的风险等漏洞。比如openvas
修复漏洞。
如果有财力 就增加监控,上设备强化安全。
排查思路
1、考虑有sql注入,使用安全工具漏扫下业务平台。
2、有可能被别人爬数据,业务平台增加接口调用频率限制。ip限制。
3、数据库都是在内网测。全部密码修改,增加密码强度。
4、注意监控数据库和接口调用。
1、了解数据泄露的现状,可从以下六方面(5W+1H):
(1)、What:了解泄露了什么数据,泄露数据的表现形式及量级;
(2)、Where:了解在什么位置可以访问和下载到相关的泄露数据;
(3)、When:了解数据泄露的大致时间;
(4)、Who:了解可以接触到这些数据的人员;
(5)、Why:了解为什么会泄露该数据,该数据泄露后可能造成的影响;
(6)、How:根据了解的现状初步判断数据是如何泄露的,缩小排查范围;
2、分析涉及数据泄露的信息系统的网络架构,判定组网类型:
专用生产网络:
(1)、与外部完全隔离;
(2)、通过专用线路与外部系统(非互联网)进行数据交换;
(3)、通过虚拟专用网络(VPN) 与互联网进行数据交换;
(4)、通过网闸等隔离手段与互联网进行数据交换。
互联网环境网络:
(1)、部分重要资产直接暴露于互联网中;
(2)、所有重要资产直接暴露于互联网中。
3、确认已有安全措施
快速确认现场网络环境中安全措施配备、管控范围及功能配置情况,为后续确立处置策略提供依据和支撑。
(1)专用数据泄露防护类产品:确认数据泄露行为监测、预警、阻断情况;
(2)安全审计类产品:确认数据库审计、应用审计、运维操作审计情况;
(3)入侵检测类产品:确认入侵攻击监测、预警情况;
(4)流量分析类产品(如天眼) : 确认攻击和异常行为监测、预警情况;
(5)确认应用系统、服务器、终端等日志情况。
AI小短文,不堪入目。
你如何确定是数据库泄露出去的数据?数据安全是整个系统的事情,拖库可能发生在各个环节,您从 dba 的角度出发能做的事情很有限
数据泄露的具体数据清楚吗,根据数据泄露的数据时间范围排查下,还可以去数据库慢sql和执行量比较大的sql去看看
更改数据库DBA密码, 系统root密码,设置网络访问白名单,监控系统日志
可以使用数据库查询的第三方审计平台,查询或导出数据多的sql需要特定级别领导审批。
你就说你们程序用的是不是perpared sql吧?
如果不是先改这个。
假设没用perpared sql,sql注入点到处都是。被莫名奇妙拖库都算人家手下留情。
大哥们不好意思,这几天没回复忙着排查了
我先说下我现在的进展吧,我们定位慢查询日志到了一台k8s的节点上,在每天的凌晨1点到3点之间会来拖数据,语句是 select xxx,xxx,xxx from xxx where 时间判断,都是拉的前一天数据,然后我们凌晨蹲守在这台k8s节点上看进程,结果在拖数据的时候,我们竟然看不到有进程在跑,这台k8s节点的服务pod我们都漂移走了,现在只剩下一些ds的服务,比如fluent-bit,efs-csi,ebs-csi,node-exporter等,这种情况还有什么东西可以排查的呢
看连接啊,看 tcp 连接,从数据库看,从这台 k8s 机器看
如果可以tidb–>tidb,tidb–>kafka–>es,tidb–>kafka–>doris 这几个同步挨个停 锁定具体是那块泄密的,然后再具体排查可疑sql
不会是自己的后台程序在跑数据?
连接就只能看到从tidb里面拿数据,传到s3,进程号是空的,而且检测进程变化,也是没有的
主要是我的节点上已经把所有的程序都给漂移走了
现在已经确定是直接从tidb去拿的数据了
已经知道进程了,用了隐藏进程的技术,在/etc/ld.so.preload预加载了一个库,这个库就是专门来隐藏自己的进程跟pid等信息的,所以我们才只能看到流量,看不到进程跟pid
这么搞看来真的是来偷数据的
找了下原理,这个还真没遇到过。你们能查出来是真的牛。