觸屏版
全國(guó)服務(wù)熱線:0571-87205688
登錄
注冊(cè)
客戶中心
關(guān)注云客
如今,網(wǎng)站不再僅僅是“互聯(lián)網(wǎng)存在”,也被用于商業(yè)交易和轉(zhuǎn)移敏感數(shù)據(jù)。如此廣泛的使用有助于破解漏洞和開發(fā)技術(shù)的知識(shí)。各種各樣的安全研究表明,攻擊網(wǎng)站以獲取名聲或金錢的趨勢(shì)正在上升。本文?,巗eo工程師介紹了各種Web漏洞和利用它們的攻擊。我們還將學(xué)習(xí)一些可以由系統(tǒng)管理員納入以保護(hù)公司的Web基礎(chǔ)設(shè)施的技術(shù)。
網(wǎng)絡(luò)攻擊形式有哪些:web開發(fā)與web前端開發(fā)
在討論Web服務(wù)器如何破解之前,我們先來看看構(gòu)成完整Web門戶的各種組件。 首先,Web服務(wù)器是通常在端口80上偵聽的服務(wù)??蛻舳塑浖ㄍǔJ菫g覽器)連接到端口并發(fā)送HTTP查詢。 Web服務(wù)通過提供所請(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層工作。
網(wǎng)絡(luò)攻擊形式有哪些:web開發(fā)與web前端開發(fā)
Web服務(wù)和OSI層
現(xiàn)代Web應(yīng)用程序通常不僅僅是以簡(jiǎn)單網(wǎng)頁的形式提供內(nèi)容。 業(yè)務(wù)邏輯和數(shù)據(jù)倉儲(chǔ)組件(如數(shù)據(jù)庫服務(wù)器,應(yīng)用程序服務(wù)器和中間件軟件)也用于生成并向網(wǎng)站用戶提供業(yè)務(wù)特定數(shù)據(jù)。 這些組件通常安裝并運(yùn)行在一組單獨(dú)的服務(wù)器上,并且可能共享或不共享存儲(chǔ)空間。 高級(jí)Web應(yīng)用程序代碼可以在內(nèi)部調(diào)用托管在不同服務(wù)器上的Web服務(wù),并將結(jié)果頁面?zhèn)鬟f給客戶端。 Web程序員還使用Cookie來維護(hù)會(huì)話,并在客戶端瀏覽器中存儲(chǔ)特定于會(huì)話的信息。
網(wǎng)頁劫持
破解一個(gè)網(wǎng)站是相當(dāng)容易的。新手可能會(huì)試圖從網(wǎng)站竊取數(shù)據(jù),而專業(yè)人士可能會(huì)因?yàn)槠茐木W(wǎng)站或使用網(wǎng)絡(luò)服務(wù)器傳播病毒而造成嚴(yán)重破壞。與大多數(shù)其他攻擊不同,Web攻擊所用的技術(shù)范圍從第2層到第7層,因此Web服務(wù)器很容易受到各種可能的黑客攻擊。由于防火墻端口必須為Web服務(wù)打開(默認(rèn)情況下是端口80),因此它無法阻止第7層的攻擊,這使得對(duì)Web攻擊的檢測(cè)變得困難。請(qǐng)參考下圖,它顯示了用于形成Web門戶基礎(chǔ)設(shè)施的典型組件。
網(wǎng)絡(luò)攻擊形式有哪些:web開發(fā)與web前端開發(fā)
Web門戶基礎(chǔ)設(shè)施
從安全的角度來看,這些組件中的每一個(gè)都有一些弱點(diǎn),如果被利用,就會(huì)導(dǎo)致Web內(nèi)容的入侵?,F(xiàn)在讓我們?cè)敿?xì)討論一些常見但危險(xiǎn)的攻擊。
DoS和嗅探
由于該網(wǎng)站的IP地址是開放給互聯(lián)網(wǎng)的,因此拒絕服務(wù)攻擊很容易使Web服務(wù)器停機(jī)。類似地,如果在Web設(shè)計(jì)過程中沒有進(jìn)行加密或其他安全措施,那么可以很容易地使用包嗅探器來捕獲純文本用戶id和密碼。幾幾乎所有第2層和第3層攻擊(如數(shù)據(jù)包洪泛,SYN洪泛等)都可能在網(wǎng)站IP和其所在的端口上。
HTTP DoS攻擊
與基于網(wǎng)絡(luò)的拒絕服務(wù)攻擊不同,HTTP DoS攻擊在第7層工作。在這種類型的攻擊中,網(wǎng)站以編程的方式爬行獲取要訪問的頁面列表,在此期間攻擊者還記錄服務(wù)器處理每個(gè)頁面所需的時(shí)間。選擇需要更高處理時(shí)間的頁面,并將多個(gè)HTTP請(qǐng)求發(fā)送到Web服務(wù)器,每個(gè)請(qǐng)求請(qǐng)求其中一個(gè)所選頁面。
為了滿足每個(gè)請(qǐng)求,Web服務(wù)器開始消耗資源。 達(dá)到資源限制后,最終放棄并停止響應(yīng)。眾所周知,攻擊者使用簡(jiǎn)單的腳本創(chuàng)建大量的HTTP GET請(qǐng)求來實(shí)現(xiàn)此攻擊。如果網(wǎng)站只包含簡(jiǎn)單的靜態(tài)HTML頁面,那么這種攻擊就不會(huì)很有效。但是,如果動(dòng)態(tài)頁面從后端數(shù)據(jù)庫服務(wù)器中提取數(shù)據(jù),那么這種攻擊就會(huì)造成相當(dāng)大的損害。
雖然它可能或不會(huì)導(dǎo)致數(shù)據(jù)竊取,但它肯定會(huì)關(guān)閉網(wǎng)站,造成用戶體驗(yàn)不良,并損害聲譽(yù)。必須部署智能技術(shù)來檢測(cè)和停止此類攻擊,我們將很快了解這些攻擊。
訪問控制開發(fā)
通常,在Web門戶的情況下,用戶會(huì)得到一個(gè)ID和一個(gè)密碼來登錄并執(zhí)行某些功能。門戶管理人員也為維護(hù)和數(shù)據(jù)管理提供了自己的憑證。如果Web服務(wù)和應(yīng)用程序不是從編碼的角度設(shè)計(jì)的,那么就可以利用它們來獲得更高的特權(quán)。
例如,如果Web服務(wù)器未使用最新的安全修補(bǔ)程序進(jìn)行修補(bǔ),這可能導(dǎo)致遠(yuǎn)程代碼執(zhí)行,攻擊者可能會(huì)編寫一個(gè)腳本來利用該漏洞,并訪問服務(wù)器并遠(yuǎn)程控制它。 在某些情況下,可能會(huì)發(fā)生這種情況,因?yàn)闆]有遵循最佳的編碼和安全實(shí)踐,在安全配置中留下空白,并使Web解決方案容易受到攻擊。
表單輸入無效
許多網(wǎng)站使用由網(wǎng)站用戶填寫的表單,并提交給服務(wù)器。 然后,服務(wù)器驗(yàn)證輸入并將其保存到數(shù)據(jù)庫。 驗(yàn)證過程有時(shí)委托給客戶端瀏覽器或數(shù)據(jù)庫服務(wù)器。 如果這些驗(yàn)證不夠強(qiáng)大或沒有正確編程,他們可能會(huì)留下可以被攻擊者利用的安全漏洞。
例如,如果一個(gè)字段如PAN號(hào)碼是強(qiáng)制性的,并且如果重復(fù)條目的驗(yàn)證不能正確完成,則攻擊者可以用偽PAN號(hào)碼以編程方式提交表單,從而以假條目填充數(shù)據(jù)庫。 這最終可以幫助攻擊者種植拒絕服務(wù)(DoS)攻擊,只需查詢頁面,詢問不存在的條目。
代碼挖掘
雖然這與之前的漏洞有點(diǎn)類似,但在破解它的方式上有一些不同。通常,程序員在為各種用戶輸入設(shè)置限制時(shí),會(huì)做出假設(shè)。典型的例子是用戶名不應(yīng)該超過50個(gè)字符,或者數(shù)字值永遠(yuǎn)是正數(shù),等等。
從安全的觀點(diǎn)來看,這些假設(shè)是危險(xiǎn)的,因?yàn)轳斂涂梢岳盟鼈?。例如,通過填充具有100個(gè)字符的名稱字段,從而對(duì)數(shù)據(jù)集施加壓力,或者通過在數(shù)值字段中提供負(fù)整數(shù)來創(chuàng)建不正確的計(jì)算結(jié)果。
上面提到的所有攻擊都是新手攻擊者使用的,遵循好的編程實(shí)踐可以幫助他們停止攻擊?,F(xiàn)在我們來看看技術(shù)先進(jìn)的攻擊,這在今天也很常見。
Cookie中毒
如前所述,cookie是駐留在瀏覽器中的小信息片段(在客戶端計(jì)算機(jī)的硬盤驅(qū)動(dòng)器上),并用于存儲(chǔ)用戶會(huì)話特定的信息。它是一個(gè)cookie,它能記住我們的購(gòu)物車內(nèi)容、我們的偏好和以前的登錄信息,以便提供豐富的Web體驗(yàn)。
雖然篡改cookie并不是很容易,但是專業(yè)攻擊者可以控制它并操縱其內(nèi)容。 中毒是通過木馬或病毒實(shí)現(xiàn)的,該病毒位于后臺(tái),并持續(xù)偽造cookies以收集用戶的個(gè)人信息并將其發(fā)送給攻擊者。
此外,病毒還可以改變cookie的內(nèi)容,導(dǎo)致嚴(yán)重的問題,例如提交購(gòu)物車內(nèi)容,以便將購(gòu)買的商品交付給黑客可訪問的虛擬地址,或讓瀏覽器連接到廣告 服務(wù)器,這有助于攻擊者獲得資金等。如果會(huì)話信息存儲(chǔ)在cookie中,專業(yè)攻擊者可以訪問它并竊取會(huì)話,從而導(dǎo)致中間人的攻擊。
會(huì)話劫持
Web服務(wù)器同時(shí)與多個(gè)瀏覽器進(jìn)行對(duì)話,以接收請(qǐng)求并交付所請(qǐng)求的內(nèi)容。當(dāng)每個(gè)連接被建立時(shí),Web服務(wù)器需要有一種方法來維護(hù)每個(gè)連接的唯一性。它使用會(huì)話令牌來生成動(dòng)態(tài)生成的文本字符串,這些字符串包括IP地址、日期、時(shí)間等。
攻擊者可以通過在網(wǎng)絡(luò)上以編程方式或嗅探,或通過對(duì)受害者計(jì)算機(jī)執(zhí)行客戶端腳本攻擊來竊取該令牌。 一旦被盜,該令牌可用于創(chuàng)建假Web請(qǐng)求并竊取受害者用戶的會(huì)話和信息。
URL查詢字符串篡改
從數(shù)據(jù)庫服務(wù)器中提取數(shù)據(jù)并將其顯示在網(wǎng)頁上的網(wǎng)站經(jīng)常被發(fā)現(xiàn)在主URL中使用查詢字符串。 例如,如果網(wǎng)站URL是// www.seo7.cc /,它可以使用// www.seo7.cc /showdata?field1=10&field2=15作為參數(shù)傳遞field1和field2,并將它們分別 值到數(shù)據(jù)庫,結(jié)果輸出以網(wǎng)頁的形式提供給瀏覽器。
使這個(gè)查詢字符串格式容易暴露,用戶可以編輯和更改超出預(yù)期限制的字段值,或者用垃圾字符填充字段值。 它可以進(jìn)一步導(dǎo)致用戶獲得他們不應(yīng)該獲得的信息。 在最壞的情況下,如果字段值是用戶名和密碼,則只能通過HTTP使用暴力字典攻擊來獲取系統(tǒng)級(jí)訪問權(quán)限。
跨站點(diǎn)腳本
這是Web技術(shù)中最常見的弱點(diǎn),它可以吸引XSS(跨站點(diǎn)腳本)對(duì)所有主要站點(diǎn)和著名站點(diǎn)的攻擊。人們已經(jīng)發(fā)現(xiàn),即使在今天,大量的網(wǎng)站也很容易受到這種攻擊。這個(gè)漏洞是由于不適當(dāng)?shù)木幊虒?shí)踐和在Web基礎(chǔ)結(jié)構(gòu)中無法獲得適當(dāng)?shù)陌踩胧┰斐傻摹?/p>
我們知道,客戶端瀏覽器維護(hù)自己的安全性,不允許任何人訪問網(wǎng)站內(nèi)容和網(wǎng)站Cookie,用戶本身除外。 在這種情況下,Web應(yīng)用程序中的漏洞讓破解者將客戶端代碼注入用戶訪問的頁面。 這段代碼通常使用JavaScript編寫。
要了解這一點(diǎn),請(qǐng)考慮將用戶名作為輸入的頁面,并在屏幕上顯示“歡迎用戶名”。 讓我們假設(shè)輸入框用JavaScript替代,如下所示:
這里,Web頁面可能會(huì)最終執(zhí)行腳本標(biāo)簽,顯示對(duì)話框消息“You are in trouble”。 這可以由攻擊者進(jìn)一步利用,只需中斷cookie,竊取會(huì)話并將該代碼注入受害者用戶的瀏覽器。 一旦這樣做,JavaScript代碼將在受害者的瀏覽器中運(yùn)行,并盡可能造成損害。
SQL注入
如前所述,Web門戶在后端使用數(shù)據(jù)庫服務(wù)器,Web頁面連接到數(shù)據(jù)庫,查詢數(shù)據(jù),并將所獲取的數(shù)據(jù)以Web格式呈現(xiàn)給瀏覽器。如果客戶端上的輸入在以查詢形式發(fā)送到數(shù)據(jù)庫之前沒有經(jīng)過適當(dāng)?shù)倪^濾,就可能發(fā)生SQL注入攻擊。這可能導(dǎo)致操作SQL語句的可能性,以便在數(shù)據(jù)庫上執(zhí)行無效的操作。
這種攻擊的一個(gè)常見示例是由Web應(yīng)用程序訪問的SQL server,其中SQL語句沒有經(jīng)過中間件或驗(yàn)證代碼組件的過濾。這可能導(dǎo)致攻擊者能夠在后端數(shù)據(jù)庫服務(wù)器上創(chuàng)建和執(zhí)行自己的SQL語句,這可能是簡(jiǎn)單的SELECT語句來獲取和竊取數(shù)據(jù),或者可能像刪除整個(gè)數(shù)據(jù)表一樣嚴(yán)重。在其他情況下,數(shù)據(jù)可以通過使用惡意的和虛假的內(nèi)容填充記錄集來破壞。
盡管網(wǎng)絡(luò)安全意識(shí)越來越高,但許多網(wǎng)站仍然可以進(jìn)行SQL注入攻擊。
雖然在本文中不可能涵蓋所有可能的攻擊,但讓我們來看看一些不太為人所熟知的攻擊,這些攻擊越來越多地被用于攻擊網(wǎng)站。
緩慢的HTTP攻擊
雖然這一方法與拒絕服務(wù)攻擊類似,但該技術(shù)略有不同。它利用了一個(gè)事實(shí),即每個(gè)HTTP請(qǐng)求都必須由Web服務(wù)器偵聽。每個(gè)Web請(qǐng)求都以一個(gè)名為content-length的字段開頭,它告訴服務(wù)器需要多少字節(jié),并以回車和換行(CRLF)字符組合結(jié)束。
HTTP請(qǐng)求由內(nèi)容長(zhǎng)度較大的攻擊者發(fā)起,而不是發(fā)送CRLF來結(jié)束請(qǐng)求,因此通過向Web服務(wù)器發(fā)送非常少量的數(shù)據(jù)來簡(jiǎn)單地延遲。 這使得Web服務(wù)器等待尚未到來的更多數(shù)據(jù)來完成請(qǐng)求。 這消耗了Web服務(wù)器的資源。
如果請(qǐng)求延遲到一個(gè)小于服務(wù)器上會(huì)話超時(shí)設(shè)置的點(diǎn),那么多個(gè)這樣的慢請(qǐng)求可以完全消耗資源并創(chuàng)建拒絕服務(wù)攻擊。這可以通過只從一個(gè)瀏覽器創(chuàng)建緩慢和延遲的請(qǐng)求來實(shí)現(xiàn),這從安全的角度來看是很危險(xiǎn)的。
加密開發(fā)
導(dǎo)致了一種幻覺,認(rèn)為一切都是安全的,不幸的是,情況并非如此。許多購(gòu)物車應(yīng)用程序忘記進(jìn)一步加密cookie內(nèi)容,并將它們放在純文本中。盡管SSL上的數(shù)據(jù)受到SSL的保護(hù),但運(yùn)行客戶端腳本攔截cookie并讀取其內(nèi)容可能會(huì)導(dǎo)致數(shù)據(jù)或會(huì)話被盜。
對(duì)于SSL,現(xiàn)代攻擊者使用工具來檢測(cè)和破壞較弱的密碼算法,從而使SSL保護(hù)失效,盡管這不是很常見。
保護(hù)開源軟件系統(tǒng)
Apache運(yùn)行在centods/red Hat、Ubuntu和Debian上,在嚴(yán)重的FOSS Web基礎(chǔ)架構(gòu)和解決方案中獲得了廣泛的歡迎。第一步是加強(qiáng)Apache Web服務(wù)本身;在Internet上有許多關(guān)于這方面的指南和例子--對(duì)于每個(gè)Linux發(fā)行版,以及示例。
強(qiáng)烈建議禁用除Web服務(wù)端口之外的其他端口,以及停止和禁用不必要的服務(wù)。部署一個(gè)配置良好的防火墻或入侵檢測(cè)設(shè)備是至關(guān)重要的。正如前面提到的,一個(gè)簡(jiǎn)單的防火墻是不夠的;因此,需要一個(gè)能夠檢測(cè)Web層攻擊的內(nèi)容過濾防火墻。
保護(hù)Web門戶不僅限于Web服務(wù)器,還可以擴(kuò)展到諸如數(shù)據(jù)庫服務(wù)器,Web服務(wù)等組件。從網(wǎng)絡(luò)安全的角度來看,只允許從前端Web服務(wù)器到數(shù)據(jù)庫的IP連接是一個(gè)很好的 理念。 運(yùn)行rootkit檢測(cè)器,防病毒工具和日志分析器必須是常規(guī)工作,以防止黑客攻擊。
對(duì)于中間件和Web服務(wù)器之間的高級(jí)安全性,還應(yīng)該有一個(gè)更強(qiáng)大的身份驗(yàn)證機(jī)制。應(yīng)該對(duì)cookie進(jìn)行加密和SSL部署,并使用更強(qiáng)的密碼算法。
從編碼的角度來看,如前所述,使用安全編程技術(shù)是至關(guān)重要的,也是遵循最佳的安全措施,如代碼審查和滲透測(cè)試。 還建議使用其他進(jìn)程,如輸入代碼驗(yàn)證,服務(wù)器和數(shù)據(jù)庫端驗(yàn)證。
Web開發(fā)是攻擊網(wǎng)站的常見方式。 由于其易用的可用性和可編程性,F(xiàn)OSS基礎(chǔ)架構(gòu)也容易遭受這種攻擊,因此網(wǎng)絡(luò)管理員必須了解技術(shù)來保護(hù)其基礎(chǔ)架構(gòu)免遭信息丟失或被盜。
從RDBMS到NoSQL的系統(tǒng)架構(gòu)演化歷程
建站經(jīng)驗(yàn)分享:如何確定網(wǎng)站運(yùn)營(yíng)目標(biāo)?
卡片式設(shè)計(jì)一定要避免的5個(gè)誤區(qū)
小說網(wǎng)站從建立到盈利全解析(帶案例)
移動(dòng)互聯(lián)網(wǎng)時(shí)代 企業(yè)需要什么樣的手機(jī)網(wǎng)站
首頁設(shè)計(jì)制作在網(wǎng)站建設(shè)中的重要性應(yīng)引起足夠重視
企業(yè)網(wǎng)站怎么做? 知道這些事情讓你少走冤枉路
網(wǎng)站建設(shè)需把設(shè)計(jì)技巧融合用戶體驗(yàn)中
出錯(cuò)不尷尬:怎樣設(shè)計(jì)404頁面快速提升用戶體驗(yàn)?
服務(wù)器的穩(wěn)定性決定網(wǎng)站運(yùn)行速度
評(píng)論(0人參與,0條評(píng)論)
發(fā)布評(píng)論
最新評(píng)論