跳到主要內容區塊

ntuccepaper2019

專題報導

路由器的CSRF漏洞與預防
  • 卷期:v0039
  • 出版日期:2016-12-20

作者:林子南 / 臺灣大學計算機及資訊網路中心網路組研究助理


介紹CSRF漏洞如何對路由器內的設定進行修改,將路由器的DNS伺服器修改為攻擊者所偽造的DNS伺服器,使受害者上網的行為暴露在攻擊者的監控之下,並且介紹使用者如何避免路由器提拱的服務成為攻擊者成功攻擊的受害者。

介紹

路由器為了方便使用者設定參數,提供了以網頁形式來設定參數,這也導致了路由器本身具有淪為CSRF攻擊目標的風險,Cross-Site Request Forgery (CSRF) 是一種常見的網頁攻擊手法,透過將使用者使用網路時並未登出或仍持有Session、Cookie等身份驗證,再將使用者引導至惡意網站上,讓使用者在保持身份已驗證過的狀態下去執行損害自身利益的事[2],在路由器上則是會出現參數被攻擊者隨意修改的風險,除了會洩露出使用者的個人資料以外,也可能會成為攻擊者監視的對象,更進一步可能會被偽造封包進行非法行為。

原理

在網路上人們是透過token,一種可以作身份證明的位元組,除了證明使用者是具由權限去從事符合權限的事,也代表使用這個token的人只會是使用者,當使用者觸發攻擊者設下的攻擊指令時,攻擊指令會透過使用者尚未登出的 token 來繞過認證,藉此在路由器上修改設定,進一步將DNS設為偽造的DNS,攻擊者透過偽DNS來對使用者所發出的封包進行監控,更進一步的可以對封包進行修改。


圖一 路由器的CSRF攻擊示意圖

實際操作過程

在使用者觸發攻擊指令以前,路由器的DNS設定如下,IP位置為8.8.8.8,當使用者在沒有登出路由器時,誤觸了圖三的按鈕時,路由器的DNS設定則會從IP位置為8.8.8.8變為圖五的192.168.0.1,表示攻擊已成立。


圖二 攻擊前的路由器介面


圖三 觸發攻擊指令的介面


圖四 攻擊指令


圖五 攻擊後的路由器介面

因應措施

對於使用者來說,可以透過以下的方式來避免路由器提拱的服務成為CSRF的受害者:
1. 更改路由器預設的密碼。
2. 使用完記得登出,在登出前不開啟來路不明的網站。
3. 更新路由器韌體。

參考

1. Cross-Site Request Forgery Guide: Learn All About CSRF Attacks and CSRF Protection, https://www.veracode.com/security/csrf
2. CSRF, https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)