基于最小特權(quán)的過程控制軟件安全架構(gòu)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本申請總體上涉及過程工廠計(jì)算機(jī)系統(tǒng),并且更具體地,涉及用于在過程或工廠 環(huán)境下保障設(shè)備(例如,計(jì)算機(jī)設(shè)備)內(nèi)的軟件進(jìn)程的操作的方法和裝置。
【背景技術(shù)】
[0002] 過程控制系統(tǒng)(例如,像那些在發(fā)電、化工、石油或其他過程中使用的分布式或可 擴(kuò)展的過程控制系統(tǒng))通常包括一個(gè)或多個(gè)控制器,所述一個(gè)或多個(gè)控制器通信地相互耦 合、經(jīng)由過程控制網(wǎng)絡(luò)耦合到至少一個(gè)主機(jī)或操作員工作站,并且經(jīng)由模擬、數(shù)字或結(jié)合的 模擬/數(shù)字總線耦合到一個(gè)或多個(gè)現(xiàn)場設(shè)備。現(xiàn)場設(shè)備可以例如是閥、閥門定位器、開關(guān)和 發(fā)射機(jī)(例如,溫度、壓力以及流量傳感器),所述現(xiàn)場設(shè)備可以在該過程或工廠內(nèi)執(zhí)行功 能,例如,打開或關(guān)閉閥門、開啟和關(guān)斷設(shè)備、以及測量過程參數(shù)??刂破鹘邮諏τ涩F(xiàn)場設(shè)備 進(jìn)行的過程或工廠測量進(jìn)行指示的信號和/或與現(xiàn)場設(shè)備相關(guān)的其他信息,使用所述信息 來實(shí)現(xiàn)控制例程并且隨后生成控制信號,所述控制信號通過總線被發(fā)送到現(xiàn)場設(shè)備以控制 過程或工廠的操作。通常使來自現(xiàn)場設(shè)備和控制器的信息對由操作員工作站執(zhí)行的一個(gè)或 多個(gè)應(yīng)用程序是可用的,以使操作員能夠執(zhí)行關(guān)于過程或工廠的任何期望的功能,例如,查 看工廠的當(dāng)前狀態(tài)、修改工廠的操作等。
[0003] 通常位于過程工廠環(huán)境內(nèi)的過程控制器接收對由現(xiàn)場設(shè)備進(jìn)行的或與現(xiàn)場設(shè)備 相關(guān)聯(lián)的過程測量或過程變量進(jìn)行指示的信號和/或與現(xiàn)場設(shè)備有關(guān)的其他信息,并且使 用所述信息來執(zhí)行控制器應(yīng)用程序。控制器應(yīng)用程序?qū)崿F(xiàn)例如做出過程控制決定、基于接 收到的信息生成控制信號、以及與現(xiàn)場設(shè)備(例如,現(xiàn)場總線 現(xiàn)場設(shè)備)中的控制模塊或塊協(xié)作的不同控制模塊。過程控制器中的控制模塊通過通信線 路或其他信號路徑將控制信號發(fā)送到現(xiàn)場設(shè)備,以由此控制過程的操作。
[0004] 通常還使來自現(xiàn)場設(shè)備和過程控制器的信息經(jīng)由過程控制網(wǎng)絡(luò)來對一個(gè)或多個(gè) 其他硬件設(shè)備(例如,操作員工作站、維護(hù)工作站、服務(wù)器、個(gè)人計(jì)算機(jī)、手持設(shè)備、數(shù)據(jù)歷 史記錄、報(bào)告生成器、集中式數(shù)據(jù)庫等)可用。通過網(wǎng)絡(luò)所傳輸?shù)男畔⑹沟貌僮鲉T或維護(hù)人 員能夠執(zhí)行關(guān)于過程的所期望的操作和/或查看工廠的操作。例如,該信息允許操作員改 變過程控制例程的設(shè)置、修改過程控制器或智能現(xiàn)場設(shè)備內(nèi)的控制模塊的操作、查看過程 的當(dāng)前狀態(tài)或過程工廠內(nèi)特定設(shè)備的狀態(tài)、查看由現(xiàn)場設(shè)備和過程控制器生成的警報(bào)、出 于訓(xùn)練人員或測試過程控制軟件的目的來對過程的操作進(jìn)行仿真、診斷過程工廠內(nèi)的問題 或硬件故障等。
[0005] 現(xiàn)場設(shè)備通常通過過程控制網(wǎng)絡(luò)(其可以是,例如,以太網(wǎng)配置的LAN)與其他硬 件設(shè)備進(jìn)行通信。網(wǎng)絡(luò)通過各種網(wǎng)絡(luò)設(shè)備來對過程參數(shù)、網(wǎng)絡(luò)信息以及其他過程控制數(shù)據(jù) 進(jìn)行中繼并且將其中繼到過程控制系統(tǒng)中的各種實(shí)體。通常的網(wǎng)絡(luò)設(shè)備包括網(wǎng)絡(luò)接口卡、 網(wǎng)絡(luò)交換機(jī)、路由器、服務(wù)器、防火墻、控制器、以及操作員工作站。網(wǎng)絡(luò)設(shè)備通常通過控制 數(shù)據(jù)流的路由、幀率、超時(shí)、以及其他網(wǎng)絡(luò)參數(shù)來幫助數(shù)據(jù)流通過網(wǎng)絡(luò),但是其本身并不改 變過程數(shù)據(jù)。隨著過程控制網(wǎng)絡(luò)的規(guī)模和復(fù)雜度的增長,網(wǎng)絡(luò)設(shè)備的數(shù)量和類型相應(yīng)地增 長。系統(tǒng)和網(wǎng)絡(luò)增長的結(jié)果是,這些復(fù)雜系統(tǒng)中的安全性和管理可能變得日益困難。例如, 每一個(gè)網(wǎng)絡(luò)設(shè)備可以包括一個(gè)或多個(gè)通信端口,所述一個(gè)或多個(gè)通信端口提供用于使過程 控制系統(tǒng)部件和其他網(wǎng)絡(luò)設(shè)備通過網(wǎng)絡(luò)將彼此物理地互連的接入點(diǎn)或端口。然而,可以使 用這些端口或連接中的一些來將控制設(shè)備連接到可公開訪問的網(wǎng)絡(luò)(例如,互聯(lián)網(wǎng)),以及 將便攜存儲(chǔ)器設(shè)備連接到控制系統(tǒng)設(shè)備。因此,設(shè)備上的公開端口可以通過添加其他設(shè)備 而成為用于網(wǎng)絡(luò)擴(kuò)展的接入點(diǎn)、或者可以允許惡意或非惡意的實(shí)體來訪問網(wǎng)絡(luò)并且啟動(dòng)不 期望的并且潛在有害的網(wǎng)絡(luò)業(yè)務(wù)或者引入可能在工廠控制系統(tǒng)內(nèi)導(dǎo)致嚴(yán)重問題的惡意軟 件(例如,包括惡意程序、間諜或數(shù)據(jù)收集程序、廣告軟件、或其他不想要的并且潛在有害 的危險(xiǎn)軟件)。隨著網(wǎng)絡(luò)設(shè)備以及相關(guān)聯(lián)的接入點(diǎn)的數(shù)量的增加,有效地監(jiān)控或控制對控制 整個(gè)復(fù)雜過程控制系統(tǒng)的通信的網(wǎng)絡(luò)內(nèi)的設(shè)備上的所有端口的訪問很快變得不切實(shí)際。
[0006] 同樣地,在一般的工業(yè)控制系統(tǒng)中,工作站/服務(wù)器被按策略地放置在工廠網(wǎng)絡(luò) 與執(zhí)行控制以及數(shù)據(jù)獲取功能的嵌入式設(shè)備(例如,控制器、PLC、RTU)之間,并且因此這些 工作站/服務(wù)器的主要安全目標(biāo)是防止惡意軟件進(jìn)入控制系統(tǒng)并且不利地影響嵌入式設(shè) 備,以及防止惡意軟件改變存儲(chǔ)在工廠數(shù)據(jù)庫中的配置和歷史數(shù)據(jù)。盡管可以使用多個(gè)安 全特征(例如"反病毒"軟件和"白名單")來解決這個(gè)目標(biāo),但是這些安全特征通常是不夠 的。例如,反病毒軟件不能對抗"零日"病毒,并且白名單僅防止未授權(quán)的應(yīng)用程序運(yùn)行。此 外,這些特征中的一些是過于侵入性的,以至于在過程控制系統(tǒng)中不能實(shí)際操作,這是因?yàn)?這些安全特征具有阻止工廠操作員活動(dòng)的潛在可能。
[0007] -般而言,惡意軟件(例如,處于零日攻擊核心的惡意軟件)通常經(jīng)由外部存儲(chǔ)器 設(shè)備(例如,可移除的閃存驅(qū)動(dòng)器)或經(jīng)由通信連接通過操作具有訪問這些存儲(chǔ)器設(shè)備、網(wǎng) 絡(luò)端口或直接數(shù)據(jù)鏈路的特權(quán)或許可的應(yīng)用程序或服務(wù)在特定設(shè)備處被引入到控制系統(tǒng) 中。(出于本專利的目的,通信連接包括經(jīng)由通信網(wǎng)絡(luò)連接或經(jīng)由諸如調(diào)制解調(diào)器連接之 類的直接數(shù)據(jù)鏈路而進(jìn)行的連接)。此后,惡意軟件能夠被傳播到其他設(shè)備(例如,經(jīng)由通 信或便攜式存儲(chǔ)器設(shè)備)和/或使用被該惡意軟件感染的應(yīng)用程序或服務(wù)的安全特權(quán)在設(shè) 備內(nèi)執(zhí)行。此外,惡意軟件可以本地自我保持以允許其在重啟后再次被執(zhí)行。在一些情況 下,惡意軟件可以使用該應(yīng)用程序或服務(wù)在其中執(zhí)行的賬號的特權(quán)來升級宿主(例如,被 感染的應(yīng)用程序或服務(wù))的特權(quán),并且通過這樣做,惡意軟件可能能夠在要求更高特權(quán)的 過程控制設(shè)備或系統(tǒng)中執(zhí)行動(dòng)作或操作,并且由此通常更加有害于控制系統(tǒng)操作。在任何 事件中,感染了已經(jīng)運(yùn)行的應(yīng)用程序的零日攻擊在過程控制系統(tǒng)中造成嚴(yán)重問題,這是因 為并沒有用于防止這些類型的攻擊的良好技術(shù)。然而,當(dāng)這些攻擊破壞工廠控制系統(tǒng)的正 在進(jìn)行的操作時(shí),在過程工廠內(nèi),這些攻擊可能具有嚴(yán)重的并且潛在的破壞性,甚至致命的 影響。
【發(fā)明內(nèi)容】
[0008] 過程控制系統(tǒng)使用更有效地防止零日或其他類型的惡意軟件攻擊的新的安全特 征集合或軟件安全架構(gòu)。一般而言,所述新的安全特征或架構(gòu)實(shí)現(xiàn)了當(dāng)執(zhí)行應(yīng)用程序和服 務(wù)在任何特定控制系統(tǒng)設(shè)備(例如,在工作站、服務(wù)器、數(shù)據(jù)庫、控制器、現(xiàn)場設(shè)備內(nèi)等)內(nèi) 運(yùn)行時(shí),使用本文中所稱為的"最小特權(quán)",以便減少可能感染工作站、服務(wù)器、或其他設(shè)備 的惡意軟件的影響。本文中的術(shù)語"特權(quán)"包括操作系統(tǒng)特權(quán)/權(quán)利和訪問控制許可二者。 例如,用戶可以被授予遠(yuǎn)程登錄或模仿另一個(gè)用戶的權(quán)利(特權(quán)),并且還被授予讀/寫/ 執(zhí)行具體文件的訪問(許可)。
[0009] 概括而言,基于最小特權(quán)的安全特征或架構(gòu)通過例如將設(shè)備(例如,控制器、工作 站、服務(wù)器等)的全局命名空間劃分為服務(wù)命名空間以及如果存在(例如,在桌面應(yīng)用程序 中)劃分為登錄用戶命名空間,來將"服務(wù)"進(jìn)程與代表登錄用戶(本地或遠(yuǎn)程)運(yùn)行的桌 面應(yīng)用程序分離。該架構(gòu)隨后使用進(jìn)程間通信(而不是共享存儲(chǔ)器)來嚴(yán)格地控制在這些 不同命名空間中的進(jìn)程(例如,應(yīng)用程序和服務(wù))之間的通信,以便防止被感染的服務(wù)或應(yīng) 用程序能夠直接感染或損壞其他的服務(wù)或應(yīng)用程序。具體地,所述新的安全架構(gòu)使用這樣 的命名空間劃分來防止桌面應(yīng)用程序直接訪問服務(wù)命名空間中的對象并且反之亦然。
[0010] 進(jìn)一步地,所述新的安全架構(gòu)以限制或降低被感染的服務(wù)或應(yīng)用程序能夠有害地 影響或感染其他服務(wù)或應(yīng)用程序的能力的方式來限定授予服務(wù)和桌面應(yīng)用程序的特權(quán)。一 般而言,所述安全架構(gòu)將服務(wù)或應(yīng)用程序或其他進(jìn)程的操作系統(tǒng)特權(quán)限制為給予所述服務(wù) 或應(yīng)用程序或其他進(jìn)程在其下運(yùn)行或所述服務(wù)或應(yīng)用程序或其他進(jìn)程在其下產(chǎn)生的賬號 的特權(quán)的指定子集、將由登錄用戶啟動(dòng)的應(yīng)用程序的特權(quán)限定為與該用戶相關(guān)聯(lián)的特權(quán)的 子集、以及防止經(jīng)由桌面應(yīng)用程序(運(yùn)行在登錄用戶下)來執(zhí)行特權(quán)的提升。在一種情況 中,該軟件安全系統(tǒng)施行這樣的限制:對通信端口或外部介質(zhì)端口(例如,對經(jīng)由諸如USB 端口等的外部介質(zhì)端口連接的可移除存儲(chǔ)設(shè)備)的訪問必須通過具有受限特權(quán)的服務(wù)(并 且從不由桌面應(yīng)用程序)來執(zhí)行,其中服務(wù)的受限特權(quán)防止該服務(wù)寫入到本地?cái)?shù)據(jù)存儲(chǔ)裝 置(例如,磁盤)、防止經(jīng)由通信網(wǎng)絡(luò)端口或可移除介質(zhì)端口中的另一個(gè)進(jìn)行通信、或防止 以管理特權(quán)進(jìn)行動(dòng)作。以這種方式,如果服務(wù)受到感染,則感染成為良性的,這是因?yàn)楦腥?不能將自己存儲(chǔ)在本地磁盤或其他存儲(chǔ)器上、不能執(zhí)行管理功能、不能訪問桌面、如果其經(jīng) 由外部介質(zhì)端口來自可移除存儲(chǔ)設(shè)備則其不能經(jīng)由通信網(wǎng)絡(luò)被傳播、以及不能經(jīng)由外部介 質(zhì)端口被存儲(chǔ)在可移除存儲(chǔ)設(shè)備上或如果其經(jīng)由通信端口來自通信連接則其不能被傳播 到另一個(gè)通信連接。
[0011] 由此,該新的安全架構(gòu)使用訪問控制,所述訪問控制施行哪些用戶賬號和哪些進(jìn) 程(服務(wù)或桌面)被授權(quán)通過調(diào)用操作系統(tǒng)及其子系統(tǒng)來訪問安全對象,并且包括防止較 低特權(quán)的進(jìn)程向較高特權(quán)的進(jìn)程中注入代碼的機(jī)制。為了這樣做,該安全架構(gòu)包括或使用 通常被稱為"分組"的賬號,該賬號允許用戶賬號和服務(wù)賬號屬于來自其他分組賬號的繼 承。
[0012] 這些安全特征的一個(gè)或多個(gè)的組合帶來了過程控制系統(tǒng)或過程工廠內(nèi)的更加安 全的軟件環(huán)境,其更不容易受到病毒攻擊(例如,零日病毒攻擊)以及其他惡意軟件的影 響,這是因?yàn)檫@些安全特征獨(dú)立或相組合地使惡意軟件難以如果不是不可能通過訪問網(wǎng)絡(luò) 連接或可移除/便攜式存儲(chǔ)介質(zhì)連接(例如,USB端口)的桌面應(yīng)用程序的操作而被導(dǎo)入 到系統(tǒng)中。這些安全特征還限制了惡意軟件經(jīng)由網(wǎng)絡(luò)或外部設(shè)備被導(dǎo)入到內(nèi)部數(shù)據(jù)存儲(chǔ)設(shè) 備的能力、限制了使惡意軟件提升服務(wù)的特權(quán)以使服務(wù)能夠訪問對請求該服務(wù)的應(yīng)用程序 而言并不需要的設(shè)備、存儲(chǔ)介質(zhì)或進(jìn)程等的能力。
[0013] 由此,使用這些特征,該新的軟件架構(gòu)設(shè)計(jì)對運(yùn)行在過程控制自動(dòng)化系統(tǒng)工作站 中以及在服務(wù)器中的服務(wù)和桌面應(yīng)用程序進(jìn)行劃分(隔離),以達(dá)到減少它們的惡意軟件 簡檔或表面的目的。此外,如果服務(wù)或由服務(wù)生成的其他進(jìn)程受到感染,則它不會(huì)具有進(jìn)行 它沒有做過的動(dòng)作的所必要的特權(quán),并且它不會(huì)具有對它并不直接需要的資源進(jìn)行訪問的 許可。此外,如果桌面應(yīng)用程序受到感染,則該桌面應(yīng)用程序既不能直接訪問操作系統(tǒng)的有 特權(quán)的功能,也不能直接寫到網(wǎng)絡(luò)或直接寫到經(jīng)由外部介質(zhì)端口連接的可移除存儲(chǔ)設(shè)備。 相反,該桌面應(yīng)用程序必須請求所述動(dòng)作由被設(shè)計(jì)為使對有特權(quán)的功能和資源的額外的訪 問控制水平生效并且提供對有特權(quán)的功能和資源的額外的訪問控制水平的服務(wù)和它們所 生成的進(jìn)程來代表所述桌面應(yīng)用程序被執(zhí)行。
【附圖說明】
[0014] 圖1是具有分布式過程控制系統(tǒng)和進(jìn)程自動(dòng)化網(wǎng)絡(luò)的過程工廠的示例性框圖,其 包括被配置為實(shí)現(xiàn)本文描述的基于最小特權(quán)的軟件安全架構(gòu)和功能的一個(gè)或多個(gè)操作員 和維護(hù)工作站、服務(wù)器、控制器、現(xiàn)場設(shè)備、以及其他網(wǎng)絡(luò)設(shè)備;
[0015] 圖2是過程控制工廠內(nèi)的工作站/服務(wù)器/控制器設(shè)備的示例性框圖,其示出了 關(guān)于在過程控制軟件架構(gòu)中執(zhí)行以實(shí)現(xiàn)改進(jìn)的安全功能的應(yīng)用程序、服務(wù)以及其他進(jìn)程而 實(shí)現(xiàn)的各種命名空間和安全性限制;
[0016] 圖3示出了包括分組賬號和定制賬號的賬號的圖,所述分組賬號和定制賬號根據(jù) 本文描述的最小特權(quán)軟件安全架構(gòu)來對與各種不同應(yīng)用程序和服務(wù)相關(guān)聯(lián)的特權(quán)集合進(jìn) 行限定;
[0017] 圖4是示出了圖2的系統(tǒng)的工作站中的一個(gè)的軟件和硬件部件的示例性結(jié)構(gòu)圖, 其示出了使用圖3的賬號的各種設(shè)備和應(yīng)用程序之間的通信連接。
【具體實(shí)施方式】
[0018] 圖1是被設(shè)置在例如過程工廠內(nèi)的過程控制系統(tǒng)或過程自動(dòng)化系統(tǒng)100的示意表 示,其中,各種計(jì)算機(jī)設(shè)備可以經(jīng)受各種軟件安全特征來增強(qiáng)軟件安全性,并且有助于系統(tǒng) /網(wǎng)絡(luò)的管理和維護(hù)。更具體地,過程控制系統(tǒng)100包括一個(gè)或多個(gè)過程控制器110以及一 個(gè)或多個(gè)過程工廠數(shù)據(jù)庫112 (例如,數(shù)據(jù)歷史記錄),其通過過程控制通信網(wǎng)絡(luò)130通信地 連接到一個(gè)或多個(gè)主機(jī)工作