黃定華+徐志偉
摘 要
隨著Ineternet技術的不斷發展和延伸,WEB服務成為互聯網上的使用最普遍的應用服務,本文從WEB服務架構的發展具體分析了可能帶來安全威脅的各個層面的原因,并對于這些威脅提出了相關的安全體制構建機制和構想。
【關鍵詞】WEB安全 WEB防火墻 HTTPS
1 概述
自從互聯網時代開啟以來,網頁瀏覽成為上網最普遍的行為。這種行為導致了WWW(萬維網)的興盛和發展。據美國互聯網研究機構Netcraft統計,截止到2016年6月全球網站數量已經突破了10億大關。隨著網絡信息化和移動互聯網的進一步發展,網頁的瀏覽和使用已經成為日常生活中不可或缺的一部分。WWW是由許多互相連接的超文本組成的系統,通過互聯網進行訪問,在這個系統中每個事物都稱之為一個“資源”,并且有一個全域的URL(統一資源標識符)表示。
基于網頁瀏覽的應用隨著互聯網技術發展不斷推進,人們不僅可以通過網頁瀏覽來欣賞視頻,播放歌曲,進行娛樂互動,也可以通過網頁瀏覽的方式享受社交網絡,電子郵件以及網絡購物等服務。隨著應用和服務的興盛,網頁瀏覽的安全問題也日益凸顯,各種針對于網頁服務器端的攻擊層出不窮,網頁的信息容易遭到篡改并植入有害代碼,個人信息大量泄露利用瀏覽器的漏洞的掛馬網站大量泛濫,據相關安全機構統計,80%的電腦中毒都來源于用戶瀏覽了帶病毒的網頁和鏈接,網頁攻擊成為黑客入侵的主要手段之一。
2 WEB架構和發展
WEB的本意是蜘蛛網和網的意思,在網頁設計中我們稱之為網頁,主要表現為超文本(hypertext)、超媒體(hypermedia)、超文本傳輸協議(HTTP)的集合。在WWW世界中WEB服務指的是這種超文本的資源集合通過瀏覽器/服務器架構和Http協議呈現給客戶的服務。隨著用戶更加注重交互和內容的分享,WEB2.0引入了由用戶主導而生成內容的互聯網模式,出現了數據與服務的分離,分布式數據和服務等變化,大大增強了交互性。
在早期,客戶使用WEB瀏覽器通過http協議通過互聯網訪問WEB服務器,一般使用的是html靜態頁面。靜態頁面是指用戶通常訪問的頁面都存儲在WEB服務器的某個固定目錄下,比如.html文件和.xml文件,用戶通過點擊網頁上的“超鏈接”(URL)來獲取相關內容,內容通過TCP/IP鏈接傳輸并經過客戶端瀏覽器解釋呈現給用戶。靜態頁面往往只能完成信息的發布和展示這些簡單的功能,當用戶需要一些互動甚至是內容的創作者的時候,靜態頁面就無法滿足這種頻繁的互動需求,在這個背景下動態網頁的概念就應運而生了:通過在在網頁中嵌入一些可以運行的小程序(比如Java, PHP, ASP, FLASH等),通過客戶瀏覽器的插件技術來解釋和運行這些小程序從而實現和用戶靈活的交互。這些小程序用法靈活而且可以根據用戶的角度進行定制化處理,使得網頁設計的交互性得到極大的提高,使得WEB服務具備強大的雙向交流模式:可以像傳統軟件一樣進行各種計算處理,文件編輯,信息提交等。這些小程序既可以嵌入在html頁面中,也可以以文件的形式單獨存儲在服務器的目錄中,比如.php、.class、.jsp文件,既可以由瀏覽器解釋執行,也可以由服務器運行。這樣的功能性小程序的集合形成常用的工具包進行單獨管理就構成了中間件服務器,它實際上是WEB服務器處理能力的擴展。
動態網頁中屬于動態數據的內容往往很多需要經常的更新,比如新聞滾動,狀態更新甚至是互動游戲等,這些內容往往采用專業的數據庫,采用程序和數據分離的方式進行管理。WEB服務往往都帶有數據庫服務器,當用戶請求頁面時,嵌入式插件進行小程序的解釋執行,小程序根據利用sql數據庫語言從數據庫中讀取并獲得最新的數據,完成后按照html頁面指定的方式生成一個完整的動態的頁面呈現給用戶。
除了應用數據的變化,用戶的一些狀態信息,屬性信息也需要針對性記錄。而WEB服務器是不對這些信息進行記錄和存儲的,為了這種定制化訪問的需要,往往在客戶端通過Cookie和服務器端的Session的機制進行定制化信息的記憶和存儲,使得呈現給用戶的訪問界面更加友好和人性化。由于HTTP協議是無狀態的協議,所以服務端需要記錄用戶的狀態時,就需要用Session的機制來標識具體的用戶,Session具有唯一的標示,可以通過數據庫,內存或者文件進行存儲。而Cookie則是客戶端為了方便用戶或進行Session跟蹤把一些用戶信息包括用戶名和口令等存儲在客戶端的硬盤臨時文件中的一種機制。一般來說Session和Cookie會結合起來使用。
3 WEB安全和威脅
在上一節描述的WEB架構中,我們不難看出WEB的威脅主要來自于對于服務器端,客戶瀏覽器,以及中間基于http協議的傳輸過程,WEB服務應用攻擊四個部分。WEB服務器是WEB服務的必經之路,也是黑客和攻擊者的首選目標,對于WEB服務器,入侵渠道主要有服務器系統漏洞和WEB服務應用漏洞這兩類,其中服務器系統漏洞又分為服務器操作系統漏洞和服務器WEB服務漏洞:比如IIS或者Tomcat的系統性漏洞;黑客通過這種類別的漏洞入侵可以獲得服務器的高級權限,從而實現對服務器的WEB服務的任意控制修改。
HTTP協議最初的目的是為了在瀏覽器和WEB服務器之間實現HTML文件的發送和接收,其傳輸的內容在網絡上是完全透明的,這意味著我們只要攔截到了HTTP報文,我們就可以查看其中所有的數據。攻擊者比較常用的方法是網絡嗅探,從中分析出敏感數據甚至是用戶密碼。由于HTTP是一種無狀態的連接協議,在傳輸客戶端請求和服務器端響應過程中,并不對內容的完整性做檢查,因此攻擊者可以輕易發動中間人攻擊,篡改數據甚至植入惡意代碼。
WEB瀏覽器是整個網絡環境中廣泛應用的軟件之一,針對各種操作系統都有各種各樣的瀏覽器,但幾乎所有的瀏覽器都存在這樣或者那樣的漏洞,也是黑客在進行攻擊時最容易攻擊的對象之一。比如微軟的IE瀏覽器11每個月都有多達10個以上的漏洞需要修復。
WEB服務應用是基于WEB服務基礎上的應用開發,由于開發過程簡單,開發人員素質參差不齊,編程不規范,在代碼安全和信息安全上往往缺乏必要的意識和測試手段,成為WEB應用中的重災區,其中攻擊手段通常包含如下幾類:
3.1 跨站腳本攻擊(XSS)
跨站腳本攻擊(XSS,Cross-site scripting)是最常見和基本的攻擊WEB網站的方法。攻擊者在網頁上發布包含攻擊性代碼的數據。當瀏覽者看到此網頁時,特定的腳本就會以瀏覽者用戶的身份和權限來執行。通過XSS可以比較容易地修改用戶數據、竊取用戶信息,以及造成其它類型的攻擊,例如CSRF攻擊;XSS攻擊還可以進一步劃分為如下三種類型,類型A,本地利用漏洞,這種漏洞存在于頁面中客戶端腳本自身。類型B,反射式漏洞,這種漏洞和類型A有些類似,不同的是Web客戶端使用Server端腳本生成頁面為用戶提供數據時,如果未經驗證的用戶數據被包含在頁面中而未經HTML實體編碼,客戶端代碼便能夠注入到動態頁面中。類型C,存儲式漏洞,該類型是應用最為廣泛而且有可能影響到Web服務器自身安全的漏洞,駭客將攻擊腳本上傳到Web服務器上,使得所有訪問該頁面的用戶都面臨信息泄漏的可能,其中也包括了Web服務器的管理員。
3.2 跨站請求偽造攻擊(CSRF)
跨站請求偽造(CSRF,Cross-site request forgery)是另一種常見的攻擊。攻擊者通過各種方法偽造一個請求,模仿用戶提交表單的行為,從而達到修改用戶的數據,或者執行特定任務的目的。為了假冒用戶的身份,CSRF攻擊常常和XSS攻擊配合起來做,但也可以通過其它手段,例如誘使用戶點擊一個包含攻擊的鏈接
3.3 SQL注入攻擊(SQL Injection)
就是通過把SQL命令插入到Web表單提交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令。具體來說,它是利用現有應用程序,將(惡意)的SQL命令注入到后臺數據庫引擎執行的能力,它可以通過在Web表單中輸入(惡意)SQL語句得到一個存在安全漏洞的網站上的數據庫,而不是按照設計者意圖去執行SQL語句。
4 WEB安全和防護
由于互聯網的迅猛發展,針對于WEB應用服務架構的安全威脅與日俱增,社交媒體軟件在豐富人們生活的同時也對WEB安全防護提出了更高的要求,為了達到更好安全性和可靠性,在進行WEB應用服務部署過程中建議采取的安全工作如下:
4.1 WEB應用環境安全評測
結合網站WEB服務部署的系統和WEB服務的平臺軟件,定期進行漏洞掃描,日志分析和補丁更新,確保WEB應用部署的操作系統和軟件平臺的健壯性和安全性;
4.2 WEB應用開發加固
通過安全掃描、人工檢查、滲透測試、代碼審計、架構分析等方法對應用代碼以及中間件,數據庫進行安全性測試和系統集成測試,規范代碼開發規范,減弱或者消除由于Web應用本身的脆弱性及系統架構導致的安全問題。
4.3 WEB應用威脅監控
通過IPS(Intrusion Protection System)和WEB 防火墻設備,監測來自外部的訪問數據和日志數據,對惡意訪問進行報警和過濾:WEB防火墻設置基于語法分析的檢測模式,提高防御SQL注入或XSS攻擊。任何企圖進行SQL注入或跨站腳本攻擊的數據,不管形式如何變化,都必須滿足SQL和HTML語法的規定。對常見注入點的數據經過解析其結果再做語法分析,如果滿足語法規則則表示注入攻擊有效。這種方式對注入攻擊和XSS攻擊的辨識率高,甚至能夠防御未知SQL注入和XSS攻擊形式。WEB防火墻設置目錄訪問控制功能,能夠有效防范Web Shell和敏感信息泄露。對于網站可上傳文件的目錄,檢查用戶訪問請求POST數據和URI中是否有動態可執行代碼,以及請求文件的后綴名是否是已知的動態腳本后綴(例如.asp、.php、.js等等);對于包含數據庫連接文件(通常包括數據庫路徑、用戶名、口令等信息)的Web路徑,杜絕關鍵目錄的非授權訪問,避免敏感信息泄漏。
除了以上通用的WEB防護手段,對于網站需要用戶名和密碼的部分,必須采用HTTPS進行加密傳輸,并且購買SSL認證證書確保網站的唯一性和安全性。HTTPS是最常見的HTTP安全版本,所有主要的商業瀏覽器和服務器上都提供HTTPS。HTTPS通過在TCP層與HTTP層之間增加了一個SSL(Secure Socket Later)來加強安全性,SSL是一個二進制協議,與HTTP不同,其流量是承載在443端口(http是80)上的。HTTPS增強的安全性表現在其雙向的身份認證確保身份都是真實可靠的,其數據傳輸的機密性提高,數據完整性檢驗更嚴格,數據報被重放攻擊的可能性降低。該協議允許客戶∕服務器應用程序在通信時,還能夠阻止竊聽、報文偽造等安全攻擊。
5 結論
由于互聯網WEB服務的盛行,針對網站的攻擊和威脅與日俱增,本文通過對WEB架構的分析認為安全威脅存在于WEB應用開發,WEB應用服務器,WEB瀏覽器和HTTP傳輸等四大環節中,需要采用WEB環境安全評測,WEB應用開發加固,WEB應用威脅監控等手段對網站進行全面的安全監測,采取Https協議保護網站的用戶信息從而提升整體WEB服務的安全性。
作者簡介
黃定華(1977-),男,湖南省邵陽市人。碩士學位。現供職于中興通訊就職,研究方向為公共安全。
徐志偉(1974-),男,廣東珠海市人。學士學位。現為珠海市垃圾發電廠自控工程師。研究方向為自動控制。
作者單位
1.中興通訊 廣東省深圳市 518004
2.珠海市垃圾發電廠 廣東省珠海市 518004