當前位置:
首頁 > 最新 > 接入路由器固件安全分析

接入路由器固件安全分析

摘要:接入路由器作為網路設備的重要組成部分,廣泛應用於網路接入用戶中。隨著網路安全日趨重要,接入路由器作為用戶網路訪問的重要出口,其安全性影響著用戶的數據和隱私信息安全。接入路由器固件包含了路由器的各種功能應用程序和配置參數等信息,固件的漏洞利用使得接入路由器面臨被非授權訪問修改配置參數、控制利用成為殭屍網路等安全威脅。因此,重點介紹接入路由器固件常見漏洞,主要包括硬體入侵、Web安全以及棧溢出等,並針對各漏洞提出相應的安全建議。

正文內容:

0 引 言

路由器是互聯網的關鍵網路設備。不同的路由器構建了互聯網網路的通信橋樑。路由器根據功能可以分為三類:骨幹路由器、企業路由器以及接入路由器。接入路由器主要運用於連接家庭或ISP內的小型企業客戶群。雖然接入路由器處於路由網路的邊界,數據吞吐量並不大,但接入路由器擁護龐大的用戶群體,廣泛分布於世界各地。綜合考慮這大量的路由器,其整體數據流量的重要性並不亞於骨幹網和企業級路由器。因此,如果廣泛分布使用的接入路由器存在安全問題,其影響將是巨大的。文中主要介紹接入路由器安全,以下將其簡稱為路由器。

1 路由器固件漏洞

路由器固件包含了操作系統內核和文件系統。文件系統是操作系統的運行基礎,包含了實現路由器的各種功能應用程序,如Web伺服器。同時,路由器固件包含了路由器中所有的可執行程序以及配置文件信息。因此,研究路由器固件漏洞對路由器安全至關重要。路由器固件漏洞主要有硬體入侵、Web漏洞、棧溢出漏洞以及其他漏洞,以下將詳細分析。1.1 硬體入侵

硬體入侵是從路由器硬體本身入侵到路由系統。類似於側信道安全威脅(指能量消耗、電磁輻射、運行時間等信息泄露而引出的脆弱性)並非利用安全措施本身的直接弱點,而是使用安全措施在物理實施層面的信息作為研究切入點。

在路由器中,硬體入侵即是從硬體晶元作為研究入口,連接晶元的調試口(如UART、JTAG)進行漏洞挖掘或者固件提取[1],如圖1所示。

通過分析bootLoader從flash中載入內核系統過程,獲取互動式shell及啟動調試信息(包括文件系統壓縮演算法、壓縮格式、系統類型等),進一步對系統滲透進行漏洞挖掘,獲取系統root許可權等。

1.2 Web漏洞

路由器固件的文件系統中內置嵌入式Web伺服器,用於為用戶提供路由器的網路配置(無線網路、訪問控制等)服務等。路由器使用Web服務的同時也面臨了Web安全同樣的威脅,較典型的有登錄認證漏洞、CSRF(Cross-site Request Forgery)跨站請求偽造漏洞以及SQL注入漏洞等。

1.2.1 路由器Web登錄認證漏洞

Web登錄認證信息用來授權登錄路由器Web伺服器系統進行管理配置,主要有兩種漏洞情況。一種使用弱口令密碼或使用出廠默認口令,被暴力破解;另一種是利用路由器固件系統中配置文件在未經過認證的情況下可訪問等漏洞,泄露了口令密碼。登錄認證漏洞導致非授權用戶對路由器系統參數更改,進而引入相應的威脅面。

1.2.2 路由器CSRF漏洞

路由器的CSRF即是偽造受信任用戶的請求來訪問路由器Web服務[2]。如圖2所示,用戶正常登錄路由器Web服務,路由器Web服務驗證成功並返回用戶的cookies。此時,用戶再訪問非法用戶構造的惡意網站,惡意網站返回特殊代碼並要求訪問路由器Web服務。根據非法用戶的特殊需求,可篡改路由器Web伺服器中相關的配置參數,如修改無線網路配置參數(SSID、訪問密碼等)、修改DNS伺服器地址指向、劫持用戶的網路訪問、進行信息竊取和網路釣魚等,嚴重威脅用戶數據和隱私的安全。

1.2.3 路由器SQL注入漏洞

