字體:小 中 大 | |
|
|
2020/12/02 09:28:52瀏覽1241|回應0|推薦0 | |
第14章系統的安全管理 電腦與網路安全 電腦病毒virus與惡意軟體malware 安全問題的解決辦法 從密碼學cryptography來看保護安全的方法 防火牆firewall 電腦與網路安全 電腦安全(Computer Security)的重要性與日俱增,尤其是電腦化之後,人類對於電腦化作業的依賴增加,更不容許因外來的破壞而帶來的損失。網路的建立使安全問題複雜化,因為資料的流通迅速,不易控制。所謂的「安全性的侵犯」(Security Attack),是指外來或是內部引發的行動,造成資料的損害或是變更,由於程式本身也可以看成是資料的一種,安全性的侵犯也會造成系統無法正常運作。 蓄意的破壞 假如一個系統是安全的(secure),表示其資源的使用在任何情況下都在原來的預期中。若不在預期中的情形發生就有可能是安全上的破壞,系統的安全違規(security violation)可以分成兩大類:蓄意的(intentional或malicious)與意外的(accidental)。蓄意的破壞又可分成3種:1. 資料的竊取(unauthorized read)。2. 未經允許修改資料(unauthorized write)。3. 未經允許破壞資料(unauthorized destruction)。
網路使用的安全模型(Network AccessSecurity Model) 我們可以用兩個模型來描述安全服務,一個是用來防止破壞者進入網路的途徑,稱為網路使用安全模型(Network AccessSecurity Model),在進入網路資源的通道上,做好安全檢查。另一個模型則是在網路上做資料傳輸時的各種安全機制,稱為網路安全模型(Network Security Model)
安全原則 探討資訊安全都會談到所謂的AIC大三角(triad),也就是安全的基本原則,如圖14-3所示。任何的資訊安全的努力都是為了維繫安全的基本原則,資安的技術也是在這些基本原則上發展出來的。
1. 可用性(availability):電腦系統與網路必須有足夠的容量來滿足使用的需求,維持可以接受的效率,遇危難時也能迅速復原,使影響降到最低的程度,相當於讓系統服務一直保持在可用的狀態。 2. 完整性(integrity):資訊以及系統必須保持精確與穩定性,軟硬體與通訊的功能要協調合作,防止資訊遭到不當或非預期中的更改與破壞。 3. 保密性(confidentiality):資訊在儲存與處理的過程中必須有適當的保護,避免落入不相關的人手中。 惡意軟體(malware) 惡意軟體運用電腦系統的弱點來發動攻擊或是產生破壞,這是電腦系統最複雜的一種威脅,惡意軟體(malicious software)也常稱為malware,不管是應用軟體或是系統軟體,都可能會與惡意軟體扯上關係,至於惡意軟體會對電腦系統產生什麼樣的危害,狀況蠻多的,通常惡意軟體會偽裝成正常軟體,或是躲藏在一般的軟體中,同時也會透過各種方式來散播。 平時一聽到「病毒(virus)」,大家都會想到讓人感冒不舒服的元凶。可是前面加上「電腦(computer)」,意義就大不同了,電腦病毒是指讓電腦不舒服的東西嗎? 它有生命嗎?「電腦病毒(computer virus)是一種電腦程式,有複製自己並且傳播到其他電腦上的能力。」 病毒通常不是一染上就會發作,病毒的發展可以用一個生命週期來描述,包括進入寄主之後經歷的潛伏期、複製自己進行感染的傳播期、因觸發條件成立啟動執行,到執行期產生的破壞: 1. 潛伏期(Dormant phase):在這個時期病毒沒有活動,必須等到觸發的事件發生才會離開此時期,例如某個日期、某個程式或是檔案產生時,或是磁碟空間超過某個限度時。不過不是所有的病毒都有潛伏期。 2. 傳播期(Propagation phase):病毒會將自己複製到其他的程式中,或是儲存磁碟上的系統區域,被感染的程式也會因為含有病毒而陸續進入傳播期。 3. 觸發期(Triggering phase):當病毒被觸發時會執行原來預定執行的功能,觸發期可能會因為各種系統的事件而啟動,例如病毒本身被複製的次數達到某個數字也可以當做觸發的條件, 4. 執行期(Execution phase):病毒在此時期會執行其本身所被賦予的功能,不見得會造成損害,有的病毒執行後只會顯示特定的訊息在螢幕上,有的病毒一旦執行以後會破壞電腦系統中的程式與檔案。 惡意軟體的分類,需要寄生程式(host program)的惡意軟體多半屬於程式片段,獨立的惡意軟體則可直接在作業系統的安排下執行。Logic bombs與Trojan horse有可能是virus或worm的一部分。
1. 後門(trap doors) : 後門是進入一個程式的秘密入口,知道入口的人不需要經過正常的安全程序就能進入程式。過去程式設計師常利用後門來進行正當的程式除錯或測試,但是後門程式一旦被壞人利用,後果就難以設想了。 2. 邏輯炸彈(logic bombs) : 邏輯炸彈是病毒與蠕蟲的前身,藏身於正常的程式裡頭,在特定的條件成立時會發作,或者說「爆炸」。最有名的例子是以前美國馬里蘭州一家圖書館的包商將邏輯炸彈埋藏在圖書資訊系統中,後來館方因為程式效率不彰凍結付款,廠商以引爆邏輯炸彈來 威脅。 3. 木馬(Trojan Horses) : 或稱特洛依馬,木馬程式看起來像是有用的程式,裡面暗藏有破壞力的程式碼,假如編譯程式(compiler)被修改過,則原始程式可能透過編譯被植入木馬,藏在執行碼中,但是從原始程式碼看不出來。 惡意軟體的實例 程式的攻擊(program threats)常形成系統的安全問題,在很多作業系統中,某些使用者寫出來的程式可能會被其他的使用者執行,由於程式可在執行領域(domain)中獲得一些額外的權限,有可能因而濫用新增的權限。特洛依馬是一段會濫用權限的程式碼。以UNIX系統為例,在UNIX中,路徑(path)的設定存在於每個使用者帳號中,假如路徑中的目錄含有被植入特洛依馬的程式,就有可能發生使用者意外執行該程式,讓駭客程式在擁有使用者的權限下為所欲為。 利用使用者登入畫面的模擬,依照正常的登入畫面,不知情的人會輸入帳號與密碼,隨即被程式記錄下來,這時候才執行正確的登入程式,使用者會誤以為第一次打錯密碼。這種詐騙方式現在也稱為網路釣魚(phishing)。
安全問題的解決辦法 系統的安全問題可以透過兩種管理的方法來改善,在探討系統保護的作業時,存取控制的管理同樣需要透過類似的管理方法來輔助: 1. 系統的監控(system monitoring)。 2. 稽核記錄(audit log)。 系統的監督(monitoring) 存取控制的監督(access control monitoring)監視著任何嘗試使用資源的意圖,算是相當重要的偵測機制(detective mechanism)。光把功夫花在防毒與防火牆上是不夠的,監督內部網路是必須要做到的安全機制,可以減少很多安全上的漏洞。稽核記錄會耗用系統資源,而且資料增多後處理也不容易,因此比較可行的方式是定期檢視一些重要的系統特徵。
入侵偵測(intrusion detection) 入侵偵測系統(IDS, intrusion detection system)跟防火牆的功能是不同的,入侵偵測的目標在於發現安全的漏洞(security breach),只要有可疑的活動,嘗試進入管制中的電腦系統或是網路,IDS就必須試著偵測到,並且發出警訊,迅速回報。
入侵預防系統(intrusion prevention systems) 企業在採用各種IDS產品之後可能還是不滿意這種防治的方法,希望能有更積極創新的做法,所謂的入侵預防系統(IPS, intrusion prevention systems)會偵測可疑的活動,而且進一步地防止活動延伸成不法進入系統的結果。
安全的要求(security requirement)分成3大類: 私密性(confidentiality)、完整性(integrity)與辨識(authentication) ,安全機制必須滿足這些安全的要求。 來自網路上的攻擊 來自網路上的攻擊與一般傳統商務的安全問題是完全不同的,像癱瘓服務(DoS, Denial of Service) 的攻擊是利用各種方式讓提供服務的伺服器無法正常地運作,在實際的生活上由於手機也能下載資料與軟體,確實也發生過手機上的病毒,未來無線通訊器具上的軟體運用更廣泛,勢必使遭受攻擊的機會大增。
加密法的基本原理 發送端要傳送的訊息以「明文」(plaintext)稱之,用金鑰(key)加密之後成為無法用一般方式讀取的「密文」(ciphertext),然後傳送到接收端,利用金鑰解密後,還原成可讀取的明文。由於密文無法讀取,我們可以說這種方式幫助維持資料的私密性。假如圖14-8中的key1 和key2 相同,則可稱之為「對稱式的加密」。
非對稱式加密法的兩種情況 非對稱式的加密法中, Key1 和key2 是不相同的,在第一種情況中,甲方用自己的私鑰加密,乙方用公鑰解密,由於只有甲方知道自己的私鑰,所以可確認發送端的身份,問題是公鑰公諸於世,無法確保資料的私密性與完整性。在第二種情況中,甲方用乙方公佈的金鑰來加密,如此一來,只有乙方有私鑰來解密,這樣可確保資料的私密性,但無法確知發送端是否為甲方。顯然加密法並沒有完全解決問題。
數位簽章產生的方式與使用的原理 要傳送的明文用雜湊函數(hash function)計算出簡短的訊息摘要(Message digest),用私鑰加密後產生數位簽章,數位簽章和明文用另一組公鑰加密以後傳送到接收端。接收端收到訊息以後用私鑰解密,得到明文與數位簽章,明文可用雜湊函數算出訊息摘要,這個訊息摘要和數位簽章解密後得到的結果應該一樣。
數位簽章的架構用了兩組金鑰,第一組包括私鑰1 和公鑰1,由於只有發送端自己知道私鑰1,其他人無法產生一個有效的數位簽章;因此,第一組金鑰保障了發送端身分的真實性。第二組金鑰包括私鑰2 與公鑰2,只有接收端有私鑰2 來解密,所以資料的私密性得以保存。 交易權威性的問題 因為有人可以冒充別人公佈公鑰,所以,公鑰的使用必須先取得數位證書(Digital certificate),由發送端向權威機構申請,完成之後,接收端才能從權威機構那兒取得公鑰。
RSA加密法(RSA encryption) RSA(Rivest, Shamir, Adleman) 加密法是一種公鑰加密法(public key encryption) ,通訊雙方的一方使用公鑰(public key) ,以Kp表示,另一方使用私鑰(secret key) ,用Ks表示,雙方共同使用一個數字N。 我們可以從加密與解密的演算法來看RSA的作用: Encryption algorithm 1. 將需要加密(encrypt)的資料編碼(encode)成一個數(number) ,產生明文。 2. 以C=PKp modulo N來計算密文。 3. 將C當成密文傳送。 Decryption algorithm 1. 接收密文C。 2. 以P=CKs modulo N計算明文P 3. 將P解碼(decode)成原來的明文。 假設資料是字母F, Kp=5, Ks=77, N=119,由於F是26個字母中的第6個,所以我們把F變成6, 6Kp mod 119=41, 41當做密文傳送到接收端,計算41Ks mod 119=6,所以對應到F。
RSA安全的原理 由於使用RSA 的雙方的key 不一樣,所以我們說RSA 有相反的(reciprocal)或是所謂的非對稱的特性。現在的關鍵是Kp、Ks 與N 是怎麼選出來的? 基本上與數論(number theory)有關 : 1. 先選擇兩個質數(prime number) ,假設是p 與q,分別為7 與17。 2. 計算N=p*q,所以N=7*17=119。 3. (p-1) * (q-1)=96, Kp 不能為(p-1) * (q-1)的因數,所以我們選擇Kp=5。 4. 要求(Kp *Ks) mod (p-1) * (q-1)=1,選擇Ks=77,我們可以發現 Kp*Ks=5*77=385,而385 mod (p-1) *(q-1)=385 mod 96=1。 在數學上,若是N夠大的話,很難推測出p與q的值,這也就是RSA安全的原理。 防火牆(firewall) 組織或企業在有網路的情況下,通常會引入所謂的防火牆(firewall),將網路中的節點分成可信的(trusted)、部分可信的(semitrusted)、與不可信的(untrusted)3大類,防火牆可避免不可信的節點直接與需被保護的節點溝通。
火牆是建構網路商務環境時常考量的配置,由於防火牆的種類很多,所以軟體與硬體的防火牆都有,企業內部的網路與企業外部的開放網路能有所區隔,防火牆就是要用來建立這道防線。 |
|
( 知識學習|隨堂筆記 ) |