TWI756867B - 在作業系統標記物件標籤及產生安全政策的方法及系統 - Google Patents

在作業系統標記物件標籤及產生安全政策的方法及系統 Download PDF

Info

Publication number
TWI756867B
TWI756867B TW109135912A TW109135912A TWI756867B TW I756867 B TWI756867 B TW I756867B TW 109135912 A TW109135912 A TW 109135912A TW 109135912 A TW109135912 A TW 109135912A TW I756867 B TWI756867 B TW I756867B
Authority
TW
Taiwan
Prior art keywords
target
target object
operating system
label
attribute
Prior art date
Application number
TW109135912A
Other languages
English (en)
Other versions
TW202217640A (zh
Inventor
闕志克
王禹軒
張柏駿
趙翊廷
Original Assignee
財團法人工業技術研究院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 財團法人工業技術研究院 filed Critical 財團法人工業技術研究院
Priority to TW109135912A priority Critical patent/TWI756867B/zh
Priority to US17/132,622 priority patent/US11775643B2/en
Priority to CN202110001980.7A priority patent/CN114372259A/zh
Application granted granted Critical
Publication of TWI756867B publication Critical patent/TWI756867B/zh
Publication of TW202217640A publication Critical patent/TW202217640A/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Debugging And Monitoring (AREA)
  • Storage Device Security (AREA)

Abstract

一種標記作業系統的物件標籤的方法包括:標記工具依據目標作業系統的目標物件的目標屬性取得預設標籤,取得參考作業系統中的參考物件,比對目標屬性與參考物件的參考屬性是否相同以產生比對結果,以及依據比對結果及目標物件的類型選擇性地以預設標籤、參考標籤或多個候選標籤其中一者標記目標物件。

Description

在作業系統標記物件標籤及產生安全政策的方法及系統
本發明涉及作業系統的資訊安全領域,且關聯於一種針對新發布的作業系統中的資源自動化產生標籤及安全政策的方法及其系統。
在作業系統的資訊安全領域中,存在以標籤機制設定安全規範的作業系統,例如Linux。而SELinux是應用於Linux作業系統的存取控制機制,其採用強制存取控制(Mandatory Access Control,MAC)的模型。相較於傳統Linux作業系統採用的自主存取控制(Discretionary Access Control,DAC)模型,MAC模型注重在執行時的行為而非執行者的身份,因此在DAC模型中冒用身份的問題得以解決。為了達到SELinux提出的MAC模型的防護機制,作業系統中的所有物件需要被加上標籤;而為了限制系統程序的行為,需要用標籤來撰寫SELinux政策(Policy)及規則來描述允許的系統程序行為。
在一個新的作業系統發行版本上部署SELinux政策時,需要人工分析許多程序的原始碼行為再微調系統相關設定,以符合新作業系統的運作流程。然而,當需要部署大量的作業系統發行版本而且版本之間只有微幅差異時,上述做法所花費的人力及時間成本將倍數成長,更遑論人為操作失誤提高的可 能性。因此,目前亟需一種有效率的方法支援在新的作業系統發行版本中部署SELinux的安全政策。
有鑑於此,本發明提出一種標記作業系統的物件標籤的方法及其系統以及一種產生作業系統的安全政策的方法及其系統,藉此降低部署大量作業系統時的人力成本及時間成本。
依據本發明一實施例的一種標記作業系統的物件標籤的方法,適用於一目標作業系統中的一目標物件,該目標物件具有一目標屬性,該方法包括:以一標記工具依據該目標屬性取得一預設標籤;取得一參考作業系統中的一參考物件,該參考物件具有一參考屬性及一參考標籤;比對該目標屬性與該參考屬性是否相同以產生一比對結果;以及依據該比對結果及該目標物件的類型選擇性地以該預設標籤、該參考標籤或多個候選標籤其中一者標記該目標物件。
依據本發明一實施例的一種產生作業系統的安全政策的方法,適用於一目標作業系統中的多個目標物件,每一該些目標物件具有一目標屬性,該方法包括:依據本發明一實施例的一種標記作業系統的物件標籤的方法,以一標記工具依據該目標屬性取得一預設標籤;取得一參考作業系統中的一參考物件,該參考物件具有一參考屬性及一參考標籤;比對該目標屬性與該參考屬性是否相同以產生一比對結果,當該比對結果指示該目標屬性與該參考屬性相同時,以該參考標籤標記該目標物件;當該比對結果指示該目標屬性與該參考屬性不同時,判斷該目標物件的類型是否屬於程式;以及當該目標物件的類型不屬於程式時,以該預設標籤標記該目標物件;及當該目標物件的類型係屬於程式時,執行一分析程序以取得多個候選標籤,且依據每一該些候選標籤所對應的一存取數量從該些候選標籤中選擇一者標記該目標物件。對每一該些目標物件標記該預 設標籤、該參考標籤或該些候選標籤中的一者;以該目標作業系統執行一開機測試腳本以產生多個系統稽核訊息;以及以一政策生成工具將每一該些系統稽核訊息轉換為一規則,且收集該些規則以形成一安全政策。
依據本發明一實施例的一種標記作業系統的物件標籤的系統,適用於一目標作業系統中的一目標物件,該目標物件具有一目標屬性,該系統包括:一非暫時性機器可讀儲存裝置,儲存多個指令;以及至少一處理裝置,電性連接該非暫時性機器可讀儲存裝置,該至少一處理裝置執行該些指令並引發多個操作,該些操作包括:以一標記工具依據該目標屬性取得一預設標籤;取得一參考作業系統中的一參考物件,該參考物件具有一參考屬性及一參考標籤;比對該目標屬性與該參考屬性是否相同以產生一比對結果,當該比對結果指示該目標屬性與該參考屬性相同時,以該參考標籤標記該目標物件;當該比對結果指示該目標屬性與該參考屬性不同時,判斷該目標物件的類型是否屬於程式;以及當該目標物件的類型不屬於程式時,以該預設標籤標記該目標物件;及當該目標物件的類型係屬於程式時,執行一分析程序以取得多個候選標籤,且依據每一該些候選標籤所對應的一存取數量從該些候選標籤中選擇一者標記該目標物件。
依據本發明一實施例的一種產生作業系統的安全政策的系統,適用於一目標作業系統中的多個目標物件,每一該些目標物件具有一目標屬性,該系統包括:一非暫時性機器可讀儲存裝置,儲存多個指令;以及至少一處理裝置,電性連接該非暫時性機器可讀儲存裝置,該至少一處理裝置執行該些指令並引發多個操作,該些操作包括:以一標記工具依據該目標屬性取得一預設標籤;取得一參考作業系統中的一參考物件,該參考物件具有一參考屬性及一參考標籤;比對該目標屬性與該參考屬性是否相同以產生一比對結果,當該比對結果指示該目標屬性與該參考屬性相同時,以該參考標籤標記該目標物件;及當該比對結果指示該目標屬性與該參考屬性不同時,判斷該目標物件的類型是否屬於程式; 當該目標物件的類型不屬於程式時,以該預設標籤標記該目標物件;及當該目標物件的類型係屬於程式時,執行一分析程序以取得多個候選標籤,且依據每一該些候選標籤所對應的一存取數量從該些候選標籤中選擇一者標記該目標物件;對每一該些目標物件標記該預設標籤、該參考標籤或該些候選標籤中的一者;以該目標作業系統執行一開機測試腳本以產生多個系統稽核訊息;以及以一政策生成工具將每一該些系統稽核訊息轉換為一規則,且收集該些規則以形成一安全政策。
以上之關於本揭露內容之說明及以下之實施方式之說明係用以示範與解釋本發明之精神與原理,並且提供本發明之專利申請範圍更進一步之解釋。
S1~S8:步驟
S31~S32:步驟
S7~S8:步驟
S721~S724:步驟
S731~S734:步驟
圖1是本發明提出的標記作業系統的物件標籤的方法的一實施例的流程圖;圖2是圖1中步驟S3的一種實施方式的細部流程圖;圖3是圖1中步驟S7的一種實施方式的細部流程圖;圖4是圖3中步驟S72的一種實施方式的細部流程圖;圖5是圖3中步驟S73的細部流程圖;以及圖6是本發明提出的產生作業系統的安全政策的方法的一實施例的流程圖。
以下在實施方式中詳細敘述本發明之詳細特徵以及特點,其內容足以使任何熟習相關技藝者了解本發明之技術內容並據以實施,且根據本說明書所揭露之內容、申請專利範圍及圖式,任何熟習相關技藝者可輕易地理解本發明相關之構想及特點。以下之實施例係進一步詳細說明本發明之觀點,但非以任何觀點限制本發明之範疇。
本發明提出的標記作業系統的物件標籤的方法及產生作業系統的安全政策的方法適用於目標作業系統中的目標物件,目標作業系統(Target distribution,TD)指的是需要大量部署的作業系統,其中包含多個目標物件。作業系統例如為Unix、Linux、Ubunto、或任何具有可標籤化的物件的作業系統,然而本發明所述的作業系統並不受限於上述範例。安全政策例如為SELinux、AppArmour或SMACK等,本發明亦不限制安全政策的類型,下文以SELinux為例說明。目標物件是檔案系統上的檔案,包含一般檔案、連結檔案、socket檔案、pipe檔案、block檔案、haracter檔案、目錄、可執行檔(程式)等多種類型。本發明不限制標記作業系統的物件標籤的方法只被應用在產生作業系統的安全政策。例如:本發明除了可應用在於一般Linux作業系統的發行版,如:Ubunto、Debian、Rasbian等;亦可應用於物聯網部分,如:Raspbian、OpenWRT、busybox、yocto等網路通訊相關產品裝置(如路由器、攝影機、防火牆等)。
圖1是本發明提出的標記作業系統的物件標籤的方法的一實施例的流程圖。步驟S1是「標記工具依據目標屬性取得預設標籤」。
在步驟S1之前,本發明需要事先安裝開源政策框架Repolicy中用於製作SELinux政策的相關工具,例如:標記工具setfiles、標籤資料庫 file_contexts、政策編譯工具checkpolicy、政策轉換工具audit2allow、進行SELinux操作所需的函式庫如libselinux、libsepol、libsemanage等。
步驟S1所述的標記工具setfiles係配合標籤資料庫file_contexts使用。目標屬性例如是檔案路徑、檔案名稱或檔案類型。在步驟S1中目標屬性指的是目標物件的檔案路徑。標籤資料庫file_contexts中記錄檔案路徑的正規表示式(regular expression)與標籤對應。請參考下方表一,其以表格形式列出標籤資料庫file_contexts的部分內容,其中每一行以檔案路徑的正規表示式(如第二列的/mnt(/[^/]*))、檔案類型(如第二列的“-l”`)以及標籤(如第二列的system_u:object_r:mnt_t)。因此,步驟S1依據目標作業系統中每個目標物件的檔案路徑,在標籤資料庫file_contexts中找到符合此路徑的預設標籤。舉例來說,一個位於/mnt/底下的目錄資料夾,依據表一將被指定system_u:object_r:mnt_t的標籤。
Figure 109135912-A0305-02-0008-2
步驟S2是「取得參考作業系統中的參考物件」,步驟S3是「比對目標屬性與參考屬性是否相同以產生比對結果」。在一實施例中,目標作業系統 為Ubunto,參考作業系統為Debian。在步驟S2及S3中,本發明利用已經完整部署SELinux環境的來源作業系統(source distribution,SD)當作範本,以兩者的檔案路徑及檔案類型作為比對基礎,將目標作業系統中符合參考作業系統的資源標記上一致的標籤。步驟S2所述的參考物件具有參考屬性及參考標籤,參考屬性例如是檔案路徑、檔案名稱或檔案類型中的至少一者。
圖2是圖1中步驟S3的一種實施方式的細部流程圖。步驟S31是「判斷檔案路徑及檔案類型是否相同」,也就是比對目標物件與參考物件是否位於相同的檔案路徑且兩者是否具有相同的檔案類型。若步驟S31的判斷結果為是,代表步驟S3所述的「比對結果」指示目標屬性與參考屬性相同,因此流程移至步驟S4,「以參考標籤標記目標物件」。
步驟S31~S4的流程的一種實施方式敘述如下:在步驟S31中,目標作業系統透過Secure Shell(SSH)的加密網路傳輸協定執行遠端命令,並將目標物件的檔案路徑發送至參考作業系統。參考作業系統接收到目標物件的檔案路徑,並使用file命令查找本身的檔案系統內是否有對應的參考物件。在參考作業系統中,若使用目標系統的檔案路徑可找到參考物件,則參考作業系統將此參考物件的參考標籤發送至目標作業系統,並將參考物件的檔案類型以網際網路媒體類型(Internet media type,也稱為MIME類型)的形式發送至目標作業系統。在步驟S4中,目標作業系統判斷參考物件的檔案類型是否與目標物件的檔案類型相同。若判斷結果為是,則以收到的參考標籤標記目標物件。若判斷結果為否,則捨棄此參考標籤而不標記目標物件。
若步驟S31的判斷結果為否,代表步驟S3所述的「比對結果」指示目標屬性與參考屬性不同,此處目標屬性及參考屬性指的是檔案路徑及檔案類 型,考慮到同名檔案位於不同路徑的可能性,因此流程移至步驟S32,「判斷檔案名稱及檔案類型是否相同」。若步驟S32的判斷結果為是,代表參考作業系統中存在一個相似於目標物件的參考物件,然而,此參考物件相對於參考作業系統的檔案路徑相異於目標物件相對於目標作業系統的檔案路徑。在此情況下,仍可依據此參考物件的參考標籤標記目標物件,因此流程移至步驟S4。
實務上,可適應性地修改前文關於步驟S31~S4的流程的實施方式,使其適用於步驟S32~S4的流程。
若步驟S32的判斷結果為否,代表在參考作業系統中,就檔案名稱及檔案路徑而言,並不存在可以類比至目標物件的參考物件,故需要進一步考量:在參考作業系統中是否存在與目標物件在內容上相似的參考物件。例如,若目標物件為可執行檔(程式),則參考作業系統中可能存在其行為與目標物件的行為相似的參考物件。因此流程返回圖1的步驟S5,「判斷該目標物件的類型是否屬於程式」。
若目標物件僅為一般檔案,且在經過檔案路徑及檔案名稱的比對仍無所獲後,應認定參考作業系統中不存在與目標物件相似的參考物件。因此,若步驟S5的判斷結果為否,即「目標物件的類型不屬於程式」,則流程移至步驟S6,「以預設標籤標記目標物件」。
若步驟S5的判斷結果為是,即「目標物件的類型係屬於程式」,則流程移至步驟S7,「執行分析程序以取得多個候選標籤」。
圖3是圖1中步驟S7的一種實施方式的細部流程圖。然而,在詳述步驟S7之前,有必要先說明步驟S7之前的準備工作。詳言之,在執行分析程序之 前,須完成下述兩項準備工作,但本發明不限制執行這兩項準備工作的先後順序。
第一項準備工作為「以標記工具對每一第二目標物件標記第二預設標籤」。前文述及目標作業系統具有一目標物件,在此稱為第一目標物件。實務上,如Ubunto這類的作業系統具有多個目標物件,在此將這些除了第一目標物件以外的所有目標物件稱為第二目標物件。標記工具對第一目標物件標記的標籤稱為第一預設標籤,標記工具對第二目標物件標記的標籤稱為第二預設標籤。由於本發明的一個目的是將目標作業系統中的每個目標物件標記最適合的標籤。因此,在滿足「在步驟S7之前完成」的條件下,第一項準備工作例如可在步驟S1時完成,但本發明並不以此為限制。
第二項準備工作為「分析每一第二目標物件的一行為資訊」及「依據這些第二目標物件的多個檔案名稱、多個第二預設標籤及多個行為資訊建立行為資料庫」。此處的行為資訊指的是檔案的symbol,或是檔案的元資料(metadata)。實務上,可透過readelf或objdump等工具取得目標作業系統中每一個目標物件的行為資訊,然後建立以第二目標物件的檔案名稱、第二預設標籤及第二目標物件的行為資訊的行為資料庫(symbol database)。行為資料庫用於依據目標物件的名稱或行為資訊,提供此目標物件對應的第二預設標籤。第二項準備工作需在步驟S7之前完成,但本發明並不限制其完成的時機。
請參考圖1的步驟S7及圖3。分析程序包括靜態部分及動態部分。靜態部分包含步驟S71及S72,動態部分包含步驟S73。須注意的是,步驟S71~S73並不限制執行順序。
為便於理解步驟S7之後的細部流程,以下將以waterfox這款基於Mozilla Firefox開發的第三方開放原始碼網頁瀏覽器作為「檔案類型屬於程式」的目標物件的範例。
步驟S71是「依據目標物件的檔案名稱取得第一候選標籤」。步驟S71與步驟S1基本上相同,其差別在於:步驟S1是以標記工具依據目標物件的「檔案路徑」,例如“/home/username/waterfox”,比對標籤資料庫file_contexts以取得第一預設標籤,步驟S71則是以標記工具依據目標物件的「檔案名稱」,例如“waterfox”,比對標籤資料庫file_contexts以取得第一候選標籤。
步驟S72是「依據目標物件的目標行為及目標內文取得第二候選標籤」。類似於前述分析每個第二目標物件的「行為資訊」的方式,在步驟S72中,本發明亦透過readelf或objdump等工具取得目標物件的目標行為。此外,本發明更透過string工具取得目標物件的目標內文,目標內文指的是目標物件中可列印的字元。簡言之,步驟S72是在目標作業系統中尋找一或多個第二目標物件,且其行為及內文關鍵字皆相近於第一目標物件。圖4是圖3中步驟S72的一種實施方式的細部流程圖。
步驟S721是「依據目標物件的檔案名稱搜尋網路程式倉庫以取得對應於目標物件的類型關鍵字」。例如,在AUR或Gentoo社群各自所維護的網路程式倉庫中,本步驟S721採用waterfox作為關鍵字檢索,可獲得像是browser、firefox、waterfox、web等類型關鍵字。本步驟S721可預先依據目標物件的程式類型篩選數量龐大的標籤資料庫file_contexts,以減少後續計算量及搜索量。在其他實施例中,本步驟S721可被跳過而不執行,本發明對此不予限制。
步驟S722是「從行為資料庫中依據目標行為取出多個欄位」,目標行為與被取出的每一欄位中的行為資訊相同。從另一角度來說,步驟S722是在 目標作業系統中找到一或多個第二目標物件,且其行為資訊類似於第一目標物件的目標行為。例如,在步驟S722中可能找到firefox及chrome等兩個第二目標物件,這是因為這些程式waterfox、firefox及chrome都屬於瀏覽器,因此具有相似的檔案存取行為或網路存取行為。
步驟S723是「依據被取出的欄位中的第二預設標籤在目標內文中擷取關鍵字」,其中關鍵字與被取出的欄位中的第二預設標籤中的一者相同。例如,第二目標物件firefox包含“mozilla_exec_t”,“mozilla_t”等兩個第二預設標籤,另一第二目標物件chrome包含“google_exec_t”,“google_t”等兩個第二預設標籤。本步驟S723將第二目標物件所對應的第二預設標籤的一部分作為比對字串,在第一目標物件的目標內文中,判斷與比對字串相同的關鍵字是否存在。為了提高在目標內文中找到關鍵字的機率,本發明忽略在第二預設標籤中對於無助益於搜尋的字串,例如“_t”的部分,僅採用“mozilla”,“mozilla_exec”,“google”,“google_exec”等字串作為比對字串。一般而言,標籤的命名與檔案名稱、檔案來源具有高度關聯性。另外,當以string工具查看第一目標物件waterfox本身的可列印字元時,有極高機率找到其相關程式的關鍵字,也就是firefox的mozilla。
步驟S724是「依據關鍵字從被取出的欄位中選取第二預設標籤作為第二候選標籤」。例如,步驟S723擷取出的關鍵字為mozilla,因此步驟S724將這兩個關鍵字所對應的第二預設標籤“mozilla_exec_t”,“mozilla_t”設定為第二候選標籤。
承上所述,在分析程序的靜態部分,步驟S71及步驟S72中,分析程序獲取了目標物件的第一候選標籤及第二候選標籤。需注意的是:本發明並未限制第一候選標籤或第二候選標籤的數量。
請回顧圖3的步驟S73,「依據目標物件及測試腳本取得第三候選標籤」。因為目標物件屬於可執行的程式,本步驟S73藉由測試腳本實際執行目 標物件所得到的相關資訊反推得到第三候選標籤。圖5是圖3中步驟S73的細部流程圖。
步驟S731是「指定測試標籤至目標物件」。例如,將測試標籤test_t指定給waterfox。
步驟S732是「被指定測試標籤的目標物件執行測試腳本以產生多個稽核訊息」。測試腳本是模擬使用者執行waterfox的各種操作。由於在目標作業系統中尚未針對test_t這個測試標籤設定對應的安全政策,因此在執行測試腳本的過程中,作業系統核心(kernel)會產生多個稽核訊息(audit messages)報告waterfox被執行時不被允許的行為。
步驟S733是「政策轉換工具將稽核訊息轉換為包含多個介面(interface)的政策(Policy)」。實務上,採用audit2allow這個政策轉換工具進行步驟S733所述的轉換。
步驟S374是「依據目標行為或每一介面,從標籤資料庫的多個標籤或從行為資料庫的多個第二預設標籤中取得一者作為第三候選標籤」。在一實施例中,標籤資料庫file_contexts的每個標籤對應於一介面。在另一實施例中,行為資料庫的第二預設標籤除了對應於一種行為資訊,也對應於一種介面。因此,步驟S734係依據目標物件實際運作後的多個行為判斷適合這些行為的第三候選標籤,第三候選標籤可能來自於標籤資料庫或行為資料庫。
請回顧圖1的步驟S8,「依據每一候選標籤所對應的存取數量從候選標籤中選擇一者標記目標物件」。在步驟S8的第一種實施方式中,本發明採用sesearch命令,分別計算靜態部分產生的第一候選標籤所對應的第一存取數量,第二候選標籤所對應的第二存取數量,以及計算動態部分產生的第三候選標籤所對應的存取數量。當目標物件被指定為某個候選標籤時,在現有政策的規則 中,可以存取此目標物件的程序(process)的數量稱為存取數量。本發明指定將具有最小存取數量的候選標籤標記至目標物件。
在步驟S8的第二種實施方式,若分析程序在動態部分可以找到適合的第三候選標籤,則直接以此第三候選標籤標記目標物件。由於在步驟S732依據測試腳本實際執行目標程式,並在步驟S733得到多個介面。就目標物件來說,實際測試得到的第三候選標籤,相較於依據目標內文和目標行為進行關鍵字比對得到的第二候選標籤更具有精確性。然而,若分析程序在動態部分並未找到任何第三候選標籤,則分析程序將從第一候選標籤及第二候選標籤中選擇一者標記目標物件,且選擇方式可參考前一實施例的sesearch找最小存取數量。
承上所述,本發明提出的一種標記作業系統的物件標籤的方法可將目標作業系統中的所有目標物件標記適合的標籤。圖6是本發明提出的產生作業系統的安全政策的方法的一實施例的流程圖。在圖6中,步驟S1~S8的流程與圖1相同,在此不重複敘述。對於每一個目標物件,每次執行圖1的流程最終將移至步驟S4、S6及S8的其中一者。換言之,目標物件依據其本身的性質可能被標記為源自參考作業系統的參考標籤、源自Refpolicy的預設標籤以及源自分析程序的候選標籤。
從產生作業系統的安全政策的角度觀之,步驟S1~S8的流程可稱為靜態階段,步驟S9~S10的流程可稱為動態階段。
步驟S9是「目標作業系統執行開機測試腳本以產生多個系統稽核訊息」。所述的開機測試腳本泛指分析系統開機行為及系統程式行為後配置的系統程式測試腳本,此開機測試腳本記錄開機時作業系統上的所有程式行為以及這些程式所使用的資源,並且選擇性地加入開機後一般使用者操作時的特定程 式的行為以及這些特定程式所使用的資源。換言之,前述的多個程式行為其中一者對應於系統核心模式(kernel mode)的一程式,或使用者模式(user mode)的一程式。當目標作業系統第一次重開機並執行開機測試腳本時,由於完整的安全政策尚未被建立,因此大量的存取行為將被預設的安全政策禁止,且SELinux檢查後會產生許多的系統稽核訊息。在步驟S9中,這些系統稽核訊息將被儲存於日誌檔(log)中,下方表二為log檔案的一個範例。此log檔中包含多個在執行步驟S4、S6或S8時標記目標物件的標籤。
Figure 109135912-A0305-02-0016-3
步驟S10是「政策生政策生成工具將每一系統稽核訊息轉換為規則,且收集規則以形成安全政策」。詳言之,根據日誌檔中的系統稽核訊息,本 發明利用audit2allow工具,將每一條系統稽核訊息轉換一個對應的規則。例如表二可轉換為下方表三所列的三條規則:
Figure 109135912-A0305-02-0017-4
實務上,重複執行步驟S10直到日誌檔中的所有系統稽核訊息皆被轉換為規則。步驟S10更收集這些規則。在一實施例中,透過選擇另一開機測試腳本,重複重新開機並執行步驟S9~S10的流程,可得到完整的安全政策。
綜上所述,本發明提出一種標記作業系統的物件標籤的方法及產生作業系統的安全政策的方法。上述的方法採用自動化的流程,可以快速地部署符合任何環境需求的作業系統發行版本,所述的作業系統係採用標籤機制設定安全規則。對於過去採取人工分析系統相關軟體行為,設定和撰寫安全政策等方式時所導致的人力成本與時間成本的問題可以因本發明而獲得解決。本發明的特點在於:當發布一個新的Linux版本時,現有版本的安全政策可被參照而重複利用,因此,僅需完整標記當前目標作業系統的所有資源的標籤,即可採用自動化的方式解決安全政策的支援問題,並且透過audit2allow的政策轉換工具產生所需的安全政策,因此可快速支援新的Linux發行版。對於物連網、智慧製造、工業控制領域等需要大量不同Linux發行版的硬體平台,本發明提出的標記作業系統的物件標籤的方法及產生作業系統的安全政策的方法能夠縮短大量部署的時間並且降低人力成本。
雖然本發明以前述之實施例揭露如上,然其並非用以限定本發明。在不脫離本發明之精神和範圍內,所為之更動與潤飾,均屬本發明之專利保護範圍。關於本發明所界定之保護範圍請參考所附之申請專利範圍。
S1~S8:步驟

Claims (17)

  1. 一種標記作業系統的物件標籤的方法,適用於一目標作業系統中的一目標物件,該目標物件具有一目標屬性,該方法包括: 以一標記工具依據該目標屬性取得一預設標籤; 取得一參考作業系統中的一參考物件,該參考物件具有一參考屬性及一參考標籤; 比對該目標屬性與該參考屬性是否相同以產生一比對結果;以及 依據該比對結果及該目標物件的類型選擇性地以該預設標籤、該參考標籤或多個候選標籤其中一者標記該目標物件。
  2. 如請求項1所述標記作業系統的物件標籤的方法,其中依據該比對結果及該目標物件的類型選擇性地以該預設標籤、該參考標籤或該些候選標籤其中該者標記該目標物件包括: 當該比對結果指示該目標屬性與該參考屬性相同時,以該參考標籤標記該目標物件; 當該比對結果指示該目標屬性與該參考屬性不同時,判斷該目標物件的類型是否屬於程式; 當該目標物件的類型不屬於程式時,以該預設標籤標記該目標物件;以及 當該目標物件的類型係屬於程式時,執行一分析程序以取得該些候選標籤,且依據每一該些候選標籤所對應的一存取數量從該些候選標籤中選擇該者標記該目標物件。
  3. 如請求項1所述標記作業系統的物件標籤的方法,其中該目標屬性及該參考屬性中的每一者係檔案路徑、檔案名稱及檔案類型中的至少一者。
  4. 如請求項3所述標記作業系統的物件標籤的方法,其中 該目標物件係一第一目標物件,該目標作業系統更包含多個第二目標物件,且該預設標籤係一第一預設標籤; 在執行該分析程序之前更包括: 以該標記工具對每一該些第二目標物件標記一第二預設標籤; 分析每一該些第二目標物件的一行為資訊;及 依據該些第二目標物件的多個檔案名稱、該些第二預設標籤及該些行為資訊建立一行為資料庫;以及 該分析程序包括一靜態部分及一動態部分,其中 該靜態部分包括: 依據該目標物件的一檔案名稱取得一第一候選標籤;及 依據該目標物件的一目標行為及一目標內文取得一第二候選標籤;且 該動態部分包括:依據該目標物件及一測試腳本取得一第三候選標籤。
  5. 如請求項4所述標記作業系統的物件標籤的方法,其中 依據該目標物件的該檔案名稱取得該第一候選標籤包括:以該標記工具依據該檔案名稱比對一標籤資料庫取得該第一候選標籤。
  6. 如請求項4所述標記作業系統的物件標籤的方法,其中 依據該目標物件的該目標行為及該目標內文取得該第二候選標籤包括: 從該行為資料庫中依據該目標行為取出多個欄位,其中該目標行為與被取出的每一該些欄位中的該行為資訊相同; 依據被取出的該些欄位中的該些第二預設標籤在該目標內文中擷取至少一關鍵字,其中該至少一關鍵字與被取出的該些欄位中的該些第二預設標籤中的一者相同;以及 依據該至少一關鍵字從被取出的該些欄位中選取該些第二預設標籤中的至少一者作為該第二候選標籤。
  7. 如請求項6所述標記作業系統的物件標籤的方法,其中 在依據該目標物件的該目標行為及該目標內文取得該第二候選標籤之前更包括:依據該目標物件的該檔案名稱搜尋一網路程式倉庫以取得對應至該目標物件的一類型關鍵字;以及 該分析程序更包括:在從該行為資料庫中依據該目標行為取出該些欄位之前,依據該目標物件所對應的該程式類型關鍵字篩選該行為資料庫。
  8. 如請求項4所述標記作業系統的物件標籤的方法,其中 依據該目標物件及該測試腳本取得該第三候選標籤包括: 指定一測試標籤至該目標物件; 以被指定該測試標籤的該目標物件執行該測試腳本以產生多個稽核訊息; 以一政策轉換工具將該些稽核訊息轉換為包含多個介面的一政策; 依據該目標行為或每一該些介面,從一標籤資料庫的多個標籤或從該行為資料庫的該些第二預設標籤中取得一者作為該第三候選標籤,其中每一該些標籤對應於該些介面中的一者,或每一該些行為資訊對應於該些介面中的一者。
  9. 一種產生作業系統的安全政策的方法,適用於一目標作業系統中的多個目標物件,每一該些目標物件具有一目標屬性,該方法包括: 依據如請求項1所述標記作業系統的物件標籤的方法,對每一該些目標物件標記該預設標籤、該參考標籤或該些候選標籤中的一者; 以該目標作業系統執行一開機測試腳本以產生多個系統稽核訊息;以及 以一政策生成工具將每一該些系統稽核訊息轉換為一規則,且收集該些規則以形成一安全政策。
  10. 如請求項9所述產生作業系統的安全政策的方法,其中該開機測試腳本包括:該目標作業系統上多個程式行為以及該些程式所使用的多個資源。
  11. 如請求項10所述產生作業系統的安全政策的方法,其中該些程式行為其中一者對應於系統核心模式的一程式。
  12. 如請求項10所述產生作業系統的安全政策的方法,其中該些程式行為其中一者對應於系統使用者模式的一程式。
  13. 如請求項9所述產生作業系統的安全政策的方法,在收集該些規則以形成該安全政策之前,更包括:重複地以該目標作業系統執行該開機測試腳本直到不產生該些系統稽核訊息。
  14. 一種標記作業系統的物件標籤的系統,適用於一目標作業系統中的一目標物件,該目標物件具有一目標屬性,該系統包括: 一非暫時性機器可讀儲存裝置,儲存多個指令;以及 至少一處理裝置,電性連接該非暫時性機器可讀儲存裝置,該至少一處理裝置執行該些指令並引發多個操作,該些操作包括: 以一標記工具依據該目標屬性取得一預設標籤; 取得一參考作業系統中的一參考物件,該參考物件具有一參考屬性及一參考標籤; 比對該目標屬性與該參考屬性是否相同以產生一比對結果;以及 依據該比對結果及該目標物件的類型選擇性地以該預設標籤、該參考標籤或多個候選標籤其中一者標記該目標物件。
  15. 如請求項14所述標記作業系統的物件標籤的系統,在該些操作中,依據該比對結果及該目標物件的類型選擇性地以該預設標籤、該參考標籤或該些候選標籤其中該者標記該目標物件包括: 當該比對結果指示該目標屬性與該參考屬性相同時,以該參考標籤標記該目標物件; 當該比對結果指示該目標屬性與該參考屬性不同時,判斷該目標物件的類型是否屬於程式; 當該目標物件的類型不屬於程式時,以該預設標籤標記該目標物件;以及 當該目標物件的類型係屬於程式時,執行一分析程序以取得該些候選標籤,且依據每一該些候選標籤所對應的一存取數量從該些候選標籤中選擇該者標記該目標物件。
  16. 一種產生作業系統的安全政策的系統,適用於一目標作業系統中的多個目標物件,每一該些目標物件具有一目標屬性,該系統包括: 一非暫時性機器可讀儲存裝置,儲存多個指令;以及 至少一處理裝置,電性連接該非暫時性機器可讀儲存裝置,該至少一處理裝置執行該些指令並引發多個操作,該些操作包括: 以一標記工具依據該目標屬性取得一預設標籤; 取得一參考作業系統中的一參考物件,該參考物件具有一參考屬性及一參考標籤; 比對該目標屬性與該參考屬性是否相同以產生一比對結果, 依據該比對結果及該目標物件的類型選擇性地以該預設標籤、該參考標籤或多個候選標籤其中一者標記該目標物件; 對每一該些目標物件標記該預設標籤、該參考標籤或該些候選標籤中的一者; 以該目標作業系統執行一開機測試腳本以產生多個系統稽核訊息;以及 以一政策生成工具將每一該些系統稽核訊息轉換為一規則,且收集該些規則以形成一安全政策。
  17. 如請求項16所述產生作業系統的安全政策的系統,在該些操作中,依據該比對結果及該目標物件的類型選擇性地以該預設標籤、該參考標籤或該些候選標籤其中該者標記該目標物件包括: 當該比對結果指示該目標屬性與該參考屬性相同時,以該參考標籤標記該目標物件; 當該比對結果指示該目標屬性與該參考屬性不同時,判斷該目標物件的類型是否屬於程式; 當該目標物件的類型不屬於程式時,以該預設標籤標記該目標物件;以及 當該目標物件的類型係屬於程式時,執行一分析程序以取得該些候選標籤,且依據每一該些候選標籤所對應的一存取數量從該些候選標籤中選擇該者標記該目標物件。
TW109135912A 2020-10-16 2020-10-16 在作業系統標記物件標籤及產生安全政策的方法及系統 TWI756867B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
TW109135912A TWI756867B (zh) 2020-10-16 2020-10-16 在作業系統標記物件標籤及產生安全政策的方法及系統
US17/132,622 US11775643B2 (en) 2020-10-16 2020-12-23 Method and system for labeling object and generating security policy of operating system
CN202110001980.7A CN114372259A (zh) 2020-10-16 2021-01-04 在操作系统标记物件标签及产生安全策略的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW109135912A TWI756867B (zh) 2020-10-16 2020-10-16 在作業系統標記物件標籤及產生安全政策的方法及系統

Publications (2)

Publication Number Publication Date
TWI756867B true TWI756867B (zh) 2022-03-01
TW202217640A TW202217640A (zh) 2022-05-01

Family

ID=81137972

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109135912A TWI756867B (zh) 2020-10-16 2020-10-16 在作業系統標記物件標籤及產生安全政策的方法及系統

Country Status (3)

Country Link
US (1) US11775643B2 (zh)
CN (1) CN114372259A (zh)
TW (1) TWI756867B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113377499B (zh) * 2021-08-11 2021-11-19 苏州浪潮智能科技有限公司 一种虚拟机管理方法、装置、设备及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090158385A1 (en) * 2007-12-17 2009-06-18 Electronics And Telecommunications Research Institute Apparatus and method for automatically generating SELinux security policy based on selt
CN107491693A (zh) * 2017-07-24 2017-12-19 南京南瑞集团公司 一种具有自学习特性的工控操作系统主动防御方法
TW201901515A (zh) * 2017-05-10 2019-01-01 威盛電子股份有限公司 阻擋非授權應用程式方法以及使用該方法的裝置
US20200117817A1 (en) * 2018-10-16 2020-04-16 Accenture Global Solutions Limited Utilizing heuristic and machine learning models to generate a mandatory access control policy for an application

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6748380B2 (en) * 2001-05-14 2004-06-08 International Business Machines Corporation Method, system, and program product for permission to access software
EP2504748B1 (en) * 2009-11-23 2018-05-30 EntIT Software LLC System and method for object relationship identification in a user interface
US9135265B2 (en) * 2010-09-09 2015-09-15 Red Hat, Inc. Asynchronous verification for extended file attributes
CN102592092B (zh) 2012-01-09 2015-01-21 中标软件有限公司 一种基于SELinux安全子系统的策略适配系统及方法
US9069931B2 (en) 2012-06-08 2015-06-30 Red Hat, Inc. Extending SELinux policy with enforcement of file name translation
US9158930B2 (en) 2012-09-12 2015-10-13 Red Hat, Inc. Facilitating secure file creation
CN103605920B (zh) 2013-11-10 2016-03-30 电子科技大学 一种基于SEAndroid平台的应用程序动态安全管理方法及系统
CN104951695A (zh) 2015-06-16 2015-09-30 广东欧珀移动通信有限公司 一种基于Selinux定制应用程序安全策略方法和装置
US10650152B2 (en) * 2016-06-09 2020-05-12 Blackberry Limited Data access control based on storage validation
CN106453413B (zh) 2016-11-29 2019-06-25 北京元心科技有限公司 在多系统中应用SELinux安全策略的方法及装置
CN109964227B (zh) 2017-10-30 2021-08-13 华为技术有限公司 更新SELinux安全策略的方法及终端
CN107908958B (zh) 2017-11-30 2020-01-03 中国人民解放军国防科技大学 SELinux安全标识符防篡改检测方法及系统
US10417454B1 (en) * 2018-06-05 2019-09-17 Cyberark Software Ltd. Automated secure operating system policy integration
CN111159713B (zh) 2019-12-23 2022-05-10 北京工业大学 基于SELinux的自学习可信策略构建方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090158385A1 (en) * 2007-12-17 2009-06-18 Electronics And Telecommunications Research Institute Apparatus and method for automatically generating SELinux security policy based on selt
TW201901515A (zh) * 2017-05-10 2019-01-01 威盛電子股份有限公司 阻擋非授權應用程式方法以及使用該方法的裝置
CN107491693A (zh) * 2017-07-24 2017-12-19 南京南瑞集团公司 一种具有自学习特性的工控操作系统主动防御方法
US20200117817A1 (en) * 2018-10-16 2020-04-16 Accenture Global Solutions Limited Utilizing heuristic and machine learning models to generate a mandatory access control policy for an application

Also Published As

Publication number Publication date
US11775643B2 (en) 2023-10-03
CN114372259A (zh) 2022-04-19
US20220121745A1 (en) 2022-04-21
TW202217640A (zh) 2022-05-01

Similar Documents

Publication Publication Date Title
US11860821B2 (en) Generating target application packages for groups of computing devices
US10929117B2 (en) Container image building using shared resources
CN109800258B (zh) 数据文件部署方法、装置、计算机设备及存储介质
CN107368503B (zh) 基于Kettle的数据同步方法和系统
WO2018036342A1 (zh) 基于csar的模型文件的可视化设计方法及装置
CN110109681B (zh) 不同平台间代码的转换方法及系统
US20120266131A1 (en) Automatic program generation device, method, and computer program
US20130339787A1 (en) Systematic failure remediation
US20160259631A1 (en) Method and system for realizing software development tasks
CN108923997B (zh) 一种基于python的云服务节点自动测试方法及装置
WO2018188380A1 (zh) 一种添加控件标识的方法和装置
US20160124795A1 (en) Evaluation method and apparatus
CN104391796A (zh) 一种测试用例解析方法
WO2022012327A1 (zh) 代码分析的方法、系统及计算设备
US8595559B2 (en) Method and apparatus for model-based testing of a graphical user interface
TWI756867B (zh) 在作業系統標記物件標籤及產生安全政策的方法及系統
EP3605353B1 (en) Method and system for data transfer between databases
US20150347402A1 (en) System and method for enabling a client system to generate file system operations on a file system data set using a virtual namespace
US20190026090A1 (en) Systems to remove object relational mappings from a software project
AU2018313995B2 (en) Systems and methods for providing globalization features in a service management application interface
WO2015184750A1 (zh) 网元设备数据维护的方法和装置
JP5578625B2 (ja) プログラム分析装置、プログラム分析方法、及びプログラム
CN111985188A (zh) 一种数据转换方法、装置、终端和存储介质
CN108052654A (zh) 数据提取方法、装置、设备及存储介质
US20240004620A1 (en) Automated generation of web applications based on wireframe metadata generated from user requirements