針對門控系統(tǒng)的攻擊面深度檢查
一、引言
近年來,許多企業(yè)出于對安全的考慮,開始逐步使用電腦化的門控系統(tǒng):要求用戶擁有中央數(shù)據(jù)庫授權(quán)的口令或者刷卡,以確保那些沒有授權(quán)的人無法進(jìn)入公司區(qū)域或者公司的受限區(qū)域。
沒有完美的系統(tǒng),迄今為止大多的嘗試都圍繞著社工方面(諸如緊隨溜進(jìn))或者設(shè)法占有必要的令牌以繞過該套系統(tǒng)。
但是攻擊者通過利用門控系統(tǒng)自身的軟硬件弱點也是可以進(jìn)入的。
在本篇文章里,我們將展示一款在門控系統(tǒng)市場領(lǐng)先產(chǎn)品的嚴(yán)重安全漏洞, 通過它們不僅能夠獲取安全場所的訪問權(quán)限,也可以獲取所在企業(yè)的機(jī)密信息。
這些弱點包括,但不限于:缺少默認(rèn)配置密碼,無需認(rèn)證的控制端口, 硬件缺少認(rèn)證, 攻擊者對數(shù)據(jù)庫的可能拷貝, 利用緩沖區(qū)溢出攻擊造成的拒絕服務(wù), 硬編碼的密鑰導(dǎo)致的可能性的欺騙。
為避免廠商解決問題期間可能的惡意攻擊, 我們不會指明哪家的門控系統(tǒng)有問題, 有些技術(shù)細(xì)節(jié)也做了處理。 我們期望待廠家解決這些問題之后,再發(fā)布一篇完整的文章,包括那些具體的細(xì)節(jié)。
我們試圖概述這些系統(tǒng)的安全問題, 而不是在某個點上深入研究, 所以進(jìn)一步的研究綱要也是必須的。 在稍后的后續(xù)研究章節(jié)里有相關(guān)大綱。
通過該項研究, 我們建議有關(guān)機(jī)構(gòu)應(yīng)該盡可能的將他們的物理安全設(shè)備同網(wǎng)絡(luò)隔絕, 以最小化一個淪陷的系統(tǒng)對其他系統(tǒng)的突破。
二、背景
我們有一款門控系統(tǒng), 由英國一家占有較大市場份額的廠商提供。 該系統(tǒng)包含兩部分——運行在微軟Windows機(jī)器上的軟件管理服務(wù)器; 一個定制的物理控制器,上面跑著一些軟件組件,以便連接到管理服務(wù)器上。
在研究期間, 我們試圖識別系統(tǒng)的痕跡, 發(fā)現(xiàn)系統(tǒng)上的弱點, 尤其是那些造成未授權(quán)訪問的。
三、門控制器
我們所檢測的這款門控制器是問題制造商的最新可用款, 因此可以對該類系統(tǒng)的現(xiàn)存風(fēng)險做一個現(xiàn)實的評估。
每個控制器就是一個定制的硬件,由電池供電。 與兩塊門相連,每個都有一個進(jìn)入時讀取器和一個鎖(必要時,出來的也有)。 同時還有一個輔助的輸入設(shè)備(用于輸入PIN碼), 一個輸出設(shè)備——用作門開之后的狀態(tài)顯示燈。
最重要的是,控制器連接到了管理服務(wù)器上。在老的款型中,通過串口連接, 但在新款里,還可通過IP進(jìn)行連接,由一款流行的串口轉(zhuǎn)以太網(wǎng)的設(shè)備提供。
這個串口轉(zhuǎn)以太口的設(shè)備可通過web和telnet方式遠(yuǎn)程管理, 在其默認(rèn)的配置中, web接口和telnet訪問都沒有配置密碼。
控制器在其默認(rèn)配置里提供了幾種連網(wǎng)服務(wù)。 下面我們將介紹其中所發(fā)現(xiàn)的漏洞:
控制端口
通過該控制端口可配置控制器。 雖然所用協(xié)議的具體細(xì)節(jié)尚未公布,但第三方的研究者已經(jīng)在網(wǎng)上發(fā)布了一些相關(guān)信息。
它既不需要也不支持認(rèn)證,指令可以通過UDP直接發(fā)送到目標(biāo)主機(jī)或者廣播到廣播域里的所有設(shè)備。
特別的,如果web和telnet接口設(shè)置了密碼,一個Get配置請求被發(fā)送到該接口, 密碼就會被包含在響應(yīng)中。 如果在控制面板里選擇了高級密碼選項,該情況就不會出現(xiàn), 但在基本的默認(rèn)配置下是這樣的。
即使沒有這一點,基本模式下的密碼也極其危險, 因為不能超過5個字符。
也可為控制器設(shè)置一個新的IP地址。這實際上就成了拒絕服務(wù)攻擊,因為管理服務(wù)器無法與控制器通信。 對于攻擊者,控制住控制器本身也是必須的, 因為串口到IP的轉(zhuǎn)換器只允許一個連接, 管理服務(wù)器也試圖保持持續(xù)的連接。 只有打斷管理服務(wù)器和控制器間的連接, 攻擊者才有可能控制住門。
一旦IP地址被更改了,就無法阻止門控系統(tǒng)被重新配置,系統(tǒng)可以被修改, 或者安裝新的軟件, 攻擊者可以獲取到對門的完全控制權(quán)。
四、管理服務(wù)器
在默認(rèn)設(shè)置下,沒有開啟防火墻, 管理服務(wù)器在網(wǎng)絡(luò)上暴露了一些服務(wù):
4.1 遠(yuǎn)程配置服務(wù)
有個遠(yuǎn)程配置端口, 但端口掃描即可使其崩潰, 所以它不是一直可見的。
一旦建立連接, 遠(yuǎn)程配置服務(wù)器在讀取指令前,讀取4字節(jié),用于創(chuàng)建緩沖區(qū)。 如果緩沖太大,程序就會崩潰——所以即使是無意的,也很容易就造成了拒絕服務(wù)。 但這并不允許遠(yuǎn)程代碼的執(zhí)行。
該程序使用了Windows的API調(diào)用,利用硬編碼的密鑰,對C/S間的傳送的數(shù)據(jù)進(jìn)行加解密, 這就很容易對信息進(jìn)行攔截、欺騙。 而這些信息本身是以人為可讀取的xml形式存在的。
4.2 數(shù)據(jù)庫管理程序
數(shù)據(jù)庫管理程序提供了網(wǎng)絡(luò)訪問,以便可以遠(yuǎn)程的控制備份的開始和結(jié)束。 在沒有任何憑據(jù)的情況下,也可以輕松的訪問它,在攻擊者控制下的機(jī)器上創(chuàng)建數(shù)據(jù)庫的備份拷貝。
(對此的PoC已經(jīng)開發(fā)出來了,但考慮到漏洞仍然存在,所以進(jìn)行了裁剪處理)。
這樣一來, 攻擊者不但可以訪問到機(jī)密信息(比如員工的名字、PIN碼等),還可以與4.1節(jié)中提到的更改IP地址聯(lián)合使用。
一旦將數(shù)據(jù)庫導(dǎo)入到他們自己的控制軟件中,攻擊者就可以更改控制器的IP, 使其連到自己的服務(wù)器上。 這使得攻擊者獲取了對門的完全控制權(quán),同時還允許授權(quán)用戶像往常一樣認(rèn)證出入,不會引起啥懷疑。
進(jìn)行逆向的結(jié)果表明,數(shù)據(jù)庫的管理員可以從備份中進(jìn)行數(shù)據(jù)恢復(fù)——這意味著攻擊者可以可以用他們自己的版本對數(shù)據(jù)進(jìn)行替換。 但在測試的這個版本中已經(jīng)不再支持。 在早期的版本中,可能就存在這樣的漏洞。
攻擊者也可以阻止合法的備份——如果指定了一個錯誤的或者不可訪問的備份地址,備份任務(wù)就停留在隊列中,后續(xù)的任務(wù)會對其進(jìn)行覆蓋。
4.3 其他軟件
一個獨立的軟件模塊(我們這里不會透露的,以防被識別利用),處理軟件和硬件間的通信。它維持持久的連接, 隨時記錄相關(guān)信息。
由于時間的限制,我們對其處理卡號的增刪所發(fā)送的消息未能進(jìn)行完全的解碼, 但我們發(fā)現(xiàn)它對卡號僅是與一個常量進(jìn)行異或運算來進(jìn)行加密。
五、進(jìn)一步研究的方向
鑒于軟件和硬件間的消息沒有時間戳處理, 所以可以對消息進(jìn)行回放,將其發(fā)送到另一個門控器上,來增加卡號。 然而,要進(jìn)行這樣的嘗試, 需要解析初始連接的握手協(xié)議, 這個目前還沒有成功實現(xiàn)。
我們同樣也注意到,軟件和硬件模塊間的通信包含了一個定期輪詢消息,每隔固定的時間間隔發(fā)送。少量的其他信息也重復(fù)的發(fā)送。 這些都有待于解析,但是很可能將來的研究會證明這些都是可預(yù)測的,也很容易模仿。
另一個可后續(xù)研究的方向是對高級密碼選項設(shè)置的密碼進(jìn)行破解,以此獲取用戶帳號。
六、漏洞總結(jié)
默認(rèn)配置
串口轉(zhuǎn)以太的設(shè)備上運行的web服務(wù)器沒有設(shè)置密碼。
控制端口未認(rèn)證
無需密碼即可通過控制端口對設(shè)備的再配置。 沒有任何選項可以進(jìn)行設(shè)置。
密碼獲取
Telnet 和web訪問的密碼在使用基本密碼模式時可以通過控制端口獲取到。
未認(rèn)證的管理接口
在默認(rèn)的管理服務(wù)中沒有設(shè)置密碼, 使得未授權(quán)用戶也可對管理服務(wù)器進(jìn)行訪問。
拒絕服務(wù)
設(shè)備的IP地址可能被更改,導(dǎo)致管理口無法控制門或者查看信息。
設(shè)備侵占
沒有任何認(rèn)證阻止對門控系統(tǒng)的再配置。 如果IP地址被更改了,攻擊者可通過安裝對門控系統(tǒng)重置、再配置。 這使得攻擊者獲得對門的完全控制權(quán)。
數(shù)據(jù)庫管理程序沒有認(rèn)證
數(shù)據(jù)庫管理沒有認(rèn)證, 允許攻擊備份到本地。
硬編碼的加密密鑰
遠(yuǎn)程配置服務(wù)器用了一個硬編碼的加密密鑰, 攻擊者以此可以對傳送中的消息進(jìn)行欺騙、解密。
對卡號的異或處理
在軟件和硬件間進(jìn)行通信的軟件并沒有對卡號加密,僅是與一個常量的異或處理。
七、結(jié)論
雖然門控系統(tǒng)可以阻止一些初級的攻擊者,我們對一款領(lǐng)先品牌的檢測表明,即使使用一些相對簡單的攻擊技巧,也可以獲取到系統(tǒng)的控制權(quán)。更何況在強(qiáng)烈的攻勢之下呢,估計也就很少有用啦。
我們已經(jīng)發(fā)現(xiàn)了系統(tǒng)中的一些漏洞,從用戶層面可更改的,到需要廠商來解決的更深層次的。 最為重要的是,控制端口、數(shù)據(jù)庫管理程序認(rèn)證的缺失意味著攻擊者在不引起用戶注意的情況下就可以對門控系統(tǒng)進(jìn)行完全的控制。
在該領(lǐng)域迫切的需要進(jìn)一步的研究, 因為這份初級的報告表明許多的物理安全系統(tǒng)很難應(yīng)對或者壓根不能應(yīng)對有針對性的攻擊。
考慮到這一點,將物理安全系統(tǒng)同公司的網(wǎng)絡(luò)隔離是很必要的。攻擊者即使獲取到對的網(wǎng)絡(luò)一個很低的訪問權(quán)限,以很小的代價,就能獲取到對機(jī)構(gòu)物理安全設(shè)備的整個控制權(quán)。
我們建議所有的物理安全系統(tǒng)————不僅僅是門控系統(tǒng),還有像閉路電視,以及其他任何的可能影響建筑的物理安全的——都應(yīng)該保證系統(tǒng)和網(wǎng)絡(luò)間的空隙。 在我們看來這是任何想保護(hù)其物理財產(chǎn)的機(jī)構(gòu)至少要做的。
來源聲明:本文來自nccgroup的博文《Door Control Systems: An Examination of Lines of Attack》。
原文地址:https://www.nccgroup.com/en/blog/2013/09/door-control-systems-an-examination-of-lines-of-attack/