路由器中存在多用戶時,如果使用簡單的資料庫(如SQLite)進行用戶名和密碼信息的存儲。此時,可能存在SQL注入的危險,可獲取用戶的登錄認證信息或執行任意指令。雖然接入路由器中較少使用資料庫,但一旦使用資料庫過程中未對SQL命令進行安全檢查,則具備較高的危害性。典型SQL注入如圖3所示,用戶在表示層通過瀏覽器訪問位於邏輯層的路由器Web伺服器,Web伺服器再與位於存儲層的路由器資料庫進行交互。惡意用戶通過分析固件中存在的SQL漏洞,構造特定的SQL語句,提交到後台資料庫執行引發SQL注入,從而達到非授權登錄或執行任意指令的效果[3]。

逆向分析路由器固件,搜索其中包含了user_name的字元串,同時使用select語句代碼段,對上下文的函數處理邏輯進行分析,分析可能存在的SQL注入點,通過操作SQL語句的輸入來修改後台執行過程達到非授權用戶的語氣目的。比如,使用如下SQL語句select level from user where user_name="admin" and user_pwd=""or"1"="1"繞過認證,登錄路由器Web服務管理界面,對路由器進行管理控制。

1.3 棧溢出漏洞

通常路由器CPU使用mips架構,而在mips架構中使用棧來存儲函數參數、返回地址信息以及寄存器信息等。若在調用函數過程中未對傳入參數進行越界檢測,參數內容越過了緩衝區邊界,超出部分覆蓋相鄰內存中的數據將會引發棧溢出問題[4]。

對路由器固件進行逆向靜態分析,當一個函數初始化時,系統會將相應的信息存入棧中。簡單的棧空間存儲示意圖,如圖4所示。

調用函數時,會初始化棧空間,即將寄存器信息存入棧中,函數的入參也將傳入到棧的參數空間。當傳入參數2遠遠大於棧中分配給參數2的空間大小時,將會出現棧溢出。溢出處的數據會覆蓋到棧中後面的寄存器(如s0),函數執行完成,返回時會讀出棧空間中相應欄位的信息回到寄存器進行現場恢復。此時,將導致漏洞利用。如果構造惡意的溢出數據覆蓋後面的寄存器,將引起後續執行流程異常。

實際中,棧溢出的利用主要採用了面向返回的編程ROP(Return-oriented Programming),通過覆蓋返回地址寄存器RA在函數返回時跳轉執行系統內各函數或自定義shellcode達到滲透的目的。利用存在棧溢出的函數位置輸入參數越界後,覆蓋返回地址寄存器RA中的值,使程序執行完成後跳轉到其他地址執行系統函數,如system()或用戶定義的shellcode。

一般而言,路由器內存中的libc基地址是不變的。因此,可以通過泄露的libc地址,輕鬆定位存在棧溢出的函數具體地址,帶來進一步危害,如系統拒絕服務、獲取系統shell、執行非授權指令、進一步遠程控制利用成為殭屍網路等。

1.4 其他漏洞

1.4.1 後門漏洞

固件中內置了開發人員調試認證信息,類似於硬編碼的口令和密碼,無法更改或清除。非法用戶獲取到該信息後,可以通過認證信息進行路由器的登錄,進而修改路由器的管理配置參數,篡改DNS地址等,直接影響用戶網路交易和隱私信息安全。

1.4.2 固件更新

在獲取了路由器固件Web管理系統的登錄認證信息後,可通過在固件中植入木馬來更新目標路由器,或者使用固件降級來利用漏洞固件更新路由器,進而進行漏洞利用。

2 路由器系統固件安全建議

從硬體角度防護系統固件

路由器產品硬體經過測試並大規模生產後,可以從系統底層軟體對硬體調試介面進行限制,如需要通過硬體加密狗解密才能訪問系統shell,防止通過硬體調試口對路由固件系統入侵。

2.2 固件Web伺服器安全加強

2.2.1 口令密碼

路由器出廠後使用默認用戶名密碼,需要進行修改,防止默認口令登錄到Web管理系統。新密碼使用強密碼,同時需要定期修改口令密碼。

從廠商角度,可以將上面的功能在路由器系統軟體中實現,驅動用戶完成對口令密碼的安全加固操作。在用戶初始使用路由器Web管理界面進行配置時,提示用戶修改密碼。用戶修改的新密碼進行安全強度檢測,強制使用特殊符號。間隔一段時間用戶若再次登錄管理配置頁面,提示修改密碼[5]。

