本節書摘來華章計算機《計算機網絡:自頂向下方法(原書第6版)》一書中的第1章 ,第1.6節,(美)james f.kurose keith w.ross 著 陳 鳴 譯 更多章節内容可以通路雲栖社群“華章計算機”公衆号檢視。
對于今天的許多機構(包括大大小小的公司、大學和政府機關)而言,網際網路已經成為與其使命密切相關的一部分了。許多個人也依賴網際網路進行許多職業、社會和個人活動。但是在所有這一切背後,存在着一個陰暗面,其中的“壞家夥”試圖對我們的日常生活中進行破壞,如損壞我們與網際網路相連的計算機,侵犯我們的隐私以及使我們依賴的網際網路服務無法運作。
網絡安全領域主要探讨以下問題:壞家夥如何攻擊計算機網絡,以及我們(即将成為計算機網絡的專家)如何防禦以免受他們的攻擊,或者更好的是設計能夠事先免除這樣的攻擊的新型體系結構。面對經常發生的各種各樣的現有攻擊以及新型和更具摧毀性的未來攻擊的威脅,網絡安全已經成為近年來計算機網絡領域的中心主題。本書的特色之一是将網絡安全問題放在中心位置。
因為我們在計算機網絡和網際網路協定方面還沒有專業知識,是以這裡我們将開始審視某些今天最為流行的與安全性相關的問題。這将刺激我們的胃口,以便我們在後續章節中進行更為充實的讨論。我們在這裡以提出問題開始:什麼東西會出現問題?計算機網絡是怎樣易于受到攻擊的?今天某些最為流行的攻擊類型是什麼?
1.壞家夥能夠經網際網路将有害程式放入你的計算機中
因為我們要從/向網際網路接收/發送資料,是以我們将裝置與網際網路相連。這包括各種好東西,例如web頁面、電子郵件封包、mp3、電話、視訊實況、搜尋引擎結果等。但是,不幸的是伴随好的東西而來的還有惡意的東西(這些惡意的東西可統稱為惡意軟體(malware)),它們能夠進入并影響我們的裝置。一旦惡意軟體感染我們的裝置,就能夠做各種不正當的事情,包括删除我們的檔案,安裝間諜軟體來收集我們的隐私資訊,如社會保險号、密碼和擊鍵,然後将這些(當然經網際網路)發送給壞家夥。我們的受害主機也可能成為數以千計的類似受害裝置網絡中的一員,它們被統稱為僵屍網絡(botnet),壞家夥利用僵屍網絡控制并有效地對目标主機展開垃圾郵件分發或分布式拒絕服務攻擊(很快将讨論)。
今天的多數惡意軟體是自我複制(self-replicating)的:一旦它感染了一台主機,就會從那台主機尋求進入更多的主機。以這種方式,自我複制的惡意軟體能夠指數式地快速擴散。惡意軟體能夠以病毒或蠕蟲的形式擴散。病毒(virus)是一種需要某種形式的使用者互動來感染使用者裝置的惡意軟體。典型的例子是包含惡意可執行代碼的電子郵件附件。如果使用者接收并打開這樣的附件,不經意間就在其裝置上運作了該惡意軟體。通常,這種電子郵件病毒是自我複制的:例如,一旦執行,該病毒可能向使用者位址簿上的每個接收方發送一個具有相同惡意附件的相同封包。蠕蟲(worm)是一種無需任何明顯使用者互動就能進入裝置的惡意軟體。例如,使用者也許運作了一個某攻擊者能夠發送惡意軟體的脆弱網絡應用程式。在某些情況下,沒有使用者的任何幹預,該應用程式可能從網際網路接收惡意軟體并運作它,生成了蠕蟲。新近感染裝置中的蠕蟲則能掃描網際網路,搜尋其他運作相同易受感染的網絡應用程式的主機。當它發現其他易受感染的主機時,便向這些主機發送一個它自身的副本。今天,惡意軟體無所不在且造成的損失慘重。當你用這本書學習時,我們鼓勵你思考下列問題:計算機網絡設計者能夠采取什麼防禦措施,以使與網際網路連接配接的裝置免受惡意軟體的攻擊?
2.壞家夥能夠攻擊伺服器和網絡基礎設施
另一種寬泛類型的安全性威脅稱為拒絕服務攻擊(denial-of-service(dos)attack)。顧名思義,dos攻擊使得網絡、主機或其他基礎設施部分不能由合法使用者所使用。web伺服器、電子郵件伺服器、dns伺服器(在第2章中讨論)和機構網絡都能夠成為dos攻擊的目标。網際網路dos攻擊極為常見,每年會出現數以千計的dos攻擊[moore 2001;mirkovic 2005]。大多數網際網路dos攻擊屬于下列三種類型之一:
弱點攻擊。這涉及向一台目标主機上運作的易受攻擊的應用程式或作業系統發送制作精細的封包。如果适當順序的多個分組發送給一個易受攻擊的應用程式或作業系統,該伺服器可能停止運作,或者更糟糕的是主機可能崩潰。
帶寬洪泛。攻擊者向目标主機發送大量的分組,分組數量之多使得目标的接傳入連結路變得擁塞,使得合法的分組無法到達伺服器。
連接配接洪泛。攻擊者在目标主機中建立大量的半開或全開tcp連接配接(将在第3章中讨論tcp連接配接)。該主機因這些僞造的連接配接而陷入困境,并停止接受合法的連接配接。
我們現在更詳細地研究這種帶寬洪泛攻擊。回顧1.4.2節中讨論的時延和丢包問題,顯然,如果某伺服器的接入速率為r bps,則攻擊者将需要以大約r bps的速率來産生危害。如果r非常大的話,單一攻擊源可能無法産生足夠大的流量來傷害該伺服器。此外,如果從單一源發出所有流量的話,上遊路由器就能夠檢測出該攻擊并在該流量靠近伺服器前就将其阻擋下來。在圖1-25中顯示的分布式dos(distributed dos,ddos)中,攻擊者控制多個源并讓每個源向目标猛烈發送流量。使用這種方法,為了削弱或損壞伺服器,遍及所有受控源的聚合流量速率需要大約r的能力。ddos攻擊充分利用具有數以千計的受害主機的僵屍網絡在今天是屢見不鮮的[mirkovic 2005]。相比于來自單一主機的dos攻擊,ddos攻擊更加難以檢測和防範。

