網絡空間安全技術叢書 點選檢視第二章 點選檢視第三章 Linux系統安全:縱深防禦、安全掃描與入侵檢測

第1章 Linux系統安全概述
著名網站技術調查公司W3Techs(官方網站:
https://w3techs.com)于2018年11月17日釋出的調查報告中指出,Linux在網站伺服器作業系統中使用比例高達37.2%。除了被廣泛使用在網站平台上以外,Linux也常常被作為FTP伺服器、電子郵件伺服器、域名解析伺服器和大資料分析伺服器等而部署在網際網路上。Linux作為網際網路基礎設施的一個重要組成部分,保障其安全的重要性不言而喻。雖然Linux是一款被大量部署的優秀的開源作業系統,但是這并不意味着不需要關注其安全性。在網際網路上,有許許多多針對Linux系統的攻擊。例如,中國國家計算機病毒應急進行中心(官方網站:
http://www.cverc.org.cn)在《病毒預報 第七百六十九期》中指出:“通過對網際網路的監測,發現了一款旨在感染Linux裝置的加密貨币挖礦惡意程式Linux.BtcMine.174。該惡意程式在不經過裝置所有者同意的情況下使用CPU或GPU資源來進行隐蔽的加密貨币挖掘操作。”
如果缺乏嚴密細緻的防禦措施、積極主動的安全掃描、行之有效的入侵檢測系統、切實到位的安全管理制度和流程保障,那麼Linux系統很容易被黑客入侵或利用,而保障業務和資料安全也将成為一句空話。
本章概覽性地介紹資訊安全和系統安全的概念、常見的威脅分析模型和保障安全的主要原則。對于從全局上把握Linux系統安全來說,這些知識是不可或缺的,它們是建構完整Linux系統安全體系的指南,引導着本書後續章節内容。
1.1 什麼是安全
1500多年前,由從梵文譯成漢文的《百喻經·願為王剃須喻》中講述了親信救王的故事。故事中寫道:“昔者有王,有一親信,于軍陣中,殁命救王,使得安全。”這裡的安全指的就是“平安、不受威脅”。
同樣,筆者認為,安全是指一種狀态,在這種狀态下,某種對象或者對象的某種屬性是不受威脅的。例如,《中華人民共和國國家安全法》第二條對國家安全的定義是:“國家政權、主權、統一和領土完整、人民福祉、經濟社會可持續發展和國家其他重大利益相對處于沒有危險和不受内外威脅的狀态,以及保障持續安全狀态的能力。”《中華人民共和國網絡安全法》第五條中指出,網絡安全的目的之一就是“保護關鍵資訊基礎設施免受攻擊、侵入、幹擾和破壞”,也就是保護關鍵資訊基礎設施不受威脅。
1.1.1 什麼是資訊安全
對于什麼是資訊安全(Information Security),不同的組織和個人可能有不同的定義。
ISO/IEC、美國國家安全系統委員會和國際資訊系統審計協會對資訊安全的定義是被大部分資訊安全從業人員所認可并支援的。《ISO/IEC 27001:2005 資訊安全管理體系規範與使用指南》中對資訊安全的定義是:“保護資訊的機密性(Confidentiality)、完整性(Integrity)、可用性(Availability)及其他屬性,如真實性、可确認性、不可否認性和可靠性。”
美國國家安全系統委員會(Committee on National Security Systems,CNSS)在《Committee on National Security Systems: CNSS Instruction No. 4009》對資訊安全的定義是:“為了保障機密性、完整性和可用性而保護資訊和資訊系統,以防止未授權的通路、使用、洩露、中斷、修改或者破壞。”
國際資訊系統審計協會(Information Systems Audit and Control Association,ISACA)對資訊安全的定義是:“在企業組織内,資訊被保護,以防止被洩露給未授權使用者(機密性)、防止非恰當的修改(完整性)、防止在需要的時候無法通路(可用性)。”
通過以上這3個定義我們可以看出,保障資訊安全的最重要目的是保護資訊的機密性、完整性和可用性這3個屬性。
- 機密性:資訊僅僅能夠被已授權的個人、組織、系統和流程通路。例如,個人的銀行賬戶交易流水和餘額資訊,除了賬戶持有人、經賬戶持有人授權的第三方組織、依相關法律法規規定有查詢權限的組織以外,不應該被任何其他實體擷取到。另外,商業組織的客戶聯系資訊往往也具有較高的價值,也需要保護其機密性。在某些對安全要求較高的行業,甚至特别強調了對機密性的保障。例如,在《支付卡行業資料安全标準3.2.1版本(Payment Card Industry Data Security Standard, Version 3.2.1)》3.2.2條中明确指出,在授權完成後,不能在日志、資料庫等位置存儲信用卡驗證碼(CVV2、CVC2、CID、CAV2等)。這是一個強調信用卡驗證碼機密性的例子。
- 完整性:保護資訊的一緻性(Consistency)、準确性(Accuracy)和可信賴性(Trustworthiness)。例如,A公司向B公司提供的資料報告是通過電子郵件附件的形式來傳輸的,那麼A公司就需要和B公司預先确定一種機制,來檢查和确認B公司收到的電子郵件附件确實與A公司發送的一模一樣,是未被在傳輸過程中篡改的。
- 可用性:當需要通路的時候,資訊可以提供給合法授權使用者通路。沒有了可用性的保障,資訊的價值就難以持續展現出來。
在學習資訊安全的機密性、完整性和可用性這3個屬性時,我們可以使用資訊安全的C.I.A金三角幫助記憶,如圖1-1所示。
在考慮資訊安全的時候,必須把保障資訊的機密性、完整性、可用性作為最重要目标,才能建立完善和有效的保護機制,避免顧此失彼。例如,華為公司2019年一号文《全面提升軟體工程能力與實踐,打造可信的高品質産品—緻全體員工的一封信》(電郵講話【2019】001号 簽發人:任正非)指出:“公司已經明确,把網絡安全和隐私保護作為公司的最高綱領。”其同時指出,“安全性(Security)”的要求就是“産品有良好的抗攻擊能力,保護業務和資料的機密性、完整性和可用性”。
1.1.2 資訊安全的木桶原理
一般來說,資訊安全的攻擊和防護是嚴重不對稱的。相對來說,攻擊成功很容易,防護成功卻極為困難。資訊安全水準的高低遵循木桶原理(Bucket effect),如圖1-2所示。
如圖1-2所示,雖然有多種多樣的防護措施,但是資訊安全水準的高低,卻取決于防護最薄弱的環節。木桶原理展現了安全體系建設中對整體性原則的要求。整體性原則要求我們從宏觀的、整體的角度出發,系統地建設資訊安全體系,一方面,全面構架資訊安全技術體系,覆寫從通信和網絡安全、主機系統安全到資料和應用安全各個層面;另一方面,還要建立全面有效的安全管理體系和運作保障體系,使得安全技術體系發揮最佳的保障效果。
1.1.3 Linux系統安全與資訊安全的關系
1.1.1節介紹了資訊安全的概念,那麼,本書的主題“Linux系統安全”與資訊安全是什麼關系呢?
首先,我們需要認識到,隻有保障了Linux系統安全,才能保障依賴于其提供服務的資訊安全。資訊是有生命周期的,從其産生、收集、處理、傳輸、分析到銷毀或者存檔,每個階段都可能有大量的裝置、平台、應用介入。而為這些裝置、平台、應用提供底層支援的,往往有大量的Linux系統(包括伺服器和嵌入式裝置等),其為資訊的整個生命周期提供源源不斷的動力支撐。
其次,我們也需要認識到,保障Linux系統安全是手段,保障資訊安全是目的。如果一個Linux系統上沒有存儲任何有價值的資訊,不生産或者傳輸有價值的資訊,不處理和分析有價值的資訊,那麼這個系統也就失去了保護的價值。對Linux系統安全的關注,實際上是對真正有價值的資訊的關注。
1.2 威脅分析模型
與安全相對應的是威脅。我們要保障安全,就需要了解威脅是什麼。
1.2.1 STRIDE模型
微軟的STRIDE模型是常用的威脅模型之一。STRIDE這6個字母分别代表身份欺騙(Spoofing identity)、篡改資料(Tampering with data)、否認性(Repudiation)、資訊洩露(Information disclosure)、拒絕服務(Denial of service)、提權(Elevation of privilege)。
STRIDE模型針對的屬性、定義和例子參考如表1-1所示。
在分析面對的威脅時,我們應該利用STRIDE模型來分門别類地總結和梳理,這樣才能更完整清晰地整理出所有的潛在威脅,并制定出相應的解決方案。
1.2.2 常見的安全威脅來源
在實際的安全工作中,我們常見的資訊安全所面對的威脅來自于多個方面,如圖1-3所示。
- 地震、雷雨、失火、供電中斷、網絡通信故障和硬體故障都屬于破壞實體安全的例子,它們直接破壞了資訊的可用性,導緻業務中斷,無法繼續向合法授權使用者提供服務。
- 系統漏洞和Bug可能會同時破壞機密性、完整性和可用性。
- 内部人員威脅往往是很多組織在安全體系建設中未加以足夠重視的部分,而事實表明,因内部人員誤操作或者惡意利用職權而導緻的資訊洩露和破壞的案例不計其數。IBM調查報告中指出,在2015年,60%的攻擊是由内部人員直接或者間接發起的。内部人員造成威脅的個人因素主要有:
- 出于貪婪或經濟利益的需要。
- 因工作原因對公司和上級上司心懷不滿。
- 即将跳槽到另一個組織。
- 希望取悅他人。
- 個人生活不如意而導緻工作行為異常。
- 黑客滲透是顯而易見的威脅,黑客們可能會利用系統漏洞和Bug進行攻擊,也可能會輔助以社會工程(Social Engineering)的方式進行攻擊。在滲透完成後,黑客往往通過在系統中植入木馬後門(包括Rootkit等)的方式進行隐秘的長期控制。
- 病毒和蠕蟲的散播讓資訊基礎設施的資源被惡意利用,還可能導緻資訊的非法洩露和被惡意篡改。
- 計算機中的“應用邏輯炸彈”是指在特定邏輯條件滿足時,實施破壞的計算機程式,該程式觸發後可能造成計算機資料丢失、計算機不能從硬碟或者軟碟引導,甚至會使整個系統癱瘓,或出現裝置實體損壞的虛假現象。
- 實施拒絕服務(Denial of Service)攻擊,包括其進階形式—分布式拒絕服務(Distributed Denial of Service,DDoS)攻擊,黑客的目标是讓資訊系統無法正常工作提供服務,以達到其不可告人的目的(例如商業或者政治目的)。
- 社會工程(Social Engineering)是一種通過對受害者心理弱點、本能反應、好奇心、信任、貪婪等心理陷阱進行諸如欺騙、傷害等危害手段。社會工程攻擊在近年來的一些網絡入侵事件中起到了很大的作用,對企業資訊安全有很大的威脅性。
1.3 安全的原則
通過大量的實踐,我們總結出10個最關鍵且有效的安全原則,分别是縱深防禦、運用PDCA模型、最小權限法則、白名單機制、安全地失敗、避免通過隐藏來實作安全、入侵檢測、不要信任基礎設施、不要信任服務、傳遞時保持預設是安全的。
1.3.1 縱深防禦
在安全領域,有一種最基本的假設:任何單一的安全措施都是不充分的,任何單一的安全措施都是可以繞過的。
試想一下,在一些諜戰影片中,最核心的機密檔案一般放在哪裡?
最核心的機密檔案不會放在别人能輕易接觸到的地方,而是放在有重兵把守的深宅大院裡面,房間的門會配置重重的鐵鎖,進入房間後還有保險櫃,打開保險櫃之後,會發現原來機密檔案還是加密過的。在這樣的場景中,守門的精兵強将、鐵鎖、保險櫃都是防止機密檔案被接觸到的防禦手段,加密是最後一道防禦,防止機密檔案萬一被竊取後導緻的資訊洩露。這是典型的縱深防禦的例子。
早在1998年,由美國國家安全局和國防部聯合組織編寫的《資訊保障技術架構(Information Assurance Technical Framework,IATF)》出版。該書針對美國的“資訊基礎設施”防護,提出了“縱深防禦政策”(該政策包括了網絡與基礎設施防禦、區域邊界防禦、計算環境防禦和支撐性基礎設施等深度防禦目标)。從此,資訊安全領域的縱深防禦的思想被廣泛流傳開來。
縱深防禦(Defense in depth)也被稱為“城堡方法(Castle Approach)”,是指在資訊系統上實施多層的安全控制(防禦)。實施縱深防禦的目标是提供備援的安全控制,也就是在一種控制措施失效或者被突破之後,可以用另外的安全控制來阻擋進一步的危害。換句話說,縱深防禦的目标也就是增加攻擊者被發現的幾率和降低攻擊者攻擊成功的幾率。
縱深防禦的概念如圖1-4所示。
為了保護核心資料,我們需要在多個層面進行控制和防禦,一般來說包括實體安全防禦(如伺服器加鎖、安保措施等)、網絡安全防禦(例如,使用防火牆過濾網絡包等)、主機安全防禦(例如,保障使用者安全、軟體包管理和檔案系統防護等)、應用安全防禦(例如,對Web應用防護等),以及對資料本身的保護(例如,對資料加密等)。如果沒有縱深防禦體系,就難以建構真正的系統安全體系。
1.3.2 運用PDCA模型
在實施了縱深防禦政策以後,我們還需要不斷地檢查政策的有效性,細緻分析其中潛在的問題,調查研究新的威脅,進而不斷地改進和完善。
我們需要牢記的一句話是:“安全不是一勞永逸的,它不是一次性的靜态過程,而是不斷演進、循環發展的動态過程,它需要堅持不懈的持續經營。”是以,筆者認為,動态營運安全是一條需要持續貫徹的原則,而PDCA模型恰好能有效地輔助這種營運活動。《ISO/IEC 27001:2005 資訊安全管理體系規範與使用指南》中也明确指出:“本國際标準采用了‘計劃—執行—檢查—改進’(PDCA)模型去構架全部資訊安全管理體系(Information Security Management System,ISMS)流程。”
PDCA(Plan-Do-Check-Act,計劃—執行—檢查—改進)也被稱為戴明環(Deming Cycle),是在管理科學中常用的疊代控制和持續改進的方法論。PDCA疊代循環所強調的持續改進也正是精益生産(Lean Production)的靈魂。
标準的PDCA循環改進流程如圖1-5所示。
在安全領域實施PDCA的方法和步驟如下:
- 計劃階段的任務如下。
- 梳理資産:遺忘的資産往往會成為入侵的目标,也往往導緻難以在短時間内發現入侵行為。對資産“看得全,理得清,查得到”已經成為企業在日常安全建設中首先需要解決的問題。同時,在發生安全事件時,全面及時的資産資料支援也将大大縮短排查問題的時間周期,減少企業損失。資産梳理的方法包括使用配置管理資料庫(Configuration Management Database,CMDB)、網段掃描、網絡流量分析、對相關人員(如業務方、營運方、開發方、運維方)進行訪談等。需要梳理的對象包括,伺服器IP位址資訊(公網、内網)、域名資訊、管理平台和系統位址、網絡裝置IP位址資訊及與這些資産相關的被授權人資訊。
- 制定安全政策:安全政策既包括安全技術政策,也包括安全管理政策,實作“兩手抓,兩手都要硬”。安全技術政策包括安全工具和系統、平台,如果沒有它們的輔助,那麼就沒有辦法阻止惡意入侵。安全管理政策包括制度和流程,如果沒有它們發揮強有力的作用,那麼就會使得安全技術政策的效力大打折扣。
- 制定安全政策的實施方案:在這個階段,需要制定具體的安全政策實施方法、實施負責人、實施步驟、實施周期。
- 制定安全政策的驗證方案:制定驗證方案的目的是在檢查階段能夠以此為基準檢查确認安全政策的有效性。
- 在執行階段的任務是實施計劃階段制定的方案。這個階段的工作包括實體防護、網絡防護、主機防護、應用防護和資料防護,以及安全管理制度的實施。
- 在檢查階段的任務是按照計劃階段制定的驗證方案驗證安全政策的有效性,進而确認安全政策的效果。這個階段的工作包括自我檢查、漏洞掃描、網絡掃描、應用掃描、滲透測試等,也包括安全管理制度實施效果的檢查。這一階段的成果是下一階段的輸入。
- 在改進階段的任務是以檢查階段的輸出為指導,完善安全政策,進入下一個更新疊代。
1.3.3 最小權限法則
最小權限法則(Principle of Least Privilege,PoLP)是指僅僅給予人員、程式、系統最小化的、恰恰能完成其功能的權限。
在系統運維工作中,最小化權限法則應用的一些例子包括:
- 伺服器網絡通路權限控制。例如,某些後端伺服器不需要被外部通路,那麼在部署時,就不需要給予其公網IP位址。這些伺服器包括MySQL、Redis、Memcached,以及内網API伺服器等。
- 使用普通使用者運作應用程式。例如,在Linux環境中,監聽端口在1024以上的應用程式,除有特殊權限需求以外,都應該使用普通使用者(非root使用者)來運作。在這種情況下,可以有效地降低應用程式漏洞帶來的風險。
- 為程式設定Chroot環境。在經過Chroot之後,程式所能讀取和寫入的目錄和檔案将不再是舊系統根下的而是新根下(即被指定的新位置)的目錄結構和檔案。這樣,即使在最糟糕的情況下發生了入侵事件,也可以阻止黑客通路系統的其他目錄和檔案。
- 資料庫通路控制。例如,針對報表系統對MySQL資料庫的通路控制,一般情況下,授予SELECT權限即可,而不應該給予ALL的權限。
在運維和營運過程中,未遵循最小權限法則将會對系統安全造成極其嚴重的威脅。例如,根據The Hacker News網站報道,75%運作在公網上、未使用認證的Redis伺服器被黑客入侵過。造成該嚴重安全問題的重要原因之一就是,未遵循最小權限法則來限制Redis伺服器其對外服務和使用較低權限的使用者啟動Redis服務。
1.3.4 白名單機制
白名單機制(Whitelisting)明确定義什麼是被允許的,而拒絕所有其他情況。
白名單機制和黑名單機制(Blacklisting)相對,後者明确定義了什麼是不被允許的,而允許所有其他情況。單純使用黑名單機制的顯而易見的缺陷是,在很多情況下,我們無法窮盡所有可能的威脅;另外,單純使用黑名單機制,也可能會給黑客通過各種變形而繞過的機會。使用白名單機制的好處是,那些未被預期到的新的威脅也是被阻止的。例如,在設定防火牆規則時,最佳實踐是在規則最後設定成拒絕所有其他連接配接而不是允許所有其他連接配接。本書第2章中就使用了這一原則來進行網絡防護。
1.3.5 安全地失敗
安全地失敗(Fail Safely)是指安全地處理錯誤。安全地處理錯誤是安全程式設計的一個重要方面。
在程式設計時,要確定安全控制子產品在發生異常時遵循了禁止操作的處理邏輯。以代碼清單1-1為例。
如果codeWhichMayFail()出現了異常,那麼使用者預設就是管理者角色了,這顯然導緻了一個非常嚴重的安全風險。
修複這個問題的處理方式很簡單,如代碼清單1-2所示。
在代碼清單1-2中,預設使用者不是管理者角色,那麼即使codeWhichMayFail()出現了異常也不會導緻使用者變成管理者角色。這樣就更加安全了。
1.3.6 避免通過隐藏來實作安全
通過隐藏來實作安全(Security by obscurity)是指通過試圖對外部隐藏一些資訊來實作安全。舉個生活中的例子。把貴重物品放在車裡,然後給它蓋上一個報紙,我們就認為它無比安全了。這就大錯特錯了。
同樣,在資訊安全領域,通過隐藏來實作安全也是不可取的。例如,我們把Redis監聽端口從TCP 6379改成了TCP 6380,但依然放在公網上提供服務,這樣并不會明顯提高Redis的安全性。又例如,我們把WordPress的版本号隐藏掉就認為WordPress安全了,這也是極其錯誤的。目前網際網路的高速連接配接速度和強大的掃描工具已經讓試圖通過隐藏來實作安全變得越來越不可能了。
1.3.7 入侵檢測
在入侵發生後,如果沒有有效的入侵檢測系統(Intrusion Detection System,IDS)的支援,我們的系統可能會長時間被黑客利用而無法察覺,進而導緻業務長期受到威脅。例如,在2018年9月,某知名國際酒店集團被曝出發現約5億名預定客戶資訊發生洩露,但經過嚴密審查發現,其實自2014年以來,該集團資料庫就已經持續地遭到了未授權的通路。該事件充分證明了建設有效入侵檢測系統的必要性和急迫性。
按照部署的位置,入侵檢測系統一般可以分為網絡入侵檢測系統和主機入侵檢測系統。
網絡入侵檢測系統部署在網絡邊界,分析網絡流量,識别出入侵行為。
主機入侵檢測系統部署在伺服器上,通過分析檔案完整性、網絡連接配接活動、程序行為、日志字元串比對、檔案特征等,識别出是否正在發生入侵行為,或者判斷出是否已經發生入侵行為。
本書第11~13章将詳細介紹入侵檢測相關技術和實踐。
1.3.8 不要信任基礎設施
在資訊安全領域有一種誤解,那就是“我使用了主流的基礎設施,例如網站伺服器、資料庫伺服器、緩存伺服器,是以我不需要額外防護我的應用了。我完全依賴于這些基礎設施提供的安全措施。”
雖然主流的資訊基礎設施在設計和實作時會把安全放在重要的位置,但是如果沒有健壯的驗證機制和安全控制措施,這些應用反而會成為基礎設施中顯而易見的攻擊點,使得黑客通過應用漏洞完全控制基礎設施。
WebLogic這樣一個廣泛使用的Web容器平台就曾經爆發過嚴重的安全漏洞。例如,在2017年12月末,國外安全研究者K.Orange在Twitter上曝出有黑産團體利用WebLogic反序列化漏洞(CVE-2017-3248)對全球伺服器發起大規模攻擊,大量企業伺服器已失陷且被安裝上了watch-smartd挖礦程式。這個例子告訴我們,要時時刻刻關注資訊基礎設施的安全,及時修正其存在的安全缺陷。
1.3.9 不要信任服務
這裡的服務是指任何外部或者内部提供的系統、平台、接口、功能,也包括自研用戶端和作為用戶端功能的軟體,例如浏覽器、FTP上傳下載下傳工具等。
在實踐中,我們常常見到,對于由外部第三方提供的服務,特别是銀行支付接口、短信通道接口,應用一般都是直接信任的,對其傳回值或者回調請求缺少校驗。同樣,對于内部服務,應用一般也是直接信任的。事實上,這種盲目的信任關系會導緻嚴重的安全風險。如外部和内部服務被成功控制後,我們的業務也可能會受到直接影響。對于來自自研用戶端或者作為用戶端功能的軟體的資料更應該進行嚴格校驗,因為這些資料被惡意篡改的機率是非常大的。例如,黑客通過逆向工程(Reverse Engineering)對自研用戶端進行反編譯(Decompilation),往往可以直接分析出用戶端和伺服器端互動的資料格式,進而可以進一步模拟請求或者僞造請求而嘗試入侵。
1.3.10 傳遞時保持預設是安全的
在傳遞應用時,我們要保證預設情況下的設定是安全的。比如,對于有初始密碼的應用,我們要設定較強的初始密碼,并且啟用密碼失效機制來強制使用者在第一次使用的時候就必須修改預設密碼。另一個例子是虛拟機鏡像的傳遞。我們在燒制虛拟機鏡像的時候,應該對鏡像進行基礎的安全設定,包括删除無用的系統預設賬号、預設密碼設定、防火牆設定、預設啟動的應用剪裁等。在虛拟機鏡像傳遞給使用者以後,使用者可以按照實際需要再進行優化和完善,以滿足業務需求。
1.4 組織和管理的因素
筆者認為,要保障資訊安全和系統安全,除了有必要技術手段的支援以外,還要考慮組織和管理的因素,也就是人、流程與制度的因素。
1.4.1 加強安全意識教育訓練
在造成資訊洩露的事件中,有一定比例是由組織内部人員的安全意識缺失導緻的。例如,據澎湃新聞報道,某市政府資訊公開網曾于2017年10月31日釋出了《第二批大學生一次性創業補貼公示》,公示機關為其勞動就業服務管理局,責任部門為景德鎮市人力資源和社會保障局。其中,可供公衆下載下傳的檔案公布了學生姓名、完整身份證号以及聯系電話等。應對這種問題的方式是對全員進行資訊安全意識教育訓練,使所有人都參與到資訊安全建設中,提高防禦資訊洩露的能力。而覃某利用其在某大型銀行内部擔任技術崗位職務的便利,在總行伺服器内植入病毒獲利的案例則暴露了組織在安全管理和流程上的漏洞。
在進階持續性威脅(Advanced Persistent Threat,APT)中,通過社會工程方式發送釣魚郵件是黑客組織最常用的攻擊手段。這種以釣魚郵件為載體的攻擊又被稱為“魚叉攻擊”(Spear Phishing)。随着社會工程攻擊手法的日益成熟,電子郵件幾乎真假難辨。從一些受到進階持續性威脅攻擊的大型企業可以發現,這些企業受到威脅的關鍵因素都與普通員工遭遇社會工程的惡意郵件有關。黑客剛一開始,就是針對某些特定員工發送釣魚郵件,以此作為使用進階持續性威脅手法進行攻擊的源頭。例如,臭名昭著的進階持續性威脅組織OceanLotus(海蓮花)所使用的近60%的攻擊都是将木馬程式作為電子郵件的附件發送給特定的攻擊目标,并誘使目标打開附件。一個典型的釣魚郵件攻擊的流程如圖1-6所示。
被截獲的部分釣魚郵件附件如圖1-7所示。
在一個典型的釣魚郵件攻擊中,黑客可以通過一封看似正常但卻極具僞裝性和迷惑性标題和附件(如圖1-7所示)的郵件就可以讓使用者個人電腦或者伺服器失陷。是以,我們要持續教育和告誡員工,不得打開未知來源和與工作無關的郵件,特别是不要被具有誘惑性标題的郵件所迷惑。另外,在發現釣魚郵件時,要及時通知安全管理人員介入調查。
1.4.2 特别注意弱密碼問題
筆者在處理大量安全事件中得到的經驗表明,弱密碼問題是導緻衆多安全事件的罪魁禍首。同樣,在360公司釋出的《2018上半年勒索病毒趨勢分析》中指出,從2016年下半年開始,随着Crysis/XTBL的出現,通過RDP弱密碼暴力破解伺服器密碼人工投毒(常伴随共享檔案夾感染)逐漸成為主角。到了2018年,幾個影響力最大的勒索病毒幾乎全都采用這種方式進行傳播,其中以GlobeImposter、Crysis為代表,感染使用者數量最多,破壞性最強。由此可知,很多時候,黑客入侵并不需要高超的技術能力,他們僅僅從弱密碼這個入口突破就可以攻破企業的整個資訊基礎設施。是以,企業及組織應該特别注意弱密碼問題。
1.4.3 明令禁止使用破解版軟體
破解版軟體也成為衆多木馬和病毒的載體,而安裝了這些載有惡意代碼的破解版軟體後,可能會直接突破網絡邊界上的安全控制,直接影響伺服器和資料的安全。對于伺服器管理和操作軟體來說,使用破解版的風險尤其嚴重。例如,360終端安全實驗室在2018年11月20日釋出的《警惕!Oracle資料庫勒索病毒RushQL死灰複燃》中指出,RushQL資料庫勒索病毒的大規模爆發,正是由于很多資料庫管理者下載下傳使用了破解版Oracle PL/SQL而導緻Oracle資料庫被鎖定。同樣,在2012年1月爆發的“漢化版”PuTTY、WinSCP、SSHSecure工具内置黑客後門,導緻3萬多台伺服器系統使用者名和密碼被傳送到黑客伺服器上,也再次說明了在組織内禁止使用所謂“漢化版”“破解版”軟體的重要性和緊迫性。
1.4.4 組建合理的安全組織結構
在中大型網際網路公司中,一般會有首席安全官(Chief Security Officer,CSO)直接負責公司的整體安全事宜。在這種組織架構中,安全事項由較高職位的管理層直接負責,對于推動安全政策的制定和實施是強有力的保障。
在小型網際網路公司中,伺服器安全一般由運維總監兼管,這種情況下,安全制度的推行一般都會受到一些挑戰,這些挑戰來自于研發和測試、業務等幹系人。解決這些挑戰的方式是:
- 通過公司管理層,對運維總監進行書面授權,确認其承擔安全建設的責任,并授予其制定安全制度和在全公司實施的權力;同時要求各類幹系人予以積極配合。
- 運維總監可以通過正式和非正式的溝通與幹系人就安全目标達成一緻,然後逐漸實施安全政策。
1.5 本章小結
本章介紹了資訊安全的概念、系統安全和資訊安全的關系,并解析了微軟STRIDE威脅分析模型。利用威脅分析模型,可以更好地了解資訊安全的機密性、完整性、可用性。1.3節介紹了10個基礎的安全原則,即縱深防禦、運用PDCA模型、最小權限法則、白名單機制、安全地失敗、避免通過隐藏來實作安全、入侵檢測、不要信任基礎設施、不要信任服務、傳遞時保持預設是安全的。這些原則來源于實踐,回報于實踐。在安全實踐中,以這些原則為基準,可以避免大部分安全問題的産生。在本章的最後,簡要介紹了在組織中通過安全意識教育訓練等管理手段提高系統安全的方法。接下來的章節是對本章中提到的一些概念、觀點、原則的具體化實踐。
推薦閱讀材料
- 《Computer Security: Principles and Practice (3rd Edition)》,William Stallings和Lawrie Brown著。該書第1章提綱挈領地講解了計算機安全的概念和安全設計的基礎原則。
- https://en.wikipedia.org/wiki/Defense_in_depth_(computing) ,講解了縱深防禦的曆史背景、控制措施、例子說明。
- https://en.wikipedia.org/wiki/Principle_of_least_privilege ,講解了最小權限法則的曆史和實作。
- https://wiki.mbalib.com/wiki/PDCA ,講解了PDCA的概念、特點和使用方法。
- https://searchsecurity.techtarget.com/definition/advanced-persistent-threat-APT ,簡要介紹了進階持續性威脅的定義以及其工作原理。
- https://www.fireeye.com/current-threats/apt-groups.html ,知名網絡安全公司FireEye分析了活躍的進階持續性威脅組織,包括各進階持續性威脅組織的目标對象、使用的惡意軟體、攻擊的方式等。
本章重點内容助記圖
本章涉及的内容較多,是以,筆者編制了圖1-8以幫助讀者了解和記憶重點内容。