前言
隨著互聯網的發展,越來越多公司推出了智能路由器,這些智能路由器給用戶帶來了眾多便利的功能,同時也采用了一些傳統路由器不具備的安全特性,本文在簡要分析下這些安全特性,供相關技術人員參考。
概述
傳統路由器有意或無意地使用了種種不安全的特性,如預留後門,這些後門原本是為了現場調試方便,但是也開放了黑客進入的通道。又比如某些路由器WPS(Wi-Fi Protected Setup)的PIN碼是可以根據路由器MAC地址推導出來的,這使得即使用戶設置了復雜的WiFi密碼,黑客也可以輕易破解進而滲透。另外,大部分路由器在固件更新時都沒進行簽名校驗,這使得黑客可以通過固件更新來植入木馬,進而永久控制用戶的路由器……等等這些不安全特性,是導致用戶隱私洩露和財產損失的幫凶。
在這樣的背景下,智能路由器采用了一些安全特性,特別值得贊賞。
安全特性
下面以路由器生產商為單位,介紹其采用的安全特性及其安全特性帶來的好處。只做純技術的探討,不涉及其他。
360 安全路由器
現場調試接口RSA-1024加密和校驗
路由器生產商為了在排錯或調試時能直接得到rootshell,通常會在路由器上預留後門,參考 https://github.com/elvanderb/TCP-32764/ 及http://www.cnvd.org.cn/flaw/show/CNVD-2013-15013 ,這些後門能為生產商所用,也能被黑客所利用。特別是能遠程利用的後門,黑客能遠程獲得路由器的所有權限,配合其它攻擊能造成用戶財產上的損失。
360 的C301路由器是這樣做的:公鑰/etc/defdata/debug_telnet.pub.key存在於路由器的固件裡,生產廠商用與debug_telnet.pub.key對應的私鑰加密特定U盤的序列號,並把加密結果存放到該U盤根目錄下的telnet.boot文件中,向C301路由器的USB接口插入該U盤,後台自動運行如下的命令行,也就是啟動telnet的服務端:
/usr/sbin/telnetd -l/usr/sbin/login -u 360user:alpha360 -i br0 &
見程序debug_telnet如下代碼:
服務端啟動後,只要telnet路由器的ip地址再輸入用戶名和密碼(360user和alpha360)便可以獲得root shell。
不難看出,要獲得路由器的root shell有兩個條件,一是要插入U盤,這要求能接觸到路由器,同時也防止了遠程利用;二是U盤根目錄下的telnet.boot文件必須是用私鑰加密U盤序列號的結果,而私鑰掌握在生產商手中,黑客不能輕易獲取到。
公鑰的詳情如下圖所示:
總的來說,C301路由器采用非對稱加密實現既能得到路由器的root權限,又能防止黑客獲得root權限,相對於預留後門的做法,表現出值得傳統路由器學習之處。
固件更新簽名校驗
C301 路由器的固件采用了AES加密,解密後的固件裡含有對該固件的簽名,固件更新時會先進行簽名校驗,校驗不通過則認為固件是篡改過的,從而拒絕固件更新。
小米路由器
固件更新簽名校驗
小米路由器進行固件更新時同樣會進行簽名校驗,文件/usr/share/xiaoqiang/public.pem是它的公鑰,用來校驗簽名正確與否。正因為這樣,黑客如果想在不拆機的前提下刷入已植入木馬的固件,只有兩條路可走,一是通過入侵、社工或破解得到對應的私鑰,然後對修改後的固件進行簽名再刷入;二是通過漏洞,挖掘新的漏洞或者刷入有漏洞的舊版固件,然後再通過漏洞利用得到root shell進而刷入任意固件。一般來講,第一條路是很難的,而為了堵住第二條路,可以通過限制降級來實現。
由此可見,在限制降級的前提下,在固件更新時進行簽名校驗,能有效地防止路由器被植入木馬。
極路由
固件更新Hash校驗
極路由進行固件升級的時候同樣會進行校驗,只不過是進行MD5的HASH檢驗,而不是用非對稱算法來校驗,雖然它下載固件時,用的是HTTP下載,可被劫持,但是固件的HASH信息是通過HTTPS來傳輸的,可保證安全,固件下載後會驗證MD5值是否匹配,不匹配則不升級。這樣只要保證升級服務器不被入侵就能保證刷入的固件是官方的。
固件升級時的校驗被多次提到是因為它很重要。因為如果路由器被黑客通過管理界面刷入了被植馬的固件,那麼黑客就擁有了所有的權限,這樣,我們平常教育用戶使用復雜密碼所付出的努力便付諸東流,不管設置多麼復雜的密碼、怎麼經常修改密碼黑客都可以通過木馬獲取到。
配置信息加密保存
極路由如mac地址、fac_uuid等配置信息是用DES算法加密後存在路由器的NOR FLASH上的,相對於傳統路由器直接明文保存的,在有root shell的權限後,便可輕易得到WiFi密碼、Web登錄密碼等敏感信息,加密保存在一定程度上提高了門檻。
WPS 功能關閉
極路由是不提供WPS功能的,這樣可以防止黑客通過WPS的PIN碼破解,從而得到WiFi的WPA密碼入侵。非要提供WPS功能的話,也應該做到下面兩點,一是啟用WPS防護,二是默認的PIN碼要隨機,不能推導出來。http://www.devttys0.com/2014/10/reversing-d-links-wps-pin-algorithm/ 和http://www.devttys0.com/2015/04/reversing-belkins-wps-pin-algorithm/
就是兩個反面例子,因為用戶一般不會去修改默認的PIN碼的,黑客只要根據MAC地址推導出PIN碼後,便可以輕易破解出WiFi密碼,不管密碼有多復雜。
總結
盡管智能路由器在安全方面還有很大改進的空間,它所采用的安全特性,值得傳統路由器生產商學習。
安全設計
為了保護用戶的安全和防止用戶因黑客入侵而造成損失,筆者認為,路由器廠商可以參考以下的安全設計規范。
注:更多精彩教程請關注三聯電腦教程欄目,三聯電腦辦公群:189034526歡迎你的加入