880 likes | 995 Views
資訊 安全─入門手冊. 第 3 章 駭客技術. 第 3 章 駭客技術. 如果沒有詳實介紹駭客技術,就不能算是一本完整探討網路安全技術的書。 在過去, 『 駭客 』 一詞並無任何負面的涵意,反而是從事資深電腦工作的代名詞。 本章內容如下: 3-1 駭客的動機 3-2 駭客技術的歷史 3-3 學習進階技巧 3-4 確認惡意程式碼 3-5 識別非目標型駭客的方法 3-6 識別目標型駭客的方法. 但為求統一且符合本章的主題,還是以 『 駭客 』 表示意圖侵入他人電腦,或破壞、妨礙、干擾他人電腦運作的人。 駭客特質的調查結果如下: 男性
E N D
資訊 安全─入門手冊 第 3 章 駭客技術
第 3 章 駭客技術 • 如果沒有詳實介紹駭客技術,就不能算是一本完整探討網路安全技術的書。 • 在過去,『駭客』一詞並無任何負面的涵意,反而是從事資深電腦工作的代名詞。 • 本章內容如下: • 3-1 駭客的動機 • 3-2 駭客技術的歷史 • 3-3 學習進階技巧 • 3-4 確認惡意程式碼 • 3-5 識別非目標型駭客的方法 • 3-6 識別目標型駭客的方法
但為求統一且符合本章的主題,還是以『駭客』表示意圖侵入他人電腦,或破壞、妨礙、干擾他人電腦運作的人。但為求統一且符合本章的主題,還是以『駭客』表示意圖侵入他人電腦,或破壞、妨礙、干擾他人電腦運作的人。 • 駭客特質的調查結果如下: • 男性 • 介於16歲到35歲之間 • 性格較為孤僻 • 聰明無比 • 技術十分精通
3-1 駭客的動機 • 動機是瞭解駭客的關鍵要素,也可得知他們嘗試入侵的目的。 • 瞭解駭客的動機,同樣也可以幫助我們瞭解為何電腦會引起駭客的興趣。 • 本節的內容如下: • 3-1-1 挑戰 • 3-1-2 貪婪 • 3-1-3 惡意(Malicious Intent)
3-1-1 挑戰 • 入侵他人電腦最原始的動機就是為了『挑戰』,這也是目前入侵他人電腦最常見的原因。 • 入侵電腦系統不一定是要炫耀自己入侵了防護非常周全的系統,而是駭客與駭客之間的競賽。 • 以挑戰為動機的駭客通常都沒有特定的目標。 近來常見的Hactivism或入侵公有資產。Hacktivism可能帶有政治動機,且原因通常是司法不公所引起的。但由於這種動機容易誘惑一個人的良知和本性,也使得Hacktivism更具潛藏的危險性。關於Hacktivism更詳細的資訊,請參考http://hacktivism.com/。
3-1-2 貪婪 • 貪婪是最原始的犯罪動機之一。 • 不論是牟取金錢、立意良好、服務或資訊等,只要是希望滿足個人慾望皆屬此種動機。 • 若能確認入侵事件,大多數的組織都會修補導致入侵的安全弱點、重整系統然後繼續作業。 • 因貪婪而犯罪的駭客通常心中都有特定的目標。也就是說,具有某種價值(軟體、金錢、資訊)的站台,都會是他們的主要目標。 FBI已針對商業和執法單位進一步聯繫,並展開一套用來改善犯罪活動報告的Infragard計畫(詳見http://www.infragard.net/)。這個計畫主要支援有興趣的成員,分享及分析資訊的結果。Infragard提供組織更多執法單位的運作方式,並共享現有的資訊。
3-1-3 惡意(Malicious Intent) • 惡意或蓄意是入侵的最後一種動機。 • 控制系統(為日後繼續破壞留下後路)並不是駭客的主要目地。 • 駭客會設法阻斷合法使用者使用系統,或變更網頁的訊息藉此傷害合法的擁有人。 • 惡意攻擊會鎖定特定目標,駭客也會積極尋求一些傷害特定站台或組織的方法。
3-2 駭客技術的歷史 • 本節將用與與眾不同的觀點和角度,評估駭客所使用的技術,探討駭客技術的歷史。 • 本節的內容如下: • 3-2-1 開放共享 • 3-2-2 密碼問題 • 3-2-3 程式設計的缺失 • 3-2-4 社交工程 • 3-2-5 緩衝區溢位 • 3-2-6 阻斷服務
3-2-1 開放共享 • 在Internet創始之初,主要是希望各研究機構能夠共享資訊和合作成果。因此,大多數研究機構的系統都設定成共享模式。 • 在Unix系統中,廣泛使用網路檔案系統(Network File System,NFS),NFS允許一部電腦跨越網路掛接(mount)另一部電腦的磁碟機。 • 就像跨越區域網路掛接一般,NFS也可以跨越Internet進行掛接檔案系統。
透過NFS的檔案共享,是最先遭到某些駭客入侵成功並取得資訊的存取權。他們單純地掛接遠端磁碟機,並讀取磁碟機的資訊。透過NFS的檔案共享,是最先遭到某些駭客入侵成功並取得資訊的存取權。他們單純地掛接遠端磁碟機,並讀取磁碟機的資訊。 • NFS利用使用者的識別碼編號(UID),管制存取磁碟機內的相關資訊。 • 若駭客成為系統的超級使用者(root),並掛接遠端的根檔案系統(root file system)時,駭客就可以變更遠端系統的組態設定檔(詳見圖3-1)。
圖3-1 使用NFS存取遠端系統檔案 若適當設定組織外部防火牆的規則,也可阻擋大多數的檔案共享(詳見第10章)。若在這種情況下,即使系統設定錯誤也仍然可以阻止檔案共享。
Unix系統並不是唯一具有檔案共享漏洞的系統。Unix系統並不是唯一具有檔案共享漏洞的系統。 • Windows NT、95、98,也都有檔案共享的問題。 • 這些作業系統都允許遠端掛接系統本身的檔案系統。 • 若使用者決定需要共享檔案時,也很容易對全世界開放他們的檔案系統。 例如Gnutella這類新的檔案共享系統,允許內部系統和其他網際網路的系統建立檔案共享。此種系統可以設定使用的連接埠編號,且通常設定成防火牆允許通過的連接埠編號(例如連接埠80)。這種檔案共享模式和NFS、Windows檔案共享具有相同的危險性。
遠端信任存取(trusted remote access,實際上還是在系統間共享存取)與開放共享和組態設定錯誤,都是屬於相同類型的問題。 • 系統管理員和使用者的系統之間,向來都是使用rlogin(無須密碼的遠端登入)。 • rlogin允許使用者存取許多系統,而不需重覆輸入他們的密碼。.rhost和host.equiv檔案,控制哪些人無需輸入密碼即可存取系統。 若使用檔案共享,防火牆也可用於阻止來自網際網路的遠端信任存取。然而,外部防火牆也無法阻止內部網路的共享存取,因而檔案共享也是屬於安全問題的一種。
3-2-2 密碼問題 • 截至目前為止,密碼仍是最通用的認證模式,或許簡單的密碼也是大多數駭客成功入侵系統的原因。 • 大多數系統使用密碼做為預設的身份認證方式,且無須增加額外的成本。 • 使用密碼的附加效益,就是使用者們都瞭解如何使用使用密碼來進行身份認證。 • 密碼太短會讓駭客能用『暴力破解法』破解密碼。 • 密碼的另一個問題就是太容易被猜到。 密碼沒有經費問題。大多數作業系統允許系統管理員設定密碼的驗證條件,這些條件也都可以解決密碼太過簡單的問題。然而,針對密碼太簡單的問題,員工良好的安全認知才是真正的解決之道。
3-2-3 程式設計的缺失 • 許多時候駭客也會利用程式設計缺失的安全弱點,例如在程式內預留未來再度進入系統的後門,像Sendmail早期的版本就是屬於程式設計的缺失。 • 近來興起的Web站台程式設計,思慮不週產生了新型的程式設計缺失,這些新型的缺失多半發生於購物站台。 • 程式設計師不應該將這類資訊放在網址之中(例如URL字串),而讓客戶取得修改資訊的機會,且在資訊回到後端之後也必須重新查驗資訊的內容。
3-2-4 社交工程 • 社交工程(social engineering)是利用非技術性手段,獲得存取資訊或系統的機會。 • 不同於利用安全弱點或攻擊程式碼(script)的手段,駭客利用人性的弱點。 • 和善的聲音及說謊的能力是執行社交工程最具殺傷力的武器。 • 社交工程的其他類型,包含翻找公司的垃圾和資源回收(倒出來找)、利用公開資訊(例如Web站台、證交委員會歸檔資料、廣告)、直接竊取或冒用身份等。
對目標而言,社交工程最具滲透力,但也需要時間和天分。對目標而言,社交工程最具滲透力,但也需要時間和天分。 • 特定目標才會是駭客使用社交工程的主因。 警覺心是防範社交工程的最佳方法。訓練服務台的員工,在碰到類似的情況時該如何應對進退、在提供密碼、接觸相關資訊之前,該如何驗明員工的身份。同樣的,也要教導所有的員工識別辦公室裡的人,以及處理各種不同的情況。
3-2-5 緩衝區溢位 • 緩衝區溢位是駭客可以利用的程式設計缺失之一(下一節會詳細解說緩衝區溢位的運作方式)。 • 緩衝區溢位比密碼問題或組態設定錯誤更難找,有經驗的人才能找到緩衝區溢位的問題。 • 大多數緩衝區溢位的script,允許駭客建立其他存取目標系統的方法。 • 緩衝區溢位並不侷限在存取遠端系統。 • 在使用者的電腦系統上,緩衝區溢位也可用來更新使用者的存取等級。
什麼是緩衝區溢位 • 緩衝區溢位就是嘗試在電腦的記憶體之中,塞入過多的資訊。 • 若試著將大量的資料塞入變數,最後就有可能覆蓋掉一些系統操作的重要資料。 • 在緩衝區溢位的案例中,記憶體堆疊(stack)是筆者特別有興趣的部分,在堆疊裡儲存的是下一個執行函式的記憶體返回位址(return address)。 許多C語言公用字串複製函式,不會預先檢查字串長度。如strcat()、strcpy()、sprintf()、vsprintf()、scanf()、和gets()公用函式,都不會預先檢查複製資料的字串或緩衝區容量。
研究程式的原始碼,也可以找到緩衝區溢位的問題。研究程式的原始碼,也可以找到緩衝區溢位的問題。 • 事後辛苦不如事前謹慎,程式設計師若能及早避免此類問題,也可免去日後除錯的困擾。 某些自動化的script,可用來找尋潛藏的緩衝區溢位問題。像是SPLINT(http://licint.cs.virginia.edu/),可用在程式碼編譯之前預先檢查緩衝區溢位的問題。
3-2-6 阻斷服務 • 阻斷服務攻擊是一種用來阻止合法使用者,存取系統、網路、應用程式或資訊的惡意行為。 • 從單一系統到多系統的攻擊,都屬DoS的攻擊的型式。 • 就像無法百分之百阻止DoS攻擊一樣,沒有一套來源系統(或系統)可以完全阻止這類攻擊。 • DoS攻擊並不是只有電腦世界才會發生。
單一來源阻斷服務攻擊 • DoS攻擊的第一種類型就是單一來源攻擊(Single Source DoS Attack),也就是說發動攻擊時會造成另一部系統毀損。 • 目前最常聽到的DoS攻擊稱為SYN(同步字元)溢位(詳見圖3-3)。 • 來源系統對目標系統傳送大量TCP SYN封包,SYN封包是用來做為起始新的TCP連線用途。 • 當目標系統收到SYN封包時,就會自動回傳TCP SYN ACK封包,並回傳連線設定資訊。
目前,已有多種適當防護系統免於SYN攻擊的解決方案。目前,已有多種適當防護系統免於SYN攻擊的解決方案。 • 最簡單的方式就是在等候連線緩衝區設置計時器,也就是在時限之後自動失效。 • 若適當執行DoS攻擊就必須調短計時器的時間,但卻會造成系統無法使用的困擾。 • 許多網路系統具有識別SYN溢位和阻絕的能力,這些系統會在提出連線需求一段時間之後,找尋、確認仍未連線的需求。 • 但若同時受到圍攻時,也就無法正確辨認是否受到攻擊。
在SYN溢位攻擊之後,雖然更容易防範其他已知的攻擊類型,但危險程度也相對地提高。在SYN溢位攻擊之後,雖然更容易防範其他已知的攻擊類型,但危險程度也相對地提高。 • Ping of Death只是DoS攻擊的代表作之一。這些攻擊的目標都是針對系統或應用程式的安全弱點,並在攻擊之後造成目標系統或應用程式失去效用。 • 快速地修補系統的安全弱點,也就可以適當地防範這種類型的攻擊。 不幸的是,最近又產生一些針對應用程式和作業系統的新型DoS攻擊。因此,要隨時修正系統或應用程式的安全弱點,才能快速阻止新型的DoS攻擊。
分散式阻斷服務攻擊 • 分散式阻斷服務攻擊(Distributed DoS attacks,DDoS)是多部系統對單一目標同時發動DoS攻擊。 • DDoS攻擊通常是由單一駭客和一部主要系統控制組成。 • 這類攻擊非常單純,駭客對大型網路的廣播位址傳送Ping封包,但卻給予假的來源位址(詳見圖3-4),此種特定的攻擊類型稱為Smurf攻擊。 • 若中間網路含有大量系統,就會對目標系統回傳大量封包,進而導致目標系統癱瘓、毀損。
3-3 學習進階技巧 • 現今曾見過的許多攻擊,都是由”Script Kiddie”所發動 ─ 在網際網路上發現攻擊程式的人,並且會對他們找到的系統發動攻擊。 • 這些都是簡單的攻擊技巧,而且都不需要高深的知識或指引。 • 系統、網路和目標系統等,都需要更多深入的知識和其他技巧。 • 本節的內容如下: • 3-3-1 竊聽(Sniffing)交換式網路 • 3-3-2 偽裝IP位址
3-3-1竊聽(Sniffing)交換式網路 • 駭客或破解者也曾利用監聽器(Sniffer),從網路擷取密碼或其他與系統相關的資訊,最後的結果就是癱瘓目標系統。 • 監聽器將網路卡(Network Interface Card,NIC)設定成混雜模式(promiscuous mode)後,即可從網路擷取密碼或其他相關資訊。 • 在交換式的網路環境中,大多數的封包不會廣播到所有系統,而是直接傳送到目標系統。 • 適用交換式網路環境的監聽器,請參考http://ettercap.sourceforge.net/。
駭客必須做到下列其中一項,才能讓監聽器適用於交換式網路環境:駭客必須做到下列其中一項,才能讓監聽器適用於交換式網路環境: • 確認可將交換式網路的流量,直接轉送給監聽器。 • 使網路交換器將所有的流量,送到所有的網路連接埠。
流量轉向 • 網路交換器根據乙太網路(Ethernet)訊框(frame)之中的媒體存取控制(Media Access Control,MAC)位址,將流量直接傳送到網路連接埠。 • 每組網路卡都擁有唯一的MAC位址,網路交換器也都知道每組網路卡的MAC位址在哪個網路連接埠上。 • 若想將訊框傳送給特定目標的MAC位址,網路交換器會將訊框直接傳送到該MAC位址所屬的網路連接埠。
將網路交換器的流量轉送至監聽器的方法如下:將網路交換器的流量轉送至監聽器的方法如下: • 偽裝ARP • 複製MAC • 偽裝DNS
偽裝ARP • ARP是位址解析協定(Address Resolution Protocol)的縮寫,這是用來取得和特定IP位址相關的MAC位址。 • 當系統傳送資料給另一部系統時,傳送端會將ARP要求先傳給目標IP位址。 • 目標系統會回應本身的MAC位址,接著傳送系統就能使用該MAC位址直接傳送流量到目的地。 偽裝ARP只能在本地網路的子網路工作,這是因為ARP訊息不會送到子網路之外。因此,監聽器必須安裝在傳送端或目標系統相同的子網段中。
複製MAC • 讓網路交換器將流量轉送給監聽器的另一種方法,就是利用監聽器複製目標系統的MAC位址。 • 駭客必須將監聽器的MAC位址變更成與另一部系統使用相同的MAC位址。 一般都認為變更MAC位址是不可能的,但這並不是個問題。舉例來說,在Unix系統上利用ifconfig命令,就可以改變MAC位址。在Windows系統下,也有可以用來改變MAC位址的工具程式。
偽裝DNS • 將網路交換器的流量送到監聽器的第三種方法,就是偽裝傳送系統,並將流量傳送給監聽器所在的MAC位址。 • 監聽器必須知道所有的DNS要求,並在真正的DNS系統回應之前搶先回應。 • 若傳送系統所在的本地子網路沒有DNS系統,監聽器成功的機率會更高。 雖然監聽器也能透過Internet看到傳送系統的請求,但若監聽器和傳送系統相距甚遠,監聽器也很難保證能在第一時間回應。
傳送所有流量至所有連接埠 • 除了『偽裝ARP』、『DNS回應』、『複製MAC位址』之外,可以嚐試將所有的流量傳送給所有的連接埠。 • 在執行之後,網路交換式器就失去交換的功能,而且運作模式就像媒體共享的集線器一樣。 • 每一部網路交換器,都可以記憶、儲存連接至網路交換器實體連接埠上,一定數量的MAC位址但記憶體的數量仍是有限。
達成攻擊 • 在偽裝ARP、複製MAC、偽裝MAC等案例中,駭客必先連線到網路交換器才能進行攻擊。 • 在偽裝DNS的案例中,也是需要連線才能進行攻擊。 • 必要條件 ─ 駭客的電腦已連上本地網路的網路交換器。
3-3-2 偽裝IP位址 • 駭客可以修改封包內的來源位址,並產生看似來自任何IP位址的封包。回傳封包時(例如TCP連線的SYN ACK封包)不會回到傳送的設備上。 • 試圖冒充IP位址而建立TCP連線,是一件非常困難的事。 • TCP標頭內含一連串用於確認封包的佇列號碼 。 • 在建立新的連線時,都會隨機產生初始序號(Initial Sequence Number,ISN)。
細說偽裝IP位址攻擊 • 圖3-6即為偽裝IP位址攻擊的細節。首要步驟,駭客必先確認目標。 • 在確認目標之時,須決定ISN的增量。不需要做任何事,只要連續和目標進行合法連線,就會自動回傳可供判定的ISN。 • 在合法連線時,由於目標會得知駭客的IP位址,這時才有風險。 • 在建立ISN增量數值之後,駭客即可使用冒充的IP位址對目標傳送TCP SYN封包,目標系統也會將TCP SYN ACK封包,回傳給冒充的IP位址。
在真實世界利用偽裝IP位址 • 偽裝IP位址可讓一部電腦系統以為正和另一部電腦系統交談。 • 在系統上使用rlogin或rsh之後,來源IP位址為判斷能否使用這類服務的重要關鍵。遠端主機允許建立連線就稱為『信任』。 • 倘若我們利用偽裝IP位址來欺瞞目標主機,並讓目標主機認為我們是屬於可信任的系統時,或許就可以成功破解目標系統。
3-4 確認惡意程式碼 • 對大多數的組織、個人或一般用戶來說,惡意程式碼持續造成相當大的安全問題。 • 惡意程式碼涵蓋下列三種不同類型的程式: • 電腦病毒 • 特洛依木馬程式 • 蠕蟲 • 本節內容如下: • 3-4-1 病毒 • 特洛依木馬 • 蠕蟲 • Slapper蠕蟲範例 • 混合體
3-4-1 病毒 • 電腦病毒是一種附掛在其他可執行程式的程式碼。 • 病毒本身並沒有單獨存在的結構。 • 在執行附加病毒的程式之後,病毒碼就會執行預設的動作,這些動作包含將自己散播到其他程式或磁碟之中。 • 某些病毒更惡毒,不但會刪除檔案還可能造成電腦毀損。但某些病毒除了將自己散播到其他系統之外,並不會執行任何惡意的動作。
電腦病毒最早出現於使用磁碟作業系統(Disk Operating System,DOS)的電腦上(跟Denial-of-service,DoS不同)。 • 病毒透過BBS或磁片的檔案散播。後續的病毒更將自己附掛到文書處理檔案中,並成為文書處理的巨集(Macro)語言執行的一部份。 所有惡意程式碼的類型,多半都是指電腦病毒。當讀者聽到這類的新聞時請記得這段描述,並試著瞭解這些程式的功能並正確的分類。另外依據不同功能的惡意程式碼,實際上都會影響保護機制的類型。
特洛依木馬 • 特洛依木馬程式會將自己惡毒的本性,隱藏在某些有用或讓人產生興趣的程式之中。 • 特洛依木馬是一種完整且自行操控的程式,設計用來執行某些惡意動作。 • 它會讓自己引起某些使用者的興趣,例如新功能或使用者想要閱讀的電子郵件。 • 大多數特洛依木馬,都含有將自己散播到新受駭者的機制。
蠕蟲 • 蠕蟲就像命名一樣,不需要透過受駭者,也一樣可以從一部電腦系統爬到另一部電腦系統。 • 蠕蟲不但會自我複製,同時也會自我散播,只要一部電腦中了蠕蟲,就會自動蔓延到其他系統,它所需要的只是製造者開始這個動作。 • 已知最早的例子,是由Robert Morris在1989年製作的網際網路蠕蟲。 原版的CodeRed程式,在選擇下一個攻擊目標方面有些問題存在。但稍後的版本修正了這個問題,並允許快速散播蠕蟲。到現在仍然可以看到受CodeRed感染的系統正在掃描可以網際網路上的系統。
Morris蠕蟲原本是計畫探查大量電腦系統安全弱點(包含密碼問題)。Morris蠕蟲原本是計畫探查大量電腦系統安全弱點(包含密碼問題)。 • 利用這些安全弱點,就可以探查、入侵網際網路上的系統。 • 在進入系統之後,立即開始找尋其他的受駭者,且癱瘓網際網路也是它的目標(使的網際網路的規模變得更小,許多站台紛紛關站以保護自己)。