78
第 19 第 第第SECURITY 第第第第 第第第 第第 第 第 第 第第第 第第第 第第第

第19章 安全( SECURITY)

  • Upload
    benny

  • View
    56

  • Download
    0

Embed Size (px)

DESCRIPTION

第19章 安全( SECURITY). 指導教授:徐立群 老師 研 究 生:王寶雪       王詩緯   林蔚任. 研究主題. 19.1  The Security Problem 19.2 User Authentication 19.3 Program Threats 19.4 System Threats 19.5 Securing Systems and Facilities 19.6 Intrusion Detection 19.7 Cryptography - PowerPoint PPT Presentation

Citation preview

Page 1: 第19章 安全( SECURITY)

第 19章 安全( SECURITY )

指導教授:徐立群 老師研 究 生:王寶雪      王詩緯   林蔚任

Page 2: 第19章 安全( SECURITY)

19.2

研究主題 19.1   The Security Problem 19.2   User Authentication 19.3   Program Threats 19.4   System Threats 19.5   Securing Systems and Facilities

19.6   Intrusion Detection 19.7   Cryptography 19.8   Computer-Security Classifications

Page 3: 第19章 安全( SECURITY)

19.3

前言 在第 18章討論-防護,其是一個內部問題:在電腦系統中如何提供控制存取儲存的程式及資料? 另一方面,安全不僅要求一個適當的系統防護,也考慮系統操作的外部環境。 儲存在系統中的資訊和電腦系統的硬體資源,必須不被未授權的存取、惡意的破壞或修改、及意外地加入不一致性。 本章將探討資訊可能被誤用或故意的造成不一致的方法。並介紹防止這種事件的方法。

Page 4: 第19章 安全( SECURITY)

19.4

安全問題( The Security Problem )

只要使用者遵照使用和存取資源的規定,作業系統可以允許使用者保護他們的資源。 若在所有情況下,資料被如同預期的使用及存取,則系統可被稱為安全的。不幸的,所有的防護並不能達到。 系統的安全侵犯(或誤用)可以被分類為故意的(惡意的)或意外的。 意外誤用的預防比起惡意誤用的預防是較容易的。

Page 5: 第19章 安全( SECURITY)

19.5

安全問題( The Security Problem )

惡意存取的形式有以下各種: 未經授權的資料讀取(或竊取資訊) 未經授權的資料修改 未經授權的資料破壞 阻止系統的合法使用(或拒絕服務)

完全預防對系統的惡意傷害是不可能的。

Page 6: 第19章 安全( SECURITY)

19.6

安全問題( The Security Problem )

為保護系統,必須以四個層級來衡量安全: 實體:容納電腦系統的位置必須完全地安全預防武裝的或祕密的侵入者侵入。 人員:使用者必須小心地審查,以降低授權給一個使用者而其郤讓侵入者存取的機會。 網路:許多電腦資料透過私人網路、分享網路或撥接在系統中傳送。資料的截取如同非法侵入電腦一樣危險。訊息的截取可能是一個遠端拒絕服務的攻擊及減少使用者對系統的使用及信賴。 作業系統:系統必須自我防護意外的或有目的安全破壞。

Page 7: 第19章 安全( SECURITY)

19.7

安全問題( The Security Problem )

若作業系統安全可以被保護,前兩種層級必須保持。 在許多的應用中,確認電腦系統的安全是具有價值的。 Ex:薪資,營業資料。 系統硬體必須提供保護以允許安全作業的實施。例如, MS-DOS及麥金塔作業系統

( Macintosh OS)提供小部分的安全。 但比起在系統建立之前設計和實施作用,增加作用到作業系統是較困難的。之後的作業系統,例如: Window NT,從一開始就設計提供安全作用。

Page 8: 第19章 安全( SECURITY)

19.8

使用者的認證( User Authentication )

對作業系統而言一個主要的安全問題是認證。 如何決定使用者的確認是真實的?一般而言,認證根據三項目中的一項或多項:

使用者的財產(鑰匙或卡片) 使用者的認識(使用者名稱及密碼) 使用者的屬性(指紋、視網膜辨識或簽名)

Page 9: 第19章 安全( SECURITY)

19.9

密碼( Passwords )

最常用來確認使用者的方法是使用密碼。 當使用者採用使用者的編號或名稱來作確認,他會被要求輸入密碼。 若使用者提供的密碼和存在系統中的密碼相符合,則系統假設這個使用者是合法的。 在缺乏較完整保護計劃之下,密碼通常被用來做電腦系統的保護目的。他們被視為一種特別的鑰匙或資格。 不同的密碼可能和不同的存取權限有關。例如,不同的密碼可能可以讀取、增添及檔案更新。

Page 10: 第19章 安全( SECURITY)

19.10

密碼的弱點( Password Vulnerabilities )

密碼非常普遍,因為它容易被瞭解及使用。但密碼會被猜測、意外的暴露、查察或不合法的從授權的使用者傳送到未授權的使用者。 有兩種猜測密碼的方法:

侵入者認識或擁有使用者的資訊。一般人常使用明顯的資訊當作他們的密碼。 使用蠻力,嘗試所有字母、數字、標點符號的可能組合,直到找到密碼。

