DOS、DDOS、CC等完整解決方案
1.對於特定的IP訪問的情況,限制IP訪問
2.限制同一IP在單位時間內的訪問次數
另一種方法是利用Iptables預防DOS腳本
#!/bin/bash netstat -an|grep SYN_RECV|awk ‘{print$5}‘|awk -F: ‘{print$1}‘|sort|uniq -c|sort -rn|awk ‘{if ($1 >1) print $2}‘ for i in $(cat /tmp/dropip) do /sbin/iptables -A INPUT -s $i -j DROP echo “$i kill at `date`” >>/var/log/ddos done
該腳本會對處於SYN_RECV並且數量達到5個的IP做統計,並且把寫到Iptables的INPUT鏈設置為拒絕。
SYN洪水**是DDOS中最常見的類型之一。是一種利用TCP 協議缺陷,者向被的主機發送大量偽造的TCP連接請求,從而使得被方主機服務器的資源耗盡(CPU 滿負荷或內存不足) 的方式。SYN的目標不止於服務器,任何網絡設備,都可能會受到這種,針對網絡設備的SYN往往會導致整個網絡癱瘓。企業遭到SYN該如何防禦呢?今天墨者安全就來分享一下如何利用iptables來緩解SYN。**
1、修改等待數sysctl -w net.ipv4.tcp_max_syn_backlog=2048
2、啟用syncookiessysctl -w net.ipv4.tcp_syncookies=1
3、修改重試次數sysctl -w net.ipv4.tcp_syn_retries = 0
重傳次數設置為0,只要收不到客戶端的響應,立即丟棄該連接,默認設置為5次
4、限制單IP並發數
使用iptables限制單個地址的並發連接數量:iptables -t filter -A INPUT -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT
5、限制C類子網並發數
使用iptables限制單個c類子網的並發鏈接數量:iptables -t filter -A INPUT -p tcp --dport 80 --tcp-flags FIN,SYN,RST,ACK SYN -m connlimit --connlimit-above 10 --connlimit-mask 24 -j REJECT
6、限制單位時間內連接數
設置如下:
iptables -t filter -A INPUT -p tcp --dport 80 -m --state --syn -m recent --set
iptables -t filter -A INPUT -p tcp --dport 80 -m --state --syn -m recent --update --seconds 60 --hitcount 30 -j DROP
7、修改modprobe.conf
為了取得更好的效果,需要修改/etc/modprobe.confoptions ipt_recent ip_list_tot=1000 ip_pkt_list_tot=60
作用:記錄10000個地址,每個地址60個包,ip_list_tot最大為8100,超過這個數值會導致iptables錯誤
8、限制單個地址最大連接數iptables -I INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j D
通過上述這些設置,可以緩解SYN**帶來的影響,但如果遭到幾百幾千G的T級流量洪水,那只能選擇像墨者安全那樣的商業級的防DDOS服務了。墨者盾高防可以隱藏服務器真實IP,利用新的WAF算法過濾技術,清除DDOS異常流量,保障服務器正常運行**。
CC**原理者控制某些主機不停地發大量數據包給對方服務器造成服務器資源耗盡,一直到宕機崩潰。CC主要是用來頁面的,每個人都有這樣的體驗:當一個網頁訪問的人數特別多的時候,打開網頁就慢了,CC就是模擬多個用戶(多少線程就是多少用戶)不停地進行訪問那些需要大量數據操作(就是需要大量CPU時間)的頁面,造成服務器資源的浪費,CPU長時間處於100%,永遠都有處理不完的連接直至就網絡擁塞,正常的訪問被中止。CC防禦策略**
1.取消域名綁定取消域名綁定後Web服務器的CPU能夠馬上恢復正常狀態,通過IP進行訪問連接一切正常。但是不足之處也很明顯,取消或者更改域名對於別人的訪問帶來了不變,另外,對於針對IP的CC它是無效的,就算更換域名者發現之後,者也會對新域名實施。
2.更改Web端口一般情況下Web服務器通過80端口對外提供服務,因此者實施就以默認的80端口進行,所以,可以修改Web端口達到防CC的目的。
3.IIS屏蔽IP我們通過命令或在查看日誌發現了CC的源IP,就可以在IIS中設置屏蔽該IP對Web站點的訪問,從而達到防範IIS的目的。
**CC*的防範手段
1.優化代碼盡可能使用緩存來存儲重復的查詢內容,減少重復的數據查詢資源開銷。減少復雜框架的調用,減少不必要的數據請求和處理邏輯。程序執行中,及時釋放資源,比如及時關閉mysql連接,及時關閉memcache連接等,減少空連接消耗。
2.限制手段對一些負載較高的程序增加前置條件判斷,可行的判斷方法如下:必須具有網站簽發的session信息才可以使用(可簡單阻止程序發起的集中請求);必須具有正確的referer(可有效防止嵌入式代碼的***);禁止一些客戶端類型的請求(比如一些典型的不良蜘蛛特征);同一session多少秒內只能執行一次。
3.完善日誌盡可能完整保留訪問日誌。日誌分析程序,能夠盡快判斷出異常訪問,比如單一ip密集訪問;比如特定url同比請求激增。
**一、Dos*(Denial of Service attack)
是一種針對服務器的能夠讓服務器呈現靜止狀態的**方式。有時候也叫服務停止或拒絕服務。其原理就是發送大量的合法請求到服務器,服務器無法分辨這些請求是正常請求還是請求,所以都會照單全收。海量的請求會造成服務器停止工作或拒絕服務的狀態。這就是Dos*。
**二、DDOS*****
概念
分布式拒絕服務**(Distributed Denial of Service),簡單說就是發送大量請求是使服務器癱瘓。DDos是在DOS基礎上的,可以通俗理解,dos是單挑,而ddos是群毆,因為現代技術的發展,dos的殺傷力降低,所以出現了DDOS,者借助公共網絡,將大數量的計算機設備聯合起來,向一個或多個目標進行。**
案例
SYN Flood ,簡單說一下tcp三次握手,客戶端服務器發出請求,請求建立連接,然後服務器返回一個報文,表明請求以被接受,然後客戶端也會返回一個報文,最後建立連接。那麽如果有這麽一種情況,者偽造ip地址,發出報文給服務器請求連接,這個時候服務器接受到了,根據tcp三次握手的規則,服務器也要回應一個報文,可是這個ip是偽造的,報文回應給誰呢,第二次握手出現錯誤,第三次自然也就不能順利進行了,這個時候服務器收不到第三次握手時客戶端發出的報文,又再重復第二次握手的操作。如果者偽造了大量的ip地址並發出請求,這個時候服務器將維護一個非常大的半連接等待列表,占用了大量的資源,最後服務器癱瘓。
CC,在應用層http協議上發起,模擬正常用戶發送大量請求直到該網站拒絕服務為止。
**被*的原因
服務器帶寬不足,不能擋住者的流量
預防
最直接的方法增加帶寬。但是者用各地的電腦進行,他的帶寬不會耗費很多錢,但對於服務器來說,帶寬非常昂貴。
雲服務提供商有自己的一套完整DDoS解決方案,並且能提供豐富的帶寬資源。------如果是阿裏雲推薦使用高防。
1、采用高性能的網絡設備
首先要保證網絡設備不能成為瓶頸,因此選擇路由器、交換機、硬件防火墻等設備的時候要盡量選用知名度高、口碑好的產品。再就是假如和網絡提供商有特殊關系或協議的話就更好了,當大量發生的時候請他們在網絡接點處做一下流量限制來對抗某些種類的DDOS是非常有效的。
2、盡量避免NAT的使用
無論是路由器還是硬件防護墻設備要盡量避免采用網絡地址轉換NAT的使用,因為采用此技術會較大降低網絡通信能力,其實原因很簡單,因為NAT需要對地址來回轉換,轉換過程中需要對網絡包的校驗和進行計算,因此浪費了很多CPU的時間,但有些時候必須使用NAT,那就沒有好辦法了。
3、充足的網絡帶寬保證
網絡帶寬直接決定了能抗受的能力,假若僅僅有10M帶寬的話,無論采取什麽措施都很難對抗現在的SYNFlood,當前至少要選擇100M的共享帶寬,最好的當然是掛在1000M的主幹上了。但需要註意的是,主機上的網卡是1000M的並不意味著它的網絡帶寬就是千兆的,若把它接在100M的交換機上,它的實際帶寬不會超過100M,再就是接在100M的帶寬上也不等於就有了百兆的帶寬,因為網絡服務商很可能會在交換機上限制實際帶寬為10M,這點一定要搞清楚。
4、把網站做成靜態頁面
大量事實證明,把網站盡可能做成靜態頁面,不僅能大大提高抗*能力,而且還給**帶來不少麻煩,至少到現在為止關於HTML的溢出還沒出現,看看吧!新浪、搜狐、網易等門戶網站主要都是靜態頁面,若你非需要動態腳本調用,那就把它弄到另外一臺單獨主機去,免的遭受*時連累主服務器,當然,適當放一些不做數據庫調用腳本還是可以的,此外,最好在需要調用數據庫的腳本中拒絕使用代理的訪問,因為經驗表明使用代理訪問你網站的80%屬於惡意行為。
常見web安全及防護原理
sql註入原理
就是通過把SQL命令插入到Web表單遞交或輸入域名或頁面請求的查詢字符串,最終達到欺騙服務器執行惡意的SQL命令
總的來說有以下幾點:
1.永遠不要信任用戶的輸入,要對用戶的輸入進行校驗,可以通過正則表達式,或限制長度,對單引號和雙”-“進行轉換等
2.永遠不要使用動態拼裝SQL,可以使用參數化的SQL或者直接使用存儲過程進行數據查詢存取
3.永遠不要使用管理員權限的數據庫連接,為每個應用使用單獨的權限有限的數據庫連接
4.不要把機密信息明文存放,請加密或者hash掉密碼和敏感的信息
XSS原理及防範
Xss(cross-site scripting)**指的是者往Web頁面裏插入惡意html標簽或者javascript代碼。比如:者在論壇中放一個看似安全的鏈接,騙取用戶點擊後,竊取cookie中的用戶私密信息;或者者在論壇中加一個惡意表單,當用戶提交表單的時候,卻把信息傳送到*者的服務器中,而不是用戶原本以為的信任站點
XSS防範方法
首先代碼裏對用戶輸入的地方和變量都需要仔細檢查長度和對”<”,”>”,”;”,”’”等字符做過濾;其次任何內容寫到頁面之前都必須加以encode,避免不小心把html tag 弄出來。這一個層面做好,至少可以堵住超過一半的XSS ***
XSS與CSRF有什麽區別嗎?
XSS是獲取信息,不需要提前知道其他用戶頁面的代碼和數據包。CSRF是代替用戶完成指定的動作,需要知道其他用戶頁面的代碼和數據包。要完成一次CSRF***,受害者必須依次完成兩個步驟
登錄受信任網站A,並在本地生成Cookie
在不登出A的情況下,訪問危險網站B
CSRF的防禦
服務端的CSRF方式方法很多樣,但總的思想都是一致的,就是在客戶端頁面增加偽隨機數
通過驗證碼的方法
是否了解 Web 註入***(最常見 XSS 和 CSRF)?
SQL註入
把SQL命令插入到表單或輸入URL查詢字符串提交,欺騙服務器達到執行惡意的SQL目的
XSS(Cross Site Script),跨站腳本***
者在頁面裏插入惡意代碼,當用戶瀏覽該頁之時,執行嵌入的惡意代碼達到目的
CSRF(Cross Site Request Forgery),跨站點偽造請求
偽造合法請求,讓用戶在不知情的情況下以登錄的身份訪問,利用用戶信任達到***目的
**如何防範 Web 前端*?
不要信任任何外部傳入的數據
針對用戶輸入作相關的格式檢查、過濾等操作
不要信任在任何傳入的第三方數據
使用 CORS,設置 Access-Control-Allow-Origin
更安全地使用 Cookie
設置Cookie為HttpOnly,禁止了JavaScript操作Cookie
防止網頁被其他網站內嵌為iframe
服務器端設置 X-Frame-Options 響應頭,防止頁面被內嵌
**APR*發現
首先診斷是否為ARP病毒***
1、當發現上網明顯變慢,或者突然掉線時,我們可以用arp -a命令來檢查ARP表:(點擊“開始”按鈕-選擇“運行”-輸入“cmd”點擊"確定"按鈕,在窗口中輸入“arp -a”命令)如果發現網關的MAC地址發生了改變,或者發現有很多IP指向同一個物理地址,那麽肯定就是ARP欺騙所致。這時可以通過”arp -d“清除arp列表,重新訪問。
2、利用ARP防火墻類軟件(如:360ARP防火墻、AntiARPSniffer等)。
**如何判斷交換機是否受到ARP*以及處理方式
**一、如果網絡受到了ARP*,可能會出現如下現象:
1、用戶掉線、頻繁斷網、上網慢、業務中斷或無法上網。
2、設備CPU占用率較高、設備托管、下掛設備掉線、設備主備狀態震蕩、設備端口指示燈紅色快閃。
3、Ping有時延、丟包或不通。
局域網內的機器遭到ARP病毒欺騙**,如果找到源頭的機器,將其病毒或殺掉,局域網內機器就會恢復正常,那麽如何才能快速定位到*的源頭機器呢?
1、用arp -a命令。當發現上網明顯變慢,或者突然掉線時,我們可以用arp -a命令來檢查ARP表。如果發現網關的MAC地址發生了改變,或者發現有很多IP地址指向同一個MAC地址,那麽肯定就是ARP***所致。
2、利用彩影ARP防火墻軟件查看。如果網卡是處於混雜模式或者ARP請求包發送的速度大或者ARP請求包總量非常大,判斷這臺機器有可能就是“元兇”。定位好機器後,再做病毒信息收集工作。
3、通過路由器的“系統歷史記錄”查看。由於ARP的程序發作的時候會發出大量的數據包導致局域網通訊阻塞以及其自身處理能力的限制,用戶會感覺上網速度越來越慢。當ARP的程序停止運行時,用戶會恢復從路由器上網,切換過程中用戶會再斷一次線。這個消息代表了用戶的MAC地址發生了變化,在ARP**開始運行的時候,局域網所有主機的MAC地址更新為病毒主機的MAC地址(即所有信息的MAC New地址都一致為病毒主機的MAC地址),同時在路由器的“用戶統計”中看到所有用戶的MAC地址信息都一樣。
如果是在路由器的“系統歷史記錄”中看到大量MAC Old地址都一致,則說明局域網內曾經出現過ARP(ARP的***程序停止運行時,主機在路由器上恢復其真實的MAC地址)。
***方式:
**1. 簡單的詐騙*****
這是對比多見的,經過發送偽造的ARP包來詐騙路由和方針主機,讓方針主機認為這是一個合法的主機,便完成了詐騙,這種詐騙多發生在同一網段內,因為路由不會把本網段的包向外轉發,當然完成不一樣網段的也有辦法,便要經過ICMP協議來告訴路由器從頭挑選路由。
2. 根據ARP的DOS
這是新呈現的一種辦法,D.O.S又稱拒絕服務,當大量的銜接請求被發送到一臺主機時,因為主機的處理才能有限,不能為正常用戶提供服務,便呈現拒絕服務。這個過程中假如運用ARP來躲藏自己,在被主機的日誌上就不會呈現真實的IP,也不會影響到本機。
3. MAC Flooding
這是一個對比風險的***,能夠溢出交流機的ARP表,使全部網絡不能正常通訊。
4. 交流環境的嗅探
在開始的小型局域網中咱們運用HUB來進行互連,這是一種廣播的辦法,每個包都會經過網內的每臺主機,經過運用軟件,就能夠嗅談到全部局域網的數據。現在的網絡多是交流環境,網絡內數據的傳輸被鎖定的特定方針。既已斷定的方針通訊主機,在ARP詐騙的根底之上,能夠把自己的主機偽形成一個中心轉發站來監聽兩臺主機之間的通訊。
**arp*的防護
1. ARP 高速緩存超時設置
在ARP高速緩存中的表項一般都要設置超時值,縮短這個這個超時值能夠有用的避免ARP表的溢出。
2. IP+MAC訪問操控 ? -----推薦使用
單純依托IP或MAC來樹立信賴聯系是不安全,抱負的安全聯系樹立在IP+MAC的根底上,這也是咱們校園網上網有必要綁定IP和MAC的因素之一。
3. 靜態ARP緩存表
每臺主機都有一個暫時寄存IP-MAC的對應表ARP***就經過更改這個緩存來到達詐騙的意圖,運用靜態的ARP來綁定正確的MAC是一個有用的辦法,在命令行下運用arp -a能夠檢查當時的ARP緩存表。
4. 自動查詢
在某個正常的時間,做一個IP和MAC對應的數據庫,以後定時檢查當時的IP和MAC對應聯系是否正常,定時檢查交流機的流量列表,檢查丟包率。
ARP本省不能形成多大的損害,一旦被聯系使用,其風險性就不可估量,因為ARP自身的疑問,使得防備ARP的***很棘手,經常檢查當時的網絡狀況,監控流量對一個站長來說是個很好的風氣
DOS、DDOS、CC等完整解決方案