怎麼看操做系統安全何在?

怎麼看操做系統安全何在?怎麼看操做系統安全何在?

最近一週,來自網絡的「想哭」勒索病毒(Wannacry Ransomware)在世界各地同時上演了一部綁匪大片,臺詞華麗,演技出色,當仁不讓地新晉世界第一網紅。全球各國除了默默忙於兩彈一星足不出戶的朝鮮外,無不爲之動容。一時間,包括「想哭」病毒在內的各類病毒的各類傳聞也火爆網絡,咱們並不許備跟風刷屏,只是打算本着實事求是的精神,科學的探討一下如何與它們和氣相處、談笑風生。html

「想哭」病毒的前世此生linux

首先,讓咱們先簡要回顧一下主角「想哭」病毒的前世此生。算法

「想哭」病毒是基於網絡攻擊框架二次開發的結果,它利用了 NSA(美國國家安全局)的前輩們留下的非物質文化遺產:永恆之藍(ETERNAL BLUE)模塊,針對 Windows SMB 服務的實現漏洞植入惡意代碼,再結合本身的創新:加密用戶文件和顯示勒索聲明,一代網紅勒索病毒由此誕生。從病毒自己的設計流程來看,彷佛並不須要高深的編碼技巧或深厚的理論根基,然而這也偏偏是這一事件中最值得咱們警戒的地方:NSA 泄漏的攻擊模塊遠不止永恆之藍一種,藉助已有攻擊框架進行二次開發的難度又如此之低,因此,能夠預期,一大波未知的病毒正在來襲的路上。安全

先要充分了解對手,因此接下來咱們進一步瞭解一下什麼是病毒?病毒是如何以危險方式危害公共安全的?又是怎樣進入咱們的系統的?服務器

病毒由一段可執行代碼與數據構成,自身不能在裸機上運行,經過適當的途徑侵入宿主操做系統,經過宿主系統中的存儲和網絡實現複製傳播。網絡

Wirth 教授教導咱們:數據結構

  • 算法+數據結構=程序
  • 病毒=代碼+數據=算法+數據結構=程序

沒錯,病毒就是一類特殊的計算機程序,廣義上稱爲惡意軟件。與天然界病毒的最大不一樣之處在於,它們不是純自然的,而是 100% 人工打造。一般它們懷着對人類的深深的惡意來到世上,行爲各不相同,有的在你的屏幕上畫個圈圈詛咒你,有的會竊取你設備中的隱私照片,還有的會眨眼間轉走你銀行卡上的購房首付款......顯然,它們的目標仍是很一致的:危害人類設備,破壞世界和平。架構

又扯遠了,咱們接着來看病毒是如何入侵操做系統的。病毒的入侵無外乎兩個途徑:主動和被動。所謂主動是針對目標系統嘗試發起掃描和攻擊,通常是遠程發起,當發現了本身能吃定的漏洞以後,就經過各類陰險手段(其實技術實現上大多仍是很優雅的)攫取系統權限,進而將惡意代碼注入宿主系統中乘機做惡,對此沒什麼概念的小夥伴能夠自行腦補一下《異形》中的人類被寄生的過程。框架

病毒入侵的另外一種方式,咱們稱之爲被動方式。這種方式並不須要系統存在漏洞或缺陷,須要的是用戶的經驗、常識或智商存在缺陷。它們經過各類假裝誘騙用戶去打開或運行本身,包括形形色色讓你心動的郵件、連接、不明來源的安裝程序等等,一旦得到機會運行,它們會悄無聲息的在你的系統中安營紮寨、留下多道後門,而後隨心所欲,這類病毒又被形象地稱爲(特洛伊)木馬。工具

如何應對各類病毒威脅

瞭解了病毒的前因後果以後,咱們就能夠開始討論如何應對各類病毒層出不窮的威脅了。

對於大多數用戶,良好的使用習慣是第一位的。堡壘每每從內部被攻克,再安全的操做系統,再強大的安全機制,都難以阻止用戶自我毀滅的腳步。良好的使用習慣中最重要的,是安全更新,安全更新,安全更新!爲何呢?這要先談一下操做系統漏洞的由來。

