楊愛華 張茂紅




摘要:針對網上銀行系統的安全性問題,在已給出的基于用戶業務的Web應用防護墻框架上加入自學習模塊,可以提升用戶介入率,降低WAF誤報率。該框架還能有效應對支付密碼泄露、數據泄露、隱藏表單篡改和cookie欺騙等安全問題,通過實驗驗證了所設計的cookie防欺騙整體方案和隱藏表單防篡改防護策略的有效性。
關鍵詞:Web應用防火墻;WAF框架;自學習模塊;cookie欺騙防護;隱藏表單防篡改
0引言
隨著網絡信息的發展和電子商務的普及,網上銀行系統如雨后春筍般地快速發展,網上銀行是金融界的一大創新,給眾多客戶帶來實實在在的方便,用戶可以足不出戶地在網上辦理修改密碼、轉賬和支付等業務。但網上銀行在給客戶帶來方便的同時也帶來了安全隱患,譬如支付密碼泄露、數據泄露、DDoS攻擊及CC攻擊等。目前,網上銀行系統的安全隱患不可小覷,部署WAF可以對網上銀行系統起到全方位的防護,可以對Web應用層的主流攻擊進行阻斷,有效地阻止攻擊者對網上銀行系統的攻擊。目前國外WAF,比較出名的有imperva,nsfocus,WAF等,國內比較出名的有天融信、綠盟和啟明星辰的WAF產品,主要功能有阻斷注入攻擊、cookies以及網絡欺騙攻擊,XSS攻擊、目錄遍歷.DDoS以及CC攻擊等攻擊。
1WAF中自學習模塊
1.1WAF內容
WAF部署在客戶端與應用程序之間,能實現對應用程序的防護功能,通過不改變原有網絡拓撲結構,部署簡單,容易被用戶接受。WAF的主要工作職責對信息竊取、網頁篡改、非法侵入和拒絕服務起到防護作用。WAF不僅能保護網站及服務器遭受各種惡意攻擊,還能優化資源保證Web可靠性與可用性。
1.2自學習模塊
根據網上銀行系統特點,路瑞強等人給出了一個基于用戶業務的WAF框架,整體架構包括預處理模塊、防護模塊、管理模塊和日志模塊。為了提升檢測速度,降低WAF誤報率,加入自學習模塊。模塊分為學習過程和過濾過程,要從正則自適應匹配、長度緯度以及語義分析3個維度來實現,如圖1所示。
自適應匹配主要是對維度的Web請求參數值進行過濾,進而自動匹配生成適合該參數值的白名單正則表達式。當應用程序接收到用戶的Web請求時,學習過程的正則自適應匹配函數會自動識別,返回相應函數的匹配值,當相同的請求再次被接收時,再一次進行匹配,如果匹配的數值高于之前的匹配結果,則對應的匹配值將重置。在Web請求學習的過程中,對數值的檢測會越來越寬松,降低誤報率,如有漏報則人工進行審核處理。而檢測過程的正則自適應匹配函數支持用戶自定義正則,一旦匹配到自學習模式記錄的值為字符串類型時,將使用自定義正則進行檢測。用戶可以在管理頁面根據不同的場景進行定制防護,提高自學習模式的通用性。
長度維度的學習和正則維度類似,當新的參數值長度比舊的參數值長度大時,會替代舊長度,處理時主要考慮降低誤報因素。
詞法分析,把字符轉換為ASCLL碼的十進制,之后在進行分類,分類規則如下:
①0~31及127(共33個)是通信專用字符或控制字符,標記為c,全稱control;
②中文等分為一類,標記為n,即normal:空格;
③—般字符如0,,!,”,@,.,?,標記為u,即usual:常見字符;
④其他諸如’,*,{)等標記為a,即anomaly:異常字符。
在進行分類轉換的同時,相同的特征將被合并為一個。例如,輸入“aaabbbccc大雨傾盆”,將被轉換為n,而“大家好”,則將被轉換為nun。語法分析維度有迭代次數的限制,語法分析默認最多存儲5個特征,當超過5個特征數時,意味著該參數無固定的特征模式,該維度的檢測被投向bypass模式。
2WAF安全防護
當用戶開啟WAF的Web特征攻擊過濾庫過濾,可以防護已確定的SQL注入攻擊、XSS攻擊、CSRF攻擊、命令注入、協議入侵和會話固定攻擊等常見Web應用層的攻擊。Web特征攻擊過濾庫要及時跟進和升級。除此之外,用戶還可以開啟自定義策略,譬如HTTP訪問限制、cookie防護、隱藏表單防護、盜鏈防護、XML防護及應用層DDoS攻擊防護等自定義策略。
2.1支付密碼防泄露
支付密碼泄露問題是網上銀行的一大安全隱患,預防這一隱患,需要謹防釣魚網站。但釣魚網站利用XSS攻擊漏洞進行的釣魚攻擊手段相當隱蔽,即使網民的安全意識相當強,也無法抵御攻擊,WAF部署在防護網站與客戶端之間會阻斷XSS攻擊。XSS攻擊分3種,反射型XSS攻擊、存儲型XSS攻擊和基于DOM的XSS攻擊。編寫XSS攻擊正則,如下所示:黑客制造釣魚網站,若代碼能匹配上WAF的上面這段XSS正則,WAF就會阻斷請求。黑客的陰謀就不能得逞。
2.2cookie欺騙防護模塊
當用戶在網上選購商品時,會把選擇好的商品放入購物車。若瀏覽器突然異常關閉,由于HTTP是無狀態鏈接,如果沒cookie,購選的商品就不復存在,這個結果是大家最不想看到的,若再次打開購物網重新鏈接HTTP,會影響網絡速度。但cookie帶來便利的同時也會帶來欺騙。cookie欺騙是指偽造用戶身份或權限,目的就是想要獲得某些用戶或者某些高級權限。在網上銀行系統中,常遇到黑客非法獲取別人的cookie進入系統進行非琺操作。為了安全,設計了—套完整的cookie防欺騙方案。
2.2.1cookie中的secure屬性
該屬性被設置為“真”時,表示創建的cookies會被以安全模式向服務器傳送,也就是只能在HTTPS連接中被瀏覽器傳遞到服務器端進行會話驗證,如果是在HTTP連接中則不會傳遞該cookie信息,所以不會被竊取到cookie的具體內容。就是只允許在加密的情況下將cookie加在數據包請求頭部,防止cookie被帶出來。
2.2.2 HttpOnly屬性
如果在cookie中設置了“HttpOnly”屬性,那么通過程序(Js腳本、Applet等)將無法讀取到cookie信息,這樣能有效的防止XSS攻擊。secure屬性的目的是防止信息在傳輸過程中被監聽捕獲后信息泄漏,HttpOnly屬性的目的是防止程序獲取cookie后進行攻擊。但是這2個屬性并不能解決cookie在本機出現的信息泄漏的問題(FireFox的插件FireBug能直接看到cookie的相關信息)。
2.2.3 cookie加密
cookie往往被用于記錄用戶登錄狀態,比如userid盡量不要記錄密碼。因為cookie被存儲在客戶端會很容易被篡改。為了有效防止XSS攻擊盜取用戶cookie,給cookie加密,這樣可以防止基于cookie的SQL注入、命令注入以及其他五花八門的攻擊。
cookie欺騙防護的功能核心,在WAF上進行cookie加密,加密算法使用MD5,對userid進行加密,加密后的userid被存儲在客戶端的cookie中,由于加密算法不可逆,所以服務器收到的cookie是無法解密的,服務器應在用戶數據列表中增加一個專用保存MD5加密后的字段userid,然后通過sQL查詢到userid。當WAF開啟cookie加密策略,可以有效防止XSS攻擊盜取用戶的cookie,使攻擊者拿到用戶cookie的密文也無濟于事,最終WAF因無法解密而失效。
2.2.4 cookie簽名
操作辦法是在set-cookie加上防篡改驗證碼。如:user name cecgwl23。防篡改驗證碼的生成規則的方法:md5(cookieValue+key)或shal(cookieValue+key),key可以是復雜服務器端得到客戶端送上來的cookie,也可以是服務器端所掌握—個固定字符串。然后,重新計算一下驗證碼,如一致,則未篡改。在這里,簽名是根據client ip加密的,惡意者即使拿到cookie,由于簽名驗證不通過,無法達到cookie欺騙的目的。
防護措施除此以外,設置cookie有效期限,防止一旦cookie被攻擊者竊取,攻擊者一直使用用戶的賬戶登錄。設置限制cookie的最大個數、cookie名字的最大長度等各項配置多方位防止cookie欺騙的發生。若防護系統無需防護,則添加到白名單。
3隱藏表單
在網上銀行系統里,有些表單上的元素為了保密起見對客戶隱藏,需要把表單設置為隱藏表單,但依然有被篡改的風險。可以在WAF里設置隱藏表單防篡改策略。隱藏表單的HTML表單字段不會在屏幕上顯示,表面上看似無法修改,事實上能被修改。若把價格設置為負數,有的應用程序竟然能接受負數價格,攻擊者不僅能收到貨物,銀行卡還能收到退款。
隱藏表單和其他表單類型是一樣的,同樣有value這個屬性,唯一的區別在于隱藏表單不會把這個元素顯示出來,但在提交過程中仍然有效。中進行提交后,應用程序會獲取該元素的值,但數值不在屏幕上顯示。WAF隱藏表單防篡改策略原理提取特征值:price,隱藏參數格式:id“price”value。若提交代碼與隱藏參數格式中內容完全匹配,則請求被阻斷。
4實驗部分
4.1支付密碼泄露
用戶在瀏覽器中輸入支付認證的信息包括銀行卡號和密碼。如果攻擊者通過竊聽方式或釣魚網站獲得用戶的支付密碼,就可以通過網絡進入持卡人的賬戶進行轉賬或者支付,給持卡人帶來經濟上的損失。下面模擬黑客制造釣魚,主要代碼如下:
用戶一旦在網站上輸入賬戶和密碼,點擊“login”按鈕,賬號和密碼就會被黑客獲得。開啟WAIF固化規則防護中的XSS攻擊,使用滲透工具burpsite攔截請求,在WAF的防護下,XSS攻擊請求被攔截。詳情如圖2所示。
同理,WAF開啟表單防護策略編寫html代碼,。開啟隱藏表單防護效果如圖3所示。
4.2WAF中的cookie防護
HTTP cookie是通過客戶端傳送數據的另一個常用機制,和隱藏表單字段類似,HTTP cookie一般不顯示在屏幕上,不可以由用戶直接修改,但可以使用攔截代理服務器對HTTPcookie進行修改。抵御風險辦法之一,就是WAIF給cookie加密。開啟WAF的cookie加密策略,使用wireshark工具抓包,cookie加密之后的效果如圖4所示,從圖中可以明顯看出cookie已經被加密。
5結束語
如今,WAF在中國如火如荼地發展,很多企業投入到對WAF的研究之中。WAF為網上銀行系統安全保駕護航,不僅解決了網上最棘手的安全問題——支付賬戶、密碼和數據泄露,同時通過加入自學習模塊提高了用戶參與度,降低了誤報率,阻斷了黑客的不法攻擊。最后,通過實驗驗證了WAIF能很好地防護網站釣魚攻擊、SQL注入攻擊、cookie欺騙攻擊和隱藏表單篡改攻擊,達到了預期的防護效果。但WAF研究之路還會很長,因為規則庫要不斷升級才能阻斷最新類型的攻擊。