顯示具有 RACF 標籤的文章。 顯示所有文章
顯示具有 RACF 標籤的文章。 顯示所有文章

2009年12月1日 星期二

美國國防部橘皮書中定義的安全分級

美國國防部的橘皮書中為一個可被信認的資訊系統,定義了一個分級的機制。因為zSecure提供了 B1、C1、C2的Security Policy設定,這裡只先描述這三個級別。首先要說明的是,B級別比C級別要來的嚴謹,而C2又比C1來的嚴謹

C級別:
這個級別要求的是安全的資訊系統(Trusted Computing Base)所需提供的基礎保護,並且提供audit的機制,以監督使用者所做過的事情

C1:基本的安全保護

符合C1標準的系統必需提供將使用者及資料分隔的機制,以提供基本的安全保護。它包含了依照不同的使用者提供不同的存取限制,例如可以允許使用者設定保護私人的資料,免於讓其它人存取或破壞。下列為符合C1要求的環境的基本要求

Security Policy

    基本的存取控管

    系統需能定義及控制使用者及系統中各個物位的存取關係,有許多方法能夠實現這樣的控制,如 self/group/public不同權限的控制、存取控制清單(Access Control List)等,可以讓使用者控制要將資訊與何人或何群組的人共享

Accountability

  Identification及Authentication

   使用者必需先經過身份認證後,才能在系統上做任何事。系統必需提供一個機制(如密碼)讓使用者認證他們的身份,系統同時也需保護這樣的認證資訊不被任何沒有權限的人所存取

Assurance

  Operational Assurance

       系統架構面

       系統需維護並確保其所執行的區域(domain)的安全,不受外部的入侵(如修改系統的程式或資料結構)。系統資源必需依照不同的目的,分成不同的subset,授權時只需授予某一需要的subset的資源給使用者即可

       系統完整性

       系統的軟、硬體需能夠定期檢查系統的硬體及韌體是在正常的運作狀況下

Life-Cycle Assurance

              系統測試

       系統的安全機制需能夠被檢查,以確保是否合乎系統文件所定義的安全等級。安全的測試需能夠確保沒有明顯漏洞讓未被授權的使用者bypass掉安全機制

Documentation

Security Features User’s Guide

單位需有一份手冊來說明系統的安全保護機制」使用這個安全機制的方法以及它們是如何作用的

Trusted Facility Manual

在執行Security相關的功能(Facility)時,需有一本專門為系統管理人員寫的手冊,裡面需說明使用這些管理權限所需注意的事項

Test Documentation

系統開發人員需提供審核人員一份安全功能測試的文件,裡面需描述測試計畫、測試步驟及測試結果

Design Documentation

系統必需提供另外一文件,說明系統安全機制的設計理念,以及這些設計理念如何轉化成系統設計。如果系統的安全機制是由多個元件組成,需再提供這些元件彼此溝通的介面

 

C2 Controlled Access Protection

符合本安全層級的系統可以做更細部的安全管控,透過Logon Procedure、相關安全事件的稽核及資源的isolation,讓每個使用者都需為其所做過的操作負責。接下來介紹符合C2安全等級需滿足的基本需求

Security Policy

    基本的存取控管

除了C1所要求的定義人員與系統中物件的關係外,C2還需要控制存取權限的propogation,防止存取權限被隨意地授權給許多使用者

2009年11月29日 星期日

zSecure Audit的Status Report

zSecure Status Report的功能是弱點掃描,看看目前系統中的設定(主要是RACF)是否夠安全,它的特點在於可以整合RACF與其它z/OS系統的資訊,整體地分析目前系統的安全狀態。它可以產生的報表可分成MVS tables、MVS extended、RACF control、RACF user及RACF resource等5大類。

image

MVS tables:此類的Report可以找出目前系統的設定需要注意的地方,如SMF的設定、JES的設定、PPT的設定、SVC的設定…等

MVS extended:此類的Report主要是focus在檢查MVS的設定,如APF、CATALOG、LPA LIST…等的設定

RACF Control:此類的Report主要是focus在檢查RACF的configuration table設定,如STARTED、STCTABLE…的設定

RACF User:此類的Report則focus在列出RACF 中關於User profile需要注意的設定,如那些使用者具有特殊權限、那些使用者超過60天沒有更改密碼…等

RACF Profile:此類的Report列出RACF中關於Resource這類的Profile需要注意的地方

2009年11月28日 星期六

zSecure Audit架構

