對門控系統的攻擊面檢查

發表於2014-03-28

一、引言

近年來,許多企業出於對安全的考慮,開始逐步使用電腦化的門控系統:要求使用者擁有中央資料庫授權的口令或者刷卡,以確保那些沒有授權的人無法進入公司區域或者公司的受限區域。

沒有完美的系統,迄今為止大多的嘗試都圍繞著社工方面(諸如緊隨溜進)或者設法佔有必要的令牌以繞過該套系統。

但是攻擊者通過利用門控系統自身的軟硬體弱點也是可以進入的。

在本篇文章裡,我們將展示一款在門控系統市場領先產品的嚴重安全漏洞, 通過它們不僅能夠獲取安全場所的訪問許可權,也可以獲取所在企業的機密資訊。

這些弱點包括,但不限於:缺少預設配置密碼,無需認證的控制埠, 硬體缺少認證, 攻擊者對資料庫的可能拷貝, 利用緩衝區溢位攻擊造成的拒絕服務, 硬編碼的金鑰導致的可能性的欺騙。

為避免廠商解決問題期間可能的惡意攻擊, 我們不會指明哪家的門控系統有問題, 有些技術細節也做了處理。 我們期望待廠家解決這些問題之後,再發布一篇完整的文章,包括那些具體的細節。

我們試圖概述這些系統的安全問題, 而不是在某個點上深入研究, 所以進一步的研究綱要也是必須的。 在稍後的後續研究章節裡有相關大綱。

通過該項研究, 我們建議有關機構應該儘可能的將他們的物理安全裝置同網路隔絕, 以最小化一個淪陷的系統對其他系統的突破。

二、背景

我們有一款門控系統, 由英國一家佔有較大市場份額的廠商提供。 該系統包含兩部分——執行在微軟Windows機器上的軟體管理伺服器; 一個定製的物理控制器,上面跑著一些軟體元件,以便連線到管理伺服器上。

在研究期間, 我們試圖識別系統的痕跡, 發現系統上的弱點, 尤其是那些造成未授權訪問的。

三、門控制器

我們所檢測的這款門控制器是問題製造商的最新可用款, 因此可以對該類系統的現存風險做一個現實的評估。

每個控制器就是一個定製的硬體,由電池供電。 與兩塊門相連,每個都有一個進入時讀取器和一個鎖(必要時,出來的也有)。 同時還有一個輔助的輸入裝置(用於輸入PIN碼), 一個輸出裝置——用作門開之後的狀態顯示燈。

最重要的是,控制器連線到了管理伺服器上。在老的款型中,通過串列埠連線, 但在新款裡,還可通過IP進行連線,由一款流行的串列埠轉乙太網的裝置提供。

這個串列埠轉以太口的裝置可通過web和telnet方式遠端管理, 在其預設的配置中, web介面和telnet訪問都沒有配置密碼。

控制器在其預設配置裡提供了幾種連網服務。 下面我們將介紹其中所發現的漏洞:

3.1 控制埠

通過該控制埠可配置控制器。 雖然所用協議的具體細節尚未公佈,但第三方的研究者已經在網上釋出了一些相關資訊。

它既不需要也不支援認證,指令可以通過UDP直接傳送到目標主機或者廣播到廣播域裡的所有裝置。

特別的,如果web和telnet介面設定了密碼,一個Get配置請求被髮送到該介面, 密碼就會被包含在響應中。 如果在控制皮膚裡選擇了高階密碼選項,該情況就不會出現, 但在基本的預設配置下是這樣的。

即使沒有這一點,基本模式下的密碼也極其危險, 因為不能超過5個字元。

也 可為控制器設定一個新的IP地址。這實際上就成了拒絕服務攻擊,因為管理伺服器無法與控制器通訊。 對於攻擊者,控制住控制器本身也是必須的, 因為串列埠 到IP的轉換器只允許一個連線, 管理伺服器也試圖保持持續的連線。 只有打斷管理伺服器和控制器間的連線, 攻擊者才有可能控制住門。

一旦IP地址被更改了,就無法阻止門控系統被重新配置,系統可以被修改, 或者安裝新的軟體, 攻擊者可以獲取到對門的完全控制權。

四、管理伺服器

在預設設定下,沒有開啟防火牆, 管理伺服器在網路上暴露了一些服務:

4.1 遠端配置服務

有個遠端配置埠, 但埠掃描即可使其崩潰, 所以它不是一直可見的。

一旦建立連線, 遠端配置伺服器在讀取指令前,讀取4位元組,用於建立緩衝區。 如果緩衝太大,程式就會崩潰——所以即使是無意的,也很容易就造成了拒絕服務。 但這並不允許遠端程式碼的執行。

該程式使用了Windows的API呼叫,利用硬編碼的金鑰,對C/S間的傳送的資料進行加解密, 這就很容易對資訊進行攔截、欺騙。 而這些資訊本身是以人為可讀取的xml形式存在的。

