gg244453 RACF Unload utility
gg244453 RACF Unload utility
October 1994
Before using this information and the product it supports, be sure to read the general information under
“Special Notices” on page xi.
This edition applies to Version 2, Release 1 of Resource Access Control Facility, Program Number 5695-039 for
use with the MVS/ESA
Order publications through your IBM representative or the IBM branch office serving your locality. Publications
are not stocked at the address given below.
An ITSO Technical Bulletin Evaluation Form for reader′s feedback appears facing Chapter 1. If the form has been
removed, comments may be addressed to:
When you send information to IBM, you grant IBM a non-exclusive right to use or distribute the information in any
way it believes appropriate without incurring any obligation to you.
This document describes a number of RACF auditing tools that are based on the
RACF SMF Data Unload Utility and on the RACF Database Unload Utility. The
primary audience is RACF security auditors. This document provides the
information that is necessary to compile the sample code into a service offering.
The RACF SMF Data Unload Utility enables installations to create a sequential
file from the SMF security-relevant audit data. The RACF Database Unload Utility
unloads the RACF database to a sequential file. Both sequential files can be
used in several ways: viewed directly, used as input for installation-written
programs, and manipulated with sort/merge utilities.
(68 pages)
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . iii
Special Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
How This Document is Organized . . . . . . . . . . . . . . . . . . . . . . . . . xiii
Related Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiv
International Technical Support Organization Publications . . . . . . . . . . . xvi
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xvi
Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 How to Order Materials Discussed in This Document . . . . . . . . . . . . 2
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Information in this book was developed in conjunction with use of the equipment
specified, and is limited in application to those specific hardware and software
products and levels.
IBM may have patents or pending patent applications covering subject matter in
this document. The furnishing of this document does not give you any license to
these patents. You can send license inquiries, in writing, to the IBM Director of
Licensing, IBM Corporation, 500 Columbus Avenue, Thornwood, NY 10594 USA.
The information contained in this document has not been submitted to any
formal IBM test and is distributed AS IS. The use of this information or the
implementation of any of these techniques is a customer responsibility and
depends on the customer′s ability to evaluate and integrate them into the
customer′s operational environment. While each item may have been reviewed
by IBM for accuracy in a specific situation, there is no guarantee that the same
or similar results will be obtained elsewhere. Customers attempting to adapt
these techniques to their own environments do so at their own risk.
The following terms, which are denoted by an asterisk (*) in this publication, are
trademarks of the International Business Machines Corporation in the United
States and/or other countries:
CICS DATABASE 2
DB2 DB2/2
Distributed Database Connection IBM
Services/2
MVS/ESA OpenEdition
Operating System/2 OS/2
OS/400 PS/2
QMF RACF
SQL/DS SystemView
The document is primarily intended for RACF auditors, but RACF security
administrators might also find the information useful.
Communication Manager/2
• Information and Planning Guide , SC31-7007
• Host Connection Reference , SC31-6170
• Problem Determination Guide , SC31-6156
VTAM
• VTAM Network Implementation Guide , SC31-6434
• VTAM Programming for LU 6.2 , SC31-6437
• VTAM Resource Definition Reference , SC31-6438
REXX Publications
• TSO/E Version 2 REXX/MVS User ′ s Guide , SC28-1882
• TSO/E Version 2 REXX/MVS Reference , SC28-1883
Preface xv
International Technical Support Organization Publications
• Expanding the Capabilities of the RACF SEARCH Command , GG66-3217
IBM employees in the USA may order ITSO books and CD-ROMs using
PUBORDER. Customers in the USA may order by calling 1-800-879-2755 or by
faxing 1-800-284-4721. Visa and Master Cards are accepted. Outside the
USA, customers should contact their local IBM office.
Acknowledgments
This publication is the result of a residency conducted at the International
Technical Support Organization, Poughkeepsie Center.
Cees Kingma
International Technical Support Organization, Poughkeepsie Center
Thanks to the following people for the invaluable advice and guidance provided
in the production of this document:
The task of an auditor basically consists of verifying that the principles set forth
in an installation′s security policy are not compromised. In an installation which
uses the Resource Access Control Facility (RACF*) program product as its
access control program, there are two main tasks to perform:
• Verifying that the RACF profiles have the proper contents (universal access,
access lists and logging options in particular)
• Use the security logs to follow up on detected violations and to detect
abnormal behavior by authorized users
The audit information can be quite extensive and is found in the RACF database,
the RACF security log and in the logs produced by applications that use RACF
services. The problem facing an auditor is mostly that of being able to reduce
the amount of information to something that can be easily analyzed, and perhaps
more important to be able to find the needles in some very large haystacks.
The tools available to do auditing are the normal RACF commands, the RACF
Report Writer command and applications such as the Service Level Reporter
(SLR) and the SystemView* Enterprise Performance Data Manager (EPDM).
With RACF Version 1 Release 9 also came the RACF Database Unload Utility
which gave RACF administrators and auditors a entire new source of
information. By loading the sequential output file from the utility into a relational
database, such as IBM* DATABASE 2* (DB2*), they now could perform adhoc
queries on the RACF database, without the risk of impairing system
performance.
For the auditor to analyze RACF security logs and the SMF data in particular, the
RACF Report Writer command (RACFRW) has traditionally been the main
vehicle. However, auditors have long been complaining about the readability of
the RACFRW output, about the inability to select events only after they exceed a
given number and about the fact that the RACFRW does not limit a group auditor
to the events produced within the scope of the auditor. Most installations have,
therefore, written their own post processor programs to do additional processing
based on the RACFRW output.
With the availability of RACF Version 2 Release 1 also came a change in the
auditing functions for the system. The RACFRW command has been functionally
stabilized on the RACF Version 1 Release 9.2 level, and all the new event codes
can only be handled using the RACF SMF Data Unload Utility. This utility
converts RACF SMF records into a sequential dataset (flat file). This dataset can
be sorted and records selected based on various selection criteria. The
unloaded SMF records can also be loaded into a relational database and be
processed with suitable query languages.
There is a slight problem connected with the use of relational databases; users
have to be taught the Structured Query Language (SQL), the Query Management
Facility (QMF*) or some other query language if they want to be able to perform
their own adhoc queries. The alternative is for someone to build an application
with a set of predefined reports which can easily be adapted to fit the individual
installation.
The auditing application that is described in this book consists of the following
parts:
• A auditing application that is using the ISPF, REXX EXECs, and QMF on MVS.
This application is based on the RACF SMF Data Unload Utility.
• A auditing application that is running in a OS/2* environment using DB2/2*,
DDCS/2, and the Visualizer Query for OS/2. This application is also based
on the RACF SMF Data Unload Utility.
• The enhanced reporting application that is using ISPF, REXX EXECs, and
QMF on MVS. This application is based on the RACF Database Unload
Utility.
We would have liked to written the application using only REXX and SQL, but
found that it would have made the logic much more complicated and would have
required a lot more programming. The QMF forms facility and EXPORT/IMPORT
functions have simplified coding substantially and should make further tailoring
easier.
In Chapter 2, “Auditing Tools” you will see how existing tools are used and also
what restrictions are imposed on these tools. In Chapter 4, “Using the Auditing
Application and Sample Reports,” we discuss in more detail how the user can
use our ISPF based application to generate reports and to tailor these reports
further to fit specific needs.
Since SQL is also available in DB2/2, we have looked at ways in which auditing
could be done using a workstation running Operating System/2* (OS/2). Our
findings are documented in Chapter 5, “The Workstation Auditing Application.”
If you are interested in these applications, please contact your local IBM
representative.
The first three facilities in this list will actually extract information from the active
primary RACF database. REXX programs do not have to access the RACF
database directly. There could be an intermediate step where the RACF profiles
can either be extracted to a data set in a format that your program can use, or
reports produced by some other means where the output is then massaged
either into a more meaningful report or maybe even into RACF commands that
will actually modify the RACF database.
You can enter RACF LIST commands directly in the foreground during a TSO
terminal session or by using RACF ISPF panels, and in the background by using
a batch job. Entering RACF commands under TSO is faster than being lead
LD DA(′ PAY.DATA.*′ ) AUTHUSER DSNS
INFORMATION FOR DATASET PAY.DATA.* (G)
AUDITING
--------
FAILURES(READ)
NOTIFY
--------
NO USER TO BE NOTIFIED
GLOBALAUDIT
-----------
NONE
NO INSTALLATION DATA
SECURITY LEVEL
------------------------------------------
NO SECURITY LEVEL
CATEGORIES
----------
NO CATEGORIES
SECLABEL
--------
NO SECLABEL
ID ACCESS
-------- -------
PAYCLK READ
PAYMST UPDATE
P001 UPDATE
Figure 1. RACF Command Output
The SEARCH command has numerous options and will not be covered in this
document. If you need more information, refer to Expanding the Capabilities of
the RACF SEARCH Command . The most frequently used feature of the SEARCH
command is the CLIST option. You can make an inquiry of the current RACF
database and, because this, build a CLIST for execution. For example, if you
wanted to change the universal access of all your data set profiles, you would
execute these two commands in sequence:
SEARCH NOMASK CLASS(DATASET) GENERIC CLIST(′ ALTDSD ′ , ′ GENERIC UACC(NONE)′ )
EXEC EXEC.RACF.CLIST
This would search the RACF database for all data set profiles starting with your
user ID and then build an ALTDSD RACF command for each data set profile
found. You then need only execute the CLIST, and the universal access would
be changed to NONE for every dataset profile.
One of the SEARCH command′s few disadvantages is that it will execute only
against the active primary RACF database. For example, if you have the system
SPECIAL attribute, you can list all the profiles that a user has access to by
issuing the following command:
SEARCH NOMASK USER(user ID)
The problem with this is that the user ID must be valid. In other words, you
cannot search the RACF database for occurrences of a user ID, even if it were
left on multiple access lists, as long as there is no valid user profile for that user
ID. There can also be a performance impact if a SPECIAL user does an
extensive search of the RACF database during prime shift. The solution is to run
these commands in batch during off-shift hours.
The strength of the utility is its ability to scan the RACF database for groups, or
user ID′s supplied to the program by an authorized user. As with most
programs, simplistic input normally means simplistic output.
If you have none of these RACF user attributes, the job will still run, but only
your own user ID will be listed. You cannot decentralize this function unless you
give the submittor the required level of RACF user authority. This is further
restricted by the user′s scope-of-group.
The output from IRRUT100 is either printed or written to a data set for further
manipulation. Figure 2 gives an example of the output from the IRRUT100 utility.
IRRUT100 would find the following group occurrences, among others:
• The group name, as it exists in the RACF database.
• The group is a subgroup of group xx.
• The group is a superior group of group xx.
• The group is the default group for user xx.
• The group is a connect group for user xx.
• The group name is the high-level qualifier of data set profile xx.
• The group has standard access to data set profile xx.
• The group is the owner of data set profile xx.
For user IDs, IRRUT100 provides information on the following occurrences:
• The user ID, as it exists in the RACF database.
• The user is a member of (connected to) group xx.
• The user is the owner of data set profile xx.
• The user has standard access to data set profile xx.
• The user has standard access to general resource xx.
• The user is to be notified when access violations occur against data set xx.
• The user is to be notified when access violations occur against general
resource xx.
• The user is the resource owner of profile xx.
The problem with this utility is that all it does is to identify the occurrences of the
user ID or group and nothing else. To manipulate the references, you have to
There are some other issues as well, such as a certain performance impact.
Let′s look at performance first.
The perceived problem with IRRUT100 is that the RACF manager will enqueue on
each RACF profile when checking to see whether the supplied group or user ID
is found. In a large database during prime shift, this could create a potential
performance problem for tasks that also need to enqueue on the RACF
database. It is strongly recommended that IRRUT100 be run only off-shift. You
should also try to search for all user IDs and group names in a single job (you
can specify up to 1000 names), since you will still only enqueue once for every
RACF profile (and the scanning for multiple names is negligible).
As you can see, IRRUT100 is a powerful utility but must be used with judgement
so as not to affect performance in a negative way. The output will mostly need
further processing before it is presented to a nonexpert.
Occurrences of IBMUSER
Figure 2. Sample IRRUT100 Output
To present this data in a more meaningful way, the RACF administrator had to
learn either Assembler and macro programming, or one of the more modern
programming/command languages such as REXX (on VM and MVS) or CLISTs
(MVS only). You may even want to combine Assembler programs and REXX
procedures.
Although Assembler programs are very powerful, they require a high level of
skill and an understanding of the RACF database structure. The only advantage
is that you could interrogate every field in the entire RACF database. All this
must be done on live RACF databases; we cannot use copies of the database
since the Assembler macros used to read the RACF database only work on the
live databases; copies and backups cannot be used.
The only problem is that you must provide input that the EXEC can use; for
example, the output from IRRUT100 or even the output from a RACF command
like that in Figure 1 on page 4. This means that if you choose IRRUT100, you
must run it before executing a CLIST or REXX program. Remembering that
IRRUT100 can affect performance of the system, this is not a good idea unless it
is done after prime shift.
You will also need UPDATE access to the RACF database when executing
IRRDBU00.
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ Description: Check all of the data set standard access lists and │
│ verify that each user ID is a valid user or │
│ group ID │
│ │
│ Tables Accessed: SQL │
│ |DS_ACCESS| - A list of dataset authorities │
│ |AUTH_IDS| - A list of valid user/group IDs │
│ │
└─────────────────────────────────────────────────────────────────────┘
SELECT
DSACC_NAME
,DSACC_AUTH_ID
,DSACC_ACCESS
,DSACC_ACCESS_CNT
FROM
USER01.DS_ACCESS X
WHERE NOT EXISTS
( SELECT *
FROM
USER01.AUTH_IDS
WHERE
X.DSACC_AUTH_ID=AUTHID_NAME
)
ORDER BY 1
;
Figure 3. Sample SQL Query
By changing the SQL statement slightly, you could produce the necessary RACF
commands to clean up the RACF database directly.
Figure 4. Sample Report
Command and subcommand processing starts when you enter the TSO
command RACFRW or run the report writer as a batch job. You can specify the
RACF Report Writer subcommands SELECT, EVENT LIST, SUMMARY and END.
The SELECT and EVENT subcommands specify which input records the RACFRW
should select to generate the report. The reports are formatted by using the
LIST subcommand to list each SMF record you select and the SUMMARY
subcommand to format and print a summary listing of the selected SMF records.
RACF Report Writer formats the report according to the specifications in the LIST
and SUMMARY subcommand.
Three reports show sample output from the RACF Report Writer.
A Listing of options set in the RACF installation is shown in Figure 5, the RACF
Report Writer Listing of Status Records.
DATE TIME SYSID MISC. OPTIONS EXITS CLASS PROT STAT AUD GEN GCMD GLBL GLST RLST LOPT
90.053 12:17:41 R190 ORIGIN: SETROPTS DATASET YES YES NO YES YES YES DFLT
TERMUACC: READ USER NO
CMNDVIOL: YES GROUP NO
LOGSPEC: YES RVARSMBR YES NO NO YES YES YES DFLT
RACINIT: STATS RACFVARS YES NO NO YES YES YES DFLT
ADSP: ACTIVE SECLABEL YES NO NO YES YES YES DFLT
REALDSN: NO DASDVOL NO NO NO YES YES YES DFLT
JES: GDASDVOL NO NO NO DFLT
BATCHALLRACF TAPEVOL YES NO NO YES YES YES DFLT
XBMALLRACF TERMINAL YES NO NO YES YES YES DFLT
EARLYVERIFY GTERMINL YES NO NO DFLT
APPL NO NO NO YES YES YES DFLT
TAPEDSN: NO TIMS NO NO NO YES YES YES DFLT
PROT-ALL: NO GIMS NO NO NO DFLT
PROGCTL: NO AIMS NO NO NO YES YES YES DFLT
OPERAUDIT: NO TCICSTRN NO NO NO YES YES YES DFLT
ERASE: YES GCICSTRN NO NO NO DFLT
NOSECLEVEL PCICSPSB NO NO NO YES YES YES DFLT
ALL QCICSPSB NO NO NO DFLT
SECLEVELAUDITING INACTIVE GLOBAL NO NO NO DFLT
EGN: INACTIVE GMBR NO NO NO YES YES YES DFLT
SESSIONINTERVAL 30 DSNR NO NO NO YES YES YES DFLT
JES B1 SECURITY: FACILITY NO NO NO YES YES YES DFLT
NJEUSERID: UNKUSER VMMDISK NO NO NO YES YES YES DFLT
UNDEFINEDUSER: ++++++++ VMRDR NO NO NO YES YES YES DFLT
DEFAULT LANGUAGE CODES: SECDATA NO NO NO DFLT
PRIMARY CODE: ENU PROGRAM NO NO NO DFLT
SECONDARY CODE: ENU APPCLU NO NO NO YES YES YES DFLT
APPLAUDIT: YES
JESJOBS YES NO NO YES YES YES DFLT
JESINPUT YES NO NO YES YES YES DFLT
CONSOLE YES NO NO YES YES YES YES DFLT
TEMPDSN YES NO NO YES YES YES DFLT
DIRAUTH YES NO NO YES YES YES DFLT
SURROGAT YES NO NO YES YES YES DFLT
NODMBR YES NO NO YES YES YES DFLT
NODES YES NO NO YES YES YES DFLT
OTHER OPTIONS -
′ LIST OF GROUPS′ ACC ESS CHECKING IS ACTIVE
SINGLE LEVEL NAMES N OT ALLOWED
INTERVAL: 253 DAYS
HISTORY: NONE
REVOKE: NO
WARNING: NONE
INACTIVE: NO
NO PASSWORD SYNTAX R ULES
SECURITY OPTIONS:
SECLABELCONTROL: INA CTIVE
CATDSNS: INA CTIVE
MLQUIET: INA CTIVE
MLSTABLE: INA CTIVE
MLS: INA CTIVE
MLACTIVE: INA CTIVE
GENERICOWNER: INA CTIVE
SECLABELAUDIT: INA CTIVE
COMPATMODE: INA CTIVE
The resource access by users is shown in Figure 7, the RACF Report Writer
Resource by User Summary Report.
Note: As mentioned in the RACF Auditors Guide , the RACF Report Writer is no
longer the IBM-recommended utility for processing RACF audit records. The
report writer supports existing audit records for releases prior to 2.1. It does not
support most of the audit records introduced for the new functions in 2.1.
You must either have the AUDITOR attribute to run the DSMON or must have
READ authority to the profile that protects DSMON as a program module.
Refer to the RACF Auditors Guide for a complete overview of the usage of the
DSMON.
The RACF SMF Data Unload Utility is implemented in the form of exits USER2
and USER3 for the SMF Dump Utility (IFASMFDP). The corresponding module
names are IRRADU00 and IRRADU86 respectively.
Figure 8 shows a sample JCL to invoke the RACF SMF Data Unload Utility.
Refer to the RACF Macros and Interfaces for more information.
//USER01 JOB Job card
//UNLOAD EXEC PGM=IFASMFDP
//DUMPIN DD DISP=SYS1.MANA
//DUMPOUT DD DUMMY
//OUTDD DD DISP=OLD,DSN=USER01.SMF.IRRADU00
//ADUPRINT DD SYSOUT=*
//SYSRINT DD SYSOUT=*
//SYSIN DD *
// USER2(IRRADU00) USER3(IRRADU86)
// DATE(94210)
// START(0800)
// END(1700)
// SIS(SYS1)
/*
Figure 8. Sample JCL to Invoke the SMF Data Unload Utility
There are two members in the SYS1.SAMPLIB dataset that show how to define
DB2 tables and how to load RACF SMF Data Unload Utility data into these tables.
There is also a member with some samples to do SQL queries to the SMF data
tables.
EPDM is a product for collecting performance data, summarizing it, and saving
it in a DB2 database.
EPDM can generate graphic and tabular reports using systems management
data it stores in its DB2 database.
EPDM gets performance data about systems from various log data sets, such as
the System Management Facilities (SMF) log dataset in MVS or from the
Information Management System (IMS) log dataset.
Once SMF data has been stored in the EPDM database, the EPDM reporting
dialog lets you report on the data in a variety of formats. When you use the
reporting dialog to display or print a report, EPDM runs a corresponding QMF
query to retrieve data from the database, and to display or print the results as
specified in the associated QMF form.
Since you can specify to EPDM the SMF records to be used for reporting, you
can also specify that you want reports for the three RACF related SMF records:
• RACF processing (SMF record type 80)
• RACF initialization (SMF record type 81)
• RACF audit record for data sets (SMF record type 83)
Refer to the EPDM General Information and to EPDM Administration Guide for
more information.
Report Batch Group Search Options Other Help
------------------------------------------------------------------------
EPDM Reports ROW 277 TO 288
Command ===> ___________________________________________________________
/ Report ID
_ MVS Jobs with RACF S913 Abends, Daily MVS54
_ RACF AUDITOR User Commands - Auditor Report RACF04
_ RACF Command Failures - Auditor Report RACF02
_ RACF Logon/Job Failures RACF01
_ RACF OPERATIONS User Access - Auditor Report RACF05
_ RACF Resource Access Failures RACF06
_ RACF Resource Accesses RACF07
_ RACF SPECIAL User Commands - Auditor Report RACF03
Figure 9. RACF Related Reports on the EPDM Selection Panel
Two sample reports from EPDM are shown. Figure 10 shows the resource
access failure report.
MVS
system User RACF Account Job
id group userid field1 Date Time name
------ -------- -------- -------- ---------- -------- --------
1120 GROUP1 USER01 - 1994-08-16 11:15:09 TAPE01
Figure 11. EPDM Report of MVS Jobs That Produced RACF S913 ABENDs
This chapter discusses an auditing application and the steps necessary to install
it at a customer site. Refer to 1.1, “How to Order Materials Discussed in This
Document” on page 2 for information on how you may obtain a copy of the
auditing application.
The reports that are shown are the result of REXX programs which are invoked
as the result of the selections made. The Query Management Facility (QMF) is
used as the query manager software to execute queries and to format the
output.
The auditing application uses data extracted from the System Management
Facility (SMF) datasets to build its reports. However, the data as logged in the
SMF datasets is not directly usable to QMF, but must first be unloaded by the
RACF SMF Data Unload Utility and then loaded into the DB2 format. The
necessary steps are documented in the RACF Auditor ′ s Guide .
You may be able to use older versions of DB2, but we have not tested the
auditing application using other versions of the above program products. For
QMF, you need the Version 3 Release 1.1, since this is the first release that
included the REXX callable interface.
The installation of the auditing application does not require any modifications to
be done to your operating system or the RACF database.
The userid .RACF can be replaced with whatever qualifiers you prefer. Having
received these data sets on your system, you are ready for the following steps:
1. Modify your TSO/ISPF LOGON procedure or allocation command list to
include the EXEC data set and the PANELS data set. The PANELS data set is
concatenated before your other panel data sets. The procedure used as a
basis should have the necessary data sets and specifications to allow you to
run DB2 and QMF.
2. The auditing application base panel RACF01 (Figure 12) is the base panel
from which you chose the reports you wish to run. You start the application
by whatever selection your installation has chosen.
RACF reporting
===> _____________________________________________________________
A - Audit reports
Q - QMF -- Query Management Facility
Figure 12. Auditing Application Base Panel - RACF01
3. On the RACF01 panel, enter the INSTALL command which will take you to
the RACFIMPO panel shown in Figure 13. On this panel, enter the names of
the EXP.DATA, QUERY, PROC, and FORM data sets that you have just
received.
RACF EXPORT / IMPORT
===> __________________________________________________________________________
_
Figure 13. RACFIMPO Panel
4. When the QMF IMPORT starts, you will see messages on your terminal
telling you what objects are being imported. If you do not receive these
messages, or if you get error messages, try correcting the errors if you can,
or contact someone who can help you. After the IMPORT is done, you will
be back at the RACFIMPO panel and should now press PF3 to return to the
base panel. Your next choice on the base panel should be selection “0” to
update your user parameters. The panel ID is RACFPARM and is shown in
Figure 14.
RACF reporting
===> __________________________________________________________________
QMF / PDF
Data interchange : TEMPFILE______________________________
Report browsing QMF____ QMF or BROWSE for ISPF browse
Appendix A, “Sample CLIST for Starting the Report Application” on page 61,
provides an example of a CLIST that is used to allocate the necessary data sets
for our reporting application. The CLIST name (DB23RACF) is given as the first
command to be executed on your LOGON panel, or it could be given from a TSO
READY prompt.
Your ISPF primary panel has to be changed to include selections for the
application, and the “userid.RACF.PANELS” library contains member DB23PRIM
that includes the “rr” and “rrr” selections. Both the “rr” and “rrr” selections
take you to the RACF01 panel, the difference being that the “rr” selection starts
QMF before showing the RACF01 panel. The “rrr” selection goes directly to the
RACF01 panel, and QMF is started when you enter a report selection.
You will have to either modify your own standard primary panel to include these
selections or make them available by including the supplied DB23PRIM panel in
the ISPPLIB concatenation.
For the DB23RACF CLIST to be executed when entered from the LOGON panel or
a READY prompt, it must be installed in one of the libraries concatenated under
your SYSPROC DD card in your LOGON procedure.
All the other REXX procedures that are used by the reporting application are
found in the “userid.RACF.EXEC” library.
The REXX language interface used in the application is available only with QMF
Version 3 Release 1.1 or later; therefore, if you do not have this release
installed, you cannot run the application as it is.
QMF lets you use the PF key that has been defined as you “print” key to print
the reports that you are producing. The CLIST in Appendix A, “Sample CLIST
for Starting the Report Application” on page 61, shows you a sample allocation
for the DSQPRINT data set for printing reports to SYSOUT. Your installation can
also define the print function to allow reports to go directly to specific printers.
This section describes how to use the auditing application and the various
reports that you can obtain.
Audit Reports
===> __________________________________________________________________
1 - Summary of events
2 - Access to a specific resource
3 - Events by a specific user
4 - Events due to special attributes or logging options
Figure 15. Audit Reports Main Panel
The audit reports main panel has the following major sections:
• Summary of events
• Access to a specific resource
• Events by a specific user
• Events because of special attributes or logging options
Names can either be fully qualified names or generic names, the latter meaning
you give just a part of the name. You can also specify that you want all names
that contain a given set of characters, such as %LINK% (will select both
SYS1.LINKLIB and PLI.SYMLINK). Specifying, for example SYS1, will be
expanded into SYS1% by the application. In other words, all the names you
specify will be considered generic.
System: If SMF records are written by more than one system, you can select
only events for a specific system by specifying the SMF-ID of this system. If no
SMF-ID is specified, events from all systems are selected.
If you do not know the SMF-ID, the RACF Data Security Monitor (DSMON) will list
it for you in the System Report .
Date: You can specify a start date and an end date to get output for a specific
date or a specific period. The allowable formats are:
Time: You may specify a start time and an end time to limit the output to a
particular time window. The allowable formats are:
If you specify yes on the panels, you will get violation reports only. Specifying
no or blank will result in all events being included into the report.
RACF AUDIT Summary ROW 1 TO 14
===> __________________________________________________________________
Event
Sel Type Qualifier Count Violation
Figure 16. Event Summary Report
All events of a given type and the event qualifier for these events along with the
number of such events are listed. Any event type which involves one or more
violations is indicated by a highlighted ″YES″ in the ″Violation″ column.
This list gives you an overview of what kind of events have taken place in the
specified time range. The RACF Macros and Interfaces lists all events types and
also lists all possible event qualifiers.
By entering an S in the selection column (Sel), you will get a detailed list about
this event type including the user ID that caused the event, the event type, the
event qualifier and the resource name. A sample report is shown in Figure 17.
Figure 17. Detailed Event List
By entering an U into the selection column, you will get a detail report of the
users that have caused the corresponding events.
By entering an R into the selection column, you will get a detail report of the
resources involved in the corresponding events. A sample list is shown in
Figure 18.
RACF AUDITOR RESOURCE REPORT
DAUDIT
ACCESS / INSAUTH
Figure 18. RACF Auditor Resource Report
These reports may help you to find all violations against a specific resource and
to find the user who caused the violation. It is also possible to monitor all
accesses to a specific resource, providing the log options are set to log all
accesses.
Audit Reports - Resource Name Selection
===> __________________________________________________________________
Figure 19. Resource Selection Panel
For each resource matching the selection criteria specified on the panel, you will
see information about the access event type, the access event qualifier, the user
ID of the user accessing the resource, the date and time of the access and if
there was an access violation. A sample report is shown in Figure 20
SYS1.ADRDSSU
ACC
ACC ACC EVT ACC ACC
EVENT EVENT USER DATE TIME ACC
TYPE QUAL ID WRITTEN WRITTEN VIOLATION
-------- -------- -------- ---------- -------- ---------
ACCESS SUCCESS USER01 16.08.1994 07.19.53 N
ACCESS SUCCESS USER02 16.08.1994 07.22.11 N
ACCESS INSAUTH USER03 16.08.1994 07.23.32 Y
SYS1.PARMLIB
ACC
ACC ACC EVT ACC ACC
EVENT EVENT USER DATE TIME ACC
TYPE QUAL ID WRITTEN WRITTEN VIOLATION
-------- -------- -------- ---------- -------- ---------
ACCESS INSAUTH USER01 16.08.1994 06.29.53 Y
ACCESS SUCCESS USER03 16.08.1994 08.27.32 N
Figure 20. Access to Specific Resources
Option 3 takes you the a panel shown in Figure 21, where you can specify a user
ID.
Audit Reports - User ID Selection
===> __________________________________________________________________
Figure 21. User Selection Panel
Figure 22 shows a sample report for a specific user ID. This report gives you an
overview of the event types, the corresponding event qualifiers and the number
of events caused by specific users. It also shows if there were any violations.
If no user ID is specified, an overview for all users is created. The user IDs are
listed in alphabetic order.
To get more detailed information, you can use this report for further processing.
Typing an S in the selection column (SEL) will get you a detailed list with more
information, including the resource name and the date and time the event
occurred.
Event
Sel Userid Type Qualifier Count Violation
Figure 22. Specific User Report
Audit Reports - Special Attributes and Logging Options
===> __________________________________________________________________
Figure 23. Special Attributes and Logging Options Selection Panel
You can get a report about events where access has been granted because of
the following RACF authorities:
• SPECIAL
• OPERATIONS
• AUDIT
Whenever an access is granted because of these attributes, an SMF record is
written, providing the corresponding audit options are set.
Besides these records, an auditor can specify special audit options in SETROPTS
to enforce SMF logging. For example, the auditor can log all activities for a
specific user or all activities for a user with the RACF SPECIAL attribute.
Specifying a Y for one or more of the above selections will tell what events to
include in the resulting report. If you make no selections at all, a report of all
events will be produced.
You can get a list of all users with the SPECIAL, OPERATIONS or AUDIT
attributes by specifying the selected attributes report using the DSMON.
You can also use DSMON to obtain which classes are defined in the class
descriptor table and whether there is auditing for the specified class.
EVT
EVENT EVENT USER DATE TIME VIO- AUTH. LOG.
TYPE QUAL ID WRITTEN WRITTEN LAT. S O A C U S A
-------- -------- -------- ---------- -------- ---- ------ --------
ALTUSER SUCCESS USER02 08/16/1994 05:53 PM N Y N N Y N Y N
ALTUSER SUCCESS USER02 08/16/1994 05:53 PM N Y N N Y N Y N
PERMIT SUCCESS USER03 08/16/1994 05:54 PM N Y N N Y N Y N
PERMIT SUCCESS USER03 08/16/1994 05:55 PM N Y N N Y N Y N
ADDSD SUCCESS USER01 08/16/1994 06:11 PM N Y N N Y N Y N
DEFINE SUCCESS USER01 08/16/1994 06:11 PM N Y N N Y N N Y
PERMIT SUCCESS USER02 08/16/1994 06:11 PM N Y N N Y N Y N
PERMIT SUCCESS USER01 08/16/1994 06:23 PM N Y N N Y N Y N
PERMIT SUCCESS USER02 08/16/1994 06:23 PM N Y N N Y N Y N
PERMIT SUCCESS USER01 08/16/1994 06:49 PM N Y N N Y N Y N
PERMIT SUCCESS USER01 08/16/1994 06:49 PM N Y N N Y N Y N
PERMIT SUCCESS USER02 08/16/1994 06:49 PM N Y N N Y N Y N
PERMIT SUCCESS USER01 08/16/1994 06:49 PM N Y N N Y N Y N
PERMIT SUCCESS USER01 08/16/1994 06:49 PM N Y N N Y N Y N
PERMIT SUCCESS USER02 08/16/1994 06:49 PM N Y N N Y N Y N
Figure 24. Events Due to SPECIAL Attribute Report
The report shows the event type, the event qualifier, the user ID, the date and
the time a violation was detected. There is also an indicator that shows the
reason for logging. There are three indicators for authorization:
A ″Y″ shows that the logging indicator was on; a ″N″ says logging was set to off.
If you want to make your changes permanent, you have to save the FORM or the
QUERY in the relevant members in QMF. Naturally, you have to have the
necessary QMF and DB2 authorizations, but it is all fairly straight forward.
If you write your SAVE command in the format “SAVE FORM AS ?,” you will be
prompted for the name, the confirmation option, the share option, and a possible
comment. The prompt option should help to remind you to save your objects
with the share option specified as “yes.”
If you are reporting on profiles with long names, you will find that these names
come out truncated in the standard reports. We chose to do this in order to
keep report line lengths to 80 characters where possible (no scrolling
necessary).
If you find it necessary to display longer names, just change the QMF FORM
specifications for the report in question, going back to the base panel and then
into option Q.
The same thing holds true if for some reason you would like to change the sort
order for a particular report. In this case, you would go into option Q, press PF6
to get the query that was last used, change the sort order, and run the query
Note that there is a naming convention for naming objects, in other words;
procedures, queries, and forms in the package. All the names start with RCF,
and the fourth character is P for a procedure, Q for a query, or F for a form. The
last four characters are usually the same for a procedure that runs a query
specifying a form.
However, some forms are used for multiple queries, so when changing a form
for one query, you may be changing the form used by other reports as well.
When in doubt, start by saving the original object under another name; then if
you need it, you know where to find it. Always specify your objects as shared
when you save them.
The REXX EXECs that are invoked from the ISPF panels are all stored in the
xxxxxxxx.RACF.EXEC data set and should be a good starting point for
understanding the REXX callable interface in QMF.
Part of the user interface is the guidance provided by the help panels. The help
panels are tailored to the way your installation uses the help function, and quite
often it can be helpful to provide the user with the phone number of the help
desk or a person to contact.
If you see a need for changing the information presented on the panels, you
could always enter PANELID in your command field, after which you can obtain
the name of the current panel. This then could lead you to the panel you want to
change.
When translating the panel text to your own language, we would suggest you
save the originals in a separate library for later reference, if need be.
To make the changing of help panels easier, we have chosen to adopt a naming
convention for the help panels as follows:
• All help panel names start with the characters RCFH.
• The next character tells us which panel the help text applies to, where B is
for the base panel, U is for the user based reports panel, and G is for the
group based reports panel.
• The last character or characters correspond to the option number on the
respective panels.
The U and G panels have an extra selection with an option of zero. To explain
how you fill in the selection fields at the top of the panel, let us try an example -
you want to change the help text for the report “Profiles Owned by the User”
(option 6 on the user based reports panel). The panel name is RCFH-U-6 if you
follow the logic just explained.
You should be a little cautious when changing the panel attributes since, if you
use the default attributes, you cannot use the percent sign in the panel text.
Since you need the percent sign to signify a generic character in QMF, you have
to define your attributes accordingly, at least for those panels that describe how
user IDs, names, and the like should be entered. For more information, please
read the note in Section 4.2, “Selecting Reports” on page 25. Other than that,
you can change your help screens as you like using the attributes that are
normal for your installation.
It has been mentioned earlier in this book that the amounts of data involved in
security auditing can be quite large. However, with distributed administration
and auditing, the amounts of information for each individual auditor need not be
larger than what could presumably be handled in a good size workstation. As
an alternative, the audit databases could still be stored in a host computer, while
the actual analysis could be performed on a workstation.
We assume that both OS/2 and DB2/2 are fairly well known, while DDCS/2 might
be less well known. The DDCS/2 program provides a connection that expands
the DB2/2 client/server environment to a client/server environment that can
access host database management systems.
Clients supported by DB2/2, by using the DDCS/2 program, can define database
objects and manipulate data in the DB2, SQL/DS and OS/400* database
management systems. For more information on this product, see Distributed
Database Connection Services User ′ s Guide or DDCS/2 Guide V2 with DB2/2 .
The Visualizer Query for OS/2 and Visualizer Development for OS/2 products are
used as workstation query and presentation tools enabling users to produce
applications for viewing tables and presenting the results in a fast and efficient
manner. The Visualizer Development application includes an object-oriented
language that is used to make prototypes of applications and production
applications.
The only thing that you can rely on to be provided with each audit log record is
the user ID. This means that if you have a clean RACF structure where all users
Knowing this, you could also limit the information that a given auditor can see in
terms of user information. However, it is not equally easy to draw the line when
it comes to datasets and other resources.
Not all of the log records contain owner information, and you are now entering
the zone where you would have to match information from the RACF database
with the audit information. In other words, if I see an access to a resource, I
would have to know which group owns the resource and then obtain who the
auditor is, knowing the group name.
By combining the information in the tables that is built from the data produced
by the RACF Database Unload Utility and the RACF SMF Data Unload Utility, you
can obtain the likely auditor for each log record, but it takes more than a simple
view or a simple SELECT statement to find the information.
Audit record selection based purely on user ID will probably give some
conflicting results. As a group auditor, you are certainly interested in finding out
what your users are doing in terms of access violations and the like. However, if
there had been an access violation on say ″SYS1.LINKLIB″, the owner of that
dataset is definitely interested in knowing this too. The question then is who
should really be the recipient of the access violation message, the owner of the
resource or the owner of the user who did it? The answer is probably that both
parties should see the violation, and this then makes record selection based
purely on user ID impossible.
The aim of the above discussion is to show the need for a clean, clear-cut policy
for profile ownership and database structure for the RACF environment. If your
structure is clean, you should be able to build additional tables with the
information provided by the utility programs mentioned before. However, you
should not plan building these scope-of-group tables dynamically for each
request, but rather when you have loaded your RACF database tables with new
information.
Having created scope-of-group tables for your auditors, you would then be in a
position where you can filter from all the other data the data that a specific
auditor is allowed to see. Again, it is not simple but you will probably have to do
it in an environment where distributed administration and auditing is being used.
If you only want to use the tables that are stored on your host system to do
reporting, you will have to create views or construct some other kind of filter to
be used for every query made by the auditors from their workstations.
To install the workstation auditing application, you only need to copy the file
containing the application to a suitable OS/2 folder. In so doing you will now
have an icon created onto you desktop from which to start the application.
Note: For information on how you may obtain a copy of the application that is
discussed in this chapter, see 1.1, “How to Order Materials Discussed in This
Document” on page 2.
The choice of location for the databases to be used for reporting is up to the
installation. The application does not have to be changed depending on the
placement of the databases; it just requires changing a few parameter values,
and you need a process to load the tables onto the workstation. The decision to
be made, therefore, is one of available storage space in the workstation and
what level of protection you can provide for the information on the workstation.
Be advised that to run the auditing application using host based DB2 tables, you
need the proper authorizations. Your user ID will, therefore, have to be a RACF
defined user ID with the necessary DB2 authorizations.
The database names shown and the user ID of the table owner are initialized for
you by the Visualizer application. You can use the drop list to the right to
choose one of the available names. The name of the system to be audited is the
SMF ID of the MVS/ESA* system that produced the log records. Again the
Visualizer application will find the available values for you.
Having made your choices, you should select the Create Query button. This will
result in a window similar to the one shown in Figure 27.
The window shows a summary of all events that have taken place based on the
selected DB2 table information. To create a report, you only need to select the
event type that you are interested in and select the Create Query button from the
main window. This will result in yet another window with all the field names
defined in the DB2 table for this event type.
Figure 28 shows the a partial list of field names in the record logged when you
do the RACF PERMIT command.
Figure 28. Field Names in the DB2 Table for a Specific Event
From the list of fields names, you may now select the ones you want to see in
your report. A few of the fields are already selected by default (as shown by the
highlighting) and are deselected by selecting them again. When you are
Remember that as long as you want to be able to view the report on your
workstation, you should not be selecting too many fields at once, since this
results in your having to scroll left and right all the time. Soon enough you will
determine which fields contain the important data as opposed to data that occurs
many times in different shapes.
Figure 29 shows a report on the check file access events (FACCESS) which are
produced when you run OpenEdition* MVS.
Figure 29. Sample Report for Check File Access in OpenEdition MVS
5.2.3 Visualizer Query for OS/2 and Visualizer Development for OS/2
Figure 30 shows the process of building your own Visualizer Query application.
What you do is define your menu consisting of a menu bar entry and a list of
menu choices. You then define one or more windows, which are areas with a
border used for conducting a dialog with the user or presenting a view of an
object.
The Visualizer Development for OS/2 will then analyze your menu and your
window contents and produce skeleton code that corresponds to your definitions.
An application developer can now take the skeleton code and fill in the actions
that are to take place because of a certain selection and so forth.
When the programmer is done filling in the code for the various actions,
selections and options, the code is sent to the special compiler to be built into
an application for you.
The Visualizer Development for OS/2 is only needed by those who write
applications. The Visualizer Query for OS/2 is needed if your applications use
functions like SQL queries.
The above introduction to the Visualizer product is only there to give you a
feeling for what the products do. In developing the sample auditing application
for the OS/2 workstation, the Visualizer products made the development quite
easy, and this would show that whatever additional tailoring needs to be done
should also be fast and easy.
The REXX procedure does SQL queries to produce predefined auditing reports.
If you are familiar with REXX and SQL, it should be fairly easy to add additional
queries to the REXX procedure and to tailor the reports to suit your needs.
The REXX procedure presupposes that you have the DB2/2 and the DDCS/2
products installed in your workstation and that your DB2 tables are loaded in
your MVS host. This being the case, you will have to establish contact with the
host by going into the DB2/2 Command Line Processor . You establish contact by
issuing the command:
DBM START USING DATABASE database_name
If you have not already signed on, you will be prompted to do so now.
Still from your DB2/2 Command Line Processor window you can now start your
auditing procedure by entering audit. The REXX procedure main selection panel
AUDIT REPORTS
9 EXIT
Figure 31. REXX Procedure Main Selection Panel
The resource name specified when you want to look at specific resources can
either be fully qualified or partial by using the generic character (a percent sign).
ACC_RES_NAME ACC_CLASS ACC_NAME ACC_OWN_ID ACC_VIOLATION USER_ID
------------ --------- -------- ---------- ------------ -------
4 record(s) selected.
Figure 32. Sample Report on Resource Accesses
HDR_EVT_USER_ID HDR_EVENT_TYPE HDR_TIME_WRITTEN HDR_DATE_WRITTEN
--------------- -------------- ---------------- ---------------
7 record(s) selected.
Figure 33. Sample Report for a Specific User
PERM_EVENT_TYPE USER_ID TIME_WRITTEN DATE_WRITTEN PERM_RES_NAME
--------------- ------- ------------ ------------ --------------
Figure 34. Sample RACF Command Report
This chapter describes the various reports that you can obtain with the enhanced
reporting application. These reports are selected via selections 1 through 12 on
the auditing application base panel as shown in Figure 12 on page 20.
You can also do your lookup by entering a user name or partial name as it
appears in the user name field in the RACF profile. Having entered your
selection, press Enter and see either the single entry you requested or a
selection list from which you pick the entry of your choice by entering any
character before the user ID.
Your chosen user ID now appears on your selection panel; only now there is a
user ID and the name of that user as entered in the user name field. You can
now choose to see the various reports about this user, starting with the groups
the user is connected to and ending with RACF profiles that are within the scope
of your selected user.
Userid _________
User name
Figure 35. RACFUS01 User Based Reports Panel
User Connect Groups: Gives you the names of the groups to which the user is
connected. Normally, the groups represent the different duties of the person and
are used to give that person access to resources necessary to perform these
duties.
An auditor or administrator would use this report to verify that a user is not
connected to groups that represent duties that a person no longer has or is not
supposed to have.
The report could be used to obtain which part of the group structure is under a
particular user′s control and if this is in line with the installation policy.
General Resource Profiles Owned by the User: All resource profiles that are not
data set profiles are considered general resource profiles. This report shows all
the nondata set profiles that your chosen user owns.
Use the report to verify that administrators have not forgotten to specify correct
ownership when defining resources. When you define a resource profile, the
RACF default is to make you the owner of the profile and to put you on the
access list with ALTER authority for all profiles that are not based on your user
ID. In order not to have administrators on all access lists and as owners for all
the resources they have defined, installations often build their own RACF panels
or REXX EXECs to remove the access list entries and to enforce group ownership
instead of the normal default.
Dataset Profiles Owned by the User: Normally, a user should own only those
data sets for which he carries the full legal responsibility. In most installations,
resources tend to be owned by groups that represent a given task or
responsibility. However, a user should at least own the data set profiles for his
personal data sets (userid.** and so on).
The report is used to verify that a user owns only those data set profiles that he
is supposed to own. Frequently, this report shows administrators as owners of
those data sets for which they have defined the profiles, simply because the
ADDSD command makes the issuer the default owner. Use this report to identify
errors where administrators have forgotten to specify the correct ownership for
resources that they define.
Profiles Owned by the User: This report lists all the profiles that your chosen
user owns. The report is not limited to resources but includes users and groups.
For a normal RACF user, this is probably the fastest way of finding out what the
user owns. For local administrators, where they have not monitored profile
ownership, the report might be quite large, and you may elect to print it out.
Individual ownership is not the normal or preferred way of handling RACF profile
ownership. Use this report to check that individuals have not been defined as
the owners of resource profiles or users and groups. Where such ownership is
present, use the report as the basis for changing the ownership to the proper
group in your RACF structure.
User Resource Access Authorities: The report shows those resource profiles
that a given user ID can access, either because the user ID is on the access list
or because one or more of the user′s connect groups are on the access list. The
report also shows all resource profiles that the user is allowed to access
because the profiles either have a universal access that is not NONE or because
the ID(*) (all RACF defined users) is on the access list. The report shows the
resource class, the resource name, the access allowed, the reason for allowing
access (user ID, group name, UACC, or *) and which DB2 table was used as the
source of information. Profile names have been truncated to 30 characters to
avoid scrolling left and right for terminal output. If your profile names are often
more than 30 characters long, you just have to change the QMF form
specification to see the full name.
There are some points that auditors might want to remember when looking at
the user′s resource access authorities, as detailed in this report. The first thing
to note is the number of entries to which a universal access authority higher
than READ applies. These should be few. The data sets and other resources
where a universal access of READ applies should not include personal data sets
or group data sets other than system data sets where there is a common need
for the universal access. Often, the universal access would be better served by
allowing the access through the Global Access Table instead. The ID(*) on an
access list at an installation where you have specified SETROPTS
JES(BATCHALLRACF) is for all practical purposes equal to universal access for
that same resource. Again, you should not allow ID(*) to be used extensively by
resource owners because it normally means that they have not built a valid
access list.
The report shows the group name, the owner of the group, the group′s superior
group, and the group level. A level of zero implies the highest level, and one is
added one for each next lower level. Compared to a limited groups report as
produced by DSMON, this report does not show those groups in the structure
that are not within the scope of the user.
Use this report as a system administrator or system auditor to verify that a local
administrator can administer only the structure of groups that he is supposed to.
If you find groups within the scope that are not supposed to be there, it means
either that the user has been given the group-SPECIAL attribute in the wrong
groups or that another group-SPECIAL user has made a CONNECT that is not
supposed to be there.
Resource Profiles Within the Scope of the User: This report shows those
resource profiles where the user is either on the access list as an individual user
or as a member in a group. The information presented is the profile name,
resource class, access allowed, access ID, and a reason. Some profiles may be
owned by the user, and for these profiles, the reason field is set to SCOPE and
the allowed access to ALTER.
Group Based Reports
===> __________________________________________________________________________
_
Group _________
Inst. data
9 - Scope-of-group authorities
Figure 36. RACFRY01 Group Based Reports Panel
Your chosen group will now show up on the panel from which you started, only
now there is the group name and the information from the installation data field,
where used. You can now chose to see the various reports about this group,
starting with the users connected to the group and ending with the
scope-of-group authorities.
Users Connected to the Group: The report shows which users are connected to
the group you have chosen. Both user ID and the user name are shown on the
report.
Reports showing which users are connected to a group are used in several
ways. Assuming you have a RACF database structure where you use resource
protection groups, functional groups, and administrative groups, you can use the
report to verify that there are no users connected to resource protection groups.
You could also obtain a report showing all the users in a department or group
and get it signed by the department manger or group leader. For functional
groups, you could also verify that users of that group are in fact still engaged in
the task that it represents.
Groups Owned by the Group: The report shows the groups that are owned by
your selected group, the date that the groups were created, and installation data
where present. The report shows only the groups that are directly owned by the
group, not the full scope of the group.
When you want to know what groups would have to change ownership when
deleting a group or moving it in a structure, this report is helpful. Since it shows
only the groups directly owned by the group, you know what groups are directly
affected by a change.
Users Owned by the Group: Security is a matter of having a clear policy, good
naming standards, and a structure to make security administration not only
possible, but easy. The output of a report showing what users are owned by a
particular group is, therefore, meaningful only if you have a structured ownership
of user profiles.
If you have a policy where all users are owned by the administrative group that
represents their department, this report would show you all user IDs and the
names of those individuals that work in the department. You will also have
information about when the user profiles were defined and when a user ID was
last used. All this information is used to verify that the right individuals are
owned by a group, and could also be used to match the information against the
personnel file or to make it possible to distribute information about security
violations to the proper department.
Let us assume you have a CICS* system with many applications, and you want
to control the transactions belonging to each application. To make controls
more manageable, you would define groups that represent each application.
When defining the groups, you should try to describe what the groups represent
by using the installation data field. You would then define your CICS
transactions and make the group representing the application to which the
transaction belongs the owner of the profile. Reports about the general resource
Remember that what you see in this report are the profile names that are owned
by the group. Since you may be using generic profiles, there could be additional
resources protected by the profiles listed.
Data Set Profiles Owned by the Group: The first-level qualifier of a data set
should, where possible, represent the owner of the data set. There are,
however, several data sets that are part of the operating system, program
products, or some general applications where the first-level qualifier is fixed and
where an owner is not obvious.
This report shows you the data set profiles that are owned by a given group,
giving you the data set name and the UACC that applies to the data set. Once
again, you should remember that this is not a list of the data sets that are owned
by the group but only the profiles used to protect those data sets. If you would
like to know the actual data sets that are protected by these profiles, you would
either have to run a series of LISTDSD commands with the DSNS operand or
make a query to match these profile names against a catalog listing.
Use this report to verify the existence of relevant profiles and to verify that the
UACC specified is relevant to the data sets it is protecting.
Profiles Owned by the Group: This report shows not only the general resource
profiles and the data set profiles that the group owns, but also users and groups
that the group may own. The report is a fast and easy way of verifying that an
administrative group owns only users and no other resources. In other words,
you use this report to see that your ownership rules are being followed and that
you do not mix administrative groups with functional groups or
resource-protection groups.
Group Authorities: The group authorities report lists all those RACF profiles
with the group on the access list. The group represents a task or a job, and
what the report shows is what resource profiles a user performing this task can
access. The report lists the resource class for each profile along with the profile
name, the access authority, and the DB2 table name from which the information
has been extracted.
This report is useful for verifying what resource profiles a given job or task can
access. As an auditor, you would also try to assess whether the access
authority reflects the needs of the job and the intentions of the profile owner.
You could also use the group authority report to serve as a model to define new
groups to reflect similar tasks.
Administrators and auditors should find this report useful for quickly answering
questions about the users that are connected to a group structure. They can
The user attribute columns may need a separate explanation. To fit the
information in as small a space as possible, we chose to format the listing so
that the S-REV, S-SPEC, S-OPER, and S-AUDIT headings and their group level
counterparts G-REV, G-SPEC, and so forth are written vertically. An S-REV value
of “Y” means the user is REVOKED on a system-wide basis and cannot sign on
to the system or submit a job. A G-REV value of “Y” means that the user is
revoked from this group and is not able to sign on with this group as the current
connect group or to use the authorities within this group. S-SPEC stands for the
system-wide SPECIAL attribute; OPER stands for the OPERATIONS attribute; and
AUDIT stands for the AUDITOR attribute.
The value of a report like this depends on the group structure you are looking at.
If your policy does not clearly state how resources should be owned and by
whom, then you will see random resource profiles being owned in the group
structure. If you have made a decision to have groups for resource ownership
and specific administrative groups (departments) and functional groups (jobs or
tasks), then you are likely to find the information in this report much more useful.
You can see all the resources a group administrator can handle and which group
in the structure owns the various resources. If what you see does not adhere to
your naming standards, or you see resources that do not belong there, then the
profiles should be revised accordingly.
Profiles Based on UACC: Having selected option 3 on your base panel, you will
be transferred to panel RACFVA01 where you need to fill in only the value for the
universal access of the profiles you wish to see. The resulting report shows you
the resource class name, the universal access, the owner, and the resource
name of all the resources that have the selected value for the universal access.
Profile Information: The profile information report (option 4 on your base panel)
takes you to panel RACFPF01. From this panel you can select the profile name
and the class name of the profile you wish to see, or you can do generic
selections for both profile names and class names. Specifying “V” on the
command line provides a selection list; specifying “1” provides the profiles
matching your selection.
Say that you select SYS1 as the profile name and DATASET as the class name,
enter V (or leave blank) for a selection list, and press Enter. A selection list of
all profiles starting with SYS1 will be produced. Enter any character in the “Sel”
field for the profile you want, and a report is produced for that profile. If you
enter exactly the same information for profile name and class name as in the
previous example, but enter a “1” instead for profile report, you will obtain
reports for all data set profiles that start with SYS1.
The selection lists that are the result of your entering a V or leaving the
command field blank contain information about the resource class, profile name,
universal access, and profile owner. Profile reports contain all the information
from the selection list and access list information, including the authorization ID,
access allowed, programmer name or group installation data (where applicable),
and a message indicating whether the authorization ID is a group or a user. You
may also see a message saying “UNKNOWN USER OR UNKNOWN GROUP,”
indicating that the identity on the access list no longer exists in the RACF data
base.
Profile reports are handy where you do not remember the class or the name of a
resource you are looking for. By specifying the class and the profile name
generically, you get a selection list from which you can find what you were
looking for.
The obvious fast check to make based on this report is to see that the universal
access specified is within the expected range and that warning mode has not
been left on for profiles that should really work in fail mode. You should also
Compressed User Profile Report: This report is designed to take just a few
important fields from every user profile and to show them on a single line. The
information includes the user ID, programmer name, default group, date and
time of last access. When in BROWSE, mode you can use the report as an easy
way to find the programmer name for a given user ID or to find the user ID for a
given programmer name.
From an auditing point of view, the report gives you information about the last
time a user logged on to the system, which can sometimes be helpful in
determining whether a user ID is active. For user IDs that have never logged on
to the system, the last access date and time are shown as “-,” and this kind of a
user ID is one potential starting point for a system attack. Most hackers and
system programmers know that the initial password for a newly defined user is
equal to the name of the user′s default group, unless the person that does the
define explicitly changes that. Some installations always use a fixed password
as the initial password, which is yet another risk for attack.
Compressed Group Profile Report: The compressed group profile report shows
all the groups that were defined in the RACF data base when the
database-unload was made. The groups are shown in alphabetical order, and
the information consists of group name, group owner, the group′s superior
group, and subgroup or subgroups if there are any. The group report is
probably easiest to view in BROWSE mode since it is fairly extensive in large
installations, and you most probably want to be able to use FIND commands.
The compressed group profile report is used for many purposes, such as to
obtain what subgroups there are, where a group belongs in the group structure,
who owns the group, and whether it is user or group owned. If you use a
naming convention for your groups, you may also be able to understand the
structure of neighboring groups. It is a fast way of locating groups and
understanding their place in the group structure when you are planning changing
that structure, deleting groups, adding groups or changing ownership.
Compressed Data Set Profile Report: Depending on the number of data sets at
your installation and the number of profiles defined for each high level qualifier,
this could be a very large report. BROWSE mode is recommended for viewing at
the terminal since you are most likely to want to use the FIND command. The
report shows you the data set name, the owner of the profile, the universal
access, whether warning mode is in effect for the profile, and the security level
assigned. The security level shows the numeric equivalent of the security level
as explained under the compressed general resource profile report.
The points of interest in this report include the obvious loopholes, such as UACC
of UPDATE or higher, warning mode in effect for the profile, and no security level
specified where your policy demands otherwise. These examples are but a few
of the uses for the report. The BROWSE command can help you find information
in the report. Say that you want to locate all profiles that have warning mode
specified. You start by entering COLS on the command line, which gives you a
ruler at the top of your screen. By looking at the ruler you can determine that
the warning mode indicator is in, say, column 69. You then enter FIND Y 69, and
BROWSE will find the first occurrence of the warning mode indicator with a value
of Y. To repeat the search for the next occurrence, you would normally just have
to press PF5 (repeat FIND). The same principle applies for finding a UACC with
Since the compressed reports are fairly large, you should make certain that the
data set used to hold them is large enough. If you get an X37 ABEND because of
a larger than usual report, you can split the screen and make a reallocation
under ISPF without having to leave the reporting tool.
Users and Their Connect Groups: This report is a bit different from the other
summary reports in that you have a multiline output format for every user. A
sample report is shown in Figure 37 to make it a bit easier to understand the
structure of the output.
USERS AND THEIR CONNECT GROUPS
The first line shows the user ID, the programmer name, creation date for this
profile, date last accessed, time last accessed, and a 4-character combination
showing whether the user has the REVOKE, AUDITOR, SPECIAL, or OPERATIONS
attribute on a system-wide basis. The second line and the lines thereafter show
information about the groups that the user is connected to. For each group,
there is a line showing the group ID and what attributes apply for this user on a
group basis, showing the REVOKE, AUDITOR, SPECIAL, and OPERATIONS
attributes as showed by the headings.
Groups and Connected Users: This is a large report that looks a bit crowded
when you first look at it. The following information is shown for each user to
group connection: Group name, programmer name, user ID, the owner of the
user profile, user profile creation date, user last access date, user last access
time, and whether the user is revoked. The report is sorted on group name and
user ID.
Because the number of fields in this report, you will have to scroll left and right
to see all the information about a user, but for most purposes the leftmost part of
the report should be enough. What you are probably interested in is which users
are connected to a given group, whether those users belong there, and whether
the ownership is correct. You may also check for users that have never logged
on, but the compressed user profile report is better for that purpose. Use the
BROWSE mode for fast search of groups of interest and to find information.
REPORT ON ALL OCCURRENCES OF THE NAME SYS1
CLASS/
GROUP/
WHERE FOUND RESOURCE NAME / INSTALLATION DATA USER
------------------- -------------------------------------------- --------
CONNECT OWNER AARON TEST
CONNECT OWNER USER2 TSO
DATA SET ACC. LIST SYS1.* ALTER
DATA SET ACC. LIST SYS1.HASPACE UPDATE
DATA SET ACC. LIST SYS1.HASPCKPT UPDATE
DATA SET ACC. LIST SYS1.LINKLIB UPDATE
DATA SET ACC. LIST SYS1.RACFMXA UPDATE
DATA SET OWNER ACFNCP.*
DATA SET OWNER AMS.*
DATA SET OWNER APL2.*
DATA SET OWNER CATALOG.*
GENERAL RES. OWNER ICHDSM00 PROGRAM
GENERAL RES. OWNER MXXE83 DASDVOL
GROUP OWNER ACFNCP SYS1
GROUP SUBGROUP ACFNCP
USER CONNECT DATA G ALLMOND
USER DEFAULT GROUP DFHSM OPERATOR ID HSMOPER
USERID OWNER TT AARON
Figure 38. Sample Occurrences of the Group SYS1 (Extracts) Report
The fields shown in the output are so varied that it is not possible to describe the
contents of the different fields in the headings.
This report shows you all the IRRUT100 information and some additional
information sorted so that you can see all the profiles where your user or group
is defined. With a little creativity, you may even use the report to build all the
commands to pattern another user or group with the same authorities or scope.
Table 1 shows what the contents of the different fields are, depending on the
contents of the “WHERE FOUND” field.
Type of checking
(PROGRAM, CONSOLE,
DS. COND. ACC. LIST Data set name
TERMINAL or
JESINPUT)
The resulting commands from the clean-up operation are be written to a data set
that is named hlq.COMMAND.OUTPUT, where hlq is equal to your user ID. The
commands are executed directly out of this data set, or if the resulting number of
commands is large (as suggested by the ending message), you should create a
job to run the commands under TSO in batch. The benefits of running the
commands in batch are that you do not tie up your terminal while the commands
are executing, and you are provided with a log for what was done and can check
the log for possible errors.
Note: The commands for both data sets and general resources are written to
the same data set, so you should either save the commands before executing
the other option, or change the REXX EXECs (RACFPEDS and RACFPEGR) to
write the results to separate data sets.
H O
help desk 34 object-oriented language 37
help panel structure 35 OpenEdition file access 42
help panels 34 Operating System/2 37
hints and tips 33, 34 OPERATIONS attribute 32, 54
how to order 2 order information 2
OS/2 37
OS/2 environment 37
I OS/400 37
IBM Database 2 OS/2 37 output browse 22, 52, 56
IFASMFDP 14 output find 52, 56
import command 20, 23 owner of the resource 38
install command 20, 23 ownership 52
installation data field 51, 53
installation policy 48
installing ISPF Panels 22 P
installing the auditing application 20 panel DB23PRIM 22
installing the QMF Part 23 panel RACF01 20
installing the REXX Programs 22 panel RACFIMPO 21
installing workstation auditing application 39 panel RACFPARM 21
Interactive System Productivity Facility 19 performance of IRRUT100 7
IRRADU00 14 predefined reports 19
IRRADU86 14 prerequisites for the auditing application 19
IRRDBU00 8 producing reports using DB2/2 and SQL 43
IRRUT100 6 profile information 55
IRRUT100 performance 7 profile-based reports 54
ISPF help panel structure 35 profiles based on UACC 54
ISPF hints and tips 34 profiles owned by the group 53
ISPPLIB 22 profiles owned by the user 49
profiles within the scope of the user 50
J
JES(BATCHALLRACF) 50 Q
QMF 26, 47
QMF administrator task 33
L QMF export 23
limiting amount of data 26 QMF files 23
LIST subcommand 10 QMF form 23
list-of-groups 50 QMF hints and tips 33
LISTDSD 3, 53 QMF import 21, 23
LISTGRP 3 QMF installation 23
LISTUSER 3 QMF proc 23
loading SMF data 25 QMF procedure creator 22
location for the databases 39 QMF query 23
logging indicator 32 QMF reports and queries 33
logging options 31 QMF security aspects 33
M R
modifying QMF reports and queries 33 RACF commands report 45
modifying the auditing package 34 RACF commands reports 44
RACF Cross Reference Utility 6
RACF Cross Reference Utility - IRRUT100 3
Index 67
users and their connect groups 57
users connected to the group 52
users owned by the group 52
users owned by the user 48
using the auditing application 25
using the workstation auditing application 40
V
violation 27
violation reports 26
Visualizer Development for OS/2 37, 42
Visualizer Query for OS/2 37, 38, 39, 42
W
workstation auditing application 2, 37
Your feedback is very important to help us maintain the quality of ITSO Bulletins. Please fill out this
questionnaire and return it using one of the following methods:
• Mail it to the address on the back (postage paid in U.S. only)
• Give it to an IBM marketing representative for mailing
• Fax it to: Your International Access Code + 1 914 432 8246
• Send a note to [email protected]
Name Address
Company or Organization
Phone No.
IBML
ITSO Technical Bulletin Evaluation RED000 Cut or Fold
Along Line
GG24-4453-00
NO POSTAGE
NECESSARY
IF MAILED IN THE
UNITED STATES
Cut or Fold
GG24-4453-00 Along Line
IBML
Printed in U.S.A.
GG24-4453-00