本發(fā)明涉及無狀態(tài)掃描領域,具體涉及一種基于TCP包特征的無狀態(tài)掃描過濾方法。
背景技術:
::一個完整的TCP會話的每個過程會有不同的狀態(tài),操作系統(tǒng)底層用協(xié)議棧的方式保存這些會話狀態(tài),來實現傳輸的可靠性。無狀態(tài)掃描是指不關心TCP狀態(tài),不占用系統(tǒng)的TCP/IP協(xié)議棧資源,不進行會話組包,在實現上可能需要把必要的信息存放在數據包本身中?,F在流行的無狀態(tài)掃描工具有ZMAP等。端口掃描是客戶端向一定范圍的服務器端口發(fā)送對應請求,以此確認可使用的端口。雖然其本身并不是惡意的網絡活動,但也是網絡攻擊者探測目標主機服務,以利用該服務的已知漏洞的重要手段。端口掃描的主要用途仍然只是確認遠程機器某個服務的可用性。端口掃描主要有TCP掃描和SYN掃描。TCP掃描:掃描工具使用操作系統(tǒng)原生的網絡功能,且通常作為SYN掃描的替代選項。如果被掃描的主機端口是開放的,則掃描工具就可以通過TCP的三次握手連上該端口。這種掃面模式的優(yōu)勢是用戶無需特殊權限,使用操作系統(tǒng)的原生網絡功能。缺點是需要完成TCP的三次握手,掃描速度比較慢。SYN掃描:SYN掃描是另一種TCP掃描。端口掃描工具不使用操作系統(tǒng)的原生網絡功能,而是自行生成、發(fā)送TCP數據包,并監(jiān)控其回應。這種掃描模式被稱為“半開放掃描”,因為它不建立完整的TCP連接。端口掃描工具生成一個SYN包,如果目標端口開放,則目標端口會返回SYN/ACK包,掃描工具會回復一個RST包中斷連接。如果目標端口關閉了,目標端口會返回RST包。這種掃描方式的優(yōu)點是無需建立完整的TCP連接,掃描速度更快。通過防火墻來實現只允許特定范圍的IP連接到主機。比如有一臺有外網IP的主機開放6379端口,但只允許8.0.0.0到8.0.0.255這個IP段可以方案,在Linux平臺,可以通過配置Iptables來實現。只允許特定范圍的IP可以連接到主機,這種技術一般只用來在公司內部使用,限定的IP段也屬于同一家公司,或者開放給合作伙伴使用。但是對于開放訪問的WEB服務來說,不能使用這種技術。端口掃描客戶端在掃描特定主機開放端口時,大多沿一定順序,逐個端口掃描,且每個端口發(fā)送的包大體相同。防火墻可以通過配置識別這些連續(xù)請求多個端口的IP,如果這些IP經常掃描本機,可以自動將這些IP加到防火墻的黑名單中,禁止這些IP訪問。防火墻識別掃描IP黑名單技術,可以識別大多簡單的掃免工具。但現在的一些掃描工具都可以隨機化掃描端口。在大規(guī)模掃描中,IP和端口都是隨機無序的,防火墻很難過濾這樣的掃描客戶端。技術實現要素:本發(fā)明所要解決的技術問題是提供一種基于TCP包特征的無狀態(tài)掃描過濾方法,用以解決一般防火墻無法過濾一些現代掃描工具的難題,達到一定的安全目的。為解決上述技術問題,本發(fā)明采用的技術方案是:一種基于TCP包特征的無狀態(tài)掃描過濾方法,包括以下步驟:步驟1:在主機或者網關捕獲接收到的TCP包,獲取TCP包的數據序號位和源端口位;步驟2:根據本地IP和遠端IP取哈希,判斷該哈希值是否和獲取的數據序號位和源端口位一致;步驟3:如果一致,則說明這個數據包為無狀態(tài)掃描數據包,向發(fā)送方返回RST包,結束這個連接。進一步的,所述步驟2中,取哈希的具體方法是:針對收到的TCP包,取兩端IP地址,用哈希算法計算兩個IP,用公式計算,計算公式為:端口起始號+第二個編碼數%剩余可用端口數,將計算結果和源端口位比較,如果計算結果和源端口位比較都一致,則該TCP包符合無狀態(tài)掃描特征,判定該數據包為無狀態(tài)掃描包。與現有技術相比,本發(fā)明的有益效果是:解決防火墻過濾無狀態(tài)掃描數據包的難題,達到更好的安全防護目的,增加整個網絡的安全性。具體實施方式無狀態(tài)掃描TCP包特征:因為無狀態(tài)掃描不使用系統(tǒng)協(xié)議棧,所以需要將掃描信息編碼到TCP包中,當收到掃描目的端回復的TCP包時,可以識別出該TCP包是回給掃描工具的。這個編碼存儲在TCP包的數據序號位和源端口位。其中,被編碼的掃描信息為:發(fā)送端和目的端的IP地址。無狀態(tài)包過濾方法:捕獲該主機或者該網關收到的所有TCP包,分析數據包的數據序號位和源端口位,如果符合上面敘述的無狀態(tài)掃描特征,則證明該數據包是掃描客戶端發(fā)送的,向對方發(fā)送RST包,中斷這個TCP連接。詳述如下:1)在主機或者網關捕獲接收到的TCP包,獲取TCP包的數據序號位和源端口位。2)根據本地IP和遠端IP取哈希,判斷該哈希值是否和獲取的數據序號位和源端口位一致。3)如果一致,則說明這個數據包為無狀態(tài)掃描數據包,向發(fā)送方返回RST包,結束這個連接。取哈希方法具體為:針對收到的TCP包,取兩端IP地址,用哈希算法計算兩個IP。如:對8.8.8.8和8.8.4.4編碼出的4個整數為:{12912816,1175904852,1886956615,2664335998},其中第一個整數12912816和TCP/IP包的數據序號位比較;第二個整數1175904852,用公式計算:端口起始號+第二個編碼數%剩余可用端口數,將計算結果和源端口位比較,如果上面兩個比較都一致,則該TCP包符合無狀態(tài)掃描特征,即可判斷該數據包為無狀態(tài)掃描包。當前第1頁1 2 3 當前第1頁1 2 3