云安全威脅管理 | 解密新型 SQL Server 無文件持久化惡意程序
瀏覽量: 次 發布日期:2023-08-17 21:48:26
云安全威脅管理 | 解密新型 sql server 無文件持久化惡意程序
近期,阿里云云安全中心基于全新的深度威脅檢測功能,監測到云上部分用戶的 SQL Server 數據庫內部隱藏著一種新型的持久化后門程序。
攻擊者利用弱口令不嚴謹配置,以非常簡單的攻擊方法進入數據庫,即可植入該后門,更致命的是,該后門高度隱蔽和持久化控制的特性,讓發現和清除變得困難。
威 脅 特 點
植入簡單
利用數據庫弱密碼或不嚴謹配置,攻擊者只需簡單的弱口令利用,即可輕松登錄進用戶的數據庫植入該后門程序;
高度隱蔽
該后門完全隱藏在SQL Server數據庫進程內部,無文件落地、無額外進程,運維管理人員很難定位到后門真正所在;
持久化控制
該惡意后門持續不斷地向云主機內部植入挖礦病毒等其他惡意程序,使管理員陷入病毒殺不完、懷疑有漏洞的困境;
查殺困難
簡單的弱口令漏洞修復和已有惡意文件查殺根本無法實現對惡意程序來源的清除,即使重啟數據庫服務、甚至重啟云主機,由于真正的隱藏后門沒有完全清除,還是會有病毒源源不斷的被植入主機。
攻 擊 流 程
攻擊者利用某些應用程序供應商的數據庫默認密碼及不嚴謹配置入侵SQL Server數據庫;
在登入數據庫后,創建SQL Server代理作業周期性執行SQL語句調用惡意的用戶自定義函數;
用一種特殊的方式將惡意代碼以CLR程序集的形式加載進數據庫,實現通過用戶自定義函數調用惡意的CLR程序集;
已創建的SQL Server代理作業自動周期性的調用惡意CLR程序集,實現惡意代碼持久化。
威 脅 分 析
傳統的持久化技術、惡意代碼加載方式早已被所有主機安全產品列為重點監控范圍,很容易被發現并清除掉:
· 利用操作系統內置的計劃任務、系統服務、自啟動項等方式進行持久化;
· 直接在磁盤上放置惡意程序文件;
· 利用系統內置的工具程序加載惡意代碼到內存中執行。
不同的是,此次新型惡意程序將兩種SQL Server內置功能巧妙結合用于惡意軟件持久化,實現了在無文件落地、無額外進程的情況下保持對云主機的持久化控制,將惡意活動完全隱藏在用戶正常業務所需要的SQL Server數據庫進程內部。
那么,這一惡意程序是怎么做到的呢?
利用代理作業實現無異常周期性循環執行
SQL Server代理作業原本的用途是方便用戶進行數據庫運維,通過設置執行計劃和執行步驟來實現周期性的執行腳本程序或SQL語句。以往會利用此功能的攻擊者或惡意軟件會直接用代理作業執行一段惡意命令或惡意腳本,極易被運維管理員發現。
但是該后門的實施者,在創建代理作業后,僅執行了一句很短的SQL語句,將后門隱藏在另一個用戶自定義函數SqlManagement背后,隱蔽性很強。
作業名稱 :
syspolicy_sqlmanagement_history
執行計劃名稱 :
schedule_sqlmanagement
執行步驟名稱 :
sqlmanagement
執行步驟內容 :
select dbo.SqlManagement(0)
利用CLR程序集實現高隱蔽性
代理作業中的SQL語句要執行的惡意的用戶自定義函數SqlManagement,背后對應的是一個CLR程序集 Microsft.SqlServer.Management。該功能原本用途是方便高級數據庫管理員擴展數據庫功能,攻擊者利用該技術可以實現在SQL中調用自定義的惡意C#程序。
以往植入新的CLR程序集需要先將惡意程序寫入磁盤,很容易被殺毒軟件發現,攻擊者使用了一種特殊的寫入方式,直接使用SQL寫入C#程序的16進制流,將程序加載到數據庫中。結合SQL Server 代理作業功能,即可實現在數據庫進程內部持久化周期執行惡意的C#程序。
使用SQL將C#惡意程序直接載入數據庫示例:
CREATE ASSEMBLY [Microsft.SqlServer.Management] AUTHORIZATION [dbo] FROM
0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000504500004C010300777C565F0000000000000000E00022200B013000001E00000006000000000000 (后續省略)
還原出的反編譯的CLR程序集進行分析,發現核心功能是從用戶自定義函數 SqlManagement 開始,最終調用至SendAndReceiveFromServerBuffer 函數從vihansoft.ir周期性下載惡意程序并執行,執行流程全部隱藏在SQL Server應用內,安全運維人員難以發現。
惡意后門檢測與清理
阿里云安全中心用戶,只需進行簡單配置,即可實現對新型SQLServer無文件持久化惡意程序的深度檢測、發現、溯源和清理。
01
云環境深度威脅檢測技術
針對云上主流應用進行深度檢測,尤其是針對Microsoft SQL Server等常見應用,云安全中心可以深入應用內部,在不打擾應用運行的情況下,對潛在的風險項進行掃描,無感發現無文件、無額外進程的高度隱蔽惡意程序,識別該后門的惡意域名。
02
自動化威脅溯源
云安全中心后臺系統基于多種主機進程行為分析,通過異構數據關聯、圖引擎計算、惡意行為模式聚類等方式,層層推進還原出原始觸發點或根據聚類分析結果進行推理還原,自動化追溯威脅源頭。
03
一點檢測全網聯動防御
威脅源頭信息共享在全網的“檢測模式”類威脅情報網絡中,只要在一臺主機上確認該后門特征,其他主機在掃描時也能快速識別該后門程序。同時發現該后門曾經植入的后續其他惡意文件。
04
一鍵深度清理
針對此類特殊后門,云安全中心支持一鍵清理,可以深入到SQL Server應用內部,精準處理掉該后門程序。
拓展安全建議
此次發現的新型持久化惡意程序,攻擊者主要針對云上SQL Server服務發動攻擊,除了常規的弱口令爆破外,入侵者還會嘗試某些應用服務供應商的數據庫初始化口令。
用戶不單單需要關注自身管理數據庫服務是否存在弱口令,還需警惕應用服務供應商的默認口令被入侵,做好日常安全基線檢查與安全加固,防患于未然。
南京兆柏數據恢復中心
. 數據庫的恢復模式有哪些,SQL Server數據庫的恢復模式詳解
. SQL Server 恢復掛起狀態,原因、診斷與解決方法
. sqlserver備份到其他服務器,SQL Server數據庫備份到其他服務器的實用
. 2008數據庫怎么還原數據庫,SQL Server 2008 數據庫還原指南
. sqlserver數據庫恢復掛起狀態,什么是SQL Server數據庫恢復掛起狀態?
. sqlserver數據庫恢復50g大約多少時間,了解SQL Server數據庫恢復
. sql server數據庫顯示恢復掛起,什么是SQL Server數據庫恢復掛起?
. sqlserver數據庫恢復進度,什么是SQL Server數據庫恢復進度?
. sqlserver數據庫恢復步驟,SQL Server數據庫恢復步驟
. sqlserver數據庫恢復數據,什么是SQL Server數據庫恢復數據?
. sqlserver數據庫恢復,什么是SQL Server數據庫恢復?
. sqlserver數據庫恢復掛起什么導致的,什么是SQL Server數據庫恢復掛起
. sqlserver數據庫恢復掛起,什么是SQL Server數據庫恢復掛起?
. sqlserver數據庫恢復工具,什么是SQL Server數據庫恢復工具?
. sqlserver數據庫恢復模式,什么是SQL Server數據庫恢復模式?
. sqlserver數據庫恢復掛起怎么解決,什么是SQL Server數據庫恢復掛起?
. sqlserver誤刪數據庫怎么恢復,什么是SQL Server誤刪數據庫
. 不支持的sql server版本怎么解決,不支持的sql server版本
. MySQL server has gone away,為什么MySQL server