如下圖所示,作為一個自動化的安全性稽核軟體,zSecure Audit可以整合分析下列不同來源的資料,了解目前z/OS環境的安全狀況

  • 系統的Security database(如RACF)設定
  • z/OS IPL的參數及其實設定資訊  ==>會被收集到CKFREEZE檔案中
  • SMF的 audit trail資料
  • 其它的資料來源(HTTP log或 flat file)

由這些地方收集而來的Report會存放於zSecure本身的database,Auditor可以使用針對這個database進行分析,若熟悉CARLA這個語言,也可以用它來產生客製化的報表

image

DSMon Report種類

以下為呼叫DSMon Report Utility的JCL

//STEP1   EXEC  PGM=ICHDSM00
//SYSPRINT DD   SYSOUT=A
//SYSUT2      DD   SYSOUT=A
//SYSIN         DD
     LINECOUNT    55                            ==>定義產製出來的Report每頁要有幾行
     FUNCTION      ALL                           ==>要呼叫那些功能,這些功能對應到DSMon可以產生的11種報表
     USEROPT         USRDSN        PRODUCT.PLANS.SECRET  ==>User defined的選項

下圖為FUNCTION這個Control Statement參數與DSMon可以產生的11種報表的對應

image

image

下圖則列出USEROPT這個Control Statement參數所對應的報表

image

接下來簡單地介紹DSMon可以產生的11種報表。

SYSTEM REPORT

System Report包含下列資訊

  1. 機器的型號及ID (CPU ID)
  2. 作業系統的名稱、版本資訊
  3. 開機磁碟的Volume序號(SYSRES Volume)
  4. 定義在SMF內的系統ID
  5. RACF版本及RACF是否處於啟動狀態

System Report可以用來確認目前機器使用了正確的硬體。另外,若RACF是處於Inactive狀態, System Report會列出  “RACF VERSION n RELEASE  m  IS INACTIVE。下圖為System Report的內容

image

GROUP TREE REPORT

Group Tree Report預設會遞迴地列出所有SYS1這個群組下面所有的子群組樹。若使用者使用USEROPT這個control statement指定其它群組名稱,則會列出該群組的群組樹。所列出來的群組樹中,若任何群組的父群組不是該群組的Owner,會另外列出該群組 Profile的Owner名稱。

我們可以使用Group Tree Report來檢視RACF中任一群組的結構資訊,以了解群組的結構是否正確。下圖為Group Tree Report的內容
image

Program Properties Table Report

PPT report列出所有定義在Program Properties Tables中的程式,PPT這個Table可以訂定那些程式可以bypass掉RACF的密碼保護機制。下圖為PPT report的範例。其中BYPASS PASSWORD PROTECTION欄位定義該程式能否bypass掉RACF的密碼保護;SYSTEM KEY則指出該程式是否會執行於 Supervisor State中,且可存取系統的Control Block資訊

image

RACF Autorized Caller Table Report

這份報表可以列出所有列在 RACF Autorized Caller Table中的程式,通常應該不會有記錄,若有記錄表示有人寫exit來bypass RACF的功能,以下為範例。其中  RACINIT AUTHRIZED表示該程式有無權限發出 RACF的 VERIFY請求;RACLIST AUTHORIZED則表示該程式有無權限發出 RACF的 LIST請求。

這個Report非常重要,因為任何一個可發出VERIFY請求的程式可以建立或修改Accessor Environment Element(ACEE)的內容。因為ACEE放置的是當前使用者的資訊,如user ID、所屬的群組、使用者的一些屬性等。可以修改這些資訊的程式可以模擬任何使用者的ID。而任一個有RACLIST權限的程式可以Load任何RACF的任一個Profile到main storage中,可以檢視或修改這些Profile的內容

image

RACF Class Descriptor Table Report

這份報表可列出Class Descriptor Table所定義的General Resource classes。每個General Resource的Class都必需定義在 Class Description Table中,然後使用 SETROPTS CLASSACT(class_name) 指令啟動該class,讓RACF進行Authorization的檢查。這份報表列出所有定義在CDT中的class目前的狀態。下圖為範例。其中
STATUS        欄位標示這個class目前有無啟用;
AUDITING  標示有無logging這些class所保護的資源的存取;
STATISTICS標示是否保留這些class的統計數據
DEFAULT UACC標示這些class所管轄的Profile預設的UACC值,若值為ACEE,則值為定義該resource profile的User其user Profile中的UACC值
OPERATIONS ALLOWED標示在做Authorization checking時,要不要考慮存取者的OPERATION屬性?

image

RACF EXIT REPORT

