Synology遭植入bitcoin miner utility後無法更新DSM問題

2014 一整年 Synology 最尷尬的狀況,就是系統漏洞遭到入侵,被植入 bitcoin miner utility。症狀是三不五時網路連線變慢或異常、無法進行 DSM 更新(永遠回應假訊息「已經是最新版」)、偶而無法登入管理介面、以及 ssh 連線指令一直收到 ERROR: ld.so: object '/lolz/jynx2.so' from LD_PRELOAD cannot be preloaded: ignored. 之類的錯誤訊息。網路上流傳很多解決方法,包括換上乾淨硬碟重新安裝DSM(超麻煩)或按硬體重設鈕後重裝DSM,就是反正無法升級,只好死馬當活馬醫的作法。

很幸運地找到一篇討論串(http://forum.synology.com/enu/viewtopic.php?f=7&t=83325),提供了簡單的修復方法:

登入 NAS
$ ssh root@xxx.xxx.xxx.xxx

回到root的家目錄
$ cd

將設定檔更名,調整權限,登出。
$ mv .profile .profile_bak
$ chmod a+w .profile_bak
$ exit

再登入NAS,此時應該已經沒有 ERROR: ld.so... 的錯誤訊息
$ ssh root@xxx.xxx.xxx.xxx

修改.profile內容
$ vi .profile_bak

將所有出現 jynx2.so 的地方整行移除(標注紅色),並整理重複的PATH設定。
export LD_PRELOAD=/PWNED/jynx2.so
export PATH=/opt/bin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin 
export LD_PRELOAD=/PWNED/jynx2.so
export PATH=/opt/bin:/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
export LD_PRELOAD=/lolz/jynx2.so
export PATH=/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin

只剩下這樣

export PATH=/opt/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin

存檔後,將 .profile 恢復原狀
$ mv .profile_bak .profile
$ chmod go-w .profile
$ exit

再次登入NAS,應該一切恢復正常,可以進行更新了。
$ ssh root@xxx.xxx.xxx.xxx

下載目前這台NAS可以更新到的最新韌體(存放在 /volume1/@autoupdate 中)
$ synoupgrade --fetch-all

確認一下檔案
$ ls /volume1/@autoupdate

開始更新
$ synoupgrade --patch /volume1/@autoupdate/DSM_DSxxxx_xxxx.pat

更新完成後,系統會自動重開機,大功告成!可以登入 DSM 5.x 的嶄新管理界面了。

但是不要高興太早!務必先按照「安全諮詢中心」的建議調整系統設計(主選單 > 安全諮詢中心)。幾個基本建議:
  1. 使用更安全的密碼:管理員密碼一定要夠安全、夠保密,並強制一般用戶使用更安全的密碼規則(控制台 > 使用者帳號 > 進階設定)。
  2. 變更 SSH 和 DSM管理介面的通訊埠(控制台 > 終端機 & SNMP,控制台 > 網路 > DSM設定)。
  3. 設定自動更新(控制台 > 更新 & 還原 > 系統更新 > 更新設定)

留言