WEB攻擊與防禦

李志健.發表於2018-03-31

這裡列舉一些常見的攻擊型別與基本防禦手段:

XSS攻擊

跨站指令碼(Cross-site scripting,簡稱XSS),把JS程式碼注入到表單中執行
例如在表單中提交含有可執行的JS的內容文字,如果伺服器端沒有過濾或轉義這些指令碼,而這些指令碼由通過內容的形式釋出到了頁面上,這個時候如果有其他使用者訪問這個網頁,那麼瀏覽器就會執行這些指令碼,從而被攻擊,從而獲取使用者的cookie等資訊。

解決辦法:接收表單時把使用者輸入內容轉義or過濾html、js程式碼


CSRF攻擊:跨站域請求偽造

攻擊者可以利用你的身份你的名義去傳送(請求)一段惡意的請求,從而導致可以利用你的賬號(名義)去--購買商品、發郵件,惡意的去消耗賬戶資源,導致的一些列惡意行為.CSRF可以簡單分為Get型和Post型兩種


例如,小明在瀏覽銀行A網站的時候並沒有關掉銀行網站,這時小明又訪問了攜帶CSRF攻擊的B網站,而這時候B網站通過對銀行的伺服器傳送轉賬請求,並且攜帶小明的在銀行網站的cookie資訊,在引數上把小明賬號上的錢轉到B網站所有人的賬戶上,這時url得到響應,小明的錢就丟了。

解決辦法:
1、敏感請求使用驗證碼。
2、驗證HTTP Referer欄位。Referer欄位記錄了HTTP請求的來源地址
3、地址中使用自身網站生成的token來驗證


SQL隱碼攻擊

攻擊者在提交表單的時候,在表單上面注入相關的sql語句,而系統把這些欄位當成普通的變數傳送給伺服器端進行sql查詢,則,由攻擊者填寫的sql會拼接在系統的sql語句上,從而進行資料庫的某些操作。

解決辦法:
1、表單過濾,驗證表單提交的合法性,對一些特殊字元進行轉義處理
2、資料庫許可權最小化
3、查詢語句使用資料庫提供的引數化查詢介面,不要直接拼接SQL



URL許可權與訪問控制

通過URL引數的修改達到訪問他人頁面,例如,黑客能夠使用一下的連結去訪問在某商城上自己的訂單連結
這個時候如果網站沒有相關許可權驗證,那麼他也能通過下面的連結去訪問其他人的訂單。
https://***.***.com/normal/item.action?orderid=其他id

解決辦法

1.、新增許可權系統,訪問的時候可以加上相應的校驗。


上傳漏洞

在圖片上傳的時候,攻擊者上傳非圖片,而是可遠端執行的的指令碼,這時候,入侵者就可以遠端的執行指令碼來對伺服器進行攻擊

解決辦法
1、限制檔案上傳型別
2、使用第三方檔案託管等

服務拒絕攻擊

服務拒絕攻擊企圖通過使你的服務計算機崩潰或把它壓跨來阻止你提供服務,服務拒絕攻擊是最容易實施的攻擊行為

DOS攻擊

Dos是拒絕服務攻擊,而DDOS是分散式拒絕服務攻擊;Dos與DDOS都是攻擊目標伺服器、網路服務的一種方式。Dos是利用自己的計算機攻擊目標,也是一對一的關係,而DDOS是DoS攻擊基礎之上產生的一種新的攻擊方式,利用控制成百上千臺肉雞,組成一個DDOS攻擊群,同一時刻對目標發起攻擊。


DDOS攻擊

分散式拒絕服務攻擊(Distributed Denial of Service),簡單說就是傳送大量請求是使伺服器癱瘓
DDos攻擊是在DOS攻擊基礎上的,可以通俗理解,dos是單挑,而ddos是群毆,分為頻寬消耗型以及資源消耗型


SYN Flood 協議分析攻擊(最常見)

簡單說一下tcp三次握手,客戶端先伺服器發出請求,請求建立連線,然後伺服器返回一個報文,表明請求以被接受,然後客戶端也會返回一個報文,最後建立連線。那麼如果有這麼一種情況,攻擊者偽造ip地址,發出報文給伺服器請求連線,這個時候伺服器接受到了,根據tcp三次握手的規則,伺服器也要回應一個報文,可是這個ip是偽造的,報文回應給誰呢,第二次握手出現錯誤,第三次自然也就不能順利進行了,這個時候伺服器收不到第三次握手時客戶端發出的報文,又再重複第二次握手的操作。如果攻擊者偽造了大量的ip地址併發出請求,這個時候伺服器將維護一個非常大的半連線等待列表,佔用了大量的資源,最後伺服器癱瘓。
體現:伺服器頻寬不足,不能擋住攻擊者的攻擊流量


CC攻擊(Distributed HTTP flood,分散式HTTP洪水攻擊)

CC攻擊是DDoS攻擊的一種型別,使用代理伺服器向受害伺服器傳送大量貌似合法的請求(通常使用HTTP GET)。CC(Challenge Collapsar,挑戰黑洞)根據其工具命名,攻擊者創造性地使用代理機制,利用眾多廣泛可用的免費代理伺服器發動DDoS攻擊。許多免費代理伺服器支援匿名模式,這使追蹤變得非常困難


殭屍網路攻擊

殭屍網路是指大量被命令與控制(C&C)伺服器所控制的網際網路主機群。攻擊者傳播惡意軟體並組成自己的殭屍網路。殭屍網路難於檢測的原因是,殭屍主機只有在執行特定指令時才會與伺服器進行通訊,使得它們隱蔽且不易察覺。殭屍網路根據網路通訊協議的不同分為IRC、HTTP或P2P類等。


DOS與DDOS攻擊防禦

防火牆

防火牆可以設定規則,例如允許或拒絕特定通訊協議,埠或IP地址。當攻擊從少數不正常的IP地址發出時,可以簡單的使用拒絕規則阻止一切從攻擊源IP發出的通訊。
複雜攻擊難以用簡單規則來阻止,例如80埠(網頁服務)遭受攻擊時不可能拒絕埠所有的通訊,因為其同時會阻止合法流量。此外,防火牆可能處於網路架構中過後的位置,路由器可能在惡意流量達到防火牆前即被攻擊影響。然而,防火牆能有效地防止使用者從啟動防火牆後的計算機發起攻擊。


交換機

大多數交換機有一定的速度限制和訪問控制能力。有些交換機提供自動速度限制、流量整形、後期連線、深度包檢測和假IP過濾功能,可以檢測並過濾拒絕服務攻擊。例如SYN洪水攻擊可以通過後期連線加以預防。基於內容的攻擊可以利用深度包檢測阻止。


路由器

和交換機類似,路由器也有一定的速度限制和訪問控制能力,而大多數路由器很容易受到攻擊影響。


黑洞引導

黑洞引導指將所有受攻擊計算機的通訊全部傳送至一個“黑洞”(空介面或不存在的計算機地址)或者有足夠能力處理洪流的網路裝置商,以避免網路受到較大影響。


流量清洗

當流量被送到DDoS防護清洗中心時,通過採用抗DDoS軟體處理,將正常流量和惡意流量區分開。正常的流量則回注回客戶網站。這樣一來可站點能夠保持正常的運作,處理真實使用者訪問網站帶來的合法流量。




相關文章