【技術分享】A-Journey-into-Synology-NAS-系列——群暉NAS介紹
前言
之前花過一段時間研究群暉的NAS設備,并發現了一些安全問題,同時該研究內容入選了安全會議POC2019和HITB2021AMS。網上關于群暉NAS設備安全研究的公開資料并不多,因此基于議題《Bug Hunting in Synology NAS》和《A Journey into Synology NAS》,將之前的一些內容展開,如果有對群暉NAS設備感興趣的同學,希望對你們有所幫助。
本系列文章的目的是介紹一些關于群暉NAS設備的基本信息、請求處理的相關機制和常見攻擊面等,以及實際發現的部分安全問題,讓讀者對群暉NAS設備有個大體的認識,并知道如何去對設備進行安全分析,而不會聚焦于某個具體漏洞的利用細節。本系列文章大概會分為以下幾個部分:
- 群暉環境搭建
- 自定義服務分析,包括findhostd和iscsi_snapshot_comm_core
- HTTP請求處理流程,和常見的攻擊面分析
群暉NAS介紹
NAS (Network Attached Storage),即網絡附屬存儲,是一種特殊的數據存儲設備,包含一些必要的器件如RAID、磁盤驅動器或可移動的存儲介質,和內嵌的操作系統,用于將分布、獨立的數據整合并集中管理,同時提供遠程訪問、共享、備份等功能。簡單地可以理解為”聯網的磁盤陣列”,并同時具備硬盤存儲和網盤存儲的優勢。
群暉是一家致力于提供網絡存儲服務器(NAS)服務的公司,被認為是中小企業和家庭NAS領域的長期領導者。群暉NAS的主要產品線包括DiskStation、FlashStation和RackSation,其中DiskStation是適合我們日常使用的桌面型號。針對每個產品線,都提供了不同的系列來滿足不同的要求。
此外,群暉還提供了適用于每一個NAS的操作系統DiskStation Manager (DSM)。它是一個基于Linux的、網頁界面直觀的操作系統,提供了豐富的功能包括文件共享、文件同步和數據備份等,以在各個方面提供更好的靈活性和可用性。
環境搭建
在了解了群暉NAS的基本信息后,需要有一個目標設備來進行測試。目前,常見的有兩種方式,如下。
- 直接購買一個群暉NAS設備,即”白群暉”,其功能完整,比較方便配置和使用
- 組裝一個設備,或購買一個廠商的NAS設備,并安裝群暉的DSM系統,即”黑群暉”,其擁有大部分的功能,對于測試而言是足夠的
除了上述兩種方式,NAS社區還提供了另一種方式,即創建一個群暉虛擬機。這種方式更適合于測試用途(比如想測試不同的DSM版本),因此下面主要對這種方式進行介紹。
這里僅是出于安全研究的目的,如果有實際使用需要,建議購買群暉官方NAS設備。
安裝DSM 6.2.1
創建一個群暉虛擬機,主要需要如下兩個文件。目前社區提供了針對不同NAS型號和不同DSM版本的loader,最新的loader版本適用于DSM 6.2.1,注意在安裝時最好選擇和loader對應的NAS型號及DSM版本。經測試,ds918系列的loader支持升級到DSM 6.2.3,即可以在先安裝DSM 6.2.1版本后再手動升級到DSM 6.2.3。
- 群暉官方提供的DSM文件(pat文件)
- 社區提供的loader
關于loader是否可以升級以及是否成功升級等信息可點擊“閱讀原文”參考
以VMware Workspace為例,創建群暉虛擬機需要先加載synoboot引導,再安裝對應的DSM。由于下載的引導文件為img格式,這里可以先將其轉換為vmdk格式,方式如下。
- 使用軟件StarWind Converter進行轉換
- 使用qemu-img命令進行轉換
$ qemu-img convert -f raw -O vmdk synoboot.img synoboot.vmdk
之后正常創建VMware虛擬機,并使用之前轉換得到的vmdk文件。其中,在選擇安裝引導的磁盤類型時,一定要選擇SATA類型,選擇SCSI的話可能會造成后續引導無法識別或啟動。創建完畢后,再正常添加額外的硬盤,用于數據存儲。啟動虛擬機后,通過Web Assistant或Synology Assistant進行安裝和配置,完成之后就可以通過瀏覽器成功訪問NAS虛擬機了。
Synology Assistant是一個客戶端軟件,用于在局域網內搜索和管理對應的NAS設備。

之后,可以通過手動更新的方式將其升級到DSM 6.2.3版本。前面提到過,通過這種方式只能得到DSM 6.2.3版本的虛擬機,而目前群暉DSM的最新版本包括DSM 6.2.4和DSM 7.0,無法通過這種方式安裝。不過,可以基于剛創建的NAS虛擬機,借助群暉提供的Virtual Machine Manager套件來安裝DSM 6.2.4或DSM 7.0版本的虛擬機。
安裝DSM 6.2.4/DSM 7.0
群暉套件Virtual Machine Manager,通過一個集中且規范的接口集成了多種虛擬化解決方案,可以讓用戶在NAS上輕松創建、運行和管理多臺虛擬機,當然也包括群暉的虛擬DSM。