Page 11: 第19章 安全( SECURITY)

19.11

密碼的弱點( Password Vulnerabilities )

密碼安全可以由於視覺或電子監視系統的暴露而失敗。當使用者登入時,侵入者可以透過使用者的肩膀偷看及從鍵盤而簡單的得知密碼。 另外,任何人可以使用存在的電腦進入網際網路,而增加網路的監視、允許他看所有在網路上傳送的資料,包括使用者編號及密碼。 將包括密碼的資料加密可以解決這樣的問題。

Page 12: 第19章 安全( SECURITY)

19.12

密碼的弱點( Password Vulnerabilities )

若密碼寫在可以被讀取或遺失的地方,則暴露是非常嚴重的問題。 有些系統強迫使用者選擇不易記憶或較長的密碼。極端一點的要求則可能使使用者記下密碼,比起允許簡單密碼的系統,其郤提供較少的安全。 密碼洩露的最後一種方法-非法移轉,其是由於人為因素。大部分的電腦安裝有一個禁止使用者共享帳號的規定。有時候使用者違反帳號共享的規定來幫助朋友或做會計詐欺,而這樣的行為導致系統被未授權的使用者存取。

Page 13: 第19章 安全( SECURITY)

19.13

密碼的弱點( Password Vulnerabilities )

密碼可能由系統產生或使用者所選擇。 系統所產生的密碼可能很難記住,而使用者可能要寫下密碼。 使用者所選擇的密碼通常容易被猜測到。

有些裝置,管理人員偶爾會檢查使用者的密碼並通知使用者是否他的密碼太短或容易被猜測。 一些系統也要求使用者定期的更改他的密碼。 在一些系統實施的解決方式是記錄每個使用者使用過的密碼。例如,系統可以記錄最後 N 個密碼並不允許再使用他們。

Page 14: 第19章 安全( SECURITY)

19.14

密碼的弱點( Password Vulnerabilities )

密碼可以經常的更改。 在極端的情況下,每一個期間都要改變密碼。每個期間結束時必須選擇新密碼,將其給下個期間使用。 在這情形下,縱使密碼被誤用,它只能被使用一次。 當合法的使用者在下個期間使用一個現在無效的密碼,他會發現違反了安全。

Page 15: 第19章 安全( SECURITY)

19.15

密碼加密( Encrypted Passwords )

系統如何將密碼安全地的儲存,在當使用者輸入密碼時再使用他們做確認? UNIX系統使用加密來避免維持密碼保密的必要性。 系統包含一個困難的逆轉函數,但是郤易於計算。就是說,給一個 x 值,很容易去計算出 f(x)值。但給一個函數值 f(x),則不可能算出 x。 這函數用來對所有密碼做編碼。只有加密後的密碼被儲存起來。 當使用者輸入一個密碼,它將被編碼並與之前儲存起來的加密密碼做比較。

Page 16: 第19章 安全( SECURITY)

19.16

密碼加密( Encrypted Passwords )

即使加密的密碼被看到,它也無法被解密而決定出密碼。因此,密碼檔就不必保密了。 這方法的缺點是系統不再對密碼做控制。 雖然密碼被加密,但任何有密碼檔副本的人可以很快的執行編碼程式來找出密碼。 由於 UNIX系統使用眾所皆知的編碼演算法,駭客可能保有一個密碼索引的快取記憶體,可以快速的找到密碼。因為這個原因,新版本的 UNIX將加密的密碼儲存起來,只有管理的使用者可以讀取。

Page 17: 第19章 安全( SECURITY)

19.17

密碼加密( Encrypted Passwords )

另一個 UNIX系統中密碼方法的弱點,是許多UNIX系統只處理比較重要的前八個字元,所以對使用者而言,如何利用可使用的密碼空間是特別重要的。

為避免字典式編碼法,有些系統不允許使用字典中的字當作密碼。 一種技術是藉由一個容易記住的常用語之每一個字的第一個字來產生密碼,或將較大與較小的兩個字元加入數字或標點符號。 例如,” My mother’s name is Katherine.“可能產生密碼” MmnisK“。這個密碼很難破解,但是很容易被使用者記住。

Page 18: 第19章 安全( SECURITY)

19.18

單次密碼( One-Time Passwords )

為避免密碼被偷看和背後偷窺的問題,系統可以使一個配對密碼的集合。 當對話開始時,系統隨機選機選取並顯示密碼的一部分;使用者必須提供另一部分。在這系統下,使用者被詢問並且必須回答正確的答案。 這方法可以使用像密碼一樣普遍的演算法。系統隨機的選取一個整數並顯示給使用者。使用者應用函數並提供一個正確的結果。系統也應用函數。若兩個結果吻合,則允許存取。

Page 19: 第19章 安全( SECURITY)

19.19

單次密碼( One-Time Passwords )

這種包含使用演算法的密碼方法是不容易暴露的。 在單次密碼系統中,每一個時刻的密碼都不相同。 任何一個從一對話所攔截的密碼,嘗試在另一次對話時使用都會失敗。 單次密碼是唯一可以預防由於密碼暴露而產生不適當認證的方法。

Page 20: 第19章 安全( SECURITY)

19.20

單次密碼( One-Time Passwords )