漏洞實際是軟件缺陷的一種,也就是俗稱的 bug,是因爲軟件開發人員的疏忽而致使程序沒有按照預期的方式運行。軟件缺陷多種多樣,有些很呆,有些很萌,也並不都會對系統安全構成威脅。那些僥倖逃脫開發和測試人員的輪番圍剿,隨着軟件的發佈散落人間的軟件缺陷,一旦被黑客們發現、策反,並藉助本身在系統內部的有利位置,披着合法軟件的外衣,作出送人頭、坑隊友的惡劣行徑時,就成爲軟件系統的公敵:漏洞。越是龐大和複雜的軟件越容易產生漏洞,不幸的是操做系統就是一類極其龐大而複雜的軟件系統。

雖然操做系統漏洞經常難以徹底避免,然而某個漏洞一旦被發現,開發廠商都會在第一時間發佈安全更新對問題進行修復。以此次勒索病毒爲例,針對被利用的 SMB 服務漏洞,事實上早在一個月前微軟就公佈了漏洞警告和補丁,提供了安全更新,那些開啓自動更新並及時修復了漏洞的用戶,他們能夠用省下的三個比特幣吃着火鍋唱着歌,徹底不用擔憂綁匪。因此請劃重點:操做系統安全更新很是重要,不論我的用戶、企業用戶仍是系統管理員,不論服務器,桌面仍是移動終端,不論 Windows,Linux 仍是 MacOS,都應該儘量及時地從操做系統廠商處獲取安全更新。

其次,殺毒軟件也能夠起到必定的安全加強的做用,多數殺毒軟件能夠藉助病毒庫對已有病毒的特徵進行分析比對,一旦發現用戶即將運行的程序中含有病毒或惡意程序,會及時提醒用戶,或者自動清除。所以,殺毒軟件能夠在很大程度上防護已知的、以被動方式入侵系統的病毒。

那麼,積極地安全更新、安裝殺毒軟件就能夠解決全部病毒威脅了麼?

很不幸,事實並不是如此。安全更新和殺毒軟件之於病毒威脅正如強身健體之於疾病隱患,能夠大幅下降概率,卻難以徹底避免。爲何?這要從零日漏洞提及。

零日漏洞,聽起來就很霸氣的一個名字,彷彿給人一種世界末日的感受。它並非指具體的某個或某類漏洞,而是指被黑客發現後馬上用來發起攻擊的漏洞,這些漏洞還沒有公開,用戶不知道,軟件廠商也不瞭解,應對時間爲零。因此,這類漏洞沒有檢測工具,沒有修復方法,傳統被動升級防護、病毒特徵比對的方式毫無用處,一旦被用來發起攻擊,普通系統是毫無招架能力的。那麼有沒有能夠防護零日漏洞的安全的操做系統呢?

安全的操做系統與 SELinux

一提到安全的操做系統,總會涌現出不少真知灼見,最膾炙人口的莫過於:
「全部操做系統都有漏洞,因此沒有絕對安全的操做系統;因此 Windows 也好,Linux 也好,MacOS 也好,都同樣不安全。」
說的好有道理,我竟無言以對,由於前半句就是對本文前半部分的總結,理論正確,邏輯自洽,沒什麼可黑的。後半句的邏輯卻彷佛有點燒腦,若是它成立的話,咱們不妨試着推廣一下,好比:
「任何物質都是有毒性的,沒有什麼是絕對無毒的。砒霜吃了會中毒,水喝多了也會中毒,因此砒霜和水同樣不安全。」
毒理學有句名言:一切談毒性不談劑量的行爲都是耍流氓。一樣,任何談操做系統安全不談體系架構的行爲也是耍流氓。因此面對這種耍流氓的行爲,接下來咱們要嚴肅的談一談操做系統的安全體系架構。

多年前,永恆之藍的始做蛹者 NSA 爲了防護自家系統,開發了一套安全框架,多年後這套框架被貢獻給了 Linux 內核,這就是 SELinux。做爲形成此次世界性災難的幕後大 boss,NSA 爲本身定製的 SELinux 又是怎樣的一套防具呢?