2.2.2 固件Web伺服器訪問控制

路由器暴露在互聯網中,會作為網路設備被掃描識別,可能帶來惡意用戶利用漏洞進行非法利用的風險。因此,非必要情況下,建議關閉互聯網訪問控制埠,杜絕安全隱患。

2.2.3 Web安全

針對常見的路由器Web安全漏洞CSRF、SQL注入等對路由Web伺服器進行安全測試,防止固件中Web伺服器漏洞帶來的安全威脅。

2.3 固件系統棧溢出防護

開啟文件系統針對溢出的保護機制,如開啟NX、ALSR、Canary等,用來降低溢出帶來的安全風險。

危險函數檢查。一般而言,容易造成棧溢出的函數主要有strcpy、sprintf、memcpy等對數據執行拷貝功能的函數。尤其需要對使用這些函數功能模塊進行入參嚴格檢查,防止越界拷貝而導致棧溢出。

2.4 固件更新

2.4.1 校驗

路由器登錄認證信息被非授權獲取(破解、泄露以及漏洞獲取等)後,除了修改配置參數外,可能存在利用植入後門或惡意程序的固件進行更新的風險。因此,需要對固件進行簽名,校驗是否是合法固件,以防止被惡意更新。

2.4.2 加密

進行固件加密,防止固件中的文件系統被提取,用以分析漏洞實施惡意行為。

2.4.3 禁止降級

新版本固件已經修復了系統漏洞,禁止獲取路由器Web管理認證信息的惡意用戶使用存在漏洞的固件進行降級,進而利用舊版本固件漏洞植入木馬或進行系統許可權控制。

2.4.4 升級

用戶定期檢查是否有新版本的固件,進行更新。同時,廠商可以將更新功能自動化,即有新版本固件時,自動更新系統,修復漏洞。

2.5 其他

2.5.1 精簡系統命令

在路由器系統功能正常工作的情況下,構建路由器固件系統時盡量刪除不必要的跨系統間文件傳輸命令,如tftp、sftp、ssh、scp、wget、curl、rsync等。若系統被獲取shell遠程控制,則無法通過常規手段下載惡意代碼到路由器系統中運行,從而提高系統被植入木馬進行控制利用的難度。

2.5.2 路由器安全測試

路由器開發項目完成後,在系統功能測試的基礎上,增加安全測試——代碼審計和黑盒測試,減少代碼安全漏洞。

3 結 語

接入路由器的廣泛運用,使得其安全性變得日趨重要。它存在的漏洞面臨著被入侵控制和惡意利用的風險,不斷威脅著用戶網路數據資產的隱私安全。本文對接入路由器固件常見的漏洞進行分析,從硬體、Web服務、棧溢出以及固件升級等角度,對接入路由器固件提出了相應的安全建議,有助於增強路由器的安全功能,為用戶安全使用接入路由器提供借鑒。

參考文獻:

[1] Palmarini F.Reverse Engineering of Embedded Architectures[D].Venezia:Universita Ca`Foscari Venezia,2015:29-33.

[2] Niemietz M,Schwenk J.Owning Your Home Network:Router security revisited[Z].Web 2.0 Security & Privacy Workshop,2015.

[3] Justin Clarke.SQL注入攻擊與防禦[M].第2版.北京:清華大學出版社,2013.

Justin Clarke.SQL Injection Attacks and Defense[M].Second Edition.Beijing:Tsinghua University Press,2013.

[4] 吳少華.揭秘家用路由器0day漏洞挖掘技術[M].北京:電子工業出版社,2015.

[5] Karamanos E.Investigation of Home Router Security[D].Sweden:School of Information and Communicatin Technology,2010:58-60.

作者:譚全福,姬國珍

單位:中國電子科技集團公司第三十研究所,四川 成都 610041

作者簡介:譚全福,男,碩士,工程師,主要研究方向為網路安全;

姬國珍,男,碩士,工程師,主要研究方向為網路安全。

本文刊登在《通信技術》2018年第1期(轉載請註明出處,否則禁止轉載)

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 通信技術編輯部 的精彩文章:

Android平台下木馬檢測技術的研究與實現

TAG:通信技術編輯部 |