使用單次密碼產生器及個人確認碼是二因子確認( two-factor authentication)的一種型式。

二因子確認比起單因子確認提供較佳的確認預防。 單次密碼的另一種變化是使用編碼簿或是單次鍵盤,其是一個單獨使用的密碼目錄。 在這方法中,在目錄中的每一個密碼只使用一次,然後將它註銷或刪除。普遍使用的 S/Key系統不是使用軟體計算機,就是使用根據這些計算所建立的編碼簿,當作是單次密碼的來源。

Page 21: 第19章 安全( SECURITY)

19.21

生物測定( Biometrics )

在使用密碼的認證上有許多其他的變化。例如,掌上型或手持型讀取機。 讀取機將從手持型讀取機所讀取到資料與儲存的參數做配對。但這些儀器被用來做一般電腦的認證是太冗長且昂貴的。 指紋讀取器是較準確且具有成本效益的。 這樣的儀器讀取你的手指紋路並且轉換成一個數字的序列,並和儲存的序列做比較,決定讀取機上的手指是否和儲存的相同。

Page 22: 第19章 安全( SECURITY)

19.22

生物測定( Biometrics )

一個非常精準的二因子確認系統可以由使用者的名稱及指紋掃瞄來產生所需要的密碼。 若資訊在傳送時被加密,系統可以完全的抵抗欺騙或重覆的攻擊。

Page 23: 第19章 安全( SECURITY)

19.23

程式威脅( Program Threats )

當程式由某一個人撰寫,而由另一個使用者使用,誤用及不可預期的行為可能產生。 可能發生行為的一般方法有:

木馬 走後門 資料超載

Page 24: 第19章 安全( SECURITY)

19.24

木馬( Trojan Horse )

許多系統有允許使用者撰寫程式而由其他使用者執行的機制。若程式提供執行的使用者存取定義域( domain)的權利,他們可能誤用這些權利。 例如,一個文字編輯的程式可能包含編輯去尋找某個關鍵字的程式。若有任何發現,則全部的檔案可能被拷貝到一個可被文字編輯器可以存取的特別區域。一個被誤用的編碼部分,它的環境稱為木馬

( Trojan Horse)。

Page 25: 第19章 安全( SECURITY)

19.25

木馬( Trojan Horse )

冗長的搜尋路徑,如在 UNIX系統,使得木馬的問題惡化。 搜尋路徑列出當給予含糊不清檔名時所要搜尋目錄集合。此路徑將搜尋該名稱的檔案,並執行該檔案。 在搜尋路徑中的所有目錄必須保密,否則木馬可能潛伏到使用者路徑中,並意外地執行該檔案。

Page 26: 第19章 安全( SECURITY)

19.26

木馬( Trojan Horse )

木馬的一個變化是程式會模擬登入程式。 一個使用者開始在終端機登入並且注意到他的密碼輸入錯誤。他再試一次並且成功了。發生什麼事呢? 他的密碼及認證被登入模擬程式所竊取,這個模擬程式是小偷在終端機旁邊所執行。模擬程式將密碼儲存起來,列印出登入錯誤訊息並且退出,而使用者會立刻提供一個真正的登入。

Page 27: 第19章 安全( SECURITY)

19.27

走後門( Trap Door )

程式或系統的設計者可能在軟體中留下一個只有自己可以使用的漏洞。 例如,程式編寫人員可以藉由在程式中加入錯誤的四捨五入,讓偶爾出現的半分錢進入到他們的帳戶中,以盜取銀行的例子。 聰明的後門可以將它放在編輯程式中。編輯程式可以產生如同標準目的碼的後門,而不論其原程式為何。

Page 28: 第19章 安全( SECURITY)

19.28

走後門( Trap Door )

這是一項非常惡劣的行為,因為檢查原始程式亦無法發現任何安全性的問題。只有在編輯程式中才包含該資訊。 後門造成一個很困難的問題,因為為了找出它們,必須分析系統所有的原始程式。若軟體系統包含數百萬的程式,這分析是無法經常去做的。

Page 29: 第19章 安全( SECURITY)

19.29

堆疊和緩衝區的超載( Stack and Buffer Overflow )

堆疊和緩衝區的攻擊是網路或採用撥接的系統外攻擊者最常使用的方法,以此來取得未授權的存取目標系統。 一個系統授權的使用者也可能採用這種行為來增加他的權限,以獲得使用者的特殊權限。 此種攻擊是利用程式裡的錯誤來執行。 錯誤可以是簡單又粗糙的編輯程式,比如該程式編輯人員忘記編寫檢查輸入欄位的範圍。 在這例子中,攻擊者傳送超過程式所預期的資料。

Page 30: 第19章 安全( SECURITY)

19.30

堆疊和緩衝區的超載( Stack and Buffer Overflow )

反覆測試或檢查被攻擊程式的原始碼,攻擊者找出程式弱點並寫程式來做以下的事情: 輸入超額的欄位、命令列參數或輸入緩衝區,例如,在惡劣的網路中,直到寫入堆疊為止。 把堆疊中目前的返回位置用下一步驟的入侵程式碼位置將其覆蓋掉。 在堆疊中寫入簡單的編碼程式,其中包括攻擊者想要執行的命令列,例如:產生 shell。

