A. Web安全問題解答
很多新手都覺得自己的電腦web經常被木馬侵襲,所以下面我為大家帶來電腦基礎知識學習之Web安全問題,讓你了解下如何安全的保護好自己的電腦。
1、什麼叫Web應用系統?
答:Web應用系統就是利用各種動態Web技術開發的,基於B/S(瀏覽器/伺服器)模式的事務處理系統。用戶直接面對的是客戶端瀏覽器,使用Web應用系統時,用戶通過瀏覽器發出的請求,其之後的事務邏輯處理和數據的邏輯運算由伺服器與資料庫系統共同完成,對用戶而言是完全透明的。運算後得到的結果再通過網路傳輸給瀏覽器,返回給用戶。比如:ERP系統、CRM系統以及常見的網站系統(如電子政務網站、企業網站等)都是Web應用系統。
2、為什麼Google把我的網站列為惡意網站
答:Google在對網站內容進行搜索時,同時也會檢查是否含有惡意軟體或代碼(這些惡意軟體或代碼可能威脅該網站的訪問者)。如果該網站存在這樣的惡意軟體或代碼,就會在用戶搜索到該網站時,加上一個標記:“該網站可能含有惡意軟體,有可能會危害您的電腦”。這將會使網站信譽受損,並導致潛在的用戶流失。
3、Web威脅為什麼難以防範
答:針對Web的攻擊已經成為全球安全領域最大的挑戰,主要原因有如下兩點:
1. 企業業務迅速更新,需要大量的Web應用快速上線。而由於資金、進度、意識等方面的影響,這些應用沒有進行充分安全評估。
2. 針對Web的攻擊會隱藏在大量正常的業務行為中,而且使用各種變形偽裝手段,會導致傳統的防火牆和基於特徵的入侵防禦系統無法發現和阻止這種攻擊。
4、黑客為什麼要篡改網站頁面
答:當黑客獲取網站的控制許可權後,往往會更改網站頁面,可能的動機有:
1. 宣稱政治主張;
2. 炫耀技術,建立“聲望”;
3. 宣洩情緒;
4. 經濟利益,通過網站釋放木馬,從而獲取經濟利益。
5、黑客實施網站掛馬的目的是什麼
答:網站掛馬的主要目的是控制訪問該網站的用戶的計算機,從而可以進一步獲取用戶的計算機隱私信息而獲利,或者將這些用戶的計算機作為“肉雞”,對 其它 伺服器或網路進行DDos攻擊。
6、為什麼我網站的資料庫表內容被大量替換?
答:如果排除了管理員誤操作的可能性,則可能是網站伺服器被自動化攻擊工具(如sql注入工具等)攻擊的結果。目前已經有自動化的工具對網站進行攻擊,如果網站存在漏洞的話,攻擊工具能夠獲得對網站資料庫訪問的許可權。如果發現這種情況,應該仔細核查網站伺服器和資料庫伺服器日誌,找出更改記錄。
7、在Web威脅防禦中防火牆的優點和不足
答:防火牆可以過濾掉非業務埠的數據,防止非Web服務出現的漏洞,目前市場上可選擇的防火牆品牌也較多。但對於目前大量出現在應用層面上的SQL注入和XSS漏洞,防火牆無法過濾,因而無法保護Web伺服器所面臨的應用層威脅。
8、常見發布系統之IIS
答:IIS 是Internet Information Server的縮寫,是由微軟開發的一種Web伺服器(Web server)產品,用以支持HTTP、FTP和SMTP服務發布。 它主要運行在微軟的 操作系統 之上,是最流行的Web伺服器軟體之一。
9、常見Web伺服器之Apache
答:Apache是Web伺服器軟體。它可以運行在幾乎所有廣泛使用的計算機平台上。Apache源於NCSAhttpd伺服器,經過多次修改,已成為世界上最流行的Web伺服器軟體之一。
10、Apache是不是比IIS要安全
答:早期的IIS在安全性方面存在著很大的問題,如果使用默認設置,黑客可以輕松趁虛而入。不過在IIS6中,微軟公司對其安全方面進行了大幅改進。只要保證操作系統補丁更新及時,就可以將網站安全系數盡可能地提高。
Apache在安全方面一直做得比較好,更主要的原因是很多用戶都是在linux系統下使用Apache。相對於微軟的操作系統,Linux系統被發布的安全按漏洞更少一些。
從技術角度講,兩個Web伺服器的安全性沒有本質區別,一個完整的Web系統的安全性更取決於Web程序的安全性以及Web伺服器配置的正確性。
11、什麼叫應用防火牆
答:應用防火牆的概念在上個世紀九十年代就已經被提出,但在最近幾年才真正走向成熟和應用。應用防火牆的概念與網路防火牆相對,網路防火牆關注網路層的訪問控制,應用防火牆則關注應用層數據的過濾與控制。
12、什麼叫網站防篡改系統
答:網站防篡改系統通過實時監控來保證Web系統的完整性,當監控到Web頁面被異常修改後能夠自動恢復頁面。網站放篡改系統由於其設計理念的限制,對靜態頁面的防護能力比較好,對動態頁面的防護則先天不足。
13、我的Web伺服器被訪問速度變慢,經常出現連接失敗的現象,可能是什麼原因造成的呢?
答:這可能有兩個方面的情況,一種是網路方面的原因,如運營商的線路故障,或帶寬消耗型的DDOS攻擊;另外一種情況是伺服器方面的原因,如感染病毒,或資源消耗型的拒絕服務攻擊。
14、我的Web伺服器部署了木馬查殺軟體,為什麼還被掛了木馬?
答:所謂的網頁被掛馬,很多情況下並不是有木馬程序或代碼被放到了Web伺服器上,而是有一段跳轉代碼(本身不包含攻擊信息)被放在了Web伺服器上網頁中。當遠程用戶訪問帶有跳轉代碼的頁面時,將會執行這段代碼,從另外一個地址下載並執行木馬。所以,即使在Web伺服器上部署了木馬查殺軟體,也會由於木馬本身並不存在於伺服器上,而無法避免網站被掛馬。
15、我的Web伺服器前端部署了入侵防禦產品設備,入侵防禦產品設備中包含了幾百條的SQL注入攻擊防禦特徵庫,為什麼我的Web系統還是被SQL注入攻擊成功了呢?
答:SQL注入是一種沒有固定特徵的攻擊行為,對安全設備來說,就是屬於變種極多的攻擊行為。所以,基於數據特徵的SQL注入檢測 方法 是沒有辦法窮盡所有組合的,會存在大量的誤報、漏報可能。如果採用的入侵防禦產品設備採用的是基於數據特徵的檢測方法,即使包含了數百條SQL注入特徵庫,也會有漏報出現。
16、黑客為什麼喜歡攻擊網站?
答:Web業務已經成為當前互聯網最為流行的業務,大量的在線應用業務都依託於Web服務進行。並且一些大型網站的日訪問量可達百萬之巨,不論是直接攻擊網站(如網路銀行,在線游戲伺服器)還是通過網站掛馬竊取訪問者信息,都可以使黑客獲得直接的經濟利益。另外一方面,網站是機構的網路形象,通過攻擊篡改網站頁面,也可以得到最大范圍的名聲傳播。對於那些企圖出名的黑客,攻擊網站是一項不錯的選擇。
17、如何判斷自己的Web伺服器是否已經成為肉雞?
答:如果發現自己的Web伺服器上開啟了一些奇怪的進程,發現Web伺服器總是有大量從內往外的連接,發現Web伺服器不定時系統緩慢,諸如此類的現象,可使用木馬清除軟體進行檢查和查殺。
細分攻擊形式:
18、目前國內Web應用系統存在哪些最突出的安全問題?
答:Web應用程序的漏洞是很難避免的,系統的安全隱患主要在三方面:
首先是網路運維人員或安全管理人員對Web系統的安全狀況不清楚。哪些頁面存在漏洞,哪些頁面已經被掛馬,他們不能夠清晰的掌握,從而及時採取改正 措施 ;
其次,在安全設備的部署方面,沒有選用專業的、針對Web業務攻擊的防禦產品對網站進行保護,而是寄託於防火牆這種訪問控制類的網關安全設備;
另外,從安全響應來看,Web安全事件發生後的應急與處理也存在欠缺。沒有相應的頁面恢復系統,也沒有處理Web安全事件的專業安全服務團隊。很多單位沒有制定實時監控的網站安全管理制度。
19、什麼叫SQL注入
答:SQL注入就是利用現有應用程序,將惡意的SQL命令注入到網站後台資料庫引擎執行的能力。SQL注入利用的是正常的HTTP服務埠,表面上看來和正常的Web訪問沒有區別,隱蔽性極強,不易被發現。
20、SQL注入有哪些危害
答:SQL注入的主要危害包括:
未經授權狀況下操作資料庫中的數據;
惡意篡改網頁內容;
私自添加系統帳號或者是資料庫使用者帳號;
網頁掛木馬;
21、什麼叫XSS
答:跨站腳本攻擊(XSS)是攻擊者將惡意腳本提交到網站的網頁中,使得原本安全的網頁存在惡意腳本;或者是直接添加有惡意腳本的網頁並誘使用戶打開,用戶訪問網頁後,惡意腳本就會將用戶與網站的會話COOKIE及其它會話信息全部截留發送給攻擊者,攻擊者就可以利用用戶的COOKIE正常訪問網站。攻擊者有時還會將這些惡意腳本以話題的方式提交到論壇中,誘使網站管理員打開這個話題,從而獲得管理員許可權,控制整個網站。跨站腳本漏洞主要是由於沒有對所有用戶的輸入進行有效的驗證所造成的,它影響所有的Web應用程序框架。
22、XSS有哪些危害
答:XSS攻擊的危害包括:
盜取各類用戶帳號,如機器登錄帳號、用戶網銀帳號、各類管理員帳號;
控制企業數據,包括讀取、篡改、添加、刪除企業敏感數據的能力;
盜竊企業重要的具有商業價值的資料;
非法轉賬;
強制發送電子郵件;
網站掛馬;
控制受害者機器向其它網站發起攻擊。
23、什麼叫Shellcode
答:Shellcode實際是一段代碼(也可以是填充數據),可以用來發送到伺服器,利用已存在的特定漏洞造成溢出,通稱“緩沖區溢出攻擊”中植入進程的代碼。這段代碼可以是導致常見的惡作劇目的的彈出一個消息框彈出,也可以用來刪改重要文件、竊取數據、上傳木馬病毒並運行,甚至是出於破壞目的的格式化硬碟等等。
24、什麼叫網站漏洞
答:隨著B/S模式被廣泛的應用,用這種模式編寫Web應用程序的程序員也越來越多。但由於開發人員的水平和 經驗 參差不齊,相當一部分的開發人員在編寫代碼的時候,沒有對用戶的輸入數據或者是頁面中所攜帶的信息(如Cookie)進行必要的合法性判斷,導致了攻擊者可以利用這個編程漏洞來入侵資料庫或者攻擊Web應用程序的使用者,由此獲得一些重要的數據和利益。
25、什麼叫木馬
答:木馬(Trojan)這個名字來源於古希臘 傳說 ,在互聯網時代它通常是指通過一段特定的程序(木馬程序)來控制另一台計算機。木馬通常有兩個可執行程序:一個是客戶端,即控制端,另一個是服務端,即被控制端。木馬的設計者為了防止木馬被發現,而採用多種手段隱藏木馬。木馬的服務一旦運行並被控制端連接,其控制端將享有服務端的大部分操作許可權,例如給計算機增加口令,瀏覽、移動、復制、刪除文件,修改注冊表,更改計算機配置等。
26、什麼叫網站掛馬
答:“掛馬” 就是黑客入侵了一些網站後,將自己編寫的網頁木馬嵌入被黑網站的主頁中。當訪問者瀏覽被掛馬頁面時,自己的計算機將會被植入木馬,黑客便可通過遠程式控制制他們的計算機來實現不可告人的目的。網頁木馬就是將木馬和網頁結合在一起,打開網頁的同時也會運行木馬。最初的網頁木馬原理是利用IE瀏覽器的ActiveX控制項,運行網頁木馬後會彈出一個控制項下載提示,只有點擊確認後才會運行其中的木馬。這種網頁木馬在當時網路安全意識普遍不高的情況下還是有一點威脅的,但是其缺點顯而易見,就是會出現ActiveX控制項下載提示。現在很少會有人去點擊那莫名其妙的ActiveX控制項下載確認窗口了。在這種情況下,新的網頁木馬誕生了。這類網頁木馬通常利用IE瀏覽器的漏洞,在運行的時候沒有絲毫提示,因此隱蔽性極高。
27、什麼叫DOS./DDOS攻擊?
答:DoS即Denial Of Service,拒絕服務的縮寫。DoS是指利用網路協議實現的缺陷來耗盡被攻擊對象的資源,目的是讓目標計算機或網路無法提供正常的服務或資源訪問,使目標系統服務系統停止響應甚至崩潰。在此攻擊中並不包括侵入目標伺服器或目標網路設備。這些被大量消耗的服務資源包括網路帶寬、文件系統空間容量、開放的進程或者允許的連接。這種攻擊會導致資源的匱乏,無論計算機的處理速度多快、內存容量多大、網路帶寬有多高,都無法避免這種攻擊帶來的後果。
DDoS(Distributed Denial Of Service)又把DoS又向前發展了一大步,這種分布式拒絕服務攻擊是黑客利用在已經被侵入並已被控制的、不同的高帶寬主機(可能是數百,甚至成千上萬台)上安裝大量的DoS服務程序,它們等待來自中央攻擊控制中心的命令。中央攻擊控制中心再適時啟動全體受控主機的DoS服務進程,讓它們對一個特定目標發送盡可能多的網路訪問請求,形成一股DoS洪流沖擊目標系統,猛烈地DoS攻擊同一個網站。被攻擊的目標網站會很快失去反應而不能及時處理正常的訪問甚至系統癱瘓崩潰。
28、什麼叫網路釣魚
答:網路釣魚(Phishing,又名釣魚法或釣魚式攻擊)是通過傳播“聲稱來自於銀行或其他知名機構”的欺騙信息,意圖引誘受害者泄漏出敏感信息(如用戶名、口令、帳號 ID 、 ATM PIN 碼或信用卡詳細信息)的一種攻擊方式。最典型的網路釣魚攻擊將受害者引誘到一個與其目標網站非常相似的釣魚網站上,並獲取受害者在此網站上輸入的個人敏感信息。通常這個攻擊過程不會讓受害者警覺。它是“社會工程攻擊”的一種形式。
29、什麼叫網路蠕蟲
答:一般認為:蠕蟲病毒是一種通過網路傳播的惡性病毒,它除具有病毒的一些共性外,同時具有自己的一些特徵。如:不利用文件寄生(有的只存在於內存中)、對網路造成拒絕服務,以及與黑客技術相結合,等等。蠕蟲病毒主要的破壞方式是大量的復制自身,然後在網路中傳播,嚴重佔用有限的網路資源,最終引起整個網路的癱瘓,使用戶不能通過網路進行正常的工作。每一次蠕蟲病毒的爆發都會給全球經濟造成巨大損失,因此它的危害性是十分巨大的。有一些蠕蟲病毒還具有更改用戶文件、將用戶文件自動當附件轉發的功能,更是嚴重的地危害到用戶的 系統安全 。
30、什麼叫僵屍網路
答:僵屍網路(英文名稱叫BotNet),是互聯網上受到黑客集中控制的一群計算機,往往被黑客用來發起大規模的網路攻擊。如:分布式拒絕服務攻擊(DDoS)、海量垃圾郵件等。同時,黑客控制的這些計算機所保存的信息也都可以被黑客隨意“取用”。因此,不論是對網路安全運行還是用戶數據安全的保護,僵屍網路都是極具威脅的隱患。然而,發現一個僵屍網路是非常困難的,因為黑客通常遠程、隱蔽地控制分散在網路上的“僵屍主機”,這些主機的用戶往往並不知情。因此,僵屍網路是目前互聯網上最受黑客青睞的作案工具。
31、什麼是ARP攻擊
答:ARP是地址解析協議,是一種將IP地址轉化為MAC地址的協議。在網路中,當A主機需要向B主機發送報文時,會先查詢本地的ARP緩存表,找到與B主機IP地址對應的MAC地址後,進行數據傳輸。如果未找到,則會發送一個廣播ARP請求報文,請求對應B主機IP的B回應MAC地址。這個廣播包會被整個廣播域中所有主機收到,但只有B主機會發現IP地址對應自己,才會將MAC地址回應給A。此時A收到這個回應並更新自己的ARP緩存,進行下一步的數據傳輸。ARP攻擊應當叫做ARP欺騙,就是冒充網關地址對網路中主機給出ARP查詢回應,使得本來是A->網關的數據走向,變成A->攻擊者->網關。
32、ARP攻擊的危害有哪些?
答:ARP攻擊的危害主要有兩個方面。從ARP攻擊的原理來看,這種攻擊使得受害主機的所有網路數據都將通過攻擊者進行轉發。這樣一來,要竊取信息或控制流量就變得輕而易舉。另一方面,由於ARP緩存會不斷刷新,有的時候,真正的網關會偶爾“清醒”。當真正的網關參與到數據包轉發中來時,由於做了一個切換動作,可能會有頻繁的短暫掉線現象。所以,如果Web伺服器所在網路中發生了ARP攻擊,將導致Web伺服器不可訪問。
細分攻擊介質:
33、WEB應用系統(網站)會面臨來自哪些方面的安全問題
答:網站面臨的安全問題是方方面面的,主要可概括為以下四個方面:
1)操作系統、後台資料庫的安全問題
這里指操作系統和後台資料庫的漏洞,配置不當,如弱口令等等,導致黑客、病毒可以利用這些缺陷對網站進行攻擊。
2)Web發布系統的漏洞
Web業務常用的發布系統(即Web伺服器),如IIS、Apache等,這些系統存在的安全漏洞,會給入侵者可乘之機。
3)Web應用程序的漏洞
主要指Web應用程序的編寫人員,在編程的過程中沒有考慮到安全的因素,使得黑客能夠利用這些漏洞發起對網站的攻擊,比如SQL注入、跨站腳本攻擊等等。
4)自身網路的安全狀況
網站伺服器所處的網路安全狀況也影響著網站的安全,比如網路中存在的DoS攻擊等,也會影響到網站的正常運營。
34、Web程序漏洞是怎麼形成的
答:Web站點之所以存在如此眾多的安全漏洞,是由下列所示的這些原因造成的:
1、 大部分的中小型網站都是使用某個建站模塊建設的,而這些通用的建站模塊不僅本身存在各種安全漏洞,同時一些使用它們的建站人員根本沒有在建站完成後對站點進行安全加固。
2、 Web站點開發人員對安全不夠重視,在編寫網頁時,沒有對用戶的輸入進行驗證,沒有對數據的大小、類型和字元串進行規范,沒有限制API函數對系統資源的使用,以及對Web伺服器沒有進行相應的資源限制,引起拒絕服務攻擊。
3、 管理員對Web伺服器主機系統及Web應用程序本身配置不當,一些中小企業自己管理的Web站點根本沒有足夠的技術人員來管理它們的安全。
4、 當Web站點是託管在某個電信機房時,對它們進行的遠程管理存在安全風險。
5、 Web站點管理員本身技術水平的限制,對各種針對Web站點的安全攻擊不了解,也沒有端正工作態度,沒能對站點進行認真的安全加固,以及進行日常的安全檢查。
6、 Web站點所處網路大環境的安全設計不合理,以及沒有將安全防範工作融入到站點整個生命周期的各個階段。
7、 企業領導不夠重視,在Web站點的安全防範方面投入的資金太少或不合理,沒有制定一個有效的Web站點安全防範策略,明確Web站點日常管理流程,也沒有對Web站點的管理人員和工作人員進行不斷的安全培訓。
35、黑客主要利用哪些方法對網站進行數據竊取和修改
答:黑客需要使用擁有一定許可權的用戶帳戶才能對網站進行數據竊取和修改,所以可能造成用戶許可權泄漏或提升的漏洞,都可以被黑客利用來進行攻擊,如SQL注入,溢出漏洞、暴力猜解等。
36、目前對Web伺服器威脅較大的SQL注入工具有哪些?
答:網上常見的SQL注入工具有“啊D SQL注入工具”、pangolin、NBSI、HDSI、“管中窺豹注入工具”等。
37、目前對Web伺服器威脅較大的XSS攻擊工具有哪些?
答:網上常見的XSS攻擊工具有sessionIE、Webscan、XSS Inject Scanner 等。
38、怎樣應對Web業務安全事件
答:應對Web業務安全事件,從根本上的解決辦法就是對Web應用程序源代碼進行代碼檢查和漏洞修復,但是這會影響正常Web業務運行,而且費用較高。比較有效的解決方案是通過專業的Web業務安全檢查工具或服務來檢查網站安全狀況,部署專業的Web安全產品。比如基於行為檢測的入侵防禦產品。同時在管理上,要求網管人員實時對網站進行監測,一旦發現網頁被篡改等問題立刻進行頁面恢復、刪除惡意腳本等工作。
39、如何防禦SQL注入
答:要想從根本上解決XSS攻擊,就要對Web應用程序源代碼進行檢查,發現安全漏洞進行修改。但是這種方法在實際中給用戶帶來了不便,如:需要花費大量的人力財力、可能無法找到當時的網站開發人員、需要網站下線等。對代碼進行修改後,由於增加了過濾條件和功能,同時也給伺服器帶來了計算壓力。通常的解決方法是在資料庫伺服器前端部署入侵防禦產品。SQL注入攻擊具有變種多、隱蔽性強等特點,傳統的特徵匹配檢測方式不能有效地進行防禦,需要採用“基於攻擊手法的行為監測”的入侵防禦產品才能夠精確地檢測到SQL注入攻擊。
40、如何防禦XSS
答:要想從根本上解決XSS攻擊,就要對Web應用程序源代碼進行檢查,發現安全漏洞進行修改。但是這種方法在實際中給用戶帶來了不便,如:需要花費大量的人力財力;可能無法找到當時的網站開發人員、需要網站下線等。對代碼進行修改後,由於增加了過濾條件和功能,同時也給伺服器帶來了計算壓力。通常的解決方法是在資料庫伺服器前端部署入侵防禦產品。XSS攻擊具有變種多、隱蔽性強等特點,傳統的特徵匹配檢測方式不能有效地進行防禦,需要採用基於攻擊手法的行為監測的入侵防禦產品產品才能夠精確地檢測到XSS攻擊。
41、如何發現網站掛馬
答:伺服器被掛馬,通常情況下,若出現諸如“彈出頁面”,則可以比較容易發現,發現防病毒軟體告警之類,則可以發現伺服器被掛馬;由於漏洞不斷更新,掛馬種類時刻都在變換,通過客戶端的反映來發現伺服器是否被掛馬往往疏漏較大;正確的做法是經常性的檢查伺服器日誌,發現異常信息;經常檢查網站代碼,藉助於專業的檢測工具來發現網頁木馬會大大提高工作效率和准確度。
B. 如何防禦網站cc攻擊
CC攻擊的防禦手段
1.提高伺服器性能
CC攻擊是以消耗伺服器資源為主,那麼高性能伺服器硬體能力和充足的網路帶寬資源可以提升系統對CC攻擊的承載能力,不過提升伺服器性能的成本要遠比CC攻擊成本高,所以謹慎使用。
2.網頁靜態化
純靜態的網頁請求可以減少對伺服器資源的消耗,提高伺服器並發能力,從而讓網站具有一定的抗CC能力。
3.使用負載均衡
現在很多雲伺服器商都提供負載均衡器,負載均衡器通過將流量分發到不同的後端服務來擴展應用系統的服務吞吐能力,消除單點故障並提升應用系統的可用性,可以解決一些中小型CC攻擊,但其實這跟提高伺服器性能一樣,成本相當高,跟CC攻擊比起來,差太遠。
4.限制非法請求IP
一些簡單的CC攻擊其IP是非常少的,可以通過防火牆對CC攻擊的IP進行屏蔽訪問。這方法只適用於攻擊方代理IP少的情況下有效。
5.限制瀏覽器UA
UA是識別瀏覽器的重要證明,一些CC工具的訪問UA都是一樣的,我們只要利用防火牆把對方的UA禁止訪問,就可以達到防禦作用。
6.限制IP請求頻率
CC攻擊為了達到消耗伺服器的作用,每個IP都會對伺服器進行頻繁的訪問,通過防火牆限制每個IP 10秒鍾內可以訪問多少次,超過會被暫時攔截,可有效防禦CC攻擊。
7.JS挑戰
這是一種安全防禦商常用的防禦CC攻擊的手段,通過對每個訪問網站的訪客進行JS質詢,合法用戶正常跳轉,非法用戶進行攔截。
8.CDN內容分發
CDN類似於負載均衡器, 不同的是CDN對源伺服器配置要求高,普通CDN想要防禦CC攻擊,需要把網站內容全部緩存至CDN節點,讓CC攻擊盡可能少的請求進伺服器,從而達到防禦CC攻擊的作用,不過CC攻擊會產生大量的流量,如果你的CDN是按量計費的,那麼請謹慎使用,一不小心就會產生大量的費用,造成嚴重經濟損失。
9.推薦防禦產品
目前市面上很多防禦CC攻擊的產品,不過很多效果並不理想,而且誤殺幾率很高,主機吧這里推薦網路雲加速和京東雲星盾,這兩個都是高防CDN,而且都是大廠產品,主機吧代理網路雲加速超過5年,網路雲加速防禦效果杠杠的,市面上幾乎99.9%的CC攻擊都是可以防禦,而且誤殺極低,推薦大家使用。相關鏈接
C. web安全攻擊方式都有些什麼
非法輸入 Unvalidated Input
在數據被輸入程序前忽略對數據合法性的檢驗是一個常見的編程漏洞。隨著OWASP對Web應用程序脆弱性的調查,非法輸入的問題已成為大多數Web應用程序安全漏洞方面的一個普遍現象。
失效的訪問控制Broken Access Control
大部分企業都非常關注對已經建立的連接進行控制,但是,允許一個特定的字元串輸入可以讓攻擊行為繞過企業的控制。
失效的賬戶和線程管理Broken Authentication and Session Management
有良好的訪問控制並不意味著萬事大吉,企業還應該保護用戶的密碼、會話令牌、賬戶列表及其它任何可為攻擊者提供有利信息、能幫助他們攻擊企業網路的內容。
跨站點腳本攻擊Cross Site Scripting Flaws
這是一種常見的攻擊,當攻擊腳本被嵌入企業的Web頁面或其它可以訪問的Web資源中,沒有保護能力的台式機訪問這個頁面或資源時,腳本就會被啟動,這種攻擊可以影響企業內成百上千員工的終端電腦。
緩存溢出問題Buffer Overflows
這個問題一般出現在用較早的編程語言、如C語言編寫的程序中,這種編程錯誤其實也是由於沒有很好地確定輸入內容在內存中的位置所致。
注入式攻擊Injection Flaws
如果沒有成功地阻止帶有語法含義的輸入內容,有可能導致對資料庫信息的非法訪問,在Web表單中輸入的內容應該保持簡單,並且不應包含可被執行的代碼。
異常錯誤處理Improper Error Handling
當錯誤發生時,向用戶提交錯誤提示是很正常的事情,但是如果提交的錯誤提示中包含了太多的內容,就有可能會被攻擊者分析出網路環境的結構或配置。
不安全的存儲Insecure Storage
對於Web應用程序來說,妥善保存密碼、用戶名及其他與身份驗證有關的信息是非常重要的工作,對這些信息進行加密則是非常有效的方式,但是一些企業會採用那些未經實踐驗證的加密解決方案,其中就可能存在安全漏洞。
程序拒絕服務攻擊Application Denial of Service
與拒絕服務攻擊 (DoS)類似,應用程序的DoS攻擊會利用大量非法用戶搶占應用程序資源,導致合法用戶無法使用該Web應用程序。
不安全的配置管理Insecure Configuration Management
有效的配置管理過程可以為Web應用程序和企業的網路架構提供良好的保護
D. 常見的幾種web攻擊方式及原理
一、Dos攻擊(Denial of Service attack)
是一種針對伺服器的能夠讓伺服器呈現靜止狀態的攻擊方式。有時候也加服務停止攻擊或拒絕服務攻擊。其原理就是發送大量的合法請求到伺服器,伺服器無法分辨這些請求是正常請求還是攻擊請求,所以都會照單全收。海量的請求會造成伺服器停止工作或拒絕服務的狀態。這就是Dos攻擊。
二、跨站點請求偽造(CSRF,Cross-Site Request Forgeries)
是指攻擊者通過已經設置好的陷阱,強制對已完成認證的用戶進行非預期的個人信息或設定信息等某些狀態的更新。屬於被動攻擊。更簡單的理解就是攻擊者盜用了你的名義,以你的名義發送了請求。
一個CSRF最簡單的例子就是用戶A登錄了網站A在虛擬賬戶里轉賬了1000塊錢,用戶A在本地生成了網站A的cookie,用戶A在沒有關閉網站A的情況下有訪問了惡意網站B,惡意網站B包含請求A網站的代碼,利用了本地的cookie經過身份驗證的身份又向網站A發送了一次請求,這時你就會發現你在網站A的賬戶又少了1000塊。這就是基本的CSRF攻擊方式。
三、SOL注入攻擊
是指通過對web連接的資料庫發送惡意的SQL語句而產生的攻擊,從而產生安全隱患和對網站的威脅,可以造成逃過驗證或者私密信息泄露等危害。
SQL注入的原理是通過在對SQL語句調用方式上的疏漏,惡意注入SQL語句。
E. web漏洞攻擊有哪些
一、SQL注入漏洞
SQL注入攻擊(SQL Injection),簡稱注入攻擊、SQL注入,被廣泛用於非法獲取網站控制權,是發生在應用程序的資料庫層上的安全漏洞。在設計程序,忽略了對輸入字元串中夾帶的SQL指令的檢查,被資料庫誤認為是正常的SQL指令而運行,從而使資料庫受到攻擊,可能導致數據被竊取、更改、刪除,以及進一步導致網站被嵌入惡意代碼、被植入後門程序等危害。
通常情況下,SQL注入的位置包括:
(1)表單提交,主要是POST請求,也包括GET請求;
(2)URL參數提交,主要為GET請求參數;
(3)Cookie參數提交;
(4)HTTP請求頭部的一些可修改的值,比如Referer、User_Agent等;
(5)一些邊緣的輸入點,比如.mp3文件的一些文件信息等。
常見的防範方法
(1)所有的查詢語句都使用資料庫提供的參數化查詢介面,參數化的語句使用參數而不是將用戶輸入變數嵌入到SQL語句中。當前幾乎所有的資料庫系統都提供了參數化SQL語句執行介面,使用此介面可以非常有效的防止SQL注入攻擊。
(2)對進入資料庫的特殊字元(』」<>&*;等)進行轉義處理,或編碼轉換。
(3)確認每種數據的類型,比如數字型的數據就必須是數字,資料庫中的存儲欄位必須對應為int型。
(4)數據長度應該嚴格規定,能在一定程度上防止比較長的SQL注入語句無法正確執行。
(5)網站每個數據層的編碼統一,建議全部使用UTF-8編碼,上下層編碼不一致有可能導致一些過濾模型被繞過。
(6)嚴格限制網站用戶的資料庫的操作許可權,給此用戶提供僅僅能夠滿足其工作的許可權,從而最大限度的減少注入攻擊對資料庫的危害。
(7)避免網站顯示SQL錯誤信息,比如類型錯誤、欄位不匹配等,防止攻擊者利用這些錯誤信息進行一些判斷。
(8)在網站發布之前建議使用一些專業的SQL注入檢測工具進行檢測,及時修補這些SQL注入漏洞。
二、跨站腳本漏洞
跨站腳本攻擊(Cross-site scripting,通常簡稱為XSS)發生在客戶端,可被用於進行竊取隱私、釣魚欺騙、竊取密碼、傳播惡意代碼等攻擊。
XSS攻擊使用到的技術主要為HTML和Javascript,也包括VBScript和ActionScript等。XSS攻擊對WEB伺服器雖無直接危害,但是它藉助網站進行傳播,使網站的使用用戶受到攻擊,導致網站用戶帳號被竊取,從而對網站也產生了較嚴重的危害。
XSS類型包括:
(1)非持久型跨站:即反射型跨站腳本漏洞,是目前最普遍的跨站類型。跨站代碼一般存在於鏈接中,請求這樣的鏈接時,跨站代碼經過服務端反射回來,這類跨站的代碼不存儲到服務端(比如資料庫中)。上面章節所舉的例子就是這類情況。
(2)持久型跨站:這是危害最直接的跨站類型,跨站代碼存儲於服務端(比如資料庫中)。常見情況是某用戶在論壇發貼,如果論壇沒有過濾用戶輸入的Javascript代碼數據,就會導致其他瀏覽此貼的用戶的瀏覽器會執行發貼人所嵌入的Javascript代碼。
(3)DOM跨站(DOM XSS):是一種發生在客戶端DOM(Document Object Model文檔對象模型)中的跨站漏洞,很大原因是因為客戶端腳本處理邏輯導致的安全問題。
常用的防止XSS技術包括:
(1)與SQL注入防護的建議一樣,假定所有輸入都是可疑的,必須對所有輸入中的script、iframe等字樣進行嚴格的檢查。這里的輸入不僅僅是用戶可以直接交互的輸入介面,也包括HTTP請求中的Cookie中的變數,HTTP請求頭部中的變數等。
(2)不僅要驗證數據的類型,還要驗證其格式、長度、范圍和內容。
(3)不要僅僅在客戶端做數據的驗證與過濾,關鍵的過濾步驟在服務端進行。
(4)對輸出的數據也要檢查,資料庫里的值有可能會在一個大網站的多處都有輸出,即使在輸入做了編碼等操作,在各處的輸出點時也要進行安全檢查。
(5)在發布應用程序之前測試所有已知的威脅。
三、弱口令漏洞
弱口令(weak password) 沒有嚴格和准確的定義,通常認為容易被別人(他們有可能對你很了解)猜測到或被破解工具破解的口令均為弱口令。設置密碼通常遵循以下原則:
(1)不使用空口令或系統預設的口令,這些口令眾所周之,為典型的弱口令。
(2)口令長度不小於8個字元。
(3)口令不應該為連續的某個字元(例如:AAAAAAAA)或重復某些字元的組合(例如:tzf.tzf.)。
(4)口令應該為以下四類字元的組合,大寫字母(A-Z)、小寫字母(a-z)、數字(0-9)和特殊字元。每類字元至少包含一個。如果某類字元只包含一個,那麼該字元不應為首字元或尾字元。
(5)口令中不應包含本人、父母、子女和配偶的姓名和出生日期、紀念日期、登錄名、E-mail地址等等與本人有關的信息,以及字典中的單詞。
(6)口令不應該為用數字或符號代替某些字母的單詞。
(7)口令應該易記且可以快速輸入,防止他人從你身後很容易看到你的輸入。
(8)至少90天內更換一次口令,防止未被發現的入侵者繼續使用該口令。
四、HTTP報頭追蹤漏洞
HTTP/1.1(RFC2616)規范定義了HTTP TRACE方法,主要是用於客戶端通過向Web伺服器提交TRACE請求來進行測試或獲得診斷信息。當Web伺服器啟用TRACE時,提交的請求頭會在伺服器響應的內容(Body)中完整的返回,其中HTTP頭很可能包括Session Token、Cookies或其它認證信息。攻擊者可以利用此漏洞來欺騙合法用戶並得到他們的私人信息。該漏洞往往與其它方式配合來進行有效攻擊,由於HTTP TRACE請求可以通過客戶瀏覽器腳本發起(如XMLHttpRequest),並可以通過DOM介面來訪問,因此很容易被攻擊者利用。
防禦HTTP報頭追蹤漏洞的方法通常禁用HTTP TRACE方法。
五、Struts2遠程命令執行漏洞
ApacheStruts是一款建立Java web應用程序的開放源代碼架構。Apache Struts存在一個輸入過濾錯誤,如果遇到轉換錯誤可被利用注入和執行任意Java代碼。
網站存在遠程代碼執行漏洞的大部分原因是由於網站採用了Apache Struts Xwork作為網站應用框架,由於該軟體存在遠程代碼執高危漏洞,導致網站面臨安全風險。CNVD處置過諸多此類漏洞,例如:「GPS車載衛星定位系統」網站存在遠程命令執行漏洞(CNVD-2012-13934);Aspcms留言本遠程代碼執行漏洞(CNVD-2012-11590)等。
修復此類漏洞,只需到Apache官網升級Apache Struts到最新版本:http://struts.apache.org
六、文件上傳漏洞
文件上傳漏洞通常由於網頁代碼中的文件上傳路徑變數過濾不嚴造成的,如果文件上傳功能實現代碼沒有嚴格限制用戶上傳的文件後綴以及文件類型,攻擊者可通過 Web 訪問的目錄上傳任意文件,包括網站後門文件(webshell),進而遠程式控制制網站伺服器。
因此,在開發網站及應用程序過程中,需嚴格限制和校驗上傳的文件,禁止上傳惡意代碼的文件。同時限制相關目錄的執行許可權,防範webshell攻擊。
七、私有IP地址泄露漏洞
IP地址是網路用戶的重要標示,是攻擊者進行攻擊前需要了解的。獲取的方法較多,攻擊者也會因不同的網路情況採取不同的方法,如:在區域網內使用Ping指令,Ping對方在網路中的名稱而獲得IP;在Internet上使用IP版的QQ直接顯示。最有效的辦法是截獲並分析對方的網路數據包。攻擊者可以找到並直接通過軟體解析截獲後的數據包的IP包頭信息,再根據這些信息了解具體的IP。
針對最有效的「數據包分析方法」而言,就可以安裝能夠自動去掉發送數據包包頭IP信息的一些軟體。不過使用這些軟體有些缺點,譬如:耗費資源嚴重,降低計算機性能;訪問一些論壇或者網站時會受影響;不適合網吧用戶使用等等。現在的個人用戶採用最普及隱藏IP的方法應該是使用代理,由於使用代理伺服器後,「轉址服務」會對發送出去的數據包有所修改,致使「數據包分析」的方法失效。一些容易泄漏用戶IP的網路軟體(QQ、MSN、IE等)都支持使用代理方式連接Internet,特別是QQ使用「ezProxy」等代理軟體連接後,IP版的QQ都無法顯示該IP地址。雖然代理可以有效地隱藏用戶IP,但攻擊者亦可以繞過代理,查找到對方的真實IP地址,用戶在何種情況下使用何種方法隱藏IP,也要因情況而論。
八、未加密登錄請求
由於Web配置不安全,登陸請求把諸如用戶名和密碼等敏感欄位未加密進行傳輸,攻擊者可以竊聽網路以劫獲這些敏感信息。建議進行例如SSH等的加密後再傳輸。
九、敏感信息泄露漏洞
SQL注入、XSS、目錄遍歷、弱口令等均可導致敏感信息泄露,攻擊者可以通過漏洞獲得敏感信息。針對不同成因,防禦方式不同
十、CSRF
http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
Web應用是指採用B/S架構、通過HTTP/HTTPS協議提供服務的統稱。隨著互聯網的廣泛使用,Web應用已經融入到日常生活中的各個方面:網上購物、網路銀行應用、證券股票交易、政府行政審批等等。在這些Web訪問中,大多數應用不是靜態的網頁瀏覽,而是涉及到伺服器側的動態處理。此時,如果Java、PHP、ASP等程序語言的編程人員的安全意識不足,對程序參數輸入等檢查不嚴格等,會導致Web應用安全問題層出不窮。
本文根據當前Web應用的安全情況,列舉了Web應用程序常見的攻擊原理及危害,並給出如何避免遭受Web攻擊的建議。
Web應用漏洞原理
Web應用攻擊是攻擊者通過瀏覽器或攻擊工具,在URL或者其它輸入區域(如表單等),向Web伺服器發送特殊請求,從中發現Web應用程序存在的漏洞,從而進一步操縱和控制網站,查看、修改未授權的信息。
1.1 Web應用的漏洞分類
1、信息泄露漏洞
信息泄露漏洞是由於Web伺服器或應用程序沒有正確處理一些特殊請求,泄露Web伺服器的一些敏感信息,如用戶名、密碼、源代碼、伺服器信息、配置信息等。
造成信息泄露主要有以下三種原因:
–Web伺服器配置存在問題,導致一些系統文件或者配置文件暴露在互聯網中;
–Web伺服器本身存在漏洞,在瀏覽器中輸入一些特殊的字元,可以訪問未授權的文件或者動態腳本文件源碼;
–Web網站的程序編寫存在問題,對用戶提交請求沒有進行適當的過濾,直接使用用戶提交上來的數據。
2、目錄遍歷漏洞
目錄遍歷漏洞是攻擊者向Web伺服器發送請求,通過在URL中或在有特殊意義的目錄中附加「../」、或者附加「../」的一些變形(如「..\」或「..//」甚至其編碼),導致攻擊者能夠訪問未授權的目錄,以及在Web伺服器的根目錄以外執行命令。
3、命令執行漏洞
命令執行漏洞是通過URL發起請求,在Web伺服器端執行未授權的命令,獲取系統信息,篡改系統配置,控制整個系統,使系統癱瘓等。
命令執行漏洞主要有兩種情況:
–通過目錄遍歷漏洞,訪問系統文件夾,執行指定的系統命令;
–攻擊者提交特殊的字元或者命令,Web程序沒有進行檢測或者繞過Web應用程序過濾,把用戶提交的請求作為指令進行解析,導致執行任意命令。
4、文件包含漏洞
文件包含漏洞是由攻擊者向Web伺服器發送請求時,在URL添加非法參數,Web伺服器端程序變數過濾不嚴,把非法的文件名作為參數處理。這些非法的文件名可以是伺服器本地的某個文件,也可以是遠端的某個惡意文件。由於這種漏洞是由PHP變數過濾不嚴導致的,所以只有基於PHP開發的Web應用程序才有可能存在文件包含漏洞。
5、SQL注入漏洞
SQL注入漏洞是由於Web應用程序沒有對用戶輸入數據的合法性進行判斷,攻擊者通過Web頁面的輸入區域(如URL、表單等) ,用精心構造的SQL語句插入特殊字元和指令,通過和資料庫交互獲得私密信息或者篡改資料庫信息。SQL注入攻擊在Web攻擊中非常流行,攻擊者可以利用SQL注入漏洞獲得管理員許可權,在網頁上加掛木馬和各種惡意程序,盜取企業和用戶敏感信息。
6、跨站腳本漏洞
跨站腳本漏洞是因為Web應用程序時沒有對用戶提交的語句和變數進行過濾或限制,攻擊者通過Web頁面的輸入區域向資料庫或HTML頁面中提交惡意代碼,當用戶打開有惡意代碼的鏈接或頁面時,惡意代碼通過瀏覽器自動執行,從而達到攻擊的目的。跨站腳本漏洞危害很大,尤其是目前被廣泛使用的網路銀行,通過跨站腳本漏洞攻擊者可以冒充受害者訪問用戶重要賬戶,盜竊企業重要信息。
根據前期各個漏洞研究機構的調查顯示,SQL注入漏洞和跨站腳本漏洞的普遍程度排名前兩位,造成的危害也更加巨大。
1.2 SQL注入攻擊原理
SQL注入攻擊是通過構造巧妙的SQL語句,同網頁提交的內容結合起來進行注入攻擊。比較常用的手段有使用注釋符號、恆等式(如1=1)、使用union語句進行聯合查詢、使用insert或update語句插入或修改數據等,此外還可以利用一些內置函數輔助攻擊。
通過SQL注入漏洞攻擊網站的步驟一般如下:
第一步:探測網站是否存在SQL注入漏洞。
第二步:探測後台資料庫的類型。
第三步:根據後台資料庫的類型,探測系統表的信息。
第四步:探測存在的表信息。
第五步:探測表中存在的列信息。
第六步:探測表中的數據信息。
1.3 跨站腳本攻擊原理
跨站腳本攻擊的目的是盜走客戶端敏感信息,冒充受害者訪問用戶的重要賬戶。跨站腳本攻擊主要有以下三種形式:
1、本地跨站腳本攻擊
B給A發送一個惡意構造的Web URL,A點擊查看了這個URL,並將該頁面保存到本地硬碟(或B構造的網頁中存在這樣的功能)。A在本地運行該網頁,網頁中嵌入的惡意腳本可以A電腦上執行A持有的許可權下的所有命令。
2、反射跨站腳本攻擊
A經常瀏覽某個網站,此網站為B所擁有。A使用用戶名/密碼登錄B網站,B網站存儲下A的敏感信息(如銀行帳戶信息等)。C發現B的站點包含反射跨站腳本漏洞,編寫一個利用漏洞的URL,域名為B網站,在URL後面嵌入了惡意腳本(如獲取A的cookie文件),並通過郵件或社會工程學等方式欺騙A訪問存在惡意的URL。當A使用C提供的URL訪問B網站時,由於B網站存在反射跨站腳本漏洞,嵌入到URL中的惡意腳本通過Web伺服器返回給A,並在A瀏覽器中執行,A的敏感信息在完全不知情的情況下將發送給了C。
3、持久跨站腳本攻擊
B擁有一個Web站點,該站點允許用戶發布和瀏覽已發布的信息。C注意到B的站點具有持久跨站腳本漏洞,C發布一個熱點信息,吸引用戶閱讀。A一旦瀏覽該信息,其會話cookies或者其它信息將被C盜走。持久性跨站腳本攻擊一般出現在論壇、留言簿等網頁,攻擊者通過留言,將攻擊數據寫入伺服器資料庫中,瀏覽該留言的用戶的信息都會被泄漏。
Web應用漏洞的防禦實現
對於以上常見的Web應用漏洞漏洞,可以從如下幾個方面入手進行防禦:
1)對 Web應用開發者而言
大部分Web應用常見漏洞,都是在Web應用開發中,開發者沒有對用戶輸入的參數進行檢測或者檢測不嚴格造成的。所以,Web應用開發者應該樹立很強的安全意識,開發中編寫安全代碼;對用戶提交的URL、查詢關鍵字、HTTP頭、POST數據等進行嚴格的檢測和限制,只接受一定長度范圍內、採用適當格式及編碼的字元,阻塞、過濾或者忽略其它的任何字元。通過編寫安全的Web應用代碼,可以消除絕大部分的Web應用安全問題。
2) 對Web網站管理員而言
作為負責網站日常維護管理工作Web管理員,應該及時跟蹤並安裝最新的、支撐Web網站運行的各種軟體的安全補丁,確保攻擊者無法通過軟體漏洞對網站進行攻擊。
除了軟體本身的漏洞外,Web伺服器、資料庫等不正確的配置也可能導致Web應用安全問題。Web網站管理員應該對網站各種軟體配置進行仔細檢測,降低安全問題的出現可能。
此外,Web管理員還應該定期審計Web伺服器日誌,檢測是否存在異常訪問,及早發現潛在的安全問題。
3)使用網路防攻擊設備
前兩種為事前預防方式,是比較理想化的情況。然而在現實中,Web應用系統的漏洞還是不可避免的存在:部分Web網站已經存在大量的安全漏洞,而Web開發者和網站管理員並沒有意識到或發現這些安全漏洞。由於Web應用是採用HTTP協議,普通的防火牆設備無法對Web類攻擊進行防禦,因此可以使用IPS入侵防禦設備來實現安全防護。
H3C IPS Web攻擊防禦
H3C IPS入侵防禦設備有一套完整的Web攻擊防禦框架,能夠及時發現各種已經暴露的和潛在的Web攻擊。下圖為對於Web攻擊的總體防禦框架。
圖1:Web攻擊防禦框架,參見:http://blog.csdn.net/moshenglv/article/details/53439579
H3C IPS採用基於特徵識別的方式識別並阻斷各種攻擊。IPS設備有一個完整的特徵庫,並可定期以手工與自動的方式對特徵庫進行升級。當網路流量進入IPS後,IPS首先對報文進行預處理,檢測報文是否正確,即滿足協議定義要求,沒有錯誤欄位;如果報文正確,則進入深度檢測引擎。該引擎是IPS檢測的核心模塊,對通過IPS設備的Web流量進行深層次的分析,並與IPS攻擊庫中的特徵進行匹配,檢測Web流量是否存在異常;如果發現流量匹配了攻擊特徵,IPS則阻斷網路流量並上報日誌;否則,網路流量順利通過。
此Web攻擊防禦框架有如下幾個特點:
1) 構造完整的Web攻擊檢測模型,准確識別各種Web攻擊
針對Web攻擊的特點,考慮到各種Web攻擊的原理和形態,在不同漏洞模型之上開發出通用的、層次化的Web攻擊檢測模型,並融合到特徵庫中。這些模型抽象出Web攻擊的一般形態,對主流的攻擊能夠准確識別,使得模型通用化。
2) 檢測方式靈活,可以准確識別變形的Web攻擊
在實際攻擊中,攻擊者為了逃避防攻擊設備的檢測,經常對Web攻擊進行變形,如採用URL編碼技術、修改參數等。H3C根據Web應用漏洞發生的原理、攻擊方式和攻擊目標,對攻擊特徵進行了擴展。即使攻擊者修改攻擊參數、格式、語句等內容,相同漏洞原理下各種變形的攻擊同樣能夠被有效阻斷。這使得IPS的防禦范圍擴大,防禦的靈活性也顯著增強,極大的減少了漏報情況的出現。
3) 確保對最新漏洞及技術的跟蹤,有效阻止最新的攻擊
隨著Web攻擊出現的頻率日益增高,其危害有逐步擴展的趨勢。這對IPS設備在防禦的深度和廣度上提出了更高的要求,不僅要能夠防禦已有的Web攻擊,更要有效的阻止最新出現的、未公布的攻擊。目前,H3C已經建立起一套完整的攻防試驗環境,可以及時發現潛在Web安全漏洞。同時還在繼續跟蹤最新的Web攻擊技術和工具,及時更新Web攻擊的特徵庫,第一時間發布最新的Web漏洞應對措施,確保用戶的網路不受到攻擊。
4) 保證正常業務的高效運行
檢測引擎是IPS整個設備運行的關鍵,該引擎使用了高效、准確的檢測演算法,對通過設備的流量進行深層次的分析,並通過和攻擊特徵進行匹配,檢測流量是否存在異常。如果流量沒有匹配到攻擊特徵,則允許流量通過,不會妨礙正常的網路業務,在准確防禦的同時保證了正常業務的高效運行。
結束語
互聯網和Web技術廣泛使用,使Web應用安全所面臨的挑戰日益嚴峻,Web系統時時刻刻都在遭受各種攻擊的威脅,在這種情況下,需要制定一個完整的Web攻擊防禦解決方案,通過安全的Web應用程序、Web伺服器軟體、Web防攻擊設備共同配合,確保整個網站的安全。任何一個簡單的漏洞、疏忽都會造成整個網站受到攻擊,造成巨大損失。此外 ,Web攻擊防禦是一個長期持續的工作,隨著Web技術的發展和更新,Web攻擊手段也不斷發展,針對這些最新的安全威脅,需要及時調整Web安全防護策略,確保Web攻擊防禦的主動性,使Web網站在一個安全的環境中為企業和客戶服務。
原文鏈接:
F. 什麼是 Web安全Web應用漏洞的防禦實現
什麼是 Web安全?
Web安全是計算機術語。隨著Web2.0、社交網路等一系列新型的互聯網產品誕生問世,基於Web環境的互聯網應用越來越廣泛,企業信息化的過程中各種應用都架設在Web平台上,Web業務的迅速發展也引起黑客們的窺探,接踵而至的就是Web安全威脅的凸顯。
黑客利用網站操作系統的漏洞和Web服務程序的SQL注入漏洞等得到Web伺服器的控制許可權,輕則篡改網頁內容,重則竊取重要內部數據,更為嚴重的則是在網頁中植入惡意代碼,使得網站訪問者受到侵害。
Web安全的現狀及原因
目前,很多業務都依賴於互聯網,無論是網上銀行、網上購物、還是網路 游戲 等,惡意攻擊者們出於各種不良目的,對Web 伺服器進行攻擊,想方設法通過各種手段獲取他人的個人賬戶信息謀取利益。正是如此,Web業務平台最容易遭受攻擊。
而針對Web伺服器的攻擊也是五花八門,常見的有掛馬、SQL注入、緩沖區溢出、嗅探、利用IIS等針對Webserver漏洞進行攻擊。
一方面,由於TCP/IP的設計是沒有考慮安全問題的,網路上傳輸的數據是沒有任何安全防護。攻擊者們可利用系統漏洞造成系統進程緩沖區溢出,攻擊者可能獲得或者提升自己在有漏洞的系統上的用戶許可權來運行任意程序,甚至安裝和運行惡意代碼,竊取機密數據。
而應用層面的軟體在開發過程中也沒有過多考慮到安全的問題,這使得程序本身存在很多漏洞,諸如緩沖區溢出、SQL注入等等流行的應用層攻擊,這些都屬於在軟體研發過程中疏忽了對安全的考慮所致。
另一方面,個人用戶由於好奇心,被攻擊者利用木馬或病毒程序進行攻擊,攻擊者將木馬或病毒程序捆綁在一些誘人的圖片、音視頻或免費軟體等文件中,然後將這些文件置於某些網站當中,再引誘用戶去單擊或下載運行,或通過電子郵件附件和QQ、MSN等即時聊天軟體,將這些捆綁了木馬或病毒的文件發送給用戶,讓用戶打開或運行這些文件。
Web安全的三個細分
Web安全主要分為:1、保護伺服器及其數據的安全。2、保護伺服器和用戶之間傳遞的信息的安全。3、保護Web應用客戶端及其環境安全這三個方面。
Web應用防火牆
Web應用安全問題本質上源於軟體質量問題。但Web應用相較傳統的軟體,具有其獨特性。Web應用往往是某個機構所獨有的應用,對其存在的漏洞,已知的通用漏洞簽名缺乏有效性;
需要頻繁地變更以滿足業務目標,從而使得很難維持有序的開發周期;需要全面考慮客戶端與服務端的復雜交互場景,而往往很多開發者沒有很好地理解業務流程;人們通常認為Web開發比較簡單,缺乏經驗的開發者也可以勝任。
Web應用安全,理想情況下應該在軟體開發生命周期遵循安全編碼原則,並在各階段採取相應的安全措施。
然而,多數網站的實際情況是:大量早期開發的Web應用,由於 歷史 原因,都存在不同程度的安全問題。對於這些已上線、正提供生產的Web應用,由於其定製化特點決定了沒有通用補丁可用,而整改代碼因代價過大變得較難施行或者需要較長的整改周期。
這種現狀,專業的Web安全防護工具是一種合理的選擇。WEB應用防火牆(以下簡稱WAF)正是這類專業工具,提供了一種安全運維控制手段:基於對HTTP/HTTPS流量的雙向分析,為Web應用提供實時的防護。
Web應用漏洞的防禦實現
對於常見的Web應用漏洞,應該從3個方面入手進行防禦:
1、對 Web應用開發者而言
大部分Web應用常見漏洞都是在Web應用開發中,由於開發者沒有對用戶輸入的參數進行檢測或者檢測不嚴格造成的。所以,Web應用開發者應該樹立很強的安全意識,開發中編寫安全代碼;
對用戶提交的URL、查詢關鍵字、HTTP頭、POST數據等進行嚴格的檢測和限制,只接受一定長度范圍內、採用適當格式及編碼的字元,阻塞、過濾或者忽略其它的任何字元。通過編寫安全的Web應用代碼,可以消除絕大部分的Web應用安全問題。
2、對Web網站管理員而言
作為負責網站日常維護管理工作Web管理員,應該及時跟蹤並安裝最新的、支撐Web網站運行的各種軟體的安全補丁,確保攻擊者無法通過軟體漏洞對網站進行攻擊。
除了軟體本身的漏洞外,Web伺服器、資料庫等不正確的配置也可能導致Web應用安全問題。Web網站管理員應該對網站各種軟體配置進行仔細檢測,降低安全問題的出現可能。
此外,Web管理員還應該定期審計Web伺服器日誌,檢測是否存在異常訪問,及早發現潛在的安全問題。
3、使用網路防攻擊設備
前兩種都是預防方式,相對來說很理想化。在現實中,Web應用系統的漏洞仍舊不可避免:部分Web網站已經存在大量的安全漏洞,而Web開發者和網站管理員並沒有意識到或發現這些安全漏洞。
由於Web應用是採用HTTP協議,普通的防火牆設備無法對Web類攻擊進行防禦,因此需要使用入侵防禦設備來實現安全防護。
G. web日誌分析工具 怎麼確認被攻擊
Apache 伺服器
預安裝在Kali Linux
可以用以下命令開啟:
service apache2 start
MySQL
預安裝在Kali Linux
可以用以下命令開啟:
service mysql start
使用PHP-MySQL創建一個有漏洞的web應用
我使用PHP開發了一個有漏洞的web應用並且把它放在上面提到的 Apache-MySQL裡面。
上述設置完成後,我用了一些Kali Linux中的自動工具(ZAP、w3af)掃描這個有漏洞的應用的URL。
現在讓我們來看看分析日誌中的不同情況。
0x02 Apache服務中的日誌記錄
Debian系統上Apache伺服器日誌的默認位置為:/var/log/apache2/access.log
日誌記錄只是在伺服器上存儲日誌。我還需要分析日誌以得出正確結果。在接下來的一節里,我們將看到我們如何分析Apache伺服器的訪問日誌以找出web站點上是否有攻擊嘗試。
分析日誌
手動檢查
在日誌量較小的情況下,或者如果我們查找一個指定關鍵詞,可以使用像grep表達式這樣的工具觀察日誌。
在下圖中,我們在URL中試圖搜尋所有關鍵詞為「union」的請求。
從上圖中,我們可以看到URL中的「union select 1,2,3,4,5」請求。很明顯,ip地址為 192.168.56.105的某人嘗試了SQL注入。 類似地,當我們有自己的關鍵詞時可以搜索特殊的關鍵詞。
在下圖中,我們正在搜索試圖讀取「/etc/passwd」的請求,很明顯是本地文件包含嘗試。
如上面的截圖所示,我們有許多本地文件包含的嘗試,且這些請求發送自ip地址 127.0.0.1。
很多時候,能輕易通過日誌看出是否是自動化掃描器產生的。
舉例來說, IBM appscan在許多攻擊payload中使用「appscan」這個詞。所以,在日誌中查看這樣的請求,我們基本就可以判斷有人在使用appscan掃描網站。
Microsoft Excel也是一個打開日誌文件和分析日誌的不錯的工具。我們可以通過指定「空格」為分隔符以用excel打開日誌文件。
當我們手頭沒有日誌分析工具時,這個也挺好用的。
除了這些關鍵詞,在分析期間要了解HTTP狀態代碼的基礎知識。以下是關於HTTP狀態代碼的高級信息的表格。
0x03 Web shells
webshell是網站/伺服器的另一個問題。webshell可以已web server許可權控制伺服器。
在一些情況下,我們可以使用webshell來訪問所有放在相同伺服器上的其他站點。
以下截圖顯示了Microsoft Excel 中開啟相同的access.log文件。
我們清楚地看到有一個叫「b374k.php」的文件被訪問了。「b374k」是一個流行的webshell,因此這個文件是很可疑的。
查看相應代碼「200」,本行表明有人上傳了一個webshell並訪問了它。
在許多情況下,攻擊者重命名webshell的名字以避免懷疑。我們必須變得聰明點,看看被訪問的文件是否是常規文件或者是否他們看起來不太一樣。我們可以更進一步,如果任何文件看起來可疑的話,還可以查看文件類型和時間戳。
One single quote for the win
SQL注入是web應用中最常見的漏洞之一。大多數學習web應用安全的人是從學習SQL注入開始的。
識別一個傳統的SQL注入很容易,給URL參數添加一個單引號看看是否報錯。
任何我們傳遞給伺服器的東西都會被記錄,並且可以朔源。
以下截圖顯示了日誌當中記錄了有對參數user傳入單引號測試是否有SQL注入的行為。
%27是單引號的URL編碼。
出於管理目的,我們還可以運行查詢監視來查看資料庫中的哪個請求被執行了。
如果我們觀察以上圖片,傳遞一個單引號給參數「user」的SQL語句被執行了。
0x04 使用自動化工具分析
當存在大量日誌時。手動檢查就會變得困難。在這種情景下,除了一些手動檢查之外我們可以使用自動化工具。
雖然有許多高效的商業工具,但是我要向你們介紹一款被稱為「Scalp」的免費工具。
據他們的官方鏈接所說,Scalp是用於Apache伺服器,旨在查找安全問題的日誌分析器。主要理念是瀏覽大量日誌文件並通過從HTTP/GET中提取可能的攻擊。
Scalp可以從以下鏈接下載:
https://code.google.com/p/apache-scalp/
Scalp是python腳本,所以要求我們的機器中安裝python。
以下圖片顯示該工具的幫助。
如我們在上圖所見,我們需要使用標志-l來提供要分析的日誌文件。
同時,我們需要提供使用標志-f提供一個過濾文件讓Scalp在access.log文件中識別可能的攻擊。
我們可以使用PHPIDS項目中的過濾器來檢測任何惡意的嘗試。
該文件名為「default_filter.xml 」,可以從以下鏈接中下載:
https://github.com/PHPIDS/PHPIDS/blob/master/lib/IDS/default_filter.xml
以下代碼塊是取自上面鏈接的一部分。
1
2
3
4
5
6
7
8
9
10
11
<filter>
<id>12</id>
<rule><![CDATA[(?:etc\/\W*passwd)]]></rule>
<description>Detects etc/passwd inclusion attempts</description>
<tags>
<tag>dt</tag>
<tag>id</tag>
<tag>lfi</tag>
</tags>
<impact>5</impact>
</filter>
它是使用XML標簽定義的規則集來檢測不同的攻擊測試。以上代碼片段是檢測文件包含攻擊嘗試的一個示例。
下載此文件之後,把它放入Scalp的同一文件夾下。
運行以下命令來使用Scalp分析日誌。
1
python scalp-0.4.py –l /var/log/apache2/access.log –f filter.xml –o output –html
「output」是報告保存的目錄。如果不存在的話,由Scalp自動創建。-html是用來生成HTML格式的報告。 如我們在上圖看到的那樣,Scalp結果表明它分析了4001行,超過4024並發現了296個攻擊模式。
運行上述命令後在輸出目錄內生成報告。我們可以在瀏覽器內打開它並查看結果。 下面截圖顯示的輸出顯示了目錄遍歷攻擊嘗試的一小部分。
MySQL中的日誌記錄
本節論述了資料庫中的攻擊分析和監視它們的方法。
第一步是查看設置了什麼變數。我們可以使用「show variables;」完成,如下所示。
接下來顯示了上述命令的輸出。
如我們在上圖中看到的,日誌記錄已開啟。該值默認為OFF。
這里另一個重要的記錄是 「log_output」,這是說我們正在把結果寫入到文件中。另外,我們也可以用表。
我們可以看見「log_slow_queries」為ON。默認值為OFF。
所有這些選項都有詳細解釋且可以在下面提供的MySQL文檔鏈接里直接閱讀:
MySQL的查詢監控
請求日誌記錄從客戶端處收到並執行的語句。默認記錄是不開啟的,因為比較損耗性能。
我們可以從MySQL終端中開啟它們或者可以編輯MySQL配置文件,如下圖所示。
我正在使用VIM編輯器打開位於/etc/mysql目錄內的「my.cnf」文件。
如果我們向下滾動,可以看見日誌正被寫入一個稱為「mysql.log」的文件內。
我們還能看到記錄「log_slow_queries」 ,是記錄SQL語句執行花了很長時間的日誌。
現在一切就緒。如果有人用惡意查詢資料庫,我們可以在這些日誌中觀察到。如下所示:
上圖顯示了查詢命中了名為「webservice」的資料庫並試圖使用SQL注入繞過認證。
H. 關於WebGL的基本現狀
WebGL(全寫Web Graphics Library)是一種3D繪圖協議,這種繪圖技術標准允許把JavaScript和OpenGL ES 2.0結合在一起,通過增加OpenGL ES 2.0的一個JavaScript綁定,WebGL可以為HTML5 Canvas提供硬體3D加速渲染,這樣Web開發人員就可以藉助系統顯卡來在瀏覽器里更流暢地展示3D場景和模型了,還能創建復雜的導航和數據視覺化。
顯然,WebGL技術標准免去了開發網頁專用渲染插件的麻煩,可被用於創建具有復雜3D結構的網站頁面,甚至可以用來設計3D網頁游戲等。
WebGL 的最大優勢就是能通過網頁做到快速傳播,用酷炫的圖形體驗達到營銷宣傳等目的。
WebGL基本現狀
WebGL 1.0 基本有98%的設備支持率,而 WebGL 2.0 有大概49%的設備支持率,並逐步在上升。
其中 WebGL 2.0 的重要特性有
WebAssembly方面:許多 C3D 引擎都開始涉及這塊領域。比如 oryol,一個輕量級的 C 框架。其中物理模擬的部分通過 Webassembly 的方式去做,在 web 上做了個布料模擬的 demo。當然 Unity 和 Unreal 也都推出了自己基於 Webassembly 的 demo:
Unity:兩個 demo,分別為:tank,webgl_linear。
Unreal:EpicZenGarden。
研發描述:在 WebGL 實現 OpenGL ES 3.1 的功能,主要是 Compute Shader!
研發狀態:
對於 OpenGL 和 D3D 後端 Compute Shader 都基本完成,通過在 Chrome 中設置 flag enable-webgl2-compute-context 可以使用。
基於 Compute Shader 的 Tensorflow.js 基本可以運行。
研發計劃:
在今年末實現所有 Compute Shader 的特性。
在 Emscripten 中支持 WebGL 2.0。
將 Native dEQP ES 3.1 的樣例移植到Web端。
根據需求實現 OpenGL ES 3.1的其他特性
WebGL 研發中的新特性
英特爾的先進網路科技團隊對 WebGL 的生態系統做出了許多貢獻,因此新特性部分主要由他們來展示。
WebGL 2.0 Compute
常見的Web開發軟體
基於 WEBGL 的 3D:three.js , osgjs
其中 three.js 最火爆,是純JS包osg 還有對應的 C++ 跟 .NET 包, OSGJS 並不是 OSG 的重點;
專注於 WEB 3D GIS 的 WEBGL:osmstreet、openwebglobe、readymap這個是做 3D 城市規劃的;
基於 IE ACTIVEX OCX 的 3D:unity3D , 很火, 做WEB游戲,做 anroid 游戲, IE CHORME 都可以google earth 學習成本低;
基於 AS3 的 3D:Away3d、FLASH 正在走下坡;
下方
運營:weikashouji
I. web伺服器可能會存在那些問題應如何防範
(1)伺服器向公眾提供了不應該提供的服務。
(2)伺服器把本應私有的數據放到了可公開訪問的區域。用戶Web應用需要保存一些私有的、不能從Web訪問的數據,則根本無法找到滿足要求的位置。
(3)伺服器信賴了來自不可信賴數據源的數據。常見的安全問題是CGI程序或PHP腳本的質量低下,它們信任了來源不可靠的參數,未經嚴格的檢查就立即使用CGI參數。
防範措施:
(1)提供不應該提供的服務的防範措施:只開放必需的埠,關閉其餘的埠,關閉在自己的系統上運行那麼多的服務,而這些服務原本無需在正式提供Web服務的機器上運行,或者這些服務原本無需面向公眾開放。對於所有向公眾開放的服務,應該密切關注其程序的最新版本和安全信息,應該做好一旦發現與這些程序有關的安全問題就立即升級軟體的准備。
(2)伺服器公用目錄下的私有數據安全性的防範措施:設置Web伺服器,使它既提供私有數據存儲又提供公用頁面目錄。
(3)數據源的可靠性防範措施:通常,來自外面的數據(比如表單變數的數據)應該先傳入檢驗其合法性的函數。只有當檢驗函數表示表單提供的數據是安全的,才可以把表單數據復制到會話變數。Web應用應該把這種檢查集中到一起進行,應用的所有其餘部分永遠不應該直接接觸表單變數,而是應該使用經過檢查且確認安全的會話數據。
J. 基於web的安全防範措施的研究與應用
一、計算機網路攻擊的常見手法
互聯網發展至今,除了它表面的繁榮外,也出現了一些不良現象,其中黑客攻擊是最令廣大網民頭痛的事情,它是計算機網路安全的主要威脅。下面著重分析黑客進行網路攻擊的幾種常見手法及其防範措施。
(一)利用網路系統漏洞進行攻擊
許多網路系統都存在著這樣那樣的漏洞,這些漏洞有可能是系統本身所有的,如WindowsNT、UNIX等都有數量不等的漏洞,也有可能是由於網管的疏忽而造成的。黑客利用這些漏洞就能完成密碼探測、系統入侵等攻擊。
對於系統本身的漏洞,可以安裝軟體補丁;另外網管也需要仔細工作,盡量避免因疏忽而使他人有機可乘。
(二)通過電子郵件進行攻擊
電子郵件是互聯網上運用得十分廣泛的一種通訊方式。黑客可以使用一些郵件炸彈軟體或CGI程序向目的郵箱發送大量內容重復、無用的垃圾郵件,從而使目的郵箱被撐爆而無法使用。當垃圾郵件的發送流量特別大時,還有可能造成郵件系統對於正常的工作反映緩慢,甚至癱瘓,這一點和後面要講到的「拒絕服務攻擊(DDoS)比較相似。
對於遭受此類攻擊的郵箱,可以使用一些垃圾郵件清除軟體來解決,其中常見的有SpamEater、Spamkiller等,Outlook等收信軟體同樣也能達到此目的。
(三)解密攻擊
在互聯網上,使用密碼是最常見並且最重要的安全保護方法,用戶時時刻刻都需要輸入密碼進行身份校驗。而現在的密碼保護手段大都認密碼不認人,只要有密碼,系統就會認為你是經過授權的正常用戶,因此,取得密碼也是黑客進行攻擊的一重要手法。取得密碼也還有好幾種方法,一種是對網路上的數據進行監聽。因為系統在進行密碼校驗時,用戶輸入的密碼需要從用戶端傳送到伺服器端,而黑客就能在兩端之間進行數據監聽。但一般系統在傳送密碼時都進行了加密處理,即黑客所得到的數據中不會存在明文的密碼,這給黑客進行破解又提了一道難題。這種手法一般運用於區域網,一旦成功攻擊者將會得到很大的操作權益。另一種解密方法就是使用窮舉法對已知用戶名的密碼進行暴力解密。這種解密軟體對嘗試所有可能字元所組成的密碼,但這項工作十分地費時,不過如果用戶的密碼設置得比較簡單,如「12345」、「ABC」等那有可能只需一眨眼的功夫就可搞定。
為了防止受到這種攻擊的危害,用戶在進行密碼設置時一定要將其設置得復雜,也可使用多層密碼,或者變換思路使用中文密碼,並且不要以自己的生日和電話甚至用戶名作為密碼,因為一些密碼破解軟體可以讓破解者輸入與被破解用戶相關的信息,如生日等,然後對這些數據構成的密碼進行優先嘗試。另外應該經常更換密碼,這樣使其被破解的可能性又下降了不少。
(四)後門軟體攻擊
後門軟體攻擊是互聯網上比較多的一種攻擊手法。Back Orifice2000、冰河等都是比較著名的特洛伊木馬,它們可以非法地取得用戶電腦的超級用戶級權利,可以對其進行完全的控制,除了可以進行文件操作外,同時也可以進行對方桌面抓圖、取得密碼等操作。這些後門軟體分為伺服器端和用戶端,當黑客進行攻擊時,會使用用戶端程序登陸上已安裝好伺服器端程序的電腦,這些伺服器端程序都比較小,一般會隨附帶於某些軟體上。有可能當用戶下載了一個小游戲並運行時,後門軟體的伺服器端就安裝完成了,而且大部分後門軟體的重生能力比較強,給用戶進行清除造成一定的麻煩。
當在網上下載數據時,一定要在其運行之前進行病毒掃描,並使用一定的反編譯軟體,查看來源數據是否有其他可疑的應用程序,從而杜絕這些後門軟體。
(五)拒絕服務攻擊
互聯網上許多大網站都遭受過此類攻擊。實施拒絕服務攻擊(DDoS)的難度比較小,但它的破壞性卻很大。它的具體手法就是向目的伺服器發送大量的數據包,幾乎佔取該伺服器所有的網路寬頻,從而使其無法對正常的服務請求進行處理,而導致網站無法進入、網站響應速度大大降低或伺服器癱瘓。現在常見的蠕蟲病毒或與其同類的病毒都可以對伺服器進行拒絕服務攻擊的進攻。它們的繁殖能力極強,一般通過Microsoft的Outlook軟體向眾多郵箱發出帶有病毒的郵件,而使郵件伺服器無法承擔如此龐大的數據處理量而癱瘓。
對於個人上網用戶而言,也有可能遭到大量數據包的攻擊使其無法進行正常的網路操作,所以大家在上網時一定要安裝好防火牆軟體,同時也可以安裝一些可以隱藏IP地址的程序,怎樣能大大降低受到攻擊的可能性。
二、計算機網路安全的防火牆技術
計算機網路安全是指利用網路管理控制和技術措施,保證在一個網路環境里,信息數據的保密性、完整性和可使用性受到保護。網路安全防護的根本目的,就是防止計算機網路存儲、傳輸的信息被非法使用、破壞和篡改。防火牆技術正是實現上述目的一種常用的計算機網路安全技術。
(一)防火牆的含義
所謂「防火牆」,是指一種將內部網和公眾訪問網(如Internet)分開的方法,它實際上是一種隔離技術。防火牆是在兩個網路通訊時執行的一種訪問控制尺度,它能允許你「同意」的人和數據進入你的網路,同時將你「不同意」的人和數據拒之門外,最大限度地阻止網路中的黑客來訪問你的網路,防止他們更改、拷貝、毀壞你的重要信息。
(二)防火牆的安全性分析
防火牆對網路的安全起到了一定的保護作用,但並非萬無一失。通過對防火牆的基本原理和實現方式進行分析和研究,作者對防火牆的安全性有如下幾點認識:
1.只有正確選用、合理配置防火牆,才能有效發揮其安全防護作用
防火牆作為網路安全的一種防護手段,有多種實現方式。建立合理的防護系統,配置有效的防火牆應遵循這樣四個基本步驟:
a.風險分析;
b.需求分析;
c.確立安全政策;
d.選擇准確的防護手段,並使之與安全政策保持一致。
然而,多數防火牆的設立沒有或很少進行充分的風險分析和需求分析,而只是根據不很完備的安全政策選擇了一種似乎能「滿足」需要的防火牆,這樣的防火牆能否「防火」還是個問題。
2.應正確評估防火牆的失效狀態
評價防火牆性能如何,及能否起到安全防護作用,不僅要看它工作是否正常,能否阻擋或捕捉到惡意攻擊和非法訪問的蛛絲馬跡,而且要看到一旦防火牆被攻破,它的狀態如何? 按級別來分,它應有這樣四種狀態:
a.未受傷害能夠繼續正常工作;
b.關閉並重新啟動,同時恢復到正常工作狀態;
c.關閉並禁止所有的數據通行;
d. 關閉並允許所有的數據通行。
前兩種狀態比較理想,而第四種最不安全。但是許多防火牆由於沒有條件進行失效狀態測試和驗證,無法確定其失效狀態等級,因此網路必然存在安全隱患。
3.防火牆必須進行動態維護
防火牆安裝和投入使用後,並非萬事大吉。要想充分發揮它的安全防護作用,必須對它進行跟蹤和維護,要與商家保持密切的聯系,時刻注視商家的動態。因為商家一旦發現其產品存在安全漏洞,就會盡快發布補救(Patch) 產品,此時應盡快確認真偽(防止特洛伊木馬等病毒),並對防火牆軟體進行更新。
4.目前很難對防火牆進行測試驗證
防火牆能否起到防護作用,最根本、最有效的證明方法是對其進行測試,甚至站在「黑客」的角度採用各種手段對防火牆進行攻擊。然而具體執行時難度較大,主要原因是:
a.防火牆性能測試目前還是一種很新的技術,尚無正式出版刊物,可用的工具和軟體更是寥寥無幾。據了解目前只有美國ISS公司提供有防火牆性能測試的工具軟體。
b.防火牆測試技術尚不先進,與防火牆設計並非完全吻合,使得測試工作難以達到既定的效果。
c.選擇「誰」進行公正的測試也是一個問題。
可見,防火牆的性能測試決不是一件簡單的事情,但這種測試又相當必要,進而提出這樣一個問題:不進行測試,何以證明防火牆安全?
5.非法攻擊防火牆的基本「招數」
a. IP地址欺騙攻擊。許多防火牆軟體無法識別數據包到底來自哪個網路介面,因此攻擊者無需表明進攻數據包的真正來源,只需偽裝IP地址,取得目標的信任,使其認為來自網路內部即可。IP地址欺騙攻擊正是基於這類防火牆對IP地址缺乏識別和驗證的機制而得成的。
b.破壞防火牆的另一種方式是攻擊與干擾相結合。也就是在攻擊期間使防火牆始終處於繁忙的狀態。防火牆過分的繁忙有時會導致它忘記履行安全防護的職能,處於失效狀態。
c.防火牆也可能被內部攻擊。因為安裝了防火牆後,隨意訪問被嚴格禁止了, 這樣內部人員無法在閑暇的時間通過Telnet瀏覽郵件或使用FTP向外發送信息,個別人會對防火牆不滿進而可能攻擊它、破壞它,期望回到從前的狀態。這里,攻擊的目標常常是防火牆或防火牆運行的操作系統,因此不僅涉及網路安全,還涉及主機安全問題。
(三)防火牆的基本類型
實現防火牆的技術包括四大類:網路級防火牆(也叫包過濾型防火牆)、應用級網關、電路級網關和規則檢查防火牆。
1.網路級防火牆
一般是基於源地址和目的地址、應用或協議以及每個IP包的埠來作出通過與否的判斷。一個路由器便是一個「傳統」的網路級防火牆,大多數的路由器都能通過檢查這些信息來決定是否將所收到的包轉發,但它不能判斷出一個IP包來自何方,去向何處。
先進的網路級防火牆可以判斷這一點,它可以提供內部信息以說明所通過的連接狀態和一些數據流的內容,把判斷的信息同規則表進行比較,在規則表中定義了各種規則來表明是否同意或拒絕包的通過。包過濾防火牆檢查每一條規則直至發現包中的信息與某規則相符。如果沒有一條規則能符合,防火牆就會使用默認規則,一般情況下,默認規則就是要求防火牆丟棄該包。其次,通過定義基於TCP或UDP數據包的埠號,防火牆能夠判斷是否允許建立特定的連接,如Telnet、FTP連接。
下面是某一網路級防火牆的訪問控制規則:
(1)允許網路123.1.0使用FTP(21口)訪問主機150.0.0.1;
(2)允許IP地址為202.103.1.18和202.103.1.14的用戶Telnet (23口)到主機150.0.0.2上;
(3)允許任何地址的E-mail(25口)進入主機150.0.0.3;
(4)允許任何WWW數據(80口)通過;
(5)不允許其他數據包進入。
網路級防火牆簡潔、速度快、費用低,並且對用戶透明,但是對網路的保護很有限,因為它只檢查地址和埠,對網路更高協議層的信息無理解能力。
2.規則檢查防火牆
該防火牆結合了包過濾防火牆、電路級網關和應用級網關的特點。它同包過濾防火牆一樣, 規則檢查防火牆能夠在OSI網路層上通過IP地址和埠號,過濾進出的數據包。它也象電路級網關一樣,能夠檢查SYN和ACK標記和序列數字是否邏輯有序。當然它也象應用級網關一樣, 可以在OSI應用層上檢查數據包的內容,查看這些內容是否能符合公司網路的安全規則。規則檢查防火牆雖然集成前三者的特點,但是不同於一個應用級網關的是,它並不打破客戶機/服務機模式來分析應用層的數據, 它允許受信任的客戶機和不受信任的主機建立直接連接。規則檢查防火牆不依靠與應用層有關的代理,而是依靠某種演算法來識別進出的應用層數據,這些演算法通過已知合法數據包的模式來比較進出數據包,這樣從理論上就能比應用級代理在過濾數據包上更有效。
目前在市場上流行的防火牆大多屬於規則檢查防火牆,因為該防火牆對於用戶透明,在OSI最高層上加密數據,不需要你去修改客戶端的程序,也不需對每個需要在防火牆上運行的服務額外增加一個代理。如現在最流行的防火牆之一OnTechnology軟體公司生產的OnGuard和CheckPoint軟體公司生產的FireWall-1防火牆都是一種規則檢查防火牆。
從趨勢上看,未來的防火牆將位於網路級防火牆和應用級防火牆之間,也就是說,網路級防火牆將變得更加能夠識別通過的信息,而應用級防火牆在目前的功能上則向「透明」、「低級」方面發展。最終防火牆將成為一個快速注冊稽查系統,可保護數據以加密方式通過,使所有組織可以放心地在節點間傳送數據。
(四)防火牆的配置
防火牆配置有三種:Dual-homed方式、Screened-host方式和Screened-subnet方式。Dual-homed方式最簡單。 Dual-homedGateway放置在兩個網路之間,這個Dual-omedGateway又稱為bastionhost。 這種結構成本低,但是它有單點失敗的問題。這種結構沒有增加網路安全的自我防衛能力,而它往往是受「黑客」攻擊的首選目標,它自己一旦被攻破,整個網路也就暴露了。Screened-host方式中的Screeningrouter為保護Bastionhost的安全建立了一道屏障。它將所有進入的信息先送往Bastionhost,並且只接受來自Bastionhost的數據作為出去的數據。這種結構依賴Screeningrouter和Bastionhost,只要有一個失敗,整個網路就暴露了。Screened-subnet包含兩個Screeningrouter和兩個Bastionhost。 在公共網路和私有網路之間構成了一個隔離網,稱之為"停火區"(DMZ,即DemilitarizedZone),Bastionhost放置在"停火區"內。這種結構安全性好,只有當兩個安全單元被破壞後,網路才被暴露,但是成本也很昂貴。
(五)防火牆的安全措施
各種防火牆的安全性能不盡相同。這里僅介紹一些一般防火牆的常用安全措施:
1.防電子欺騙術
防電子欺騙術功能是保證數據包的IP地址與網關介面相符,防止通過修改IP地址的方法進行非授權訪問。還應對可疑信息進行鑒別,並向網路管理員報警。
2.網路地址轉移
地址轉移是對Internet隱藏內部地址,防止內部地址公開。這一功能可以克服IP定址方式的諸多限制,完善內部定址模式。把未注冊IP地址映射成合法地址,就可以對Internet進行訪問。
3.開放式結構設計
開放式結構設計使得防火牆與相關應用程序和外部用戶資料庫的連接相當容易,典型的應用程序連接如財務軟體包、病毒掃描、登錄分析等。
4.路由器安全管理程序
它為Bay和Cisco的路由器提供集中管理和訪問列表控制。
(六)傳統防火牆的五大不足
1.無法檢測加密的Web流量
如果你正在部署一個光鍵的門戶網站,希望所有的網路層和應用層的漏洞都被屏蔽在應用程序之外。這個需求,對於傳統的網路防火牆而言,是個大問題。
由於網路防火牆對於加密的SSL流中的數據是不可見的,防火牆無法迅速截獲SSL數據流並對其解密,因此無法阻止應用程序的攻擊,甚至有些網路防火牆,根本就不提供數據解密的功能。
2、普通應用程序加密後,也能輕易躲過防火牆的檢測
網路防火牆無法看到的,不僅僅是SSL加密的數據。對於應用程序加密的數據,同樣也不可見。在如今大多數網路防火牆中,依賴的是靜態的特徵庫,與入侵監測系統(IDS,Intrusion Detect System)的原理類似。只有當應用層攻擊行為的特徵與防火牆中的資料庫中已有的特徵完全匹配時,防火牆才能識別和截獲攻擊數據。
但如今,採用常見的編碼技術,就能夠地將惡意代碼和其他攻擊命令隱藏起來,轉換成某種形式,既能欺騙前端的網路安全系統,又能夠在後台伺服器中執行。這種加密後的攻擊代碼,只要與防火牆規則庫中的規則不一樣,就能夠躲過網路防火牆,成功避開特徵匹配。
3、對於Web應用程序,防範能力不足
網路防火牆於1990年發明,而商用的Web伺服器,則在一年以後才面世。基於狀態檢測的防火牆,其設計原理,是基於網路層TCP和IP地址,來設置與加強狀態訪問控制列表(ACLs,Access Control Lists)。在這一方面,網路防火牆表現確實十分出色。
近年來,實際應用過程中,HTTP是主要的傳輸協議。主流的平台供應商和大的應用程序供應商,均已轉移到基於Web的體系結構,安全防護的目標,不再只是重要的業務數據。網路防火牆的防護范圍,發生了變化。
對於常規的企業區域網的防範,通用的網路防火牆仍佔有很高的市場份額,繼續發揮重要作用,但對於新近出現的上層協議,如XML和SOAP等應用的防範,網路防火牆就顯得有些力不從心。
由於體系結構的原因,即使是最先進的網路防火牆,在防範Web應用程序時,由於無法全面控制網路、應用程序和數據流,也無法截獲應用層的攻擊。由於對於整體的應用數據流,缺乏完整的、基於會話(Session)級別的監控能力,因此很難預防新的未知的攻擊。
4、應用防護特性,只適用於簡單情況
目前的數據中心伺服器,時常會發生變動,比如:
★ 定期需要部署新的應用程序;
★ 經常需要增加或更新軟體模塊;
★ QA們經常會發現代碼中的bug,已部署的系統需要定期打補丁。
在這樣動態復雜的環境中,安全專家們需要採用靈活的、粗粒度的方法,實施有效的防護策略。
雖然一些先進的網路防火牆供應商,提出了應用防護的特性,但只適用於簡單的環境中。細看就會發現,對於實際的企業應用來說,這些特徵存在著局限性。在多數情況下,彈性概念(proof-of-concept)的特徵無法應用於現實生活中的數據中心上。
比如,有些防火牆供應商,曾經聲稱能夠阻止緩存溢出:當黑客在瀏覽器的URL中輸入太長數據,試圖使後台服務崩潰或使試圖非法訪問的時候,網路防火牆能夠檢測並制止這種情況。
細看就會發現,這些供應商採用對80埠數據流中,針對URL長度進行控制的方法,來實現這個功能的。
如果使用這個規則,將對所有的應用程序生效。如果一個程序或者是一個簡單的Web網頁,確實需要涉及到很長的URL時,就要屏蔽該規則。
網路防火牆的體系結構,決定了網路防火牆是針對網路埠和網路層進行操作的,因此很難對應用層進行防護,除非是一些很簡單的應用程序。
5、無法擴展帶深度檢測功能
基於狀態檢測的網路防火牆,如果希望只擴展深度檢測(deep inspection)功能,而沒有相應增加網路性能,這是不行的。
真正的針對所有網路和應用程序流量的深度檢測功能,需要空前的處理能力,來完成大量的計算任務,包括以下幾個方面:
★ SSL加密/解密功能;
★ 完全的雙向有效負載檢測;
★ 確保所有合法流量的正常化;
★ 廣泛的協議性能;
這些任務,在基於標准PC硬體上,是無法高效運行的,雖然一些網路防火牆供應商採用的是基於ASIC的平台,但進一步研究,就能發現:舊的基於網路的ASIC平台對於新的深度檢測功能是無法支持的。
三、結束語
由於互聯網路的開放性和通信協議的安全缺陷,以及在網路環境中數據信息存儲和對其訪問與處理的分布性特點,網上傳輸的數據信息很容易泄露和被破壞,網路受到的安全攻擊非常嚴重,因此建立有效的網路安全防範體系就更為迫切。實際上,保障網路安全不但需要參考網路安全的各項標准以形成合理的評估准則,更重要的是必須明確網路安全的框架體系、安全防範的層次結構和系統設計的基本原則,分析網路系統的各個不安全環節,找到安全漏洞,做到有的放矢。