近日,Oracle 数据库的比特币勒索病毒卷土重来,国内已发生多起案例,针对此攻击,启明星辰数据库安全审计与防护产品可提供检测和防护,具体的安全建议如下:
Oracle勒索病毒分析
勒索代码被捆绑在Oracle PL/SQL Dev软件中(网络下载版),里面的一个脚本文件Afterconnet.sql被黑客注入了病毒代码。一旦用户使用这个PL/SQL Dev工具连接数据库,就会立即执行Afterconnet.sql,创建四个存储过程(DBMS_SUPPORT_INTERNAL、DBMS_SYSTEM_INTERNAL、DBMS_CORE_INTERNAL、DBMS_STANDARD_FUN9)和三个触发器(DBMS_SUPPORT_INTERNAL、DBMS_SYSTEM_INTERNAL、DBMS_CORE_INTERNAL)。
病毒读取数据库创建时间,如果大于等于1200天,则对数据库进行不同程度的破坏(例如Truncatetab_name和删除tab$中的记录),重启数据库后会导致用户无法访问所有的数据库对象。同时,给出提示“你的数据库已经被SQL RUSH Team锁死,请发送5个比特币到xxxxxxxxxxx地址,….”等信息,并设置定时任务,如果在期限内不交赎金,就删除所有的表。具体提示信息如下:
防护方案利用数据库安全审计与防护产品,发现异常并进行防护
部署启明星辰数据库审计或者数据库防火墙,用户可自行添加勒索病毒的审计策略,主要的规则如下:
1、权限最小化限制,对不同用户根据角色给予其最小权限。
例如:低权限用户限制触发器、存储过程的创建和修改。策略配置如下:
为低权限用户配置一个权限控制集合,对于触发器和存储过程和新建修改和删除操作,一旦执行则进行告警和阻断。
2、勒索病毒精准控制:恶意存储过程、触发器创建行为限制。
对于高权限账号新建恶意存储过程的操作定义规则,建立阻断策略进行限制,如图:
依次创建四个存储过程DBMS_SUPPORT_INTERNAL、DBMS_SYSTEM_INTERNAL、DBMS_CORE_INTERNAL、DBMS_STANDARD_FUN9和三个触发器DBMS_SUPPORT_INTERNAL、DBMS_SYSTEM_INTERNAL、DBMS_CORE_INTERNAL的检测规则,针对这些操作规则建立审计和阻断策略。
3、为了病毒变种,需要加强对来自PL/SQL Dev客户端的操作监管
定义规则,对客户端工具为PL/SQL的所有操作进行记录,对其存储过程和触发器操作进行告警。如图建立规则并依次选择对应的响应方式,建立审计策略:
人工确认病毒入侵痕迹,及时清理恶意文件
1、检查启动脚本
大多数客户端工具,在访问数据库时,都可以通过脚本进行一定的功能定义,而这些脚本往往就是安全问题的漏洞之一,以下列出了常见客户端工具的脚本位置,需要检查这些脚本是否正常,如:plsqldev 的login.sql和afterconnect.sql,Toad的toad.ini,sqlplus中的glogin.sql和login.sql等。
2、在数据库中执行检查语句
Select * from dba_triggers where TRIGGER_NAME like 'DBMS_%_INTERNAL%';
select from dba_procedures W where W.object_name like 'DBMS_%_INTERNAL% '。
以上操作若发现异常,立刻清理恶意文件,删除已经建立的存储过程和触发器。
综上,针对Oracle比特币勒索病毒的防护方案除了对防护工具的合理使用,还有赖于数据库管理人员的安全防范意识。建议用户多使用正版软件,做好数据库的访问控制和权限管理,对于来自异常IP、账号、客户端的访问及时处置,关闭病毒感染通道。一旦发现病毒感染请及时采取措施,必要时咨询专业安全服务团队寻求支持。