iSeries(AS/400) 的安全控管稽核重點
iSeries(AS/400) 的安全控管稽核重點
Contributed 05/18/2002 By Vengoal Chang
目標
AS/400 的安全控管稽核重點主要提供 AS/400 使用者關於 AS/400 安全控管的
主要項目資訊及控管後所產生影響結果。安全控管方式的選擇及導入應該配合公司的安全政策,
有效執行而不會被中斷,並且容易管理。
安全控管的層次及控管方式的選擇及導入均應視所在位置的處理環境(例如:網路連結方式,使
用者的數目及他們的需求,應用程式的設計方式,資訊部門人員編制大小等)
小型處理環境 - 結合安全控管的層次 30 或 40 的日誌(log),選項畫面安全設定(Menu Security)
,系統及使用者設定檔的設定能夠控制使用者去執行某些批次作業或特殊的 AS/400
指令或工具。由於資訊部門的人員編制小,所以資訊部門人員一般擁有存取 AS/400
資源的所有權限,故安全控管方式需以使用者控制及系統稽核日誌追蹤加以強化補充。
中型極大行處理環境 - 結合安全控管的層次 30 或 40 的日誌(log),選項畫面安全設定
(Menu Security),資源安全設定(Resource Seurity),系統及使用者設定檔
的設定,能夠有效的導入系統及資料安全。在如此的環境中,資訊人員存取系
統及資料都應該被評估及被授權至該資訊人員所應知道的基礎上,亦即限制某
些人依安全控管方式,取得被授權的系統資源及資料。
適當的規劃及導入一個有效且對使用者親切的安全環境是很重要的關鍵。
IBM 所提供的 AS/400 操作系統包含許多安全控管特性,用來防止未經授權的人進入系統及存取未經授權
的資訊,AS/400 所提供的安全控管特性說明如下:
"AS/400 所提供安全控管特性能減少使用者無意間更改或刪除資源的機會,你的安全控管要有效
,那你的資源控管就要結合實體安全及權責分明的界線。如果沒有使用這些控管,那你的系統就有
可能暴露,且未經授權的人有可能存取你的系統。"
使用者能依照系統所在環境(硬體及軟體,機房,電力等)及所需的控管範圍啟動及更改安全設定。IBM
所提供主要 AS/400 的安全控管特性用來確保系統及資訊安全表列如下。
AS/400 安全控管特性可分成幾組簡單描述如下:
相關安全控管的系統值
使用者設定檔的安全設定
控制存取的工具
實體及硬體的控制
IBM 出售 AS/400 時,系統預設的的安全層級一般設定在安全層級 30。
所必須考慮的安全控管特性:
相關安全控管的系統值
AS/400 提供許多相關安全控管的系統值,允許使用者規劃及設定符合他自己環境所需的安全控管方式。
在 AS/400 上,這些廣義的系統值用於控制進入系統、密碼、區域及網路的作業。
相關安全控管的系統值又可分成:
進入系統(Sign-On)
密碼(Password)
區域及網路(Local and Network)
一般 AS/400 安全控管特性,可藉由系統層次的廣義系統值或導入依個人層次的使用者設定檔參數選項來建立。
A. 進入系統的安全控管系統值
1. QSECURITY (Security Level)
AS/400 提供廣義的安全系統值稱為"QSECURITY",此系統值啟動系統所需安全控管層次。在AS/400
上有四種安全控管層次可供使用,系統一次只能選擇一個安全控管層次,五種安全控管層次如下:
- 安全控管層次 10 -
在此安全控管層次任何人不用正確的使用者代碼及密碼均能進入系統及存取所有系統資源,
能讀取、更改、刪除系統上所有的物件。
所需考慮採取的安全控管方式:
這個安全控管層次應該提升至安全控管層次 30.
- 安全控管層次 20 -
在這個安全控管層次,使用者需要使用者代碼及密碼才能進入系統,但進入系統後仍然預設
其權限可以存取或刪除任何物件(例如:所有檔案、資料庫、程式、使用者設定檔等)。
所需考慮採取的安全控管方式:
在這個安全控管層次通常是個過度階段,最少應該盡快採用安全控管層次 30 及適當的稽核層次(QAUDLVL)。
- 安全控管層次 30 -
在這個安全控管層次,使用者需有系統管理員為其建立一個使用者設定檔及密碼才能進入系
統存取系統資源,在安全控管層次 30,使用者藉由 "Public" 公共權限存取其他物件,若有
物件將公共權限排除在外,那使用者就需得到額外授權才能存取該物件。
所需考慮採取的安全控管方式:
這個安全控管層次需加上及適當的稽核層次(QAUDLVL)。
- 安全控管層次 40 -
在這個安全控管層次,已包含安全控管層次 30 所提供的一切安全控管方式,也包含設定稽核
層次(QAUDLVL)及啟動稽核日誌,同時也提供作業系統的完整性檢核,限制系統指令等。
所需考慮採取的安全控管方式:
在採用安全控管層次 40 前,應該先採用安全控管層次 30,加上稽核層次(QAUDLVL 設定為 *AUTFAIL
及 *PGMFAIL),若違反安全控管層次 40 所規範的授權規範,系統就會將授權失敗紀錄(失敗原因代碼為
"AF")於稽核日誌(QAUDJRN)中,檢視稽核日誌將所有相關違反安全控管層次 40的規則或錯誤,授與應用
軟體、相關資料庫及使用者適當的權限及防止程式授權失敗後,再導入安全控管層次 40,對於有複雜的
非 IBM 系統介面、網路連結或處理公司外部磁帶,建議採用這個安全控管層次。
- 安全控管層次 50 -
在這個安全控管層次,已包含安全控管層次 40 所提供的一切安全控管方式,並符合美國國防部
的安全 C2 標準 。由於此層級強化系統層級安全控管,對於系統運作績效有很大的影響,使用前
請先評估。
2. QMAXSIGN (Maximum Sign-On Attempts)
這個廣義的安全系統值稱為"QMAXSIGN",系統用來控制使用者所允許進入系統時所發生的錯誤次數(例如密
碼錯誤、使用者代碼輸入錯誤或使用未被授權的工作站),當錯誤次數達到系統值所允許的次數時,系統會
依照另一系統值 QMAXSGNACN 的設定採取對應的處理,並傳送一個訊息至 QSYSOPR 訊息佇列(及如果
QSYSMSG 存在於 QSYS 中時,也傳送同一個訊息至 QSYSMSG)。
如果於 QSYS 程式館建立 QSYSMSG 訊息佇列,系統會自動將重要的訊息送至 QSYSMSG,以防止重要訊息淹沒
於有大量訊息的 QSYSOPR 訊息佇列中。
為了防止駭客入傾,這個系統值最好設定低且合理的值,一般的容許錯誤次數是 3 到 5。
2.1 QMAXSGNACN (Action When Sign-On Attempts Reached)
這個系統值用於決定當進入系統的錯誤次數達到系統值 QMAXSIGN 所設定的錯誤次數時應採取的處理動作。
應採取的處理動作可分為:
3:將使用者設定檔及工作站設為失效。
1:將工作站設為失效。
2:將使用者設定檔設為失效。
QMAXSGNACN 建議值為 3。
3. QRMTSIGN (Remote Sign-On Control)
這個廣義的安全系統值稱為"QRMTSIGN",是系統用來控制遠端進入系統的需求,例如從另一 AS/400 系統透
過 Pass-through、Client Access 5250 工作站及 Telnet 來的遠端進入系統的需求。
這個安全系統值"QRMTSIGN"應該設定為 *FRCSIGNON ,讓所有的遠端進入系統需求使用正常的進入系統程序。
4. QAUDCTL
系統值 “QAUDCTL” ,是系統用來決定是否啟動稽核日誌功能。有三類稽核方式可供選擇(可多選):
*AUDLVL
依照 QAUDLVL 稽核層級統值的定義
*OBJAUD
經過指令個別指定的物件才會針對該物件啟動稽核功能
Change Object Auditing (CHGOBJAUD)
Change DLO Auditing (CHGDLOAUD)
經過指令個別指定的使用者才會針對該使用者啟動稽核功能
Change User Audit (CHGUSRAUD) command
*NOQTEMP
Library QTEMP 中的物件不做稽核日誌,因為 QTEMP 中均是暫存物件。
*NONE – 不啟動稽核日誌功能
4.1 QAUDLVL (Auditing Level)
這個廣義的安全系統值稱為"QAUDLVL"稽核層級,是系統用來控制哪些安全控管的事件需要被紀錄於安全
稽核日誌(QAUDJRN)中。
這個安全系統值 "QAUDLVL" 最少應該設定為 *AUTFAIL(系統紀錄所有授權失敗的事件),*SECUTITY
(紀錄所有更改安全控管系統值的事件)。若再加上 *SAVRST(紀錄 Restored 時所有相關安全的事件)
在選擇 "QAUDLVL" 選項前,要做系統績效及系統資源的評估,因為作紀錄的動作會影響系統運作績效及
硬碟空間的使用。
在使用 "QAUDLVL" 前,系統值 "QAUDCTL" 需包含 "*AUDLVL"。
5. QLMTSECOFR (Limit Security Officer)
限制具有 *ALLOBJ 或 *SERVICE 的使用者是否僅能從 System Console 進入系統.
1: 是
但仍能夠使用Grant Object Authority (GRTOBJAUT) 指令授權使用者可以從其他工作站進入系統.
0: 否
防止高權限使用者權限被誤用
5.1 QLMTDEVSSN (Limit Device Sessions)
這個廣義的安全系統值稱為"QLMTDEVSSN",用來控制使用者是否能同時從多台工作站進入系統。
建議值為 '1',限定使用者再任何時間僅能從一台工作站進入系統,除非使用者結束原有的工作站
作業退系統,回到進入系統畫面(SignOn Screen),才能從另外一台工作站進入系統。
限制工作站功能也可以從使用者設定檔中,針對個人設定。
使用這個安全系統值 "QLMTDEVSSN" 可減少多人共用同一個使用者代碼及密碼。但若有一群人共用因
業務需要而共用同一個使用者代碼及密碼,而公司政策又話,那又是另一個議題了。
6. QINACTITV (Inactive Job Time-Out Interval)
這個廣義的安全系統值稱為"QINACTITV",是系統用來控制允許一台工作站持續沒有任何動作的時間
(例如使用者離開座位),當沒有任何動作的時間達到 "QINACTTITV" 所指定的時間時,依照系統值
"QINACTMSGQ" 的設定採取對應的處理動作。這個系統值的設定減少未經授權的人存取系統的機會。
設定這個系統值 "QINACTITV" 時,要考慮使用者的作業環境,如製造業現場工單流程,客戶服務中心
等。這個系統值應該設定實際且有效的值,一般的設定為 60 分鐘。
這個系統值只針對 5250 終端工作站、Client Access 5250 終端模擬及 Telnet (V4R3 以後)有效。
Telnet 在 V4R2 以前,需使用 CHGTELNA 指令。
這個系統值並不適用於 FTP Server,使用 CHGFTPA 設定 INACTTIMO 參數。
6.1 QINTACTMSGQ (Inactive Job Time-Out Message Queue)
這個系統值 "QINACTMSGQ" 用以決定當系統值 "QINACTITV" 所設定的時間達到時所應採取的對應動作。
建議值為 *ENDJOB 結束該工作。
若值為 *DSCJOB, 則 QDSCJOBITV 可指定暫時中斷幾分鐘後結束作業。
7. QAUTOVRT (Automatic Configuration of Virtual Devices)
這個廣義的安全系統值稱為"QAUTOVRT",是系統用來控制 AS/400 是否能自動建立虛擬工作站,以回應
遠端工作站進入系統的需求。
允許你的系統自動建立虛擬工作站,會給駭客更多的入傾機會,例如 QMAXSIGN 進入系統錯誤的次數設
為 3,且 QAUTOVRT 允許建立的虛擬工作站的數目設定為 500,駭客的入傾次數機會高達 1500 次。不
可不慎重。
建議值設定為 0。
8. QDSPSGNINF (Display Sign-On Information)
這個廣義的安全系統值稱為"QDSPSGNINF",是系統用來決定是否顯示進入系統的相關資訊,例如上次進入
系統的時間,此次進入系統錯誤的次數,幾天後密碼過期(如果密碼到期日小於等於 7 天才會顯示)。
建議值為 "1",讓使用者知道自己的密碼是否快過期。此系統值也可針對個人設定於使用者設定檔中。
B. 相關密碼安全控管的系統值
1. QPWDEXPITV (Password Expiration Interval)
這個廣義的安全系統值稱為"QPWDEXPITV",是系統用來指定一個密碼的有效期限,當有效期限到期時,
系統會強迫使用者更改密碼。此系統值也可針對個人設定於使用者設定檔中。
建議值一般為 90 天,較重要的使用者為 30 天。
2. QPWDRQDDIF (Required Difference in Passwords)
這個廣義的安全系統值稱為"QPWDRQDDIF",是系統用來控制密碼是否能與先前幾次使用過的密碼相同。
建議值為 "5",不得與前 10 次密碼相同。
3. QPWDLMTREP (Restriction of Repeated Characters for Passwords)
這個廣義的安全系統值稱為 "QPWDLMTREP" ,是系統用來限制密碼字元可否重覆,若系統值 "QPWDLVL"
設為 2 或 3,密碼字元分大小寫是不同的字元,如 a 與 A 是不同的字元。
建議值為 "1",密碼中不得有重複的字元。
4. QPWDMINLEN (Minimum Length of Passwords)
這個廣義的安全系統值稱為 "QPWDMINLEN",是系統用來控制組成密碼的最小長度,用以忽略較容易猜的密碼。
建議值為 6 到 8。
當系統值 "QPWDLVL" 為 "1" 時,這密碼的長度可藉於 1 到 10 間。
當系統值 "QPWDLVL" 為 "2" 或 "3" 時,這密碼的長度可藉於 1 到 128 間。
C. 網路相關安全控管系統值
1. PCSACC
AS/400 提供一個 PC Support Access 的網路安全控管的系統值 PCSACC,是系統用來控制 PC 可否
存取哪些系統服務,如 5250 終端連線模擬,檔案下載及上傳等服務。
如果需要 PC Support 的功能,那 "PCSACC" 的網路參數屬性應該設定為 *OBJAUT。設定 *OBJAUT
這個值接受 PC Support 所有的功能,然而這些服務需求仍需遵循正常的 AS/400 物件權限確認程序。
若要依照個別功能設定權限,可自行撰寫 Exit Program,使用 CHGNETA 指定 PCSACC 的參數為 Exit Program.
V3R1 以後可以使用 *REGFAC 參數選項,WRKREGINF 指定個別功能的 Exit Program.
如果不需要 PC Support 的功能,"PCSACC" 就應設定為 *REJECT,拒絕遠端 PC 所有的服務需求。
2. DDMACC
AS/400 同時提供另一個網路參數屬性 "DDMACC"(distributed data management 分散式資料管理),
用來控制及確認遠端 AS/400 系統所提出的處理需求。
如果需要分散式資料管理的功能,那 "DDMACC" 的網路參數屬性應該設定為 *OBJAUT。設定 *OBJAUT
這個值接受所有分散式資料管理的功能,然而這些服務需求仍需遵循正常的 AS/400 物件權限確認程序。
如果不需要分散式資料管理的功能,"DDMACC" 就應設定為 *REJECT,拒絕所有分散式存取服務需求。
若要依照個別功能設定權限,可自行撰寫 Exit Program,使用 CHGNETA 指定 DDMACC 的參數為 Exit Program.
V3R1 以後可以使用 *REGFAC 參數選項,WRKREGINF 指定個別功能的 Exit Program.
使用者設定檔的安全設定 (User Profiles Security)
在 AS/400 上,使用者需要事先授與適當的權限,包含系統層級特殊權限或針對單一物件(例如:
指令、資料庫檔案、工作站印表機設備等)。
使用者設定檔用來定義使用者及他們的權限範圍,且提供許多參數設定,可參照系統值或針對個別
使用者設定。例如:系統值 "QPWDEXPITV" 密碼有效期間,可藉由設定使用者設定檔參數
"Password Expiration Interval" 取代系統值。
使用者設定檔的安全參數屬性需要針對個人作業適當的評估,授與個人作業範圍內應有的權限。
1. 特殊權限 (Special Authorities)
AS/400 為了一般安全控管及系統工作需要而提供使用者特殊權限,共有六種:
*ALLOBJ - 幾乎擁有無限的權限,系統允許使用者定義、更改、刪除及存取所有資源,
且不受個別物件所指定的權限設定限制,但並沒有新增及更改使用者設定檔的權限,
*SECADM - 允許管理 AS/400 使用者設定檔,這是 AS/400 安全管理員的特殊權限,這授權使用
者有新增、修改、刪除其他使用者設定檔的權。
*SAVSYS - 允許使用者儲存、回復系統及資料,
*JOBCTL - 授與使用者管理工作(Job)及輸出佇列(Output queue)的權限,如一般工作的暫停、更
改、釋放及終止,子系統啟動與終止,印表機的啟動與終止,及 IPL(開機)。
*SERVICE - 允許使用者處理服務性工作,例如:Disk 等硬體資源的維護。
*SPLCTL - 允許使用者對於所有報表有全部的權限,縱然輸出佇列指定 OPRCTL(*NO) 也無法阻止
有 *SPLCTL 特殊權限的使用者,檢視非他自己的報表。
2. IBM 內建的使用者代碼 (IBM-Supplied ID's)
AS/400 為了系統作業需要而內建了一些使用者代碼(如:QSECOFR, QPGMR, QUSER, QSRV, QSRVBAS,
QSYSOPR, QUSER等),應該將這些使用者的密碼設為 *NONE,讓使用者無法以這些使用者代碼進入系統。
3. 使用者的等級 (User Classes)
AS/400 提供 5 種使用者等級建議的特殊權限如下表:
特殊權限 使用者等級
===============================================
*SECOFR *SECADM *PGMR *SYSOPR *USER
========= ======= ======== ======== ======== ========
*ALLOBJ Yes NO No No No
*SECADM Yes Yes No No No
*JOBCTL Yes Yes Yes Yes No
*SPLCTL Yes No No Yes No
*SAVSYS Yes Yes Yes Yes No
*SERVICE Yes No No No No
*AUDIT Yes Yes No No No
*IOSYSCFG Yes Yes No No No
- *SECOFR - 最高安全使用者等級(Security Officer class)
具有最高權限可存取系統所有資源。
- *SECADM - 安全管理員(Security Administration class)
- *PGMR - 程式員等級(Programmer class)
- *SYSOPR - 系統操作員(System Operator class)
- *USER - 一般使用者
控制存取系統資源的工具
AS/400 支援多種控制存取系統資源的工具,AS/400 允許結合這些工具以符合個別作業環境的需求,
這些工具可分為以下四類:
菜單式(Menu Security)
物件資源存取(Resource Security)
繼承程式擁有者權限(Program Adoption)
授權表列(Authorization Lists)
1. 菜單式(Menu Security)
菜單式是系統強迫使用者進入系統時,依照事先定義的菜單,限制使用者只能執行菜單上的選項作業
,如果是當的設定菜單權限,使用者是無法突破這個系統控制的環境。
要使用菜單式安全控管方式,可以藉由使用者設定檔的三個參數
初始程式(Initial Program)
初始畫面(Initial Menu)
限制執行指令(Limited Capability)
- 初始程式(Initial Program)
當使用者進系統時,首先執行初始程式,強迫使用者進入事先定義的應用程式畫面,或執行
事先定義的程式,或其他某些控制功能。
- 初始畫面(Initial Menu)
當使用者進系統時,強迫使用者進入指定的菜單選項畫面。
- 限制執行指令(Limited Capability)
限制執行指令用於限制使用者是否可以藉由命令列執行指令,例如 SIGNOFF,SNDMSG,DSPMSG
或 DSPLOG 等。
結合使用初始程式及初始畫面可強迫使用者執行指定的程式或其他的菜單作業。如果你想要限制使用者
只能執行初始程式,就也需設定參數 Initial menu 值為 *SIGNOFF,這個值會於使用者退出初始化程式
時,自動將使用者退出系統。
為了限制使用者只能執行菜單上的選項作業,就也需設定參數 Limited Capability 限制執行指令為 *YES。
TCP/IP 應用軟體 FTP Server(檔案傳輸伺服器)的指令 RCMD 同樣使用者設定檔上參數
Limited Capability 限制執行指令來控管。
事實上,菜單式的安全控管方式是不夠的,還需加上物件資源安全控管,以加強資源的存取控管。
2. 物件資源存取(Resource Security)
物件資源存取 (Resource Security) 藉由個別物件授權給個別使用者或群組的方式,來達到控制使用者
存取物件的權限,或定義一個 public 的公共權限,讓系統上所有使用者都能利用公共權限所授與的權限
來存取該物件。
使用者需要授與適當的物件資源權限(Object Authority)及資料權限(Data Authority)才能順利的存取
物件資源或資料。
關於物件資源權限及資料權限詳細資料請參閱 AS/400 Security Concepts and Planning Guide - Chapter 4。
物件資源存取(Resource Security)可分為二種層次:
"library level" 或 object level 例如:
- 程式館層次(Library Level Resource Security)
Library 層次主要針對整個 Library 作控管,並不涉及 Library 內的物件及資料權限,當一個
使用者被授與對某個 Library 有存取的權限,哪這個使用者幾乎就能存取該 Library 所有的物件及資料。
Library 層次主要架構在 *PUBLIC 公共權限上,藉由 Library 層次的保護,這個受保護的 Library
可以放置重要敏感性的資料,並限制一般使用者的使用。
- 物件層次(Object Level Resource Security)
物件層次針對單一物件設定每一個使用者的存取權限,系統管理員或物件擁有者需要維護哪些使用
者可以存取該物件(例如:新的使用者加入或使用者換職務等),這對系統管理員帶來很大的工作
負擔,但可藉由群組使用者做適當的授權,便可減輕系統管理員的負擔。
3. 使用程式擁有者權限(Program Adoption)
使用程式擁有者權限(Program Adoption)允許使用者在沒有被授權特殊權限的情況下存取一個物件
(正常可能需要全部權限或某些特殊權限才能存取),當使用程式擁有者權限時,當執行程式時,
執行程式的使用者除了使用本身的權限外,還會自動繼承程式擁有者的所有權限,這提供執行程式
的使用者額外的存取物件權限,但只限於執行該程式時才有額外的存取物件權限,一但程式結束,
系統會將程式擁有者的權限移除。
在產生程式(CRTxxxPGM)時,系統的預設值是 USER(*USER),也就是不採用繼承程式擁有者權限。
若要採用繼承程式擁有者權限就設定為 USER(*OWNER)。
4. 授權表列(Authorization List)
物件資源授權若針對單一物件授權個別使用者權限,是一向沉重的負擔,所以系統提供授權表列的
方式來簡化個別物件的授權,將多個使用者或群組依照個別權限需求,可組成授權表列,再將授權
表列設定於被授權物件的 Authorization list name,授權表列包含所有使用此授權表列的物件及
藉由此授權表列存取物件的所有使用者。
建立授權表列
CRTAUTL AUTL(AUTL1) AUT(*EXCLUDE) TEXT("Sample Authorization List")
將使用者加入授權表列,並設定使用者權限
ADDAUTLE AUTL(AUTL1) USER(xxx) AUT(xxxx)
設定物件使用授權表列權限
GRTOBJAUT OBJ(object) OBJTYPE(type) AUTL(AUTL1)
Authority to the Authorization List
┌───────────────────────────────────┐
│Authorization list name:AUTL1 │
│Owner:KARENS │
│Public authority:*EXCLUDE │
│ │
│User Authority │
│KARENS *ALL *AUTLMGT │
│TERRY *USE │
│JUDY *CHANGE │
│SCOTT *ALL │
│MARY *CHANGE *AUTLM │
└────────┬──────────────────────────┘
│
│Objects secured by
│authorization list
│ ┌───────────────┐
│ ┌────│File A │
│ │ └───────────────┘
│ │ ┌───────────────┐
│ ├────│Program B │
└─────┤ └───────────────┘
│ ┌───────────────┐
├────│File C │
│ └───────────────┘
│ ┌───────────────┐
└────│Library D │
└───────────────┘
實體及硬體的控制(Physical Security and Hardware Controls)
1. 實體的安全管制(Physical Security)
為了保護 AS/400 系統防止遭受損害或未經授權的存取,AS/400 應放在一個安全的機房,
也就是要有適當的安全控管,控制人員的進出,並要有防火,溫控,防水保護等功能。
2. AS/400 Keylock Switch
某些 AS/400 配有鎖,以防止未經授權的人直接操作 AS/400 主機面板上的功能。
參考書目:
Security Reference Version 5 SC41-5302-05
An Implementation Guide for AS/400 Security and Auditing GG24-4200-00
A blog about IBM i (AS/400), MQ and other things developers or Admins need to know.
星期四, 11月 02, 2023
2002-09-19 iSeries(AS/400) 的安全控管稽核重點
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言