4.2 資料庫管理程式

資料庫管理程式提供了網路訪問,以便可以遠端的控制備份的開始和結束。 在沒有任何憑據的情況下,也可以輕鬆的訪問它,在攻擊者控制下的機器上建立資料庫的備份拷貝。

(對此的PoC已經開發出來了,但考慮到漏洞仍然存在,所以進行了裁剪處理)。

這樣一來, 攻擊者不但可以訪問到機密資訊(比如員工的名字、PIN碼等),還可以與4.1節中提到的更改IP地址聯合使用。

一旦將資料庫匯入到他們自己的控制軟體中,攻擊者就可以更改控制器的IP, 使其連到自己的伺服器上。 這使得攻擊者獲取了對門的完全控制權,同時還允許授權使用者像往常一樣認證出入,不會引起啥懷疑。

進行逆向的結果表明,資料庫的管理員可以從備份中進行資料恢復——這意味著攻擊者可以可以用他們自己的版本對資料進行替換。 但在測試的這個版本中已經不再支援。 在早期的版本中,可能就存在這樣的漏洞。

攻擊者也可以阻止合法的備份——如果指定了一個錯誤的或者不可訪問的備份地址,備份任務就停留在佇列中,後續的任務會對其進行覆蓋。

4.3 其他軟體

一個獨立的軟體模組(我們這裡不會透露的,以防被識別利用),處理軟體和硬體間的通訊。它維持持久的連線, 隨時記錄相關資訊。

由於時間的限制,我們對其處理卡號的增刪所傳送的訊息未能進行完全的解碼, 但我們發現它對卡號僅是與一個常量進行異或運算來進行加密。

五、進一步研究的方向

鑑於軟體和硬體間的訊息沒有時間戳處理, 所以可以對訊息進行回放,將其傳送到另一個門控器上,來增加卡號。 然而,要進行這樣的嘗試, 需要解析初始連線的握手協議, 這個目前還沒有成功實現。

我們同樣也注意到,軟體和硬體模組間的通訊包含了一個定期輪詢訊息,每隔固定的時間間隔傳送。少量的其他資訊也重複的傳送。 這些都有待於解析,但是很可能將來的研究會證明這些都是可預測的,也很容易模仿。

另一個可後續研究的方向是對高階密碼選項設定的密碼進行破解,以此獲取使用者帳號。

六、漏洞總結

預設配置

串列埠轉以太的裝置上執行的web伺服器沒有設定密碼。

控制埠未認證

無需密碼即可通過控制埠對裝置的再配置。 沒有任何選項可以進行設定。

密碼獲取

Telnet 和web訪問的密碼在使用基本密碼模式時可以通過控制埠獲取到。

未認證的管理介面

在預設的管理服務中沒有設定密碼, 使得未授權使用者也可對管理伺服器進行訪問。

拒絕服務

裝置的IP地址可能被更改,導致管理口無法控制門或者檢視資訊。

裝置侵佔

沒有任何認證阻止對門控系統的再配置。 如果IP地址被更改了,攻擊者可通過安裝對門控系統重置、再配置。 這使得攻擊者獲得對門的完全控制權。

資料庫管理程式沒有認證

資料庫管理沒有認證, 允許攻擊備份到本地。

硬編碼的加密金鑰

遠端配置伺服器用了一個硬編碼的加密金鑰, 攻擊者以此可以對傳送中的訊息進行欺騙、解密。

對卡號的異或處理

在軟體和硬體間進行通訊的軟體並沒有對卡號加密,僅是與一個常量的異或處理。

七、結論

雖然門控系統可以阻止一些初級的攻擊者,我們對一款領先品牌的檢測表明,即使使用一些相對簡單的攻擊技巧,也可以獲取到系統的控制權。更何況在強烈的攻勢之下呢,估計也就很少有用啦。

我們已經發現了系統中的一些漏洞,從使用者層面可更改的,到需要廠商來解決的更深層次的。 最為重要的是,控制埠、資料庫管理程式認證的缺失意味著攻擊者在不引起使用者注意的情況下就可以對門控系統進行完全的控制。

在該領域迫切的需要進一步的研究, 因為這份初級的報告表明許多的物理安全系統很難應對或者壓根不能應對有針對性的攻擊。

考慮到這一點,將物理安全系統同公司的網路隔離是很必要的。攻擊者即使獲取到對的網路一個很低的訪問許可權,以很小的代價,就能獲取到對機構物理安全裝置的整個控制權。

我們建議所有的物理安全系統————不僅僅是門控系統,還有像閉路電視,以及其他任何的可能影響建築的物理安全的——都應該保證系統和網路間的空隙。 在我們看來這是任何想保護其物理財產的機構至少要做的。

相關文章