记一次Oracle数据库比特币勒索病毒的处理
下午的时候SQL开发的同事在故障处理群中发出截图,表示数据库中毒了
第一反应是:怎么又是比特币勒索病毒
第一时间询问是哪个库,同事反映是一个测试库,当时就感到小小的庆幸
之前处理过一次比特币勒索病毒事件,个人经验,先禁用掉JOB进程。
- 防止病毒通过JOB运行存储过程,使存储过程处于占用状态,导致存储过程无法删除
- 中毒后病毒会在dba_jobs中建立大量JOB,JOB的内容就是truncate表
#将该参数设置为0前,建议先查一下该参数的值,以便处理后恢复参数的值 alter system set job_queue_processes=0;
然后检查数据库中疑似病毒的存储过程:
select owner,object_name,object_type from dba_objects where object_name like 'DBMS_SYSTEM_INTERNAL%'; select owner,object_name,object_type from dba_objects where object_name like 'DBMS_SUPPORT_INTERNAL%'; select owner,object_name,object_type from dba_objects where object_name like 'DBMS_CORE_INTERNAL%'; select owner,object_name,object_type from dba_objects where object_name like 'DBMS_STANDARD_FUN9%';
以下为病毒存储过程(已经被加密了)和触发器(DBMS_CORE_INTERNAL的存储过程被我手快处理掉了,没留下截图…)
还有一个过程(这个有时候会被忽视):
共计4个存储过程,3个触发器
其存储过程和触发器的命名特点是"DBMS_XXXX_INTERNAL "注意这个地方,名字之后有一串空白字符,如果你删除该对象时只写了前面,数据库会提示对象不存在,造成你能看到存储过程却无法删除的假象
我通过使用SQL-Developer找到对应过程或者是触发器,然后查看内容,直接复制粘贴对象名进行删除,或者直接右键删除
既然找到问题的存储过程,你就可以进行处理了
将问题存储过程和触发器干掉后,检查一下dba_jobs表,你会发现,你的中毒用户已经在里面创建了N多JOB,我这次中毒,dba_jobs表中多了300万条JOB,每条JOB都是truncate表的动作
这个JOB的删除需要到JOB的创建用户下,根据JOB的ID进行删除JOB
我们数据库使用的JOB都是scheduler job,都在dba_scheduler_jobs表中,所以在dba_jobs中该用户所建的JOB全是病毒创建的JOB
select 'exec dbms_job.remove('||job||');' from dba_jobs where log_user='XXX'
连接中毒用户,通过以上SQL生成SQL脚本对JOB进行删除
然后commit提交,提交后,删除动作才生效
整理中毒用户权限,将一些较大的权限收回(这个测试用户之前给的是DBA权限,呵-呵-)
恢复JOB进程参数的值
观察alert日志,看看有么有问题遗漏。
后记:(已验证,中毒的那一刻,一些表已经被truncate掉了,跟FUN9处理环节无关)
本人在处理问题存储过程的时候遗漏了FUN9的那个存储过程,恢复JOB进程参数后,发现alert日志大量刷新,才找到这个存储过程的。本以为所有的表都被清空了,但SQL开发的同事反映表中依旧有数据,我也统计了该用户下的表的数据,发现也有好多表的数据量为0。怀疑可能是FUN9那个环节处理的有问题导致一部分表被truncate掉了。
补充:
很不幸,时隔2天,这个测试机又中毒了,趁此机会观察一下中毒后产生的JOB
可以发现这个JOB是通过一个病毒相关的存储过程传入truncate表的参数
我在结果里随机抽取了几个表查了一下,表已经被truncate掉了
也有开发的同事反应昨晚刚导入的测试数据,今天就没了,所以…
当你发现数据库中毒的时候已经晚了
以上内容仅为本人处理比特币勒索病毒的小结,请各位同行在处理该事件时一定要谨慎
个人认为以下规范可以有效预防比特币勒索病毒:
- 比特币勒索病毒有潜伏期,可以在每日巡检数据库时增加疑似异常过程的检查
- 在赋予用户权限的时候一定要慎重(如果该用户只有connect权限估计病毒也玩不转)
- 第三方工具最好使用正版工具(之前就说有SQL-Developer的Afterconnect.sql脚本中有携带病毒,防不胜防)
- 周期性的有效备份(备份在手,啥也不怕)
找到一个关于比特币勒索病毒存储过程相关内容的文章:
以供大家参考
http://www.xifenfei.com/2016/11/plsql-dev-hacker-bitcoin.html
各存储过程功能解析
http://www.sohu.com/a/278602441_100216380
小子初来乍到,如有写的不好的地方还望各位大佬指正
- 删除.com}AOL勒索病毒,后缀.com}AOL勒索病毒数据恢复工具,常见的数据恢复处理方式(GlobeImposter)
- 比特币勒索软件病毒问题,关闭电脑端口
- 记一次oracle数据库迁移的问题处理两例
- 比特币勒索软件病毒问题,关闭电脑端口
- 比特币勒索病毒防范策略 windows如何禁用445端口
- 【红色警报】近期Oracle数据库遭受比特币勒索攻击原因揭秘和预防
- 一次oracle数据库数据块损坏的处理过程
- 比特币勒索病毒席卷全球:win10超简单应对方法送上
- 记一次电脑勒索病毒
- GANDCRAB V5.0.4 勒索病毒.处理方法sql文件mdf中了后缀
- ORACLE数据库一次意外宕机的分析处理实记(ora-1578)
- CentOS6.4下一次顽固病毒的排查与处理
- 一次比较特别网络连通问题的处理
- 一次复合型恶意软件的处理经历
- Jquery 一次处理多个ajax请求的代码
- Oracle10g修改安装 和 Oracle数据库卸载 和 Oracle服务项批处理命令 和 注意事项
- 一次真实的比特币敲诈木马经历 推荐
- 病毒或木马修改注册表,导执可执行文件无法执行的处理办法
- 重要通知|针对新一轮比特币勒索蠕虫病毒的安全建议
- 【安全防护】勒索病毒防护措施