以下為呼叫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種報表的對應
下圖則列出USEROPT這個Control Statement參數所對應的報表
接下來簡單地介紹DSMon可以產生的11種報表。
SYSTEM REPORT
System Report包含下列資訊
- 機器的型號及ID (CPU ID)
- 作業系統的名稱、版本資訊
- 開機磁碟的Volume序號(SYSRES Volume)
- 定義在SMF內的系統ID
- RACF版本及RACF是否處於啟動狀態
System Report可以用來確認目前機器使用了正確的硬體。另外,若RACF是處於Inactive狀態, System Report會列出 “RACF VERSION n RELEASE m IS INACTIVE。下圖為System Report的內容
GROUP TREE REPORT
Group Tree Report預設會遞迴地列出所有SYS1這個群組下面所有的子群組樹。若使用者使用USEROPT這個control statement指定其它群組名稱,則會列出該群組的群組樹。所列出來的群組樹中,若任何群組的父群組不是該群組的Owner,會另外列出該群組 Profile的Owner名稱。
我們可以使用Group Tree Report來檢視RACF中任一群組的結構資訊,以了解群組的結構是否正確。下圖為Group Tree Report的內容
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資訊
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的內容
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屬性?
RACF EXIT REPORT
EXIT report列出系統中定義的所有RACF exit routine,以及這些routine的大小,所以由此報表可以確認目前系統定義的RACF exit都是合法的,如果發現到這些exit routine的大小變動了,表示這些RACF exit有被變動過。以下為範例
RACF Global Access Checing Table Report
此報表列出所有定義在Global Access Checking Table的 Resource Class。當RACF在做authorization checking時,針對沒有用 RACLIST這個指令將其load到記憶體的profile,會先check這個Global Access Checking Table的內容,若這個表格定義錯誤,會導致錯誤的授權。下圖為範例
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起來
Selected User Attribute Report
此報表列出所有有SPECIAL、OPERATIONS、AUDITOR或REVOKE特殊屬性的使用者,並且顯示這些屬性的Scope是System level或Group level。儘量在系統離峰的時間產制這份報表,因為產生此報表需要較大的系統資源,會影響到系統的效能。下圖為範例
Selected User Attribute Summary Report
此份報表顯示出系統中具有SPECIAL、OPERATIONS、AUDITOR或REVOKE這些特殊屬性(不管是System level或Group level)的使用者的數目。下圖為範例。與Selected User Attribute Report一樣,這份報表的產製一樣較耗系統資源,儘量在離峰時間做
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值