EXIT report列出系統中定義的所有RACF exit routine,以及這些routine的大小,所以由此報表可以確認目前系統定義的RACF exit都是合法的,如果發現到這些exit routine的大小變動了,表示這些RACF exit有被變動過。以下為範例

image

RACF Global Access Checing Table Report

此報表列出所有定義在Global Access Checking Table的 Resource Class。當RACF在做authorization checking時,針對沒有用 RACLIST這個指令將其load到記憶體的profile,會先check這個Global Access Checking Table的內容,若這個表格定義錯誤,會導致錯誤的授權。下圖為範例

image

RACF Started Procedures Table Report

Started task在執行時,也必需是以某個ID及Group的身份執行,在RACF2.1之前,RACF用 Started Procedure Table指定User ID/Group 給Started Task,自從RACF2.1後,RACF可以定義STARTED這個class的Profile,來指定User ID/Group給Started Task。這份報表會顯示出定義在Started Procedures Table及STARTED 這個class的Profile。下圖為範例。其中

PRIVILEGED欄位表示該Started Task能否bypass所有security check
TRUSTED 欄位也是表示該Started Task能否bypass security check,不過最少在存取resource時,會被log起來

image

Selected User Attribute Report

此報表列出所有有SPECIAL、OPERATIONS、AUDITOR或REVOKE特殊屬性的使用者,並且顯示這些屬性的Scope是System level或Group level。儘量在系統離峰的時間產制這份報表,因為產生此報表需要較大的系統資源,會影響到系統的效能。下圖為範例

image

Selected User Attribute Summary Report

此份報表顯示出系統中具有SPECIAL、OPERATIONS、AUDITOR或REVOKE這些特殊屬性(不管是System level或Group level)的使用者的數目。下圖為範例。與Selected User Attribute Report一樣,這份報表的產製一樣較耗系統資源,儘量在離峰時間做

image

Selected Data Set Report

此分報表列出系統前Dataset(包含RACF database)的安全狀態,如果Volume Serial是空白的話,這個Dataset是未被catalog的Dataset。這裡選擇Dataset的原則如下

  • LNKLST : LNKLST concatenation 的dataset,包含SYS1.LINKLIB及SYS1.PARMLIB(LNKLSTxx)所描述的dataset
  • APF:APF list中所包含的dataset,包含SYS1.PARMLIB中的 IEAAPFxx或PROGxx 這兩個member的dataset
  • LNKLST-APF:既是LNKLST也是APF的dataset
  • MASTER CATALOG:z/OS的master catalog
  • USER CATALOG
  • RACF PRIMARY:primary的RACF dataset
  • RACF BACKUP:RACF的備分dataset
  • SYSTEM:
    • SYS1.CMDLIB:TSO command library
    • SYS1.LNKLIB: 主要的System library
    • SYS1.LPALIB: Pageable system code及common module。這些程式是以APF-authorized的方式執行
    • SYS1.NUCLEUS:System code 本身
    • SYS1.PARMLIB
    • SYS1.PROCLIB
    • SYS1.SVCLIB:舊的系統Supervisor call library
    • SYS1.UADS:TSO使用者的屬性 Dataset
  • USRDSN:在USEROPT這個Control Statement所指定的其它dataset

下圖為範例。其中

RACF INDICATED欄位可能的值如下

  • YES:表示RACF indicator被設為ON
  • NO:表示RACF indicator被設為OFF
  • N.C.:表示該dataset沒有被列在Master Catalog
  • N.M.:表示該dataset所在的volume沒有被mount進來
  • N.F.:DSMON utility無法在catalog記錄的volume中找到該dataset

RACF PROTECTED欄位表示RACF有無相對應的Profile保護該Dataset

UACC欄位表示這些Dataset的UACC值

image

2009年11月27日 星期五

RACF提供給Auditor的功能

為了讓Auditor更有效地監控系統的安全狀態,RACF提供了下列功能

  • Logging 的routine程式,可記錄系統發生的事件,將這些事件寫入 SMF record中
  • SETROPTS指令提供一些專門給Auditor才能用(連Special用戶都不能呼叫)的功能選項,以便Auditor進行查核
  • 提供 RACF SMF data unload公用程式,可以將SMF record倒出來,並轉換成易於import進 RDB的格式
  • RACF report writer,可以產生客制化的報表  (目前Report Writer已不出更新版了,因此不建議使用,現在建議使用 RACF SMF unload utility)
  • Dataset Security Monitor(DSMon),可以產生目前環境的安全狀態 (zSecure Audit提供類似功能,不過zSecure除了RACF的資料外,還可以結合其它MVS的資訊)