2016年9月7日 星期三

[網站安全]從網站使用者認證細節談資安小知識

簡介
當網站與網際網路連上後,來自於各方面的網路攻擊,便如洪水般來襲,網路上的攻擊行為往往超乎你我的想像。最簡單的是只要查看伺服器的日誌檔案(Log),便可知道各種攻擊的手法與攻擊路徑。其中最常被嘗試與攻擊的便是網頁上的管理者介面或有關於帳號密碼的輸入介面。

筆者整理了一下網站開發人員在設計的過程中,容易疏忽的認證方式,以網頁前端與資料庫進行使用者認證的回應文字內容的2種差異性,而這2種差異性對於駭客在測試網站帳號的過程中,代表何種意思:

第1種:當頁面輸入錯誤資料後,網頁會回應「密碼錯誤」,請重新輸入
第2種:當頁面輸入錯誤資料後,網頁會回應「帳號和密碼錯誤」,請重新輸入

那這2種的差異性在哪呢?

我們舉例來說,當駭客手中握有一份使用者(管理者)帳號、密碼清單時,遭駭客鎖定的目標網站若有提供帳號登入的功能或是重置密碼功能時,駭客便會開始測試帳號密碼是否正確,並以網站回應的內容,來推測並確認手中名單的資料是「帳號有用」或是「帳號密碼皆有用

若是「帳號有用」的情況下
只要破解密碼即可,此時可用密碼檔來進行暴力破解的方式

而「帳號密碼皆有用」的情況下
即代表該組帳號、密碼是可以登入的,駭客即會登入後取得使用者個資,進而轉賣詐騙集團,謀取獲利

防範方式
當網站會員帳號、密碼疑似外洩後,除了應第1時間通知使用者外,網站設計人員應盡快進行相關的補救

網站設計人員或開發者,應思考使用者重置密碼時,網頁應如何回應才會符合資安機制,其中最簡易的方式,則是當使用者輸入錯誤資料後,網站的回應方式應顯示出模糊的錯誤訊息(例如帳號密碼輸入錯誤,請重新輸入),而不是告知使用者是哪一部分出錯了,讓駭客利用該機制來逐步確認竊取的名單有效性,同時也能阻擋第1時間的有心人士進行資料的竊取,造成資料認證的困難性

如同上圖所示,當網站遭輸入錯誤的資料後
若使用第1種「密碼錯誤」的方式提示使用者,則會造成駭客認為該資料經由資料庫確認後,目前是存在該筆帳號資料,但密碼卻是失敗的情況(如同上述所說,容易遭暴力破解),而此機制往往是造成初階駭客攻擊的主因

但使用第2種「帳號和密碼」錯誤的方式提示使用者時,只要使用者輸入的資料內容其中1項不正確時,便會出現帳號和密碼錯誤,則可讓駭客進行資料認證時,產生一定的困難程度,此時的效果會讓駭客在驗證竊取名單時,徒增困難度

結論
網站遭受到網路上的攻擊是無可避免的,但若能在網站開發的過程中,融入資安的機制,讓網頁的回應內容少出現機密或可推測的敏感性資料,都是可以阻擋駭客攻擊的一環

駭客的攻擊方式往往是千奇百怪的,若單純的使用一套防護基準是行不通的,資安是需要長期的抗戰準備,本文所提及的防護方式,也是最基礎的一環,可以降低因網站本身認證機制的不足而導致帳號、密碼外洩的情形發生

本文來源:http://linjsian.blogspot.tw/