SELinux 全稱 Security Enhanced Linux ,是針對 Linux 的全面安全加強,相比通常的發現漏洞-修復漏洞這種被動挨打的模式,SELinux 具有主動防護能力,能夠抵禦包括零日漏洞在內的多種攻擊。

那麼 SELinux 是如何作到的呢?

訪問控制是操做系統安全體系中的最核心最關鍵的機制,它決定了系統中什麼樣的資源能夠被哪些用戶以什麼樣的方式來訪問,也就是說普通用戶能作什麼,入侵者能作什麼,應用軟件能作什麼,惡意軟件能作什麼,都是訪問控制系統決定的。SELinux 的核心訪問機制是強制訪問控制(Mandatory Access Control),簡稱 MAC,SELinux 的安全特性是創建在 MAC 基礎之上的。那麼 MAC 何德何能,堪負如此重任?

說到 MAC 強制訪問控制就不得不說它的前輩自主訪問控制(Discretionary Access Control),簡稱 DAC。傳統的操做系統,Windows、MacOS、以及包括早期 Linux 在內的各類Unix的系統權限管理都是採用的自主訪問控制,自主訪問控制將用戶(或用戶組)簡化爲一個標識,系統中的資源(好比文件)都會帶上用戶標識和對應的訪問權限信息,經過這種方式賦予不一樣用戶不一樣的訪問權限,操做系統經過對用戶標識的比對和權限信息決定一個用戶是否能訪問某個資源。打個比方,你認爲你家裏的東西是隻屬於你的,在 DAC 看來,只要能進屋的人都對這個屋子裏的東西擁有權限,那麼你本身開門進屋睡覺也好,小偷撬門進去拿走金銀細軟也好,都是合法的。

在操做系統中也是如此,幾乎全部操做系統中都有一個身影,叫管理員,Administrator 也好,root 也好,都是一羣在系統中權力無限大,對任何資源都有徹底訪問權限的傢伙。多數系統服務是以管理員權限運行的,若是它們存在漏洞,被劫持去作一些它們本不應作的事情的時候,DAC 是不會阻攔的,由於它沒法區分某個動做是程序正常行爲仍是惡意行爲。在它眼裏,身份就是權力的象徵,只要承認了你的管理員身份,你說什麼都是對的,你作什麼都是合法的。

那麼 MAC 機制又是怎樣的呢?與 DAC 中的混沌不一樣,MAC 是一個充滿秩序的世界,一個一舉一動要提出申請的世界。在 MAC 中,一切訪問計劃都要事先寫入安全策略,沒有明確的策略容許的任何訪問都會被禁止。在上個例子中,做爲家中的主人,你須要可以在家睡覺,也是須要明確制定計劃的,你須要添加的安全策略看起來是這樣的:

  • 定義資源類型: 牀
  • 定義安全域: 休息
  • 定義角色: 主人
  • 訪問規則: 容許 主人 休息時 使用牀

若是系統對於你家中的資源訪問只添加了這一條安全策略,那麼你仍然能夠安心的在家睡覺,小偷不管用何種方式進入你家都將步履維艱,接觸任何東西的行爲都會被禁止,而且一切被禁止的行爲嘗試都將被另外一套完善的監控系統:審計日誌記錄在案。

明白了這個例子,回到操做系統中咱們就很容易看懂 MAC 是如何防範系統帶來的安全威脅的:假設咱們有一個存在緩衝區溢出漏洞的文件共享服務,與多數系統服務同樣使用管理員權限運行。攻擊者經過精心構建一個特殊的數據包發送給服務器,使存在漏洞服務器正常的執行流程被劫持,轉而執行修改管理員密碼的操做。在 DAC 控制下的傳統操做系統中,一旦攻擊生效,那麼管理員密碼會被這個平時八竿子打不着的文件服務器修改,攻擊者隨後能夠很容易的登陸進入系統。而在 MAC 系統中,文件服務器的可訪問的文件是嚴格受限的,安全策略相似於:

  • 容許 系統管理員角色 運行文件服務器 該進程容許訪問被共享文件。

