在討論Web服務(wù)器如何破解之前,我們先來(lái)看看構(gòu)成完整Web門(mén)戶(hù)的各種組件。 首先,Web服務(wù)器是通常在端口80上偵聽(tīng)的服務(wù)??蛻?hù)端軟件(通常是瀏覽器)連接到端口并發(fā)送HTTP查詢(xún)。 Web服務(wù)通過(guò)提供所請(qǐng)求的內(nèi)容(如HTML,JavaScript等)進(jìn)行響應(yīng)。在某些情況下,可以將服務(wù)配置為在缺省的端口上運(yùn)行,這是邁向安全的一小步。
在討論Web服務(wù)器如何破解之前,我們先來(lái)看看構(gòu)成完整Web門(mén)戶(hù)的各種組件。 首先,Web服務(wù)器是通常在端口80上偵聽(tīng)的服務(wù)??蛻?hù)端軟件(通常是瀏覽器)連接到端口并發(fā)送HTTP查詢(xún)。 Web服務(wù)通過(guò)提供所請(qǐng)求的內(nèi)容(如HTML,JavaScript等)進(jìn)行響應(yīng)。在某些情況下,可以將服務(wù)配置為在缺省的端口上運(yùn)行,這是邁向安全的一小步。
Web服務(wù)器還可以托管諸如FTP或NNTP的服務(wù),這些服務(wù)在自己的單獨(dú)的默認(rèn)端口上運(yùn)行。 下圖顯示了Web服務(wù)如何映射到OSI層。 HTTP協(xié)議在第7層工作,而HTTPS(安全套接字層)在第6層工作。
Web服務(wù)和OSI層
現(xiàn)代Web應(yīng)用程序通常不僅僅是以簡(jiǎn)單網(wǎng)頁(yè)的形式提供內(nèi)容。 業(yè)務(wù)邏輯和數(shù)據(jù)倉(cāng)儲(chǔ)組件(如數(shù)據(jù)庫(kù)服務(wù)器,應(yīng)用程序服務(wù)器和中間件軟件)也用于生成并向
網(wǎng)站用戶(hù)提供業(yè)務(wù)特定數(shù)據(jù)。 這些組件通常安裝并運(yùn)行在一組單獨(dú)的服務(wù)器上,并且可能共享或不共享存儲(chǔ)
空間。 高級(jí)Web應(yīng)用程序代碼可以在內(nèi)部調(diào)用托管在不同服務(wù)器上的Web服務(wù),并將結(jié)果頁(yè)面?zhèn)鬟f給客戶(hù)端。 Web程序員還使用Cookie來(lái)維護(hù)會(huì)話,并在客戶(hù)端瀏覽器中存儲(chǔ)特定于會(huì)話的信息。
網(wǎng)頁(yè)劫持
破解一個(gè)網(wǎng)站是相當(dāng)容易的。新手可能會(huì)試圖從網(wǎng)站竊取數(shù)據(jù),而專(zhuān)業(yè)人士可能會(huì)因?yàn)槠茐木W(wǎng)站或使用
網(wǎng)絡(luò)服務(wù)器傳播病毒而造成嚴(yán)重破壞。與大多數(shù)其他攻擊不同,Web攻擊所用的技術(shù)范圍從第2層到第7層,因此Web服務(wù)器很容易受到各種可能的黑客攻擊。由于
防火墻端口必須為Web服務(wù)打開(kāi)(默認(rèn)情況下是端口80),因此它無(wú)法阻止第7層的攻擊,這使得對(duì)Web攻擊的檢測(cè)變得困難。請(qǐng)參考下圖,它顯示了用于形成Web門(mén)戶(hù)基礎(chǔ)設(shè)施的典型組件。
Web門(mén)戶(hù)基礎(chǔ)設(shè)施
從安全的角度來(lái)看,這些組件中的每一個(gè)都有一些弱點(diǎn),如果被利用,就會(huì)導(dǎo)致Web內(nèi)容的入侵。現(xiàn)在讓我們?cè)敿?xì)討論一些常見(jiàn)但危險(xiǎn)的攻擊。
DoS和嗅探
由于該網(wǎng)站的IP地址是開(kāi)放給互聯(lián)網(wǎng)的,因此拒絕服務(wù)攻擊很容易使Web服務(wù)器停機(jī)。類(lèi)似地,如果在Web設(shè)計(jì)過(guò)程中沒(méi)有進(jìn)行加密或其他安全措施,那么可以很容易地使用包嗅探器來(lái)捕獲純文本用戶(hù)id和密碼。幾幾乎所有第2層和第3層攻擊(如數(shù)據(jù)包洪泛,SYN洪泛等)都可能在網(wǎng)站IP和其所在的端口上。
HTTP DoS攻擊
與基于網(wǎng)絡(luò)的拒絕服務(wù)攻擊不同,HTTP DoS攻擊在第7層工作。在這種類(lèi)型的攻擊中,網(wǎng)站以編程的方式爬行獲取要訪問(wèn)的頁(yè)面列表,在此期間攻擊者還記錄服務(wù)器處理每個(gè)頁(yè)面所需的時(shí)間。選擇需要更高處理時(shí)間的頁(yè)面,并將多個(gè)HTTP請(qǐng)求發(fā)送到Web服務(wù)器,每個(gè)請(qǐng)求請(qǐng)求其中一個(gè)所選頁(yè)面。
為了滿足每個(gè)請(qǐng)求,Web服務(wù)器開(kāi)始消耗資源。 達(dá)到資源限制后,最終放棄并停止響應(yīng)。眾所周知,攻擊者使用簡(jiǎn)單的腳本創(chuàng)建大量的HTTP GET請(qǐng)求來(lái)實(shí)現(xiàn)此攻擊。如果網(wǎng)站只包含簡(jiǎn)單的靜態(tài)HTML頁(yè)面,那么這種攻擊就不會(huì)很有效。但是,如果動(dòng)態(tài)頁(yè)面從后端數(shù)據(jù)庫(kù)服務(wù)器中提取數(shù)據(jù),那么這種攻擊就會(huì)造成相當(dāng)大的損害。
雖然它可能或不會(huì)導(dǎo)致數(shù)據(jù)竊取,但它肯定會(huì)關(guān)閉網(wǎng)站,造成用戶(hù)體驗(yàn)不良,并損害聲譽(yù)。必須部署智能技術(shù)來(lái)檢測(cè)和停止此類(lèi)攻擊,我們將很快了解這些攻擊。