作者:李美雯 / 計算機及資訊網路中心網路組程式設計師
使用AppServ可以在Windows作業系統中輕鬆安裝與架設網站伺服器,AppServ包含Apache、PHP、Mysql與phpMyAdmin等網站環境元件,深受一般人的歡迎。因為AppServ已經5年未更新,駭客利用其phpMyAdmin的漏洞植入木馬後門程式,因而觸發多起資安事件。本中心特此深入分析AppServ套件漏洞與木馬後門的運作原理,以提供網站管理者有效解決方案。
前言
102年6月份,計資中心接獲本校45台主機Sdbot資安事件,這45台異常主機非常特別,同時觸發內對外的IRC異常連線及外對內的Sdbot異常連線。雖然在通報後主機管理者有處理異常主機,但有些主機卻因處理不完善,而再次觸發同樣的資安事件。透過網路流量分析系統也發現遭通報的異常主機對外發出大量的UDP Flooding攻擊。為了確實回復異常主機以有效阻止異常主機對外攻擊,我們決定深入分析Sdbot木馬程式的運作原理,提供本校網站管理者最佳解決方案。
AppServ漏洞與Sdbot運作原理
在隨機分析3台被通報為異常主機的網路封包後,我們發現這些異常主機的phpMyAdmin頁面存在著被外部主機存取的紀錄,初步得知這些異常主機的問題與phpMyAdmin有關。而phpMyAdmin可讓管理者透過Web介面管理後端Mysql資料庫,提供資料庫之匯出、匯入、刪除與修改等功能,使用該套件可增加管理後台資料庫的便利性。至於為何以及如何被惡意程式操控,則需要更進一步的分析。
經過向被通報的異常主機管理者查詢後確認這些主機都有一個共通性,均安裝了AppServ 2.5.10套件。AppServ套件在安裝時自動幫使用者將Apache、PHP、Mysql與PhpMyAdmin四個套件安裝並設定好,就因為這樣的方便性,許多學生架設網站時喜好採用這個整合套件,圖一為安裝好AppServ後的預設首頁。
圖一 AppServ安裝完成後的預設頁面
我們分析本校異常主機的封包後逐步還原整個資安事件的運作原理。首先,攻擊者利用phpMyAdmin中"setup.php"的漏洞,將惡意的PHP code(程式碼)植入受害主機,並透過setup.php頁面上的管理選項參數(如圖二顯示之按鈕選項),偽造與Server端溝通的Token,將惡意程式碼寫入主機,如圖三所示。同時利用此頁面將PHP設定檔重置(reload),在重置的過程中執行被植入的惡意程式碼。導致受害主機自動連線至外部主機下載並執行Sdbot木馬程式。受害主機遭受感染後,隨即透過IRC(Internet Relay Chat)聊天室向Bot C&C Server(Control & Command Server)報到並等候攻擊指令,成為Botnet(殭屍網路)的一員。通常Bot的活動包含,從Internet下載惡意軟體,從受害主機竊取機敏資料,入侵其他系統,或者發動DDoS (Distributed Denial-of-Service)攻擊其他系統等。
圖二 setup.php網頁管理參數設定介面
圖三 網路封包分析顯示透過setup.php頁面植入惡意程式碼
從本校被通報的異常主機之網路封包分析中發現,異常主機接收到攻擊指令後,開始對攻擊目標IP發出大量的UDP Flood攻擊,如圖四所示。攻擊命令包含UDP洪水攻擊開始(UDPFlood Started)、攻擊目標主機IP位址、攻擊封包數量及攻擊結束(UDPFlood Finished)等。大量的UDP Flood攻擊不僅影響異常主機之區域網路傳輸速度,本機提供之服務也無法正常運作。
圖四 網路封包分析顯示異常主機接收的攻擊指令
建議措施
由於Sdbot的特性,主機感染後僅會將Sdbot暫存於記憶體中,因此透過重新開機便可將Sdbot自主機中清除。除此之外,還需刪除有漏洞的setup.php,以免漏洞再次被利用。因此我們提供兩種建議,一種是緊急措施,施作後可以在短時間內讓網站恢復正常運作,另一種則是長治久安的措施。因為AppServ套件長達五年未提供更新程式,或許還有其它漏洞,未來仍有漏洞被利用的風險,重新安裝最新版本的網站應用程式才是最佳解決方案。
緊急建議措施:
刪除C:\AppServ\www\phpMyAdmin\scripts\setup.php(此為預設路徑,需確認主機setup.php的路徑)
重新啟動主機(務必清空主機記憶體中的攻擊程式)
有效建議措施:
建議網站管理者將重要資料備份後,移除AppServ套件,並且重新安裝最新版的Apache、PHP、Mysql、PhpMyAdmin。
參考資料
[1] http://www.appservnetwork.com/
[2] http://cert.tanet.edu.tw/pdf/phpMyAdmin.pdf