安全策略的定義了該服務能夠訪問的全部資源,攻擊者在攻擊了文件服務器後,但願修改管理員密碼,它須要訪問的是 SAM 或 passwd 等的密碼管理文件,因爲文件服務器進程僅被策略僅容許訪問須要被共享的文件,所以對密碼管理文件的操做將被拒絕,攻擊失效。這種狀況下最壞的情形是,攻擊者可能非法訪問共享文件,由於它仍在安全策略容許範圍內。儘管如此,一個系統級的安全漏洞對整個操做系統的影響被限制在了很是小的範圍內。

經過細粒度的劃分訪問權限,將全部應用和服務的訪問限制在最小範圍內,這就是強制訪問控制保護系統不受已知及未知漏洞攻擊的原理。

其實 MAC 和 DAC 並非水火不容的,在包括 SELinux 在內的多數安全框架中,它們是共同生效的,全部的資源(或者準確的說叫客體)訪問請求首先要通過 DAC 權限斷定,驗證經過以後再進一步進行 MAC 的安全策略斷定,只有同時符合自主訪問控制和強制訪問控制規則後才能得到訪問權限。

SELinux 中,有三大類 MAC 策略模型,分別是 TE(類型加強),RBAC(角色訪問控制)以及 MLS(多級別安全),每一類模型都針對系統已有服務和應用提供了大量安全策略。一個使用了 SELinux 的典型的服務器操做系統環境,內核中會包含 10 萬條以上的安全策略。

計算機信息系統的安全等級

瞭解了 SELinux 及其強制訪問框架後,看到攻防兩端都造詣深厚的 NSA,你可能會驚歎於矛尖盾厚的美國在信息安全領域的強大的實力。然而我國在這個陸上有東風,海上有航母,天空有北斗的時代,在信息安全這樣重要的領域固然不會碌碌無爲。我國很早就對信息安全領域展開了全面的研究,公安部對信息安全的各個領域提出了一些列標準,最先在 GB 17859-1999 標準中就根據需求將計算機信息系統的安全級別由低到高,劃分爲 1-5 共五個等級。在 GB/T 20272-2006 中更進一步對操做系統安全技術提出了具體要求。

從國標安全第三級開始要求操做系統提供強制訪問控制,除了要實現 SELinux 中的各種安全模型架構外,還根據最小特權原則開創性的引入三權分立的概念,將普通操做系統中權限不受控制的管理員根據職責分解爲系統管理員,安全管理員,審計管理員三個角色。

系統管理員負責「行政」體系,也就是系統中的配置管理,相似網絡配置、服務啓停(安全服務除外)、設備管理等等;安全管理員負責「立法」,負責安全策略制定、加載以及安全服務的開啓;審計管理員的職責相似「司法」,制定違規訪問的記錄,安全服務的關閉。三個角色的權限之間互相制約,從而避免了惡意入侵者經過獲取管理員權限對操做系統的全面控制。同時標準還對用戶數據的私密性、完整性提出了嚴格的保護要求,要求操做系統經過安全標籤保障用戶數據不被非法讀取和篡改。

國標安全四級除了在訪問控制和數據保護上提出更爲嚴格要求以外,還要求設計者對操做系統的安全策略模型、安全功能模塊進行形式化驗證,並進行隱蔽信道分析,對系統抵禦攻擊能力進行評估,也是目前已有操做系統能達到的最高安全等級。目前普華、凝思等國產操做系統廠商已經開發出了符合國標安全四級的安全操做系統,提供了遠高於普通 SELinux 的底層安全保護。

結語

信息安全是全方位的,儘管病毒與惡意入侵併不是隻針對操做系統,單一從操做系統層面沒法解決全部的安全問題,然而做爲全部上層應用的最底層軟件支撐,操做系統卻在最終執行層面承載着一切上層軟件的安全機制,脫離操做系統構建的安全體系,如同沙灘上的城堡,即便再堅固也將最終失去根基。

原文來自:https://linux.cn/article-8534-1.html

本文地址:https://www.linuxprobe.com/operating-system-security.html編輯員:郭建鵬,審覈員:逄增寶

相關文章
相關標籤/搜索