Oracle資料庫勒索病毒自檢工具
一、事件背景
近日,Oracle資料庫勒索病毒又活躍了,其實這並非新病毒,早在2年前,即2016年11月就發現了,深信服一直持續關注此病毒。
我們提醒使用者,無需過渡恐慌,只要不要亂下載PL/SQL破解版工具就不會中招!
不確認是否中招的使用者,我們這裡率先提供簡單!有效!的自檢工具,一鍵執行,無需安裝,即可快速判斷是否感染了Oracle資料庫勒索病毒。
話不多說,直接上Oracle勒索病毒自檢工具:
ofollow,noindex" target="_blank">http://edr.sangfor.com.cn/tool/SfCheckPLSQL.zip
中毒截圖證明如下:
深信服安全團隊早在5月28號就接到多起Oracle資料庫被勒索的案例,中毒之後資料庫顯示如下勒索資訊:
提取到相應的樣本之後,經過深入分析,EDR安全團隊確認該病毒是RushQL資料庫勒索病毒,是由於使用了破解版的PL/SQL導致的。
二、樣本分析
1.樣本是一個PL/SQL自帶的AfterConnect.sql自動執行指令碼,此檔案在官司PL/SQL軟體中為空檔案,該勒索病毒就是利用了這個檔案,相應的樣本,如下所示:
指令碼的關鍵程式碼,採用了Oracle資料庫專用加密工具wrap進行了加密,如下所示:
2.對程式碼進行解密,得到相應的四個儲存過程和三個觸發器,四個儲存過程,如下所示:
以上DBMS_SUPPORT_INTERNAL儲存器的主要功能:
如果資料庫建立日期 > 1200 天之後則:
(1)建立並備份sys.tab$表的資料到表 ORACHK || SUBSTR(SYS_GUID,10)
(2)刪除sys.tab$中的資料,條件是所有表的建立者ID 在(0,38)範圍
(3)通過SYS.DBMS_BACKUP_RESTORE.RESETCFILESECTION清理掉備份資訊
(4)通過DBMS_SYSTEM.KSDWRT在你的alert日誌中寫上2046次勒索資訊
(5)丟擲一個警告提示勒索資訊
以上DBMS_SYSTEM_INTERNAL儲存器的主要功能:
如果當前日期 – 資料表(不含SYSTEM, SYSAUX, EXAMPLE)的最小分析日期 > 1200 天,且當前客戶端程式程序名不是“C89239.EXE”,則觸發警告提示勒索資訊
以上DBMS_CORE_INTERNAL儲存器的主要功能:
把表名不含$,不含ORACHK,不是cluster的表放到一個遊標裡面,然後取非SYSTEM,SYSAUX,EXAMPLE之外的表空間的表的最小統計資訊收集時間和當前時間比較如果大於1200天就執行truncate table操作,操作完成之後判斷如果登入程式不為C89239.EXE,則觸發警告提示勒索資訊
以上DBMS_STANDARD_FUN9儲存器的主要功能:
動態執行PL/SQL指令碼
3.三個觸發器的相應內容,如下所示:
在資料庫啟動時執行儲存過程DBMS_SUPPORT_INTERNAL
在登入資料庫時執行儲存過程DBMS_SYSTEM_INTERNAL
在登入資料庫時執行儲存過程DBMS_CORE_INTERNAL
三、解決方案
1.刪除被惡意篡改的客戶端軟體
2.根據不同的情況進行不同處理:
情況一:
SYSDATE - MIN(LAST_ANALYZED) 小於1200天
資料庫損壞情況:未損壞
處理辦法:
a.刪除三個觸發器:
"DBMS_SUPPORT_INTERNAL "
"DBMS_SYSTEM_INTERNAL "
"DBMS_CORE_INTERNAL "
b.刪除四個儲存過錯:
"DBMS_SUPPORT_INTERNAL "
"DBMS_SYSTEM_INTERNAL "
"DBMS_CORE_INTERNAL "
"DBMS_STANDARD_FUN9"
情況二:
SYSDATE - MIN(LAST_ANALYZED) 大於1200天,並且SYSDATE - CREATED大於1200天但未重啟 或者 SYSDATE - CREATED 小於1200天
資料庫損壞情況:某些表被truncate
處理方法:
a.刪除三個觸發器和四個儲存過程
b.使用備份把表恢復到truncate之前
c.使用DUL恢復(不一定能恢復所有的表,如truncate的空間已被使用)
情況三:
SYSDATE - CREATED 大於1200天
資料庫損壞情況:某些表被truncate以及tab$被刪除
處理方法:
a.刪除三個觸發器和四個儲存過程
b.使用備份把表恢復到truncate之前
c.使用ORACHK開頭的表恢復tab$
d.使用DUL恢復(不一定能恢復所有的表,如truncate的空間已被使用)
3. 檢查相關登入工具的自動化指令碼,清理有風險的指令碼:
SQL*PLUS 中的glogin.sql/login.sql
Toad 中的toad.ini
PL/SQL Developer中的ogin.sql/AfterConnect.sql
4.建議從官網下載工具,不要使用綠色版/破解版等
四、參考連結
https://blogs.oracle.com/cnsupport_news/%E5%AF%B9%E6%95%B0%E6%8D%AE%E5%BA%93%E7%9A%84%E2%80%9C%E6%AF%94%E7%89%B9%E5%B8%81%E6%94%BB%E5%87%BB%E2%80%9D%E5%8F%8A%E9%98%B2%E6%8A%A4