乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      常用網(wǎng)絡攻擊原理與防范

       ylzrx 2012-05-17
      一  Web欺騙攻擊

      Web欺騙的行為特點
          Web站點的廣泛用,誘惑著網(wǎng)上的欺詐行為。這種欺詐行為是由于鋪天蓋地的信息,讓人們無法辨別其真?zhèn)卧斐傻摹?SPAN .="t_tag" href="tag.php?name=%E7%94%A8%E6%88%B7">用戶在使用計算機時總是根據(jù)他們所看到的內(nèi)容做出一些關于安全性的決定。如:你也許在看到銀行的Web頁面時輸入你在該銀行的帳戶和口令,而很少去想,這Web頁面究竟是不是來自銀行的信息。
          攻擊者建立一個人們相信的Web站點的拷貝,然后控制這個Web站點的拷貝,攻擊者控制被攻擊對象和真的Web服務器之間的所有信息流。攻擊者既可以假冒用戶給服務器發(fā)送數(shù)據(jù),也可以假冒服務器給用戶發(fā)送假冒的信息。
      1、靜態(tài)觀察
             被動地觀察整個數(shù)據(jù)流。
             記錄瀏覽者所訪問的頁面和頁面的內(nèi)容。
             記錄用戶輸入的數(shù)據(jù)和服務器的響應。
             大多數(shù)在線商務都要填充表格,所以可簡單地獲得用戶的口令。
      2、實施破壞
            攻擊者可以隨意修改來往于瀏覽者和服務器間的信息。
            攻擊者可以隨意修改來往于瀏覽者和服務器間的信息。攻擊者可以修改服務器發(fā)送給瀏覽者的信息,如插入些誤導性的數(shù)據(jù)欺騙瀏覽者或引起用戶再也不信任這個網(wǎng)站。
      3、攻擊的簡單性
      攻擊者偽裝Web站點較為容易,因為不需要存儲整個Web站點的內(nèi)容,整個Web站點的內(nèi)容可以在線得到,攻擊者只要及時獲得所需的Web頁面就行了。


      攻擊原理與過程
      1、攻擊原理
      攻擊的關鍵在于攻擊者的Web服務器能夠插在瀏覽者和其他Web服務器之間。攻擊者改寫某個頁面上的URL使得連接都指向攻擊者的機器。如攻擊者的服務器在機器http://bbs./www.上運行,那么攻擊者要在頁面上所有的URL前加上http://www./。如原來的URL為http://home./就變成http://www./http://www.
      瀏覽者請求一個頁面時將發(fā)生如下事情:
        瀏覽者請求來自于攻擊者服務器的頁面。
        攻擊服務器請求真正的服務器的相應頁面。
        真正服務器向攻擊服務器提供真正頁面。
        攻擊服務器重寫頁面。
        攻擊服務器向瀏覽者提供一個經(jīng)過修改的頁面。

      2、攻擊過程
      可通過下列方法誘惑被攻擊對象連接到攻擊者的假Web上:
      把一個指向假Web的鏈接放到一個流行的Web頁上。
      使用電子郵件系統(tǒng)發(fā)郵件引誘。
      使Web搜索引擎指向假Web。
      當瀏覽者瀏覽頁面時,他實際上向攻擊服務器詢問這個文檔,而攻擊服務器再去真正的服務器取回這個文檔。文檔取回后,攻擊者在該文檔的所有URL前面加上自己的地址來改寫這個文檔,攻擊者向瀏覽者提供改寫后的文檔。
      攻擊者通常都會對攻擊過程進行偽裝,以防瀏覽者發(fā)現(xiàn)。
      狀態(tài)行:狀態(tài)行是在瀏覽器窗口底邊的一行文本,會顯示不同的信息,通常是正在傳輸?shù)腤eb,從這里可以看到瀏覽器真正連接的服務器。這會留下痕跡。攻擊者可以通過加一個JavaScript程序來消除痕跡。JavaScript程序可以寫狀態(tài)行,因此可以讓某個事件的發(fā)生結合某個JavaScript的行動,在狀態(tài)行上顯示應該的內(nèi)容。
      地址行:瀏覽器的地址行,攻擊會在地址行上顯示一個被篡改的URL,從而給用戶一個被攻擊的提示。這個線索同樣可以用JavaScript來隱藏。一個JavaScript程序可以用一個假的地址行來代替一個真的地址行。


      防范措施
      Web欺騙攻擊的危害性很大,上當?shù)挠脩舨坏珪孤稒C密信息,還可能會蒙受經(jīng)濟等方面的損失。上網(wǎng)的用戶應該提高警惕,不要成為犧牲品。
      為確保安全,用戶可以采取一些應急的措施:
      關閉瀏覽器的JavaScript選項,使得攻擊者不能隱藏攻擊的痕跡。
      確信你的瀏覽器的地址行總是可見的。注意瀏覽器地址行上顯示的URL,確信他們一定指向所希望的服務器。
      進入SSL安全連接時,仔細查看站點的證書是否與其聲稱的一致,不要被相似的字符所欺騙。
      對訪問進行限制:
         IP地址、子網(wǎng)、域的限制。預先對允許的IP地址子網(wǎng)和域進行授權。
         使用用戶名和密碼
         加密。所有傳輸內(nèi)容加密,除接收者外無人能懂。
        JavaScript,ActiveX和Java都使得假冒越來越方便了,最好在瀏覽器上全部關閉它們。
       
       
      二 分布式拒絕服務攻擊

      DoS的攻擊方式有很多種,最基本的DoS攻擊就是利用合理的服務請求來占用過多的服務資源,從而使合法用戶無法得到服務的響應。DDoS攻擊手段是在傳統(tǒng)的DoS攻擊基礎之上產(chǎn)生的一類攻擊方式。單一的DoS攻擊一般是采用一對一方式的,當攻擊目標CPU速度低、內(nèi)存或者網(wǎng)絡帶寬等各項性能指標不高時,它的攻擊效果是明顯的。隨著計算機與網(wǎng)絡技術的發(fā)展,計算機的處理能力迅速增長,內(nèi)存大大增加,同時也出現(xiàn)了千兆級別的網(wǎng)絡,這使得DoS攻擊的困難程度加大了。目標對惡意攻擊包的“消化能力”加強了不少,例如你的攻擊軟件每秒鐘可以發(fā)送2,000個攻擊包,但我的主機與網(wǎng)絡帶寬每秒鐘可以處理8,000個包,這樣一來攻擊就不會產(chǎn)生什么效果了。
      1.  拒絕服務攻擊的含義
      拒絕服務攻擊是指一個用戶占用了大量的共享資源,使系統(tǒng)沒有其他的資源給其他用戶使用的攻擊。拒絕服務攻擊降低了系統(tǒng)資源的可用性。
        系統(tǒng)資源包括:CPU時間、磁盤空間、網(wǎng)絡帶寬、打印機、MODEM、甚至是系統(tǒng)管理員的時間。攻擊的結果是減低或失去服務。
      2.  拒絕服務攻擊分類
      拒絕服務攻擊可分為兩類:
      A、試圖破壞和毀壞資源,使得無人可以使用這個資源。如刪除文件,格式化磁盤或切斷電源等。
      B、過載一系列服務或者消耗一些資源,這些行為也許是攻擊者故意的行為,也許是用戶無意中的錯誤所致。通過這些方式,阻止其他用戶使用這些服務。如添滿磁盤空間等。

          過載攻擊
      在過載攻擊中,一個共享的資源或者服務由于需要處理大量的請求,以致于無法滿足從其他用戶到來的請求。典型的有下列幾種:
      1.  進程過載
      在進程攻擊中,一個用戶可以阻止在同時間內(nèi)另一個用戶使用計算機,進程攻擊通常發(fā)生在共享的計算機中。進行這種攻擊的用戶消耗的是他自己的進程數(shù)目,而不是別人的。用戶產(chǎn)生的許多進程,會消耗大量的CPU時間,使系統(tǒng)運行變的 十分緩慢。在目前的操作系統(tǒng)中,用戶所能創(chuàng)建的最大進程數(shù)是受到限制的,只有超級用戶沒有限制。
        遇到這種情況,只能殺掉這些進程或關機重起。
      2.  磁盤攻擊
      如果一個用戶向磁盤填充了大量的文件,其他用戶便不能生成文件。


      網(wǎng)絡拒絕服務攻擊
         網(wǎng)絡對拒絕服務的抵抗力很有限,攻擊者可以通過攻擊阻止合法用戶使用網(wǎng)絡和服務。
      1.  服務過載
      當大量的服務請求發(fā)向一臺計算機中的服務守護進程時,就會發(fā)生服務過載。這些請求許多是故意的,如潮的請求會使計算機十分忙碌地處理不斷到來的服務請求,而無法處理常規(guī)任務。
      由于沒有空間存放這些請求,許多新到請求被丟棄,如果是TCP協(xié)議的服務,這些請求的包還會重發(fā),結果更加重了網(wǎng)絡的負擔??梢允褂镁W(wǎng)絡監(jiān)視工具來發(fā)現(xiàn)這類攻擊,甚至發(fā)現(xiàn)攻擊的來源。

      2.  粘住攻擊
      使用TCP的半連接耗盡系統(tǒng)資源。TCP連接通過三次握手來建立一個連接,
      如果攻擊者發(fā)出許多連接請求,初步建立了連接,但又沒有完成其后的連接步驟,于是接收者便保留了許多這種半連接,占據(jù)著有限的系統(tǒng)資源。
      通常這類連接使用的是偽造的源地址,根本沒有辦法去跟蹤這個連接,唯一可做的是等待,等待這個連接超時釋放。

      3.  SYN-Flooding攻擊
      在SYN-Flooding攻擊中,使用一個偽裝的地址向目標計算機發(fā)送TCP請求,
      黑客盡可能地發(fā)送這些請求,以便占用目標計算機盡可能多的資源。
        當目標計算機收到請求后,會恢復請求一個確認答復(SYN-ACK)。由于SYN-ACK是返回到一個偽裝的地址,沒有任何響應,于是目標計算機將繼續(xù)設法發(fā)送SYN-ACK。
        一些系統(tǒng)都有缺省的恢復次數(shù)和超時時間,只有恢復一定的次數(shù)或者超時后,才會釋放占用的系統(tǒng)資源。
        在Windows NT 3.5和4.0中,缺省設置為可重復發(fā)送SYN-ACK答復5次,每次重發(fā)后,等待時間翻番。第一次等待時間為3秒,到第五次重發(fā)時,機器要等待48秒,如果還收不到響應機器還要等待96秒,才取消分配給連接的資源,在這些資源獲得釋放前,已經(jīng)過去了189秒。

      最基本的DoS攻擊就是利用合理的服務請求來占用過多的服務資源,從而使合法用戶無法得到服務的響應。DDoS攻擊手段是在傳統(tǒng)的DoS攻擊基礎之上產(chǎn)生的一類攻擊方式。單一的DoS攻擊一般是采用一對一方式的,當攻擊目標CPU速度低、內(nèi)存或者網(wǎng)絡帶寬等各項性能指標不高時,它的攻擊效果是明顯的。

      分布式的拒絕服務攻擊(DDoS)的原理就很簡單。如果說計算機與網(wǎng)絡的處理能力加大了10倍,用一臺攻擊機來攻擊不再能起作用的話,攻擊者使用10臺或100臺器機同時攻擊就會產(chǎn)生預想的效果。DDoS就是利用更多的傀儡機來發(fā)起進攻,以比從前更大的規(guī)模來進攻受害者。

      高速廣泛連接的網(wǎng)絡為DDoS攻擊創(chuàng)造了極為有利的條件。在低速網(wǎng)絡時代時,黑客占領攻擊用的傀儡機時,總是會優(yōu)先考慮離目標網(wǎng)絡距離近的機器,因為經(jīng)過路由器的跳數(shù)少,效果好。而現(xiàn)在電信骨干結點之間的連接都是以千兆為級別,這使得攻擊可以從更遠的地方或者其他城市發(fā)起,攻擊者的傀儡機位置可以分布在更大的范圍,選擇起來更靈活。


      攻擊原理

      如圖所示,一個比較完善的DDoS攻擊體系分成四大部分,先來看一下最重要的第2和第3部分:它們分別用做控制和實際發(fā)起攻擊,請注意控制機與攻擊機的區(qū)別。對第4部分的受害者來說,DDoS的實際攻擊包是從第3部分攻擊傀儡機上發(fā)出的,第2部分的控制機只發(fā)布命令而不參與實際的攻擊。對第2和第3部分計算機,黑客有控制權或者是部分的控制權,并把相應的DDoS程序上傳到這些平臺上,這些程序與正常的程序一樣運行并等待來自黑客的指令,通常它還會利用各種手段隱藏自己不被別人發(fā)現(xiàn)。在平時,這些傀儡機器并沒有什么異常,只是一旦黑客連接到它們進行控制,并發(fā)出指令的時候,攻擊傀儡機就成為害人者去發(fā)起攻擊了。
      為什么黑客不直接去控制攻擊傀儡機,而要從控制傀儡機上轉(zhuǎn)一下呢?這是導致DDoS攻擊難以追查的原因之一。從攻擊者的角度來說,肯定不愿意被追查到,而攻擊者使用的傀儡機越多,實際上提供給受害者的分析的依據(jù)就越多。另一方面,為了不給日后的追查留下痕跡,攻擊者會清理掉被占主機中的相關日志記錄,由于參與攻擊的傀儡機數(shù)量較多,在攻擊傀儡機上清理日志實在是一項龐大的工程,即使在很好的日志清理工具的幫助下。這就導致了有些攻擊機日志清理的不徹底,通過這些線索可以找到控制它的上一級計算機。由于控制傀儡機的數(shù)目相對很少,一般一臺就可以控制幾十臺攻擊機,清理一臺計算機的日志對黑客來講就輕松多了,這樣從控制機再找到黑客的可能性也大大降低。

      攻擊過程

      DDoS并不象**一臺主機那樣簡單。一般來說,黑客進行DDoS攻擊時會經(jīng)過這樣的步驟:
      搜集了解目標的情況(被攻擊目標主機數(shù)目、地址情況;目標主機的配置、性能;目標的帶寬;有多少臺主機在支持這個站點 )。
      占領傀儡機。黑客最感興趣的是有下列特點的主機:鏈路狀態(tài)好的主機、性能好的主機、安全管理水平差的主機。
      實際攻擊。如果前面的準備工作做得好,實際攻擊過程反而是比較簡單的。黑客登錄到作為控制臺的傀儡機,向所有的攻擊機發(fā)出命令,潛伏在攻擊機中的DDoS攻擊程序就會響應控制臺的命令,一起向受害主機以高速度發(fā)送大量的數(shù)據(jù)包,導致目標死機或是無法響應正常的請求。
      黑客一般會以遠遠超出受害方處理能力的速度進行攻擊,決不會手下留情。

      防范措施
      遭受DDoS攻擊的主機和網(wǎng)絡會有一些表現(xiàn)特征,有助于管理人員及時發(fā)現(xiàn)問題并采取對應措施。
        被攻擊主機上有大量等待的TCP連接。
        網(wǎng)絡中充斥著大量的無用的數(shù)據(jù)包,源地址為假。
        制造高流量無用數(shù)據(jù),造成網(wǎng)絡擁塞,使受害主機無法正常和外界通訊。
        利用受害主機提供的服務或傳輸協(xié)議上的缺陷,反復高速的發(fā)出特定的服務請求,使受害主機無法及時處理所有正常請求。
         嚴重時會造成系統(tǒng)死機。
      到目前為止,進行DDoS攻擊的防御還是比較困難的。首先,這種攻擊的特點是它利用了TCP/IP協(xié)議的漏洞,除非你不用TCP/IP,才有可能完全抵御住DDoS攻擊。對DDoS攻擊有個形象的比喻:DDoS就好象有100個人同時給你家里打電話,這時候你的朋友還打得進來嗎?

      當然,防止DDoS也絕不是不可行的事情。核心的目標就是大家都應力爭不要成為黑客的傀儡機。對于網(wǎng)絡管理員來說,如果所維護的網(wǎng)絡中有一些服務器需要向外提供WWW服務,就要注意不要成為DDoS的攻擊目標,具體可以從主機與網(wǎng)絡設備兩個角度去考慮。
      1、主機設置
      幾乎所有的主機平臺都有抵御DoS的設置,總結一下,基本的有以下幾種:
        關閉不必要的服務
        限制同時打開的Syn半連接數(shù)目
        縮短Syn半連接的time out 時間
        及時更新系統(tǒng)補丁

      2、網(wǎng)絡設備設置
      網(wǎng)絡設備的設置可以從防火墻與路由器上考慮。
      防火墻:禁止對主機的非開放服務的訪問;限制同時打開的SYN最大連接數(shù);限制特定IP地址的訪問;啟用防火墻的防DDoS屬性;嚴格限制對外開放的服務器的向外訪問。
      路由器:(以Cisco路由器為例)Cisco Express Forwarding(CEF);使用 unicast reverse-path;訪問控制列表(ACL)過濾;設置SYN數(shù)據(jù)包流量速率;升級版本過低的IOS;為路由器建立log server。其中使用CEF和Unicast設置時要特別注意,使用不當會造成路由器工作效率嚴重下降,升級IOS也應謹慎。
       
       
       
      三 緩沖區(qū)溢出攻擊

      緩沖區(qū)溢出是一種非常普遍、非常危險的漏洞,在各種操作系統(tǒng)、應用軟件中廣泛存在。利用緩沖區(qū)溢出攻擊,可以導致程序運行失敗、系統(tǒng)關機、重新啟動等后果。更為嚴重的是,可以利用它執(zhí)行非授權指令,甚至可以取得系統(tǒng)特權,進而進行各種非法操作。

          攻擊原理
      通過往程序的緩沖區(qū)寫超出其長度的內(nèi)容,造成緩沖區(qū)的溢出,從而破壞程序的堆棧,使程序轉(zhuǎn)而執(zhí)行其它指令,以達到攻擊的目的。
      造成緩沖區(qū)溢出的原因是程序中沒有仔細檢查用戶輸入的參數(shù)。例如下面程序:
      1.         void function(char *str) {
      2.         char buffer[16];
      3.         strcpy(buffer,str)
      4.         }
      復制代碼
      上面的strcpy()將直接把str中的內(nèi)容copy到buffer中。這樣只要str的長度大于16,就會造成buffer的溢出,使程序運行出錯。

      隨便往緩沖區(qū)中填東西造成它溢出一般只會出現(xiàn)“分段錯誤”(Segmentation fault),而不能達到攻擊的目的。最常見的手段是通過制造緩沖區(qū)溢出使程序運行一個用戶shell,再通過shell執(zhí)行其它命令。如果該程序?qū)儆趓oot且有suid權限的話,攻擊者就獲得了一個有root權限的shell,可以對系統(tǒng)進行任意操作了。
      緩沖區(qū)溢出攻擊之所以成為一種常見安全攻擊手段其原因在于緩沖區(qū)溢出漏洞太普遍了,并且易于實現(xiàn)。緩沖區(qū)溢出成為遠程攻擊的主要手段,其原因在于緩沖區(qū)溢出漏洞給予了攻擊者所想要的一切:植入并且執(zhí)行攻擊代碼。被植入的攻擊代碼以一定的權限運行有緩沖區(qū)溢出漏洞的程序,從而得到被攻擊主機的控制權。

      攻擊過程
      緩沖區(qū)溢出攻擊的目的在于擾亂具有某些特權運行的程序的功能,這樣可以使得攻擊者取得程序的控制權,如果該程序具有足夠的權限,那么整個主機就被控制了。一般而言,攻擊者攻擊具有root權限的程序,然后執(zhí)行類似“exec(sh)”的執(zhí)行代碼來獲得root權限的shell。為了達到這個目的,攻擊者必須達到如下兩個目標:
         在程序的地址空間里安排適當?shù)拇a。
         通過適當?shù)某跏蓟拇嫫骱蛢?nèi)存,讓程序跳轉(zhuǎn)到**者安排的地址空間執(zhí)行。

      1、在程序地址空間中安排適當代碼的方法
      有兩種在被攻擊程序地址空間里安排攻擊代碼的方法:
          植入法:攻擊者向被攻擊的程序輸入一個字符串,程序會把這個字符串放到緩沖區(qū)里。這個字符串包含的資料是可以在這個被攻擊的硬件平臺上運行的指令序列。在這里,攻擊者用被攻擊程序的緩沖區(qū)來存放攻擊代碼。緩沖區(qū)可以設在任何地方:堆棧(stack,自動變量)、堆(heap,動態(tài)分配的內(nèi)存區(qū))和靜態(tài)資料區(qū)。
          利用已經(jīng)存在的代碼:有時,攻擊者想要的代碼已經(jīng)在被攻擊的程序中了,攻擊者所要做的只是對代碼傳遞一些參數(shù)。比如,攻擊代碼要求執(zhí)行“exec (“/bin/sh”)”,而在libc庫中的代碼執(zhí)行“exec (arg)”,其中arg是一個指向一個字符串的指針參數(shù),那么攻擊者只要把傳入的參數(shù)指針改向指向”/bin/sh”即可。

      2、控制程序轉(zhuǎn)移到攻擊代碼的方法
      所有的這些方法都是在尋求改變程序的執(zhí)行流程,使之跳轉(zhuǎn)到攻擊代碼。最基本的思想就是溢出一個沒有邊界檢查或者具有其它弱點的緩沖區(qū),這樣就擾亂了程序的正常的執(zhí)行順序。通過溢出一個緩沖區(qū),攻擊者可以用暴力的方法改寫相鄰的程序空間而直接跳過了系統(tǒng)的檢查。
      分類的原則是攻擊者所尋求的緩沖區(qū)溢出的程序空間類型。原則上是可以任意的空間。實際上,許多的緩沖區(qū)溢出是用暴力的方法來尋求改變程序指針的。這類程序的不同之處就是程序空間的突破和內(nèi)存空間的定位不同。主要有以下三種:
         活動紀錄(Activation Records):每當一個函數(shù)調(diào)用發(fā)生時,調(diào)用者會在堆棧中留下一個活動紀錄,它包含了函數(shù)結束時返回的地址。攻擊者通過溢出堆棧中的自動變量,使返回地址指向攻擊代碼。通過改變程序的返回地址,當函數(shù)調(diào)用結束時,程序就跳轉(zhuǎn)到攻擊者設定的地址,而不是原先的地址。這類的緩沖區(qū)溢出被稱為堆棧溢出攻擊(Stack Smashing Attack),是目前最常用的緩沖區(qū)溢出攻擊方式。
         函數(shù)指針(Function Pointers):函數(shù)指針可以用來定位任何地址空間。例如:“void (* foo)()”聲明了一個返回值為void的函數(shù)指針變量foo。所以攻擊者只需在任何空間內(nèi)的函數(shù)指針附近找到一個能夠溢出的緩沖區(qū),然后溢出這個緩沖區(qū)來改變函數(shù)指針。在某一時刻,當程序通過函數(shù)指針調(diào)用函數(shù)時,程序的流程就按攻擊者的意圖實現(xiàn)了。它的一個攻擊范例就是在Linux系統(tǒng)下的superprobe程序。
      長跳轉(zhuǎn)緩沖區(qū)(Longjmp buffers):在C語言中包含了一個簡單的檢驗/恢復系統(tǒng),稱為setjmp/longjmp。意思是在檢驗點設定“setjmp(buffer)”,用“l(fā)ongjmp(buffer)”來恢復檢驗點。然而,如果攻擊者能夠進入緩沖區(qū)的空間,那么“l(fā)ongjmp(buffer)”實際上是跳轉(zhuǎn)到攻擊者的代碼。象函數(shù)指針一樣,longjmp緩沖區(qū)能夠指向任何地方,所以攻擊者所要做的就是找到一個可供溢出的緩沖區(qū)。


      防范措施

      緩沖區(qū)溢出攻擊在遠程網(wǎng)絡攻擊中占了大多數(shù),這種攻擊可以使得一個匿名的Internet用戶有機會獲得一臺主機的部分或全部的控制權。如果能有效地消除緩沖區(qū)溢出的漏洞,則很大一部分安全威脅可以得到緩解。
      目前有四種基本的方法保護主機免受緩沖區(qū)溢出的攻擊和影響。
      1、非執(zhí)行緩沖區(qū)
      通過使被攻擊程序的數(shù)據(jù)段地址空間不可執(zhí)行,從而使得攻擊者不可能執(zhí)行已植入到被攻擊程序輸入緩沖區(qū)的代碼,這種技術被稱為非執(zhí)行的緩沖區(qū)技術。在早期的Unix系統(tǒng)設計中,只允許程序代碼在代碼段中執(zhí)行。但是近來的Unix和MS Windows系統(tǒng)由于要實現(xiàn)更好的性能和功能,往往在數(shù)據(jù)段中動態(tài)地放入可執(zhí)行的代碼,這也是緩沖區(qū)溢出的根源。為了保持程序的兼容性,不可能使得所有程序的數(shù)據(jù)段不可執(zhí)行。但是可以設定堆棧數(shù)據(jù)段不可執(zhí)行,這樣可以保證程序的兼容性。

      2、編寫正確的代碼
      編寫正確的代碼是一件非常有意義的工作,特別象編寫C語言那種風格自由而容易出錯的程序,這種風格是由于追求性能而忽視正確性的傳統(tǒng)引起的。人們開發(fā)了一些工具和技術來幫助經(jīng)驗不足的程序員編寫安全正確的程序。
      用grep來搜索源代碼中容易產(chǎn)生漏洞的庫調(diào)用,如對strcpy的調(diào)用。
      開發(fā)了一些高級的查錯工具,如fault injection等。這些工具的目的在于通過人為隨機地產(chǎn)生一些緩沖區(qū)溢出來尋找代碼的安全漏洞。還有一些靜態(tài)分析工具用于偵測緩沖區(qū)溢出的存在。
      偵錯技術只能用來減少緩沖區(qū)溢出的可能,并不能完全地消除它的存在。

      3、數(shù)組邊界檢查
      數(shù)組邊界檢查能防止所有的緩沖區(qū)溢出的產(chǎn)生和攻擊。這是因為只要數(shù)組不能被溢出,溢出攻擊也就無從談起。為了實現(xiàn)數(shù)組邊界檢查,則所有的對數(shù)組的讀寫操作都應當被檢查以確保對數(shù)組的操作在正確的范圍內(nèi)。最直接的方法是檢查所有的數(shù)組操作,但是通常可以采用一些優(yōu)化的技術來減少檢查的次數(shù)。目前的幾種檢查方法:
      Jones & Kelly:C的數(shù)組邊界檢查。
      Compaq C 編譯器:Compaq公司為Alpha CPU開發(fā)的C編譯器支持有限的邊界檢查。
      Purify:內(nèi)存存取檢查
      類型-安全語言

      4、程序指針完整性檢查
      程序指針完整性檢查和邊界檢查有略微的不同,程序指針完整性檢查在程序指針被引用之前檢測它的改變。因此,即使一個攻擊者成功地改變了程序的指針,由于系統(tǒng)事先檢測到了指針的改變,因此這個指針將不會被使用。
      與數(shù)組邊界檢查相比,這種方法不能解決所有的緩沖區(qū)溢出問題,采用有些緩沖區(qū)溢出攻擊方法可以避開這種檢測。但是這種方法在性能上有很大的優(yōu)勢,而且兼容性也很好。
       
       
       
      四  IP地址欺騙

      即使是實現(xiàn)良好的TCP/IP協(xié)議,由于協(xié)議自身存在著的一些問題,也可以導致對TCP/IP網(wǎng)絡的攻擊,如序列號欺騙,路由攻擊和源地址欺騙等。IP地址欺騙包括源地址欺騙和序列號欺騙,是最常見的攻擊TCP/IP協(xié)議弱點的方法之一。實際上,IP 欺騙不是攻擊的結果,而是攻擊的手段。主要的攻擊對象是基于IP地址鑒別的網(wǎng)絡應用,如UNIX系統(tǒng)中的R系列服務。
      11.4.1攻擊原理
      1、信任關系
      在UNIX系統(tǒng)中,信任關系能夠很容易得到。假設在主機A和B上各有一個帳戶,在使用主機A時,需要輸入主機A上的帳戶及密碼,使用主機B時,同樣也必須輸入在主機B上的帳戶及密碼,主機A和B把你當作兩個互不相關的用戶,顯然這有些不便。為了減少這種不便,可以在主機A和主機B中建立起兩個帳戶的相互信任關系。有了這種信任關系,就可以方便地使用任何以r開頭的遠程調(diào)用命令,如:rlogin,rcall,rsh等,而無口令驗證的煩惱。這些命令將提供以地址為基礎的驗證,根據(jù)訪問者IP地址,決定允許或拒絕存取服務。即信任關系是基于IP地址的。
      2、TCP序列號猜測
      大家都知道,TCP連接的建立包括一個三次握手的過程,如圖所示。由于在某些系統(tǒng)中序列號y的產(chǎn)生規(guī)律相對簡單,就為今后的安全留下了隱患。


      如果攻擊者了解主機A與B之間建立了信任關系,在A不能正常工作時,假冒主機A的IP地址,向主機B發(fā)送建立TCP連接的請求包,這時如果攻擊者能夠猜出主機B確認包中的序列號y,就可以假冒主機A與主機B建立TCP連接。然后通過傳送可執(zhí)行的命令數(shù)據(jù),侵入主機B中。

      為何要猜序列號?
      當攻擊者C與A位于不同子網(wǎng)時,若C冒充A向B發(fā)連接請求時,C是無法收到服務器B的應答的

      攻擊過程
      IP地址欺騙攻擊由若干步驟組成。首先,選定目標主機;其次,發(fā)現(xiàn)信任模式,并找到一個被目標主機信任的主機;然后,使該主機喪失工作能力,同時采樣目標主機發(fā)出的TCP 序列號,猜測出它的數(shù)據(jù)序列號。然后,偽裝成被信任的主機,同時建立起與目標主機基于地址驗證的應用連接。如果成功,黑客可以使用一種簡單的命令放置一個系統(tǒng)后門,以進行非授權操作。
      一旦發(fā)現(xiàn)被信任的主機,為了偽裝成它,往往使其喪失工作能力。由于攻擊者將要代替真正的被信任主機,他必須確保真正被信任的主機不能接收到任何有效的網(wǎng)絡數(shù)據(jù),否則將會被揭穿。有許多方法可以實現(xiàn)這一點,如SYN-Flood攻擊。
      為了知道目標主機使用的數(shù)據(jù)包序列號,攻擊者往往先與被攻擊主機的一個端口(SMTP是一個很好的選擇)建立起正常的連接。通常,這個過程被重復若干次,并將目標主機最后所發(fā)送的序列號存儲起來。此外,攻擊者還需要估計他的主機與被信任主機之間的包往返時間,這個時間是通過多次統(tǒng)計平均求出的,它對于估計下一個數(shù)據(jù)序列號是非常重要的。
      在上述準備完成后,攻擊者將使用被信任主機的IP地址,此時,該主機仍然處在停頓狀態(tài)(前面講的喪失處理能力),向目標主機的513端口(rlogin的端口號)發(fā)送連接請求。之后,目標主機對連接請求作出反應,發(fā)送SYN/ACK數(shù)據(jù)包給被信任主機(如果被信任主機處于正常工作狀態(tài),那么會認為是錯誤并立即向目標主機返回RST數(shù)據(jù)包,但此時它處于停頓狀態(tài))。按照計劃,被信任主機會拋棄該SYN/ACK數(shù)據(jù)包(當然攻擊者也得不到該包,否則就不用猜了)。在協(xié)議要求得時間內(nèi),攻擊者向目標主機發(fā)送ACK數(shù)據(jù)包,該ACK使用前面估計的序列號加1。如果攻擊者估計正確的話,目標主機將會接收該ACK 。至此,連接正式建立起來了。然后,將開始數(shù)據(jù)傳輸。一般地,攻擊者將在系統(tǒng)中放置一個后門,以便今后得侵入。

      然后,偽裝成被信任的主機,同時建立起與目標主機基于地址驗證的應用連接。如果成功,黑客可以使用一種簡單的命令放置一個系統(tǒng)后門,以進行非授權操作。
      此外,
      在上述準備完成后,攻擊者將使用被信任主機的IP地址,此時,該主機仍然處在停頓狀態(tài)(前面講的喪失處理能力),向目標主機的513端口(rlogin的端口號)發(fā)送連接請求。之后,目標主機對連接請求作出反應,發(fā)送SYN/ACK數(shù)據(jù)包給被信任主機(如果被信任主機處于正常工作狀態(tài),那么會認為是錯誤并立即向目標主機返回RST數(shù)據(jù)包,但此時它處于停頓狀態(tài))。按照計劃,被信任主機會拋棄該SYN/ACK數(shù)據(jù)包(當然攻擊者也得不到該包,否則就不用猜了)。在協(xié)議要求得時間內(nèi),攻擊者向目標主機發(fā)送ACK數(shù)據(jù)包,該ACK使用前面估計的序列號加1。如果攻擊者估計正確的話,目標主機將會接收該ACK 。至此,連接正式建立起來了。然后,將開始數(shù)據(jù)傳輸。一般地,攻擊者將在系統(tǒng)中放置一個后門,以便今后得侵入。

      3、使用加密方法
      阻止IP欺騙的另一種明顯的方法是在通信時要求加密傳輸和驗證。當有多種手段可以使用時,可能加密方法最為適用。

      4、使用隨機化的初始序列號 
          黑客攻擊得以成功實現(xiàn)的一個很重要的因素就是,序列號不是隨機選擇的或者隨機增加的。一種彌補TCP不足的方法就是分割序列號空間。每一個連接將有自己獨立的序列號空間。序列號將仍然按照以前的方式增加,但是在這些序列號空間中沒有明顯的關系。


      IP地址欺騙----Smurf攻擊
      攻擊者向具有很大因特網(wǎng)連接帶寬并具有很多臺主機的網(wǎng)絡廣播地址發(fā)送一個偽造地址的Ping分組,這種做法稱為使用反彈站點(bounce site)。這個Ping分組的源地址是攻擊者想要攻擊的系統(tǒng)地址。
      這種攻擊的前提是路由器接收到發(fā)送給IP廣播地址的分組后,會認為這是一份網(wǎng)絡廣播信息,并且把它映射為以太網(wǎng)廣播地址FF.FF.FF.FF. FF.FF。
      這樣當路由器從因特網(wǎng)上接收到該分組時,它就會向本網(wǎng)段中的所有主機廣播。
      接下來,網(wǎng)段內(nèi)的所有主機都會向偽造的IP地址發(fā)送回復信息,目標將很快被回復信息阻塞。
      防止措施:阻塞所有入站的Ping包;停止路由器為具有網(wǎng)絡廣播地址的分組映射LAN廣播地址的活動。


      IP地址欺騙----Land攻擊
      Land攻擊的報文分組具有如下特點:
      源IP地址:被攻擊系統(tǒng)的IP地址。
      目的IP地址:被攻擊系統(tǒng)的IP地址。
      傳輸方式:TCP
      源端口號:135
      目的端口號:135
      標志設置:SYN=1
      也可以使用其他的端口和設置。攻擊者會使系統(tǒng)錯誤地認為自己正在與自己交談,這樣可以造成死循環(huán),最終使系統(tǒng)掛起或死鎖。
      防止措施:在路由器或防火墻的WAN端口禁止地址為本網(wǎng)段地址的IP包通過。
       
       
       
      五  網(wǎng)絡監(jiān)聽

      網(wǎng)絡監(jiān)聽,在網(wǎng)絡安全上一直是一個比較敏感的話題,作為一種發(fā)展比較成熟的技術,監(jiān)聽在協(xié)助網(wǎng)絡管理員監(jiān)測網(wǎng)絡傳輸數(shù)據(jù),排除網(wǎng)絡故障等方面具有不可替代的作用,因而一直倍受網(wǎng)絡管理員的青睞。然而,在另一方面網(wǎng)絡監(jiān)聽也給網(wǎng)絡安全帶來了極大的隱患,許多的網(wǎng)絡**往往都伴隨著網(wǎng)絡監(jiān)聽行為,從而造成口令失竊,敏感數(shù)據(jù)被截獲等連鎖性安全事件。
      網(wǎng)絡監(jiān)聽可以在網(wǎng)上的任何一個位置實施,如局域網(wǎng)中的一臺主機、網(wǎng)關上或遠程網(wǎng)的調(diào)制解調(diào)器之間等。黑客們用得最多的是截獲用戶的口令。在網(wǎng)絡上,監(jiān)聽效果最好的地方是在網(wǎng)關、路由器、防火墻一類的設備處,通常由網(wǎng)絡管理員來操作。使用最方便的是在一個以太網(wǎng)中的任何一臺上網(wǎng)的主機上,這是大多數(shù)黑客的做法。

      網(wǎng)絡監(jiān)聽的原理十分簡單:
      對于共享介質(zhì)類型的網(wǎng)絡,只要改變低層數(shù)據(jù)鏈路層的工作模式,將所有收到的數(shù)據(jù)包(不論目的地址是誰)統(tǒng)統(tǒng)收下并存儲進行分析即可。
      對于點到點的網(wǎng)絡連接,則需要搭線才能實現(xiàn)竊聽。

      網(wǎng)絡監(jiān)聽的目的
      1、截獲通信內(nèi)容
      網(wǎng)上的監(jiān)聽工具對網(wǎng)絡上主機間的通信,能給出一個詳細的,逐包的統(tǒng)計信息。**者可以選擇某一臺主機,看看它正在同那些主機進行通信,使用了哪些協(xié)議(通過端口號可以區(qū)分出來),傳輸了一些什么內(nèi)容。這類工具,常??梢栽O置詳細的過濾條件,可以針對信息的源主機、目的主機、使用的協(xié)議、使用的端口以及包的長度來設置過濾條件,也可以是這些條件的邏輯組合。
      對于**者來說,最喜歡的莫過于用戶的口令。其實,在大多數(shù)情況下,監(jiān)聽到的包中,用戶的口令完全是明文形式,并且很容易找出來,因為人們沒有采取任何形式的加密措施。而且口令往往是在一次通信的最開始的幾個數(shù)據(jù)包中,只要找到了兩臺主機間連接的開始,便很容易找到鑒別用的口令。
      2、對協(xié)議進行分析
      所有的監(jiān)聽軟件都可以對數(shù)據(jù)包進行詳細的分析,直到每一個字段的含義,實際上倒是學習網(wǎng)絡協(xié)議的好方法。

      常用的監(jiān)聽工具
      1、微軟平臺的監(jiān)聽工具
      Windump:Windump最經(jīng)典的UNIX平臺上的tcpdump監(jiān)聽工具的window移植版。
      Iris:Eeye公司的軟件,有試用期,完全圖形化界面,可以很方便的定制各種截獲控制語句,對截獲數(shù)據(jù)包進行分析,還原等。
      NetXRay:一個功能強大,使用方便的協(xié)議分析和網(wǎng)絡監(jiān)控工具,能監(jiān)控多個網(wǎng)段。
      2、UNIX平臺的監(jiān)聽工具
      tcpdump:最經(jīng)典的工具,被大量的*nix系統(tǒng)采用。
      ngrep:借助于這個工具,管理員可以很方便的把截獲目標定制在用戶名,口令等關鍵字上。
      Sniffit:運行于Solaris、SGI和Linux等平臺的一種網(wǎng)絡監(jiān)聽軟件,功能強大、使用方便。


      網(wǎng)絡監(jiān)聽的檢測手段
      網(wǎng)絡監(jiān)聽是很難被發(fā)現(xiàn)的。運行網(wǎng)絡監(jiān)聽的主機只是被動地接收網(wǎng)上傳輸?shù)男畔?,并沒有主動的行動。但運行監(jiān)聽軟件的機器有一個特征:當系統(tǒng)運行網(wǎng)絡監(jiān)聽軟件時,系統(tǒng)會因負荷過重,對外界的響應很慢。
      1、反應時間檢測
      向懷疑有網(wǎng)絡監(jiān)聽行為的網(wǎng)絡發(fā)送大量測試數(shù)據(jù)包,根據(jù)各個主機回應的情況進行判斷,正常的系統(tǒng)回應的時間應該沒有太明顯的變化,而處于監(jiān)聽模式的系統(tǒng)由于對大量的測試信息照單全收,所以很有可能回應時間會發(fā)生較大的變化。
      2、觀測DNS
      許多的網(wǎng)絡監(jiān)聽軟件都會嘗試進行地址反向解析,在懷疑有網(wǎng)絡監(jiān)聽發(fā)生時可以在DNS系統(tǒng)上觀測有沒有明顯增多的解析請求。
      3、利用ping命令進行監(jiān)測
      對于懷疑運行監(jiān)聽程序的機器,用正確的IP地址和錯誤的物理地址去ping,運行監(jiān)聽程序的機器會有響應。這是因為正常的機器不接收錯誤的物理地址,處于監(jiān)聽狀態(tài)的機器能接收,如果他的 IP stack不再次反向檢查的話,就會響應。這種方法依賴于系統(tǒng)的 IPStack,對一些系統(tǒng)可能行不通。
      4、利用arp數(shù)據(jù)包進行檢測
      除了使用ping進行監(jiān)測外,還可以利用arp方式進行監(jiān)測的。這種模式是上述ping方式的一種變體,它使用arp數(shù)據(jù)包替代了上述的icmp數(shù)據(jù)包。向網(wǎng)內(nèi)的主機發(fā)送非廣播方式的arp包,如果主機響應了這個arp請求,那么我們就可以判斷它很可能就是處于網(wǎng)絡監(jiān)聽模式了,這是目前相對而言比較好的監(jiān)測模式。
      5、利用工具進行檢測
      Ifstatus是一個很好的監(jiān)聽檢測工具,運行在UNIX操作系統(tǒng)中,可以識別出系統(tǒng)的網(wǎng)絡接口是否正處于調(diào)試狀態(tài)或者說監(jiān)聽狀態(tài)下。當網(wǎng)絡接口運行在這種模式下,很可能是一個**者侵入了系統(tǒng),正在運行一個監(jiān)聽程序。
       
       
       
      六 電子郵件攻擊

      1.  什么是電子郵件欺騙
         電子郵件假冒和欺騙是一個很大的安全漏洞,形式很多:
      在電子郵件中聲明該郵件是來自系統(tǒng)管理員,要求用戶修改口令。
      電子郵件聲稱來自某一授權人,要求用戶發(fā)送其口令文件或其他敏感信息的拷貝。
         目前使用的SMTP基本沒有驗證功能,因此,偽造電子郵件進行電子郵件欺騙是不難的。
         可以使用假冒的發(fā)信人地址,而郵件服務器并不對發(fā)信人身份的合法性做任何檢查。如果站點允許和SMTP端口連接,任何人都可以連接到該端口(25),并假冒用戶或虛構用戶的郵件。
         在假冒的郵件中很難找出與發(fā)信人有關的真實信息,唯一的線索是檢查系統(tǒng)的日志文件,找出假冒郵件的發(fā)送主機。然后在檢查那臺主機,在指定時段何人使用過該主機。特別當主機是公共主機,假冒郵件的發(fā)送者在發(fā)送完畢后,清除自己的上機記錄,假冒郵件的追查就更難進行下去。

           電子郵件欺騙有哪位威脅?
           偽造郵件。黑客偽造電子郵件,使它們看起來似乎發(fā)自某人,某地。
         拒絕服務。黑客可以讓系統(tǒng)或網(wǎng)絡充斥郵件信息而癱瘓。這些郵件信息塞滿隊列,占用CPU資源和網(wǎng)絡帶寬。
         病毒?,F(xiàn)代電子郵件使得傳送文件附件更加容易。如果用戶毫不提防地去執(zhí)行文件附件,病毒就會感染他們的系統(tǒng)。


      2.  發(fā)送一封假冒的郵件
      一個SMTP的會話的文本,由以下幾部分組成:
          使用helo表明本方標識。
          通過電子郵件命令from和rcpt to指明郵件的發(fā)送方和接收方。
          調(diào)用data命令輸入郵件正文數(shù)據(jù)。
          以”.”為首的行表示數(shù)據(jù)結束。
          以命令quit退出SMPT會話并結束與TCP端口25的連接。

      下面是一個具體的例子:
      發(fā)送者為pineapple主機上的用戶userl。
      在UNIX系統(tǒng)中,每一個戶頭都有一個電子郵件地址,如該用戶電子地址應該為userl@pineapple
        下面開始發(fā)送過程:
          $telnet pineapple.host 25
          Trying 11.22.33.44....
          Connected to pineapple.host.
          Escape character iS  '^]'.
          220 pineapple.host.  Send 電子郵件 SMI-8.6/SMI-SVR4 ready at Thu,  23 Apr 1998 22:24:14 +0900   

      HELO
          250 pineapple.host.  Hello pineapple.host  [11.22.33.44],
          pleased to meet you
          電子郵件 FROM:http://www.hbhlny.cn/mailto:root@melon.host
          250 http://www.hbhlny.cn/mailto:root@melon.host...  Sender Ok
          RCPT to:http://www.hbhlny.cn/mailto:user2@pineapple.host
          250 Recipient Ok
          data
          354  Enter  電子郵件,  end with  ”.”  On a  line by itself
          aaaaaaaa
          .
          250 VAAl5772 Message accepted for delivery
          quit
          221 pineapple.host closing connectiOn


      3.  保護電子郵件信息
      保護電子郵件最有效的辦法是使用加密簽名技術。通過驗證,可以保證信息是從正確的地方來,而且在傳輸過程中不被修改。
      配置電子郵件服務器,不允許SMTP端口的直接連接。
      如果配置了防火墻,可使它將外面來的郵件重定向到郵件服務器,便于集中管理和跟蹤檢查。
      應使用戶對電子郵件所帶來的威脅引起足夠重視,并使他們了解和遵守安全政策。


      4 .   電子郵件轟炸和“滾雪球”
      電子郵件轟炸和電子郵件“滾雪球”都是拒絕服務類型的攻擊。
      電子郵件轟炸是指一個人反復收到一大堆無用的電子郵件。因為所有的郵件都需要空間來保存,同時,到來的郵件都需要系統(tǒng)來處理。
      電子郵件“滾雪球”與轟炸類似,一條信息發(fā)給數(shù)以千計的用戶并不斷膨脹。如果一個用戶再回復這樣的電子郵件,那就更糟了,因為所有頭信息中的用戶都會收到回復。
      在這些攻擊中,攻擊者需要謹慎的是隱藏自己的蹤跡,也就是隱藏自己的IP。要想隱藏發(fā)送者的IP,一般的方法可以是使用隨機的郵件服務器,同一個郵件服務器不使用兩次,或者通過第三者轉(zhuǎn)信,比如通過新聞組。一種完全可以隱藏自身的而且效果能持久的方法是,給被攻擊者訂閱上千份網(wǎng)絡上由郵件發(fā)送的免費雜志。

      現(xiàn)在網(wǎng)上的郵件炸彈程序很多,從UNIX腳本程序到訂閱雜志的都有,絕大多數(shù)已經(jīng)能隱藏攻擊者。
      郵件“滾雪球”很難檢測和防止,因為有合法電子郵件地址的用戶是完全可能往其他用戶或新聞組上“堆雪球”的。
      這些攻擊主要針對郵件服務器進行,當服務器接收到許許多多電子郵件后,它可能導致網(wǎng)絡連接丟失,不能提供服務。這就成為了一種拒絕服務的攻擊。
      服務失敗可以由許多原因引起,過多的網(wǎng)絡連接或者系統(tǒng)資源缺乏都會導致不能正常提供服務。

      對付辦法:
      如果覺得服務器被攻擊,應迅速確定炸彈/雪球的攻擊源,并調(diào)整防火墻或路由器的配置來過濾那些源頭的包?;蛘吲渲梅阑饓κ雇忸^的SMTP連接只能到達指定服務器,而不能影響其他系統(tǒng)。當然,這雖不能防止攻擊,但可以減少轟炸對其他系統(tǒng)的影響。
      使用最新版本的電子郵件服務軟件,提高系統(tǒng)記帳能力,有利于對發(fā)生的事件進行追蹤。
      由于電子郵件轟炸不一定是100%的匿名行動,因此可能根據(jù)頭信息來跟蹤出發(fā)地。但如果攻擊者真要攻擊的話,它會遠程登錄到SMTP端口,然后直接發(fā)送SMTP命令,如果ident正在運行的話,**可能會碰到些障礙。

        本站是提供個人知識管理的網(wǎng)絡存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內(nèi)容,請點擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多