簡單而言,可以先創建一個DSM 6.2.3版本的虛擬機,然后在該虛擬機內部,借助Virtual Machine Manager套件再安裝一個或多個virtual DSM。其中,在安裝virtual DSM時,需要保證對應的存儲空間格式為Brtfs,可以通過額外添加一個硬盤(容量盡量大一點,比如40G或以上)的方式,新增加存儲空間時選擇SHR(Brtfs)即可。另外,一個Virtual Machine Manager里面似乎只提供了一個Virtual DSM的免費License,因此如果安裝了多個Virtual DSM的話,多個虛擬實例無法同時啟動。這里通過切換虛擬實例的方式來避免這一問題,對于安全測試而言足夠了。

由于目前DSM 7.0還在測試階段,一些功能或特性不是特別穩定或成熟,因此本系列文章還是以DSM 6.1/DSM6.2版本為主。
群暉在線Demo
群暉官方也提供了供在線體驗的DSM實例,包括DSM 6.2.4和DSM 7.0版本。當然,你也可以基于該壞境去進行安全分析與測試,不過可能會有一些限制比如無法使用SSH訪問shell等,或者其他顧慮等等。
工具安裝
群暉NAS上提供了SSH功能,開啟后可以訪問底層Linux shell,便于后續的調試與分析等。此外,群暉還提供了一個名為Diagnosis Tool的套件,其包含很多工具,如gdb和gdbserver等,便于對程序進行調試。通常,可以通過套件中心搜索并安裝該套件,如果在套件中心中無法找到該套件的話,可以通過在shell命令行采用命令synogear install進行安裝,如下。
$ sudo -i # 切換到root用戶$ synogear install # 安裝套件
設備指紋
群暉NAS主要是用在遠程訪問的場景下,此時唯一的入口是通過5000/http(5001/https)進行訪問(暫不考慮使用QuickConnect或其他代理的情形)。使用設備搜索引擎如shodan查找暴露在公網上的設備,如下。可以看到,確實只有少量的端口可以訪問。

為了進一步地知道目標設備的DSM版本、安裝的套件和對應的版本等信息,需要獲取更精細的設備指紋。通過分析,發現在index頁面中存在對應的線索。具體地,index頁面中存在一些css鏈接,表明有哪些內置的模塊和安裝的第三方套件。同時,其中也包含一些NAS特有的腳本鏈接。根據上述信息,可以構建一些query用于更準確地查找群暉NAS設備。
Port: 5000/5001 # defaultShodan query: html:"SYNO.Core.Desktop.SessionData"

另外,在每個鏈接后面還有一個參數v,其表示最后更改時間的時間戳,即對應構建時的時間戳。以如下鏈接為例,時間戳1589235146可轉換為時間2020-05-12 06:12:26。通過在群暉鏡像倉庫中查找各DSM版本發布的時間,可以推測該DSM版本為6.2.3-25426。類似地,AudioStation套件的版本為6.5.6-3377。
webapi/entry.cgi?api=SYNO.Core.Desktop.SessionData&version=1&method=getjs&SynoToken=&v=1589235146
進一步地,可以通過訪問http://:/ssdp/desc-DSM-eth0.xml, 獲取設備的具體型號、版本以及序列號等信息。
通常,設備搜索引擎只會探測http://:/下的默認頁面,對于該二級頁面沒有進行探測。
<deviceType>urn:schemas-upnp-org:device:Basic:1deviceType><friendlyName>VirtualDSM (VirtualDSM)friendlyName><manufacturer>Synologymanufacturer><manufacturerURL>http://www.synology.commanufacturerURL><modelDescription>Synology NASmodelDescription><modelName>VirtualDSMmodelName><modelNumber>VirtualDSM 6.2-25556modelNumber><modelURL>http://www.synology.commodelURL><modelType>NASmodelType><serialNumber>xxxxxxserialNumber><UDN>xxxxxxUDN>
相關事件/研究
近年來,有一些關于群暉的安全事件,其中包括:
- 在2018年的GeekPwn比賽中,來自長亭科技的安全研究員攻破了群暉DS115j型號NAS設備,成功獲取了設備上的root權限;
- 在Pwn2Own Tokyo 2020比賽中,有2個團隊攻破了群暉DS418Play型號NAS設備,均成功拿到了設備上的root shell。
同時,也有一些安全研究人員對群暉設備進行了分析,感興趣的可以看看。
- Network Attached Security: Attacking a Synology NAS
- SOHOpelessly Broken 2.0 – Security Vulnerabilities in Network Accessible Services
- Vulnerability Spotlight: Multiple vulnerabilities in Synology SRM (Synology Router Manager)
- Vulnerability Spotlight: Multiple vulnerabilities in Synology DiskStation Manager
小結
本文首先對群暉NAS進行了簡單介紹,然后給出了如何搭建群暉NAS環境的方法,為后續的安全分析做準備。同時,對設備指紋進行了簡單討論,并介紹了與群暉NAS相關的一些安全事件/安全研究等。后續文章將對群暉NAS設備上的部分服務、功能或套件等進行分析,并分享一些實際發現的安全問題。