當學習這本書時,我們鼓勵你考慮下列問題:計算機網絡設計者能夠采取哪些措施防止dos攻擊?我們将看到,對于3種不同類型的dos攻擊需要采用不同的防禦方法。
3.壞家夥能夠嗅探分組
今天的許多使用者經無線裝置接入網際網路,如wifi連接配接的膝上電腦或使用蜂窩網際網路連接配接的手持裝置(在第6章中讨論)。當無所不在的網際網路接入極為便利并使得令人驚奇的新應用程式為移動使用者所用的同時,也産生了重大的安全弱點——在無線傳輸裝置的附近放置一台被動的接收機,該接收機就能得到傳輸的每個分組的副本!這些分組包含了各種敏感資訊,包括密碼、社會保險号、商業秘密和隐秘的個人資訊。記錄每個流經的分組副本的被動接收機被稱為分組嗅探器(packet sniffer)。
嗅探器也能夠部署在有線環境中。在有線的廣播環境中,如在許多以太網lan中,分組嗅探器能夠獲得經該lan發送的所有分組。如在1.2節中描述的那樣,電纜接入技術也廣播分組,是以易于受到嗅探攻擊。此外,獲得某機構與網際網路連接配接的接入路由器或接傳入連結路通路權的壞家夥能夠放置一台嗅探器以産生從該機構出入的每個分組的副本,再對嗅探到的分組進行離線分析,就能得出敏感資訊。
分組嗅探軟體在各種web站點上可免費得到,這類軟體,也有商用的産品。教網絡課程的教授們布置的實驗作業就涉及寫一個分組嗅探器和應用層資料重構程式。與本書相關聯的wireshark[wireshark 2012]實驗(參見本章結尾處的wireshark實驗介紹)使用的正是這樣一種分組嗅探器!
因為分組嗅探器是被動的,也就是說它們不向信道中注入分組,是以難以檢測它們的存在。是以,當我們向無線信道發送分組時,我們必須接受這樣的可能性,即某些壞家夥可能記錄了我們的分組的副本。如你已經猜想的那樣,最好的防禦嗅探的方法基本上都與密碼學有關。我們将在第8章研究密碼學應用于網絡安全的有關内容。
4.壞家夥能夠僞裝成你信任的人
生成具有任意源位址、分組内容和目的位址的分組,然後将這個人工制作的分組傳輸到網際網路中極為容易(當你學完這本教科書後,你将很快具有這方面的知識了!),網際網路将忠實地将該分組轉發到目的地。想象某接收到這樣一個分組的不可信的接收方(比如說一台網際網路路由器),将該(虛假的)源位址作為真實的,進而執行某些嵌入在該分組内容中的指令(比如說修改它的轉發表)。将具有虛假源位址的分組注入網際網路的能力被稱為ip哄騙(ip spoofing),而它隻是一個使用者能夠冒充另一個使用者的許多方式中的一種。
為了解決這個問題,我們需要采用端點鑒别,即一種使我們能夠确信一個封包源自我們認為它應當來自的地方的機制。當你繼續學習本書各章時,再次建議你思考怎樣為網絡應用程式和協定做這件事。我們将在第8章研究端點鑒别機制。
在本節結束時,值得思考一下網際網路是如何從一開始就落入這樣一種不安全的境地的。大體上講,答案是:網際網路最初就是基于“一群互相信任的使用者連接配接到一個透明的網絡上”這樣的模型[blumenthal 2001]進行設計的,在這樣的模型中,安全性沒有必要。初始的網際網路體系結構的許多方面都深刻地反映了這種互相信任的觀念。例如,一個使用者向任何其他使用者發送分組的能力是預設的,而不是一種請求/準予的能力,還有使用者身份取自所宣稱的表面價值,而不是預設地需要鑒别。
但是今天的網際網路無疑并不涉及“互相信任的使用者”。無論如何,今天的使用者并不是必須互相信任的,他們仍然需要通信,也許希望匿名通信,也許間接地通過第三方通信(例如我們将在第2章中學習的web高速緩存,我們将在第6章學習的移動性協助代理),也許不信任他們通信時使用的硬體、軟體甚至空氣。随着我們進一步學習本書,會面臨許多安全性相關的挑戰:我們應當尋求對嗅探、端點假冒、中間人攻擊、ddos攻擊、惡意軟體等的防護辦法。我們應當記住:在互相信任的使用者之間的通信是一種例外而不是規則。歡迎您到現代計算機網絡世界來!