Page 31: 第19章 安全( SECURITY)

19.31

堆疊和緩衝區的超載( Stack and Buffer Overflow )

例如,若一個網頁要求在一個欄位中輸入使用者名稱,攻擊者可以傳送使用者名稱,加上額外的字元使緩衝區超載並達到堆疊,再加上放入堆疊中的新返回位置,以及攻擊者想要執行的程式。 當讀取緩衝區的副程式從執行返回時,返回位置就是入侵碼,則入侵程式將被執行。

Page 32: 第19章 安全( SECURITY)

19.32

堆疊和緩衝區的超載( Stack and Buffer Overflow )

緩衝區超載的攻擊是非常惡劣的,它可以在系統中執行並且在允許的傳送途徑中移動。這種攻擊會在被用來和機器通信的協定中發生,而且很難發現及預防。他們甚至可以繞過增加安全性的防火牆。 這個問題的一個解決方式是 CPU不允許在堆疊區的記憶體的程式有被執行的功能。

Page 33: 第19章 安全( SECURITY)

19.33

堆疊和緩衝區的超載( Stack and Buffer Overflow )

最新版本的 Sun’s SPARC包含這項設定,最新版本的 Solaris也有這個功能。 被超載程式的返回位置依然可以被修改,但是當返回位置在堆疊之中,而此程式碼試圖執行時,例外就發生,程式會因為錯誤而停止。

Page 34: 第19章 安全( SECURITY)

19.34

19.4 系統威脅19.4.1 蟲﹝ Worms﹞

蟲是一種使用複製 (spawn) 機制去癱瘓系統運作的行程。蟲產生複製自己的本身,耗用系統資源且或許鎖定所有其他系統的使用。在電腦網路下,蟲是特別有效的因為他們可能在系統中再複製他們自己和因此癱瘓整個網路。 1988 年 UNIX 在網際網路上就發生一個這樣的案件,導致系統和工程師時間數百萬美元的損失。

Page 35: 第19章 安全( SECURITY)

19.35

1988/11/02; Robert Tappan Morris

一年級 Cornell 的學生,散發蟲的程式在一個或多個 連 結 至 網 際 網 路 的 主 機 上 。 目 標 Sun Microsystem’s Sun 三個工作站和 VAX 執行不同的 BSD UNIX Version 4 的電腦,病蟲很快就散佈至無遠弗屆了;在它散佈的數小時內,它已耗用受感染機器的系統資源至嚴重的地步。

雖然 Robert Tappan Morris 為了快速再複製及分布而設計自我複製的程式,但是 UNIX 網路環境的特色提供了方法去繁殖傳送這病蟲。有可能最初的感染目標是 Morris選擇開放給外部使用者可存取的網路主機。從此,病蟲程式利用 UNIX 作業系統安全性的缺失及利用 UNIX簡化區域網路內資源分享的公用程式使上千個其他連線站可以未授權的取得。

Page 36: 第19章 安全( SECURITY)

19.36

Morris 的攻擊方法

掛鉤

蟲 蟲

rsh 侵略finger 侵略

Sendmail 侵略對蟲作要求

蟲送出

目標系統 已感染系統

Page 37: 第19章 安全( SECURITY)

19.37

rsh 攻擊 Morris利用 UNIX 網路的公用程式, rsh ,簡單促進了遠端工作的執行。 藉著建立特殊的檔案其列示主機-簽到姓名組合,使用者每次可以忽略輸入密碼當他們每次利用這些組合存取遠端帳號。 病蟲尋找這些檔案其站名允許不用密碼的遠端執行。只要遠端的殼( shell )被建立了,病蟲程式就被載入了且開始重新執行。

Page 38: 第19章 安全( SECURITY)

19.38

finger 侵略 finger user-name @ hostname   其送回個人的真實和登入名字和其他使用者所提供的資訊,如辦公室和家裡住址及電話,研究計畫或生日。 易受惡意侵入的關鍵點是讀取輸入沒有檢查溢位界限。程式碼執行緩衝區溢位攻擊。 Morris 程式以 536 位元組的字質詢 finger巧妙地超出配置給輸入的緩衝區且覆蓋掉堆疊區。 所以 finger 並不返回 Morris呼叫前它所在的主程式,而是被安排到一個放在堆疊區中入侵的 536 個位元組的副程式。這新的副程式執行 /bin/sh (簽入程式),如果成功的話,就給這蟲在受攻擊的電腦上提供一遠端的殼。

Page 39: 第19章 安全( SECURITY)

19.39

Sendmail 侵略 Sendmail 安排網際網路環境下的電子郵件。偵錯功能對系統管理者是有用的,偵錯碼( Debugging

code )允許測試者去驗證和展示郵件系統的狀態。 Morris 在他攻擊的行動中包括偵錯指令,不同於一般測試是辨別使用者地址,其發出了一組的指令用以郵寄和執行掛鉤程式的複本。

Page 40: 第19章 安全( SECURITY)

19.40

