1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        DDoS攻擊:無(wú)限戰(zhàn)爭(zhēng) (續(xù)篇)

        共 2854字,需瀏覽 6分鐘

         ·

        2020-01-16 23:25

        274ed72ce54a1a4016e56d3bef2b64c6.webp

        前情回顧

        經(jīng)過(guò)黑衣人和的合作,終于清除了入侵Linux帝國(guó)的網(wǎng)頁(yè)病毒,并修復(fù)了漏洞。不曾想激怒了幕后的黑手,一場(chǎng)新的風(fēng)雨即將來(lái)臨。詳情參見(jiàn)一條SQL注入引出的驚天大案

        1

        風(fēng)云再起

        小Q是Linux帝國(guó)網(wǎng)絡(luò)部負(fù)責(zé)TCP連接的公務(wù)員。

        一直以來(lái)工作都很輕松,加班也少,但自從小馬哥到Linux帝國(guó)開設(shè)了nginx公司,小Q的工作量一下就大了起來(lái),經(jīng)常加班,為此小Q背后沒(méi)少抱怨。


        一大早,nginx按時(shí)啟動(dòng),綁定了80端口監(jiān)聽,開始了今天的營(yíng)生。

        沒(méi)過(guò)多久,今天的第一個(gè)客戶來(lái)了。

        00921fc65891916a3051e09a35fdf67a.webp

        小Q還是如往常一樣,收到這個(gè)帶有SYN標(biāo)記的數(shù)據(jù)包后,創(chuàng)建了一個(gè)連接請(qǐng)求塊,然后將其放入80端口歸屬的連接請(qǐng)求隊(duì)列中,回復(fù)了一個(gè)帶有SYN和ACK標(biāo)記的數(shù)據(jù)包后,開啟了一個(gè)定時(shí)器,等待第三次握手的完成。

        d451e913b8904d701fc981f204dd81e7.webp

        沒(méi)等多久,這個(gè)客戶就發(fā)來(lái)了回信,三次握手完成。小Q把這個(gè)連接請(qǐng)求塊轉(zhuǎn)移到了80端口對(duì)應(yīng)的連接就緒隊(duì)列中,并按下了鈴鐺。


        聽到鈴聲的nginx線程從epoll_wait函數(shù)中醒來(lái),調(diào)用accept函數(shù),從隊(duì)列中拿到了這個(gè)新來(lái)的客戶,開始服務(wù)。

        這就是小Q的日常,他已經(jīng)干這份工作太久了,輕車熟路。


        83b47359c4698bcd4c7953d5ea9745c5.webp

        很快到了深夜,小Q準(zhǔn)備打個(gè)盹兒,這么晚估計(jì)是沒(méi)有活干了。


        沒(méi)想到剛躺下,就來(lái)了一個(gè)連接請(qǐng)求,小Q揉揉惺忪的睡眼,準(zhǔn)備來(lái)處理,然后接著很快來(lái)了第二個(gè),第三個(gè),第四個(gè)······


        奇怪的是,每一個(gè)客戶只發(fā)送了一個(gè)SYN就沒(méi)了音訊,眼看著連接請(qǐng)求隊(duì)列里的請(qǐng)求塊越來(lái)越多,最后實(shí)在沒(méi)有空間安放新的請(qǐng)求塊,小Q開始意識(shí)到情況不妙,拉響了帝國(guó)安全警報(bào)······

        7a3de22c0c09ad67c6a3ed01c7c49a14.webp

        2

        全軍出擊

        十分鐘前······


        “快醒醒,有消息來(lái)了“,還在sleep的阿D被喚醒了。

        “上峰總算想起我了,我來(lái)到Windows帝國(guó)都快一個(gè)月了,一直沒(méi)有指示,只是讓我保持靜默,我都憋壞了。”,阿D伸了伸懶腰,起身調(diào)用recv函數(shù)取到了消息:

        目標(biāo):222.230.189.34

        端口:80

        動(dòng)作:偽造源IP地址,發(fā)送SYN數(shù)據(jù)包


        讀完消息后,阿D使用原始套接字構(gòu)造了一個(gè)TCP數(shù)據(jù)包,將SYN標(biāo)記點(diǎn)亮,偽造了一個(gè)源IP地址,將其發(fā)送了出去。

        經(jīng)過(guò)一通路由轉(zhuǎn)發(fā),這個(gè)數(shù)據(jù)包終于來(lái)到Linux帝國(guó),卻遲遲沒(méi)有人來(lái)接待,側(cè)目望去,原來(lái),已經(jīng)有數(shù)不清的TCP包堵在門口,還有無(wú)數(shù)類似的TCP包正在源源不斷的涌入……

        08b5f176e2dc2219ef2bb3d30c432254.webp


        3

        SYN Flood

        此刻,帝國(guó)高層正在召開緊急會(huì)議。

        防火墻:“現(xiàn)在有無(wú)數(shù)的網(wǎng)絡(luò)連接進(jìn)來(lái),為了帝國(guó)的安全,我只好先關(guān)閉了網(wǎng)絡(luò),把那些數(shù)據(jù)包擋在外面?!?/span>

        443780b49b7af6cb4cbf999c1d22f288.webp

        小馬哥:“需要趕緊采取措施,恢復(fù)正常,我們nginx公司每秒鐘都在丟失大量的客戶,這是一筆巨額損失!”


        帝國(guó)安全部長(zhǎng):“小Q,你把當(dāng)前的形勢(shì)介紹一下,大家一起來(lái)出謀劃策?!?/span>

        小Q:“好的。TCP的三次握手想必諸位都有所了解,收到SYN數(shù)據(jù)包后,我需要準(zhǔn)備一個(gè)數(shù)據(jù)塊來(lái)存儲(chǔ)客戶端的信息,敵軍正是瞄準(zhǔn)了這一點(diǎn),給我發(fā)送SYN數(shù)據(jù)包,我就需要分配大量的數(shù)據(jù)塊,直到把帝國(guó)空間耗盡?!?/span>

        606d35140ff64f3930224bf3b740a780.webp

        小馬哥:“抱歉,我打斷一下,你為何不及時(shí)把無(wú)效的數(shù)據(jù)塊釋放掉,騰出空間呢?

        小Q:“當(dāng)然有,我有一套超時(shí)機(jī)制,超時(shí)以后第三次握手還沒(méi)來(lái),我就會(huì)給釋放掉。但現(xiàn)在問(wèn)題是敵軍聲勢(shì)浩大,剛剛騰出的空間馬上又會(huì)被擠占?!?/span>

        fc1f266f805af8bfb2c724aa3b609c1c.webp

        小馬哥:“那簡(jiǎn)單,你把超時(shí)時(shí)間調(diào)小一點(diǎn),盡快釋放無(wú)效的數(shù)據(jù)塊不就行了!”

        小Q:“要是太小了,正常的用戶因?yàn)榫W(wǎng)絡(luò)原因,時(shí)延比較大的,這不就誤傷了嗎?”

        小馬哥:“嗯,這個(gè)你們自己權(quán)衡一下,取一個(gè)合適的值,如今也沒(méi)有其他辦法,趕緊恢復(fù)生產(chǎn)才是!”


        安全部長(zhǎng):“小Q,先這樣試試看”

        小Q:“行吧,我這就去”


        1740795d03448d977f21323c0acec84e.webp半小時(shí)后······


        小Q:“大人,我已經(jīng)按照指示執(zhí)行,不過(guò)網(wǎng)絡(luò)連接越來(lái)越多,這一招恐怕支撐不了太久,還是早做打算才是。”


        安全部長(zhǎng):“WAF公司呢,你們有什么辦法沒(méi)有?”

        WAF公司黑衣人:“大人,我們關(guān)注的業(yè)務(wù)在于web應(yīng)用安全,此次的SYN Flood,實(shí)非我等擅長(zhǎng)?!?/span>


        現(xiàn)場(chǎng)陷入了久久的沉默……


        21349268f77579703db9d8db7e9f46b0.webp


        良久,防火墻打破了沉默:“小Q,為何非得在收到第一次握手SYN數(shù)據(jù)包后就建立數(shù)據(jù)塊?如果把數(shù)據(jù)塊的建立時(shí)間放在第三次握手之后呢?

        小Q:“如果一開始不用建立數(shù)據(jù)塊占用空間,那確實(shí)解決了大麻煩!不過(guò),不建立數(shù)據(jù)塊,那如何把客戶端的信息保存起來(lái)呢?”


        防火墻:“保存什么信息?”

        小Q:“客戶端的IP、端口、序列號(hào)這些啊。”

        防火墻:“這些信息在第三次握手來(lái)的數(shù)據(jù)包中也有啊,不用提前存起來(lái)嘛!”

        b236b02ef2c63d42bde480165da326f9.webp

        小Q:“說(shuō)的也是,唉,還是不對(duì),第三次握手我得校驗(yàn)對(duì)方發(fā)來(lái)的ACK是不是我在第二次發(fā)給他的序列號(hào)+1,如果我提前不分配數(shù)據(jù)塊把我發(fā)給他的序列號(hào)存起來(lái),到時(shí)候就沒(méi)辦法校驗(yàn)了呀!不行,還是得提前存下來(lái)!”


        防火墻:“有沒(méi)有什么辦法,不用提前存,也能做校驗(yàn)?zāi)???br />

        小Q:“這,這怎么做?”

        防火墻:“有了!第二次發(fā)給客戶端的序列號(hào),如果不是一個(gè)隨機(jī)值,而是根據(jù)客戶端信息和其他信息綜合計(jì)算出來(lái)的一個(gè)哈希值,收到第三次握手的時(shí)候,我們拿到客戶端答復(fù)的ACK,再重新計(jì)算一次哈希值,如果哈希值+1=ACK,那就能對(duì)得上,反之就是錯(cuò)誤的包,直接丟棄!

        eced9af0210f988b2c0456eb345653da.webp

        還沒(méi)等小Q回過(guò)神,安全部長(zhǎng)起身鼓掌:“妙哉!這真是一個(gè)絕妙的點(diǎn)子!小Q,就按這個(gè)辦法,趕緊去辦!


        4

        絕處逢生

        小Q回到工作崗位,按照防火墻提供的思路修改了策略。隨后,通知防火墻重新打開網(wǎng)絡(luò)碼頭,但究竟效果如何,小Q心里還是捏了一把汗。

        ae6e5962e5246b201efe3bef88f22e48.webp

        網(wǎng)絡(luò)恢復(fù)的一剎那,無(wú)數(shù)TCP SYN數(shù)據(jù)包涌了進(jìn)來(lái),這一次,小Q不再分配數(shù)據(jù)塊,只是快速計(jì)算了一個(gè)哈希值作為序列號(hào),回復(fù)給了客戶端。小Q忙的滿頭大汗,但看到存儲(chǔ)空間總算沒(méi)有瘋狂增長(zhǎng),小Q心里長(zhǎng)舒了一口氣。

        66307d176b42b25e5d842da477d81c22.webp

        收到消息的會(huì)議室里響起了熱烈的掌聲!安全部長(zhǎng):“本次經(jīng)歷值得牢記,我們給這個(gè)方案取個(gè)名字吧,告知比特宇宙其他的帝國(guó),幫助大家一起抵抗黑暗勢(shì)力的侵?jǐn)_。”

        79200c4d12a036d3eb6bde2ba410bb38.webp

        WAF黑衣人搶先發(fā)言:“我覺(jué)得這個(gè)方式關(guān)鍵點(diǎn)在于把校驗(yàn)信息的存儲(chǔ)從服務(wù)器放到了客戶端,有點(diǎn)類似web技術(shù)中的Cookie。要不咱們就叫做SYN Cookie吧!”

        防火墻:“嗯,這個(gè)名字好,總結(jié)的很到位”


        一個(gè)小時(shí)后,瘋狂的TCP SYN數(shù)據(jù)包潮水逐漸退去,Linux帝國(guó)終于恢復(fù)了往日的寧?kù)o,nginx公司的業(yè)務(wù)也恢復(fù)了正常。小Q抬頭一看,天邊已經(jīng)微亮,這漫長(zhǎng)的夜晚總算是熬過(guò)去了。

        ef4fa0bc4fa7556e1897daf0e7496fea.webp


        未完待續(xù)·······



        彩蛋

        “大人,Linux帝國(guó)有防火墻、WAF一幫人守衛(wèi),我們的攻擊沒(méi)有起到什么效果?!?/span>

        “你以為他們真的是靠自己的本事勝利的嗎?這次只是給他們點(diǎn)教訓(xùn),我們的游戲才剛剛開始。


        欲知后事如何,請(qǐng)關(guān)注后續(xù)精彩......


        -END-


        另外,新關(guān)注我們公眾號(hào)的朋友,可以在公眾號(hào)后臺(tái)聊天框回復(fù)【1024】,可以免費(fèi)獲取2T的編程視頻,算法、人工智能、Python、Java、Linux、Go、C語(yǔ)言、軟考、英語(yǔ)等等資源 。


        推薦閱讀:




        ae88e3dc239fc4b7444ad5a433c222eb.webp原創(chuàng)不容易,別光看,轉(zhuǎn)發(fā)分享給更多人啊bfb05f56fe61237ddb848375f6c8b22f.webp
        瀏覽 73
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            国产在线拍揄自揄拍无码视频 | 91人妻人人澡人人精品 | 777午夜精品 | 五月天av激情 | 东京热在线视频观看 | 探花国产| 免费自拍偷拍视频 | 男男视频免费观看网站国产 | 欧美日本色图 | 大香蕉青青 |