博文做者:zhulianggit
隨着互聯網的發展,愈來愈多公司推出了智能路由器,這些智能路由器給用戶帶來了衆多便利的功能,同時也採用了一些傳統路由器不具有的安全特性,本文在簡要分析下這些安全特性,供相關技術人員參考。github
傳統路由器有意或無心地使用了種種不安全的特性,如預留後門,這些後門本來是爲了現場調試方便,可是也開放了黑客進入的通道。又好比某些路由器WPS(Wi-Fi Protected Setup)
的PIN碼是能夠根據路由器MAC地址推導出來的,這使得即便用戶設置了複雜的WiFi密碼,黑客也能夠輕易破解進而滲透。另外,大部分路由器在固件更新時都沒進行簽名校驗,這使得黑客能夠經過固件更新來植入木馬,進而永久控制用戶的路由器……等等這些不安全特性,是致使用戶隱私泄露和財產損失的幫兇。 在這樣的背景下,智能路由器採用了一些安全特性,特別值得讚揚。算法
下面以路由器生產商爲單位,介紹其採用的安全特性及其安全特性帶來的好處。只作純技術的探討,不涉及其餘。shell
路由器生產商爲了在排錯或調試時能直接獲得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的服務端:bash
1
|
/usr/sbin/telnetd -l /usr/sbin/login -u 360user:alpha360 -i br0 &
|
見程序debug_telnet
以下代碼:服務器
telnet服務端啓動後,只要telnet路由器的ip地址再輸入用戶名和密碼(360user
和alpha360
)即可以得到root shell
。學習
不難看出,要得到路由器的root shell有兩個條件,一是要插入U盤,這要求能接觸到路由器,同時也防止了遠程利用;二是U盤根目錄下的telnet.boot文件必須是用私鑰加密U盤序列號的結果,而私鑰掌握在生產商手中,黑客不能輕易獲取到。ui
公鑰的詳情以下圖所示:加密
總的來講,C301路由器採用非對稱加密實現既能獲得路由器的root權限,又能防止黑客得到root權限,相對於預留後門的作法,表現出值得傳統路由器學習之處。
C301路由器的固件採用了AES加密,解密後的固件裏含有對該固件的簽名,固件更新時會先進行簽名校驗,校驗不經過則認爲固件是篡改過的,從而拒絕固件更新。
小米路由器進行固件更新時一樣會進行簽名校驗,文件/usr/share/xiaoqiang/public.pem是它的公鑰,用來校驗簽名正確與否。正由於這樣,黑客若是想在不拆機的前提下刷入已植入木馬的固件,只有兩條路可走,一是經過入侵、社工或破解獲得對應的私鑰,而後對修改後的固件進行簽名再刷入;二是經過漏洞,挖掘新的漏洞或者刷入有漏洞的舊版固件,而後再經過漏洞利用獲得root shell進而刷入任意固件。通常來說,第一條路是很難的,而爲了堵住第二條路,能夠經過限制降級來實現。
因而可知,在限制降級的前提下,在固件更新時進行簽名校驗,能有效地防止路由器被植入木馬。
極路由進行固件升級的時候一樣會進行校驗,只不過是進行MD5的HASH檢驗,而不是用非對稱算法來校驗,雖然它下載固件時,用的是HTTP下載,可被劫持,可是固件的HASH信息是經過HTTPS來傳輸的,可保證安全,固件下載後會驗證MD5值是否匹配,不匹配則不升級。這樣只要保證升級服務器不被入侵就能保證刷入的固件是官方的。
固件升級時的校驗被屢次提到是由於它很重要。由於若是路由器被黑客經過管理界面刷入了被植馬的固件,那麼黑客就擁有了全部的權限,這樣,咱們日常教育用戶使用複雜密碼所付出的努力便付諸東流,無論設置多麼複雜的密碼、怎麼常常修改密碼黑客均可以經過木馬獲取到。
極路由如mac地址、fac_uuid等配置信息是用DES算法加密後存在路由器的NOR FLASH上的,相對於傳統路由器直接明文保存的,在有root shell的權限後,即可輕易獲得WiFi密碼、Web登陸密碼等敏感信息,加密保存在必定程度上提升了門檻。
極路由是不提供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密碼,無論密碼有多複雜。
儘管智能路由器在安全方面還有很大改進的空間,它所採用的安全特性,值得傳統路由器生產商學習。
爲了保護用戶的安全和防止用戶因黑客入侵而形成損失,筆者認爲,路由器廠商能夠參考如下的安全設計規範。