後續行動 一旦進入位置,主要的蟲採取有系統的方法去發現使用者密碼。它先嘗試沒有密碼或帳戶組成的密碼是使用者名字組合,然後比較內部 432 個密碼選擇的字典,然後進行最後的步驟是嚐試標準 UNIX線上字典的每一個字作為可能密碼。 這種精細的且有效率的三階段破解密碼規則使蠕蟲可以存取受感染系統其他使用者的帳戶。蠕蟲然後尋找 rsh 資料檔案在新破解的帳號。任何 rsh進入被嘗試後,就像之前描述的,蠕蟲可以接取其他遠端系統的使用者帳號。 在每次新的存取時,蠕蟲程式會尋找已經再動作的自我複製。如果找到有一個存在時,新的拷貝就會退出,除了在第 7次發生時之外。由於允許每 7次時的複製,所以若藉由假蟲作誘餌使拷貝都退出而破壞其散佈的行動將會失敗。

Page 41: 第19章 安全( SECURITY)

19.41

19.4.2 病毒 (Viruses)

像電腦蠕蟲一樣,病毒設計來廣佈至其他程式和可以對系統造成破壞,包括修改或摧毀檔案和引起系統故障或當機。然而蠕蟲的結構是完整、獨立的程式,病毒是嵌入合法的程式內的片段程式碼。 多個使用者的電腦,病毒的威脅較弱因為可執行的程式其作業系統有被寫入的保護。病毒的擴散是因為使用者從公告電子版下載含有病毒的程式或磁牒片交換中包含感染。

Page 42: 第19章 安全( SECURITY)

19.42

有時,病毒感染的宣告是高度媒體關注的。米開朗基羅即是,病毒被安排於刪除受感染的硬碟檔案在 1992/03/06 ,此大藝術家的 517歲生日。大部分的商業套裝對付一些知名的病毒是有用的。反病毒軟體尋找特殊形式的家族相對於單一形式以辨別病毒。 最好防病毒的保護方法是避免或安全計算。購買供應商未開封的軟體和避免從公用資源或磁片交換得到免費或盜版軟體是最安全的。避免打開任何 email附件從未知的使用者。 另外一防護方法,雖然它不能預防感染,但是它可早期偵測。使用者必須先格式化硬碟,尤其是啟動磁區 boot sector ,其通常是病毒攻擊的目標。只有安全的軟體可載入和每個檔案的核對值是被計算的。核對值的表列必須要免於未授權存取。在任何一次系統的重新開機時,程式可重新計算核對值且和原始清單比較;任何差異可作為可能感染的警告。

Page 43: 第19章 安全( SECURITY)

19.43

19.4.3 服務拒絕 (Denial of Service)

沒有牽涉到獲取資訊或偷取資源,但會讓一系統或設備無法合法使用。 這些攻擊通常以網路為基礎。他們有兩種種類。第一種的攻擊是耗用很多設備資源,本質上,沒有有用的工作可被執行。例如,網站可下載 Java Applet進而使用所有可用的 CPU時間。 第二個案例是打斷設備的網路。有很多對主要網站之成功的服務拒絕攻擊。他們起因於 TCP/IP 一些基本功能的濫用。例如,如果攻擊者送出 Protocol的一部分其內容是「我想要開始 TCP連結」但從未遵從準則「連線現已完成」,有可能很多部分開始

的 TCP區段可以吃掉系統整個網路資源,無法任何進一步的合法 TCP連線。

Page 44: 第19章 安全( SECURITY)

19.44

19.5 安全的系統和設備 改善系統安全性的一方法是週期性的巡視系統以防止安全的漏洞。 短或容易猜中的密碼 ; 非預期的長期執行過程 網路式的電腦系統較孤立式之系統更容易遭保密性之破壞。事實上,美國聯邦政府將具有最高機密的系統只能由具有最佳保密之建築物內存取。如果能以任何形式自該環境之外與該系統溝通,該系統便失去最高機密的等級。很不幸地,對於系統管理者和專業的電腦保密而言,將機器鎖在房間之中或拒絕所有的遠方存取常常是不可能的。例如,網際網路經常連接數百萬部的電腦。

Page 45: 第19章 安全( SECURITY)

19.45

經由擋火牆完成範圍區域的網路保密

網路 擋火牆 群體電腦

DMZ

由網路對 DMZ 作存取 DMZ 和群體電腦之間的存取

由群體電腦對網路作存取

擋火牆是一部電腦或一個選進器( router ),它設立在可信任和不可信任的系統之間。它限制兩個安全範圍之間的網路存取、監督和記錄所有的連結。 有時,控制的溝通是可以被允許的在 DMZ 電腦和群體的電腦之間。例如, DMZ 網站伺服器可能需要詢問公司網路資料庫伺服器。 擋火牆的另一弱點是 spoofing ,其未授權的主機假裝已經授權的主機藉由符合一些授權規定。

Page 46: 第19章 安全( SECURITY)

19.46

19.6 入侵偵測 入侵偵測就是努力去偵測企圖或成功的電腦系統入侵和對其採行適當的反應。入侵偵測包含一連串的技術且隨 X 軸數目而有不同。一些 X 軸包括: ◎偵測發生的時間:真實時間(當它正在發生)或僅在事實之後 ◎輸入檢驗以偵測入侵活動的種類。處理系統指令,網路封包標題或內容 ◎反應能力的範圍。簡單的反應形式包括警告管理者有潛在的入侵或停止潛在入侵的活動。在一複雜的反應形式,系統可能轉移入侵者之活動至 trap -暴露給攻擊者之錯誤的資源為了監督和獲取攻擊的資訊。 IDSs, 入侵偵測系統的學問。

Page 47: 第19章 安全( SECURITY)

19.47

19.6.1 What constitutes an Intrusion簽名為基礎的偵測( signature - based detection )

系統輸入或網路壅塞是被檢驗的依照已知的特定行為模式去偵測攻擊。簡單的例子是監督多次企圖登入帳戶卻失敗,因為這是試著猜此帳戶密碼的共同徵兆。 企圖描繪出危險的行為和偵測當這些行為發生時,僅能辨別已知的攻擊其編撰於可識別的模式。因此,新的攻擊將會避開簽名為基礎的偵測當簽名較早產生時。這問題對病毒偵測軟體提供者而言是已知的所以會以高頻率釋放新的簽名當新的病毒產生時。

Page 48: 第19章 安全( SECURITY)

19.48

異常偵測( anomaly detection ) 指的是企圖在電腦系統內偵測出異常行為的技術。當然,不是所有的異常行為活動就是入侵,但是前提是入侵通常導致系統有異常行為。 例子是監督背景過程的系統指令以偵測是否系統指令行為與正常模式有偏差,如偵測使用者異常登入時間 。 異常偵測企圖描繪出非危險(正常)的行為和偵測當除了這些行為發生時。 限制:入侵活動可能被包括於「正常」的標竿;即使沒有入侵行為的任何影響,則標竿也必須是相當完整之正常行為描述,否則錯誤警告的機會會相當多。 以下例子暗示說一個 IDSs通則:為了可使用性,一 IDSs 必須提供極低的錯誤警告率。而這對異常偵測系統來說是一極大的挑戰,因為適當標竿正常系統行為的困難度。

Page 49: 第19章 安全( SECURITY)

19.49

為了敘述錯誤警告高邊際比率的影響,假設一安裝包含幾十個 UNIX工作站,其安全事件相關的紀錄為了入侵偵測的目的被記錄。一小型安裝可簡單產生每天 100萬筆的稽核記錄。然而,僅有一或兩個值得管理者調查。如果我們假設,樂觀地,每一這樣的攻擊會反應十筆稽核記錄,我們可大約計算稽核記錄發生反應真實入侵活動的比率: 以上解釋為「入侵記錄的發生比率」,以 表示 I 事件是記錄發生反應真實入侵行為的發生。

00002.010

10*2

6

dayrecords

recordsday 入侵入侵

)(IP

Page 50: 第19章 安全( SECURITY)

19.50

因為, 我們也知道現讓 A代表 IDS 提醒警告的事件。一正確的 IDS 應極大化 和即是警告指出一入侵和沒警告指出沒入侵的機率。現在焦點集中於 ,我們可以使用 Bayes’ theorem計算:

現在考慮中 錯誤警告率 的影響。即使有非常好的、真實的警告率或看似好的、錯誤的警告率 使得代表每七個中有少於一個指出真實入侵。系統的安全管理者調查每一警告,這錯誤警告率是極度浪費且會使管理者很快地疏忽警告。

00002.0)( IP 99998.0)(1)( IPIP

)( AIP )( AIP

)( AIP

)(*99998.0)(*00002.0)(*00002.0

)(*)()(*)()(*)(

)(IAPIAP

IAPIAPIPIAPIP

IAPIPAIP

)( AIP )( IAP

8.0)( IAP

0001.0)( IAP 14.0)( AIP

Page 51: 第19章 安全( SECURITY)

19.51

19.6.2 Auditing and Logging

入侵偵測常見的方法是審計軌跡處理,其攸關安全事件是被登入於一審計軌跡而後配合攻擊簽名(在簽名基礎的偵測)或分析異常行為(在異常偵測)。 在 UNIX 系統,一對簡單的程式可以被使用來創造和分析審計軌跡和開始反應,其是 syslog 和 swatch 。

Page 52: 第19章 安全( SECURITY)

19.52

Syslog 程式 其創造審計軌跡和提供攸關安全訊息,可以讓事件紀錄顯示到主控台、寫進檔案或裝置、或是送電子郵件出去。事件紀錄可以存在本地主機上,也可以透過網路送給其他機器。 當 Syslog建立於 UNIX 系統,所謂的 syslogd背景環境過程在系統開始時是被建立的。 Syslog 過程等待不同可能資源的訊息和傳送他們於 syslog.conf 配置檔(通常在 /etc/ 目錄)。檔案 syslog.conf包含一對,每一包含 selector field

和 action field 。

Page 53: 第19章 安全( SECURITY)

19.53

選擇欄位:指定訊息形態及優先順序。指定訊息形態:每筆 syslog 訊息都對應到一種主要設施,如:Log_Authpriv -身分驗證相關系統,但會紀錄在一個只有特定權限人員才能觀看的檔案。Log_User -使用者程序產生的訊息。優先順序:根據發生的緊急狀況,每筆訊息會被 syslog精靈賦予優先順序,如:Log_EMERG -系統錯亂狀況。Log_ALLERT -必須立即矯正的狀況,如系統資料庫毀損。Log_CRIT -急迫狀況,如硬碟故障。行動欄位:指定當 syslogd收到符合選擇欄位規則的訊息時,應採取的行動(指定這筆訊息應送到何處)。應用於訊息的行動種類包括送出訊息至一個檔案,至使用者清單。

Page 54: 第19章 安全( SECURITY)

19.54

Swatch 程式 它處理藉由 syslogd背景環境(或其他登入程式)的傳送訊息和起始活動當特定模式被偵測到。它被設計用來主動監督透過 syslog 機制寫入紀錄檔的訊息;也可作為稽核用途來檢視查核某紀錄檔案的內容。 只要符合 UNIX通用表達語法, Swatch 程式就可篩選出符合特徵的事件(如” (panic│halt)”即符合系統錯亂或停擺的訊息)並採取適當的行動。 Swatch 程式配合每一審計訊息和列於配置檔中通用表達語法。 允許的行動包括回應 swatch 的控制終端機, swatch的控制終端機會響鈴,藉由電子郵件或寫的指令發送訊息至管理者或通知使用者,或以反白字體顯示訊息。

Page 55: 第19章 安全( SECURITY)

19.55

19.6.3 Tripwire 簡單的異常偵測工具的例子是 UNIX 的 Tripwire檔案系統完整性檢查工具,發展於普渡大學。 Tripwire 的運作前提是一大種類的入侵導致系統目錄或檔案的異常修改。 它是一種工具去監督檔案系統的增加刪除或修改的檔案,和警告系統管理者關於這些修改。 所有的檔案或目錄都在 tw.config 內,每個項目附有一個選擇濾罩,告訴程式在檢查時應檢查或忽略哪些屬性。如 /home/xyz+s-a即告訴 Tripwire檢查 /home/xyz的檔案大小是否有變化,但忽略存取時間的戳記。

Page 56: 第19章 安全( SECURITY)

19.56

selection工作可能建構檔案內容,或是更明確地應用預先設定的 hash功能對檔案內容的結果,監督改變。 Tripwire 為此目的提供多個不同的Collision-resistant hash功能,其 hash功能 f 如果是 Collision-resistant ,給予 的結果當應用 f至輸入檔案 x時,它是不能實現的計算去計算一不同檔案 ,像 因此監督一個檔案改變的 hash 是和監督檔案本身一樣好的,因為存取檔案 hash需要較少的空間 。

)(xf

'x )()( ' xfxf

Page 57: 第19章 安全( SECURITY)

19.57

tw.config

Baselinedatabase

New databasegenerate

compare

Apply masks

Tripwirereport

Stored files

第一次執行時, Tripwire 會製作簽章基準資料庫。以後再次執行時,會讀取 tw.config組態檔的內容,並製作新的簽章資料庫,然後比對兩個資料庫(檔案或包含監督屬性目錄的簽名:如 inode屬性和 hash 值 ) ,並用選擇濾罩套用在指定檔案上(如有些經常變動的檔案不用檢查),然後產生報表 ( 改變或增加或刪除的檔案 ) 。

Page 58: 第19章 安全( SECURITY)

19.58

19.6.4 System-Call monitoring

This approach process system calls to detect in real time when a process is deviating from expected behavior.

For large and complex programs,the approach may not be easily determined.

Intrusion that might be detected this way are attacks that take over the process.

Page 59: 第19章 安全( SECURITY)

19.59

19.6.4 System-Call monitoring

Usual Sequence:open , read , mmap , mmap , open , getrlimit , mmap , close

Intrusion Sequence:open , read , mmap , open , open , getrlimit , mmap , close

Page 60: 第19章 安全( SECURITY)

19.60

19.6.4 System-Call monitoring

Root processes are an attractive target for this technique because they have a limited set of behaviors and do not change often.

The attacker may have a copy of the software that it plans to attack, and may try various intrusions until one is found.

Page 61: 第19章 安全( SECURITY)

19.61

19.7 Cryptography

傳送端不能確定封包會被誰接收 接收端不能確定封包會是誰傳出來的

Network packets arrive with a source address

The only alternative is to eliminate the need to trust the network. This is the job of cryptography.

Page 62: 第19章 安全( SECURITY)

19.62

19.7.2 Encryption

Components: K:key M:message C:ciphertexts E:K(MC)

即 E(K)(M)=C 以 k 為 key, 把 M 這個明文加密成密文 c D:K(CM)

即 D(K)(C)=M 以 k 為 key, 解密文 C

Page 63: 第19章 安全( SECURITY)

19.63

19.7.2 Encryption

There are two types of authentication algorithms Symmetric encryption algorithm( 對稱 )

Data encryption standard(DES) Advanced encryption algorithm(AES)

Asymmetric encryption algorithm ( 非對稱 ) N=p*q 35=7*5 [d,(p-1)(q-1)]=1 6*4=24 d 取 11 e*d mod (p-1)(q-1)=1 e*11 mod 24=1 e 取 11 <e,n> 為公開的 key <11,35> <d,n> 為私人的 key <11,35>

Page 64: 第19章 安全( SECURITY)

19.64

19.7.2 Encryption

Asymmetric encryption algorithm ( 非對稱 ) <e,n> 為公開的 key <11,35> <d,n> 為私人的 key <11,35> E(m)=me mod n =C E(m=3)=m11 mod 35 =12=C D(c) =Cd mod n =m D(c=12)=C11 mod 35 =3=m

Page 65: 第19章 安全( SECURITY)

19.65

19.7.1 Authentication

Constraining the set of potential senders of a message is called authentication.

Components: K:key M:message A:authenticators: 認證因子 S:K(MA)

即 S(K)(M)=A 以 k 為 key, 把 M 這個明文改成認證因子 V:K(MxA{true,false})

即 V(K)(M,A)=true or false 以 k 為 key, 驗證 m和 a 是否符合

Page 66: 第19章 安全( SECURITY)

19.66

19.7.1 Authentication

Authentication algorithms come in two main varieties Message authentication code(MAC)

V(k) 和 S(k) 是對稱的 S(k)(m)=a

– 必須是單向– 必須是 collision-resistant S(k)(m)=a S(k)(m’’)=a

V(k)(a)=true or false

Page 67: 第19章 安全( SECURITY)

19.67

19.7.1 Authentication

Digital signature 非對稱性的 V(k) 和 S(k) <e,n> 為公開的 key

– <5,119> 119=7*17 <d,n> 為私人的 key

– <77,119> S(<d,n>)(m)=a 是私人 key

– S(m=19)=m5 mod 119 =66=a V(<e,n>)(m,a)=true of false 是公開 key

– m=19 6677 mod 119 =19

Page 68: 第19章 安全( SECURITY)

19.68

19.73 Encryption Example - SSL

SSL – Secure Socket Layer

Cryptographic protocol that limits two computers to only exchange messages with each other.

Used between web servers and browsers for secure communication (credit card numbers)

The server is verified with a certificate.

Communication between each computers uses symmetric key cryptography.

Page 69: 第19章 安全( SECURITY)

19.69

19.73 Encryption Example - SSL

1. 由 CA 取得 KCA

2.nc

3.ns|S(kCA)(ID,E(kS),time)

client server

1. 由 CA 取得 KCA

4.V(kCA)(ID,E(kS),time,a)

5. 隨機產生 pms

6.cpms=E(kS)(pms)

7.pms=D(kS)(cpms)

8.ms=f(nc,ns, pms) 8.ms=f(nc,ns, pms)

Page 70: 第19章 安全( SECURITY)

19.70

19.73 Encryption Example - SSL

Client and server both compute the following keys from the ms A symmetric encryption key

A symmetric encryption key

A MAC generation key

A MAC generation key

cryptcskcryptsckmaccskmacsck

Page 71: 第19章 安全( SECURITY)

19.71

19.73 Encryption Example - SSL

Client 送給 server

Server 解碼 Server 驗證

camkEmkSmkE maccs

cryptcs ),)(()))((,)((

amckD cryptcs ,))((

trueamkV maccs ),)((

Page 72: 第19章 安全( SECURITY)

19.72

19.7.4 Use of Cryptography

Page 73: 第19章 安全( SECURITY)

19.73

19.7.4 Use of Cryptography

Cryptography can be inserted at almost any layer in this model. SSL:transport layer IPSec:network layer

There is no definitive answer as to where cryptographic protection is best More protocols benefit from protections placed lower in the

protocol. Protection at lower layer in the protocol stack may give

insufficient protection.

Page 74: 第19章 安全( SECURITY)

19.74

19.8 Computer Security Classifications

U.S. Department of Defense ( 美國國防部 )outlines four divisions of computer security: A, B, C, and D.

D – Minimal security. ex dos,win3.1

C – Provides discretionary protection through auditing. Divided into C1 and C2. C1 identifies cooperating users with the same level of

protection. Use Trusted Computer Base (TCB) .Ex: unix C2 allows user-level access control.

Page 75: 第19章 安全( SECURITY)

19.75

19.8 Computer Security Classifications

B – All the properties of C, however each object may have unique sensitivity labels. Divided into B1, B2, and B3. B1: 分級 , 下級的不能讀上級的 B2: 把 sensitivity labels 應用到系統資源上 B3: 應用 access-control lists

A – Uses formal design and verification techniques to ensure security. 必須是特定的人在特定的電腦上

其它 :

Page 76: 第19章 安全( SECURITY)

19.76

19.9 Windows NT Example

Configurable security allows policies ranging from D to C2. config.exe

Security is based on user accounts where each user has a security ID. 只要一登入就產生一個 security access token( 權限 , 群組等 ) 一旦有帳號和密碼的話

Page 77: 第19章 安全( SECURITY)

19.77

19.9 Windows NT Example

Uses a subject model to ensure access security. A subject tracks and manages permissions for each program that a user runs. Simple subject 監督登入 Server subject 監督使用者行為

Page 78: 第19章 安全( SECURITY)

19.78

19.9 Windows NT Example

Each object in Windows NT has a security attribute defined by a security descriptor. For example, a file has a security descriptor that indicates the access permissions for all users. Security descriptor 包含 security ID,group security

ID,access-control list,system access control

Container objects , Noncontainer objects