sg244820 RACF Audit tools
sg244820 RACF Audit tools
December 1996
IBML
SG24-4820-00
International Technical Support Organization
December 1996
Take Note!
Before using this information and the product it supports, be sure to read the general information in
Appendix E, “Special Notices” on page 105.
This edition applies to Release Number 1 of OS/390 Security Server, for use with the OS/390 Operating System
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.
Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
Preface . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
How This Redbook Is Organized . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
The Team That Wrote This Redbook . . . . . . . . . . . . . . . . . . . . . . . . viii
Comments Welcome . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix
Chapter 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 How to Get Materials Discussed in This Redbook . . . . . . . . . . . . . . 2
Chapter 4. Using the Audit and Report Application and Sample Reports . . . 29
4.1 Loading the Actual SMF Data . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2 Selecting Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
4.2.1 User-Based Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
4.2.2 Group-Based Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
4.2.3 Profile-Based Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.2.4 Summary Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.3 Audit Reports . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.3.1 RACF Remote Sharing Information (RRSF) . . . . . . . . . . . . . . . . 60
4.4 Auditing and Reporting Enterprise-Wide . . . . . . . . . . . . . . . . . . . . 61
4.5 Auditing the Internet Connection Server for OS/390 . . . . . . . . . . . . . 62
4.6 QMF Hints and Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.6.1 QMF Security Aspects . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.6.2 Modifying QMF Reports and Queries . . . . . . . . . . . . . . . . . . . 63
4.7 Modifying the Auditing Package . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.8 ISPF Hints and Tips . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.8.1 ISPF Help Panel Structure . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
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.
The document is primarily intended for RACF auditors, but RACF security
administrators might also find the information useful and valuable.
Cees Kingma
Thanks to Mark Nelson from RACF development for his invaluable contributions
to this project.
Preface ix
x OS/390 Security Server Auditing
Chapter 1. Introduction
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:
• Verify 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 and 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 an entirely 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 ad hoc
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 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
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 ad hoc queries. The alternative is for someone to build an application
with a set of predefined reports that can easily be adapted to fit the individual
installation.
The auditing and report application described in this book consists of the
following parts:
• An auditing application that uses the ISPF, REXX EXECs, and QMF in OS/390.
This application is based on the RACF SMF Data Unload Utility.
• The enhanced reporting application that uses ISPF, REXX EXECs, and QMF in
OS/390. This application is based on the RACF Database Unload Utility.
We would have liked to write the application using only REXX and SQL, but we
found that it would have made the logic much more complicated and required
much more programming. The QMF forms facility and EXPORT/IMPORT
functions have simplified coding substantially and should make further tailoring
much 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 Audit and
Report 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.
In 4.2, “Selecting Reports” on page 29, we explain how to use the enhanced
reporting application.
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 to
produce reports by some other means, where the output is then massaged
either into a more meaningful report, or into RACF commands that will modify
the RACF database.
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, by using the CLIST option, build a CLIST for execution. For
example, if you want to change the universal access of all your data set profiles,
execute these two commands in sequence:
SEARCH NOMASK CLASS(DATASET) GENERIC CLIST(′ ALTDSD ′ , ′ GENERIC UACC(NONE)′ )
EXEC EXEC.RACF.CLIST
This searches 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 only need to execute the CLIST, and the universal access is changed to
NONE for every data set profile.
The strength of the utility is its ability to scan the RACF database for groups or a
user ID 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.
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 it must be used with
judgement so as not to affect performance in a negative way. The output will
usually 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), or even 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 backups or the database
since the Assembler macros used to read the RACF database only work on the
live databases.
REXX (on VM and MVS) or CLISTs (MVS only) are the easiest to use since they
are easy to learn and can easily manipulate output data like that from a RACF
command. Changes are made and tested without recompiling. These modern
languages are also easy to debug.
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. This is not a good idea
unless it is done after prime shift, because IRRUT100 can affect performance of
the system.
You will also need UPDATE access to the RACF database when executing
IRRDBU00.
JCL samples of how to run this new utility program can be found in
SYS1.SAMPLIB(RACJCL).
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ 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
)
AND
X.DSACC_AUTH_ID¬=′*′
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 subcommands.
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 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
You can find complete details about DFSORT and ICETOOL in DFSORT
Application Programming Guide.
Figure 12. ICETOOL JCL and Statements for Events Report
The report is created in a single step using two ICETOOL operators, COPY and
DISPLAY. Here is how:
1. The COPY operator is used to select the records for the report and copy
them to a temporary data set to be used for the DISPLAY operator. FROM
specifies the ddname (IN) of the input data set. TO specifies the ddname
(TEMP) of the output data set. Any ddname can be used for FROM and TO.
USING specifies the ddname (SELUCNTL) of a data set containing DFSORT
control statements. ′CNTL′ is always appended to the four characters
specified for USING.
The INCLUDE statement in SELUCNTL selects only those records which have
the string ′ ACCESS ′ in positions 8 to 15 AND the string ′ MARKN ′ in
positions 63 to 70. Because the strings are shorter than the fields, DFSORT
pads the strings with blanks at the end. The OPTION VLSHRT statement
tells DFSORT to continue operating even though it finds variable length input
records that are too short to contain all the INCLUDE fields.
2. The DISPLAY operator is used to create the report from the records selected
by the COPY operator. DISPLAY produces simple, tailored or sectioned
reports in column format with titles, page numbers, date and time stamps,
headings, and statistics, as needed. ICETOOL does all of the work of
formatting the report elements you specify.
Figure 13 shows a portion of the output that might be produced by this ICETOOL
job.
- 1 - Events for User MARKN 1996-02-29 05:14:49 pm
Figure 13. Part of Events Report (in EVENTS)
The report is created in a single step using two ICETOOL operators, COPY and
OCCURS. Here is how:
1. The COPY operator is used to select the records for the report and copy
them to a temporary data set to be used for the OCCURS operator. In this
case, LOGFCNTL contains the DFSORT INCLUDE statement to select the
needed records.
2. The OCCURS operator is used to create the report from the records selected
by the COPY operator. OCCURS, like DISPLAY, produces simple or tailored
reports in column format with titles, page numbers, date and time stamps
and headings, as needed. However, OCCURS counts the number of times
each field value occurs, limits the values shown to those for which the value
count meets specified criteria (HIGHER(n), LOWER(n), EQUAL(n), ALLDUPS
or NODUPS), and can print the value counts.
In this case, the ON fields specify that the report is to consist of unique
Terminal ID and Date values and their counts, but HIGHER limits the values
shown to those for which the Terminal ID and Date is found more than three
times. Thus, the values printed represent the terminals with more than three
failed logons in a single day.
Figure 15. Part of Terminals Report (in TERMS)
For example, the field for the user ID associated with an event is defined in
OS/390 Security Server (RACF) Macros and Interfaces as beginning at position
59. So 63 (59 + 4) would be used for that position in both the DFSORT INCLUDE
statement and the ICETOOL ON operand, as in Figure 12 on page 18.
This chapter discusses the prerequisites for the Audit and Report Application
and the steps necessary to install it. Refer to 1.1, “How to Get Materials
Discussed in This Redbook” on page 2 for information on how to obtain a copy
of the Audit and Report Application.
The reports that are shown are produced by 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
reports.
The Audit and Report Application uses data extracted from the RACF database
and the System Management Facility (SMF) datasets to build its reports.
However, the data in the RACF database or the information logged in the SMF
datasets is not directly usable to QMF, but must first be unloaded by the RACF
Database Unload Utility or the RACF SMF Data Unload Utility and then loaded
into DB2 tables. 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 Audit
and Report Application using other versions of the above program products. For
QMF, you need Version 3 Release 1.1, since this is the first release that includes
the REXX callable interface.
The installation of the Audit and Report 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. You might want to
concatenate your PANELS data set in front of your other panel data sets.
The TSO procedure which you will be using should include the necessary
data sets and specifications to allow you to run DB2 and QMF.
2. The Audit and Report Application base panel , RACF01 (Figure 16 on
page 25) is the panel from which you choose the reports you wish to
produce. The application is started by entering the selection (for example
″r r ″) that your installation has chosen. The selection can either be made
visible on your primary selection panel or can be hidden so that only a
limited number of people know about it. Assuming that you have chosen ″r r ″
to be your selection, then there should be an entry like the one below on
your primary selection panel.
rr,′ cmd(%racf01)′
Of course you should have your systems programmer define the panel so
that all combinations of capital letters and lower case letters are accepted.
A - Audit reports
Q - QMF -- Query Management Facility
Figure 16. Audit and Report Application Base Panel - RACF01
3. On the RACF01 panel, enter the INSTALL command which will take you to the
RACFIMPO panel shown in Figure 17. On this panel, enter the names of the
EXP.DATA, QUERY, PROC, and FORM data sets that you have previously
received.
The default assumption is that your data sets have names in which the high
level qualifier is equal to your own user ID, and the second qualifier is equal
to RACF. If these assumptions are correct, then just enter IMPORT on the
command line and press Enter. The import of the necessary QMF objects
will now start. If you have chosen other names for your data sets, please fill
in those names instead in addition to the import command, and press Enter.
Note: The alternate names have to be entered in quotes and be fully
qualified, including the ending DATA, QUERY, PROC, and FORM.
RACF EXPORT / IMPORT
===> __________________________________________________________________________
_
Figure 17. 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 to correct them or contact
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 79,
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 can 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” selection. The “rr” selection takes you to the RACF01
panel but QMF is started before the RACF01 panel is shown. This fact may
explain why there is a certain delay before the initial panel is shown.
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
the 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 your “print” key to print
the reports that you are producing. The CLIST in Appendix A, “Sample CLIST
for Starting the Report Application” on page 79, 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 Audit and Report Application and the
various reports that you can obtain.
RACF reporting
===> __________________________________________________________________________
A - Audit reports
Q - QMF -- Query Management Facility
U - Updating user parameters
Figure 19. RACF Reporting Main Reports Panel
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 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 the RRSF profiles applicable to your
selected user.
Userid _________
User name
Figure 20. RACFUS01 User-Based Reports Panel
User Connect Groups: This report 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 can use this report to verify that a user is not
connected to groups that represent duties which that user no longer has or is
not supposed to have.
The report can be used to obtain which part of the group structure is under a
particular user′s control and if this is in line with installation policy.
Chapter 4. Using the Audit and Report Application and Sample Reports 31
The report would be used to verify that users owned by another user are all part
of the same department or group and that there are no old user IDs left that
could be misused by the owner.
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 non-data 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.
Data Set 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.
RACF PROFILES OWNED BY HILDING
Figure 21. Data Set Profiles Owned by the User
Profiles Owned by the User: This report lists all the profiles that your chosen
user owns. The report is not limited to resources, but also 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.
CLASS ACCESS
NAME PROFILE NAME ALLOWED REASON DB2 TABLE
--------++---------------------- +--------++--------++----------
DATASET SYS1.KT210.MSG READ UACC DS_BD
DATASET SYS1.LINKLIB READ UACC DS_BD
DATASET TARGSMP.*.** ALTER UACC DS_BD
DATASET TARGSYS.*.** ALTER UACC DS_BD
DATASET TPNS.*.** ALTER UACC DS_BD
DATASET TPNS4.*.** ALTER UACC DS_BD
DATASET USER.*.** ALTER UACC DS_BD
DATASET VSAPL.*.** ALTER UACC DS_BD
DATASET VSF2.*.** ALTER UACC DS_BD
DATASET VSPASCAL.*.** ALTER UACC DS_BD
FACILITY DCEKERN.START.REQUEST UPDATE HILDING GENR_ACCES
FACILITY DCER003.ENTITY ALTER HILDING GENR_ACCES
GCICSTRN DKMS.CSGM UPDATE * GENR_ACCES
PROGRAM SU ALTER HILDING GENR_ACCES
STARTED SMFDMP.* ALTER HILDING GENR_ACCES
Figure 22. Profiles Owned by the User
User Resource Access Authorities: This 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 is 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.
What are your resource access authorities? This is a frequently asked question
at most installations. If you use the “list-of-groups” access checking, this report
shows you what resource profiles you are authorized to use. However, this does
not automatically translate into what actual data sets you are allowed to use,
since you have to match profiles against catalog information.
There are some points that auditors might want to remember when looking at
the user′s resource access authorities. 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
Chapter 4. Using the Audit and Report Application and Sample Reports 33
installation where you have specified SETROPTS JES(BATCHALLRACF) is
basically 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 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 access is set to ALTER.
RESOURCE PROFILES WITHIN THE SCOPE OF ROBBYM
Figure 23. Resource Profiles within the Scope of the User
RACF PROFILES WITHIN THE SCOPE OF ROBBYM
RESOURCE
CLASS UACC RESOURCE NAME
-------- -------- -----------------------
DATASET NONE ICFSMP.**
DATASET NONE ROBBYM.*
GROUP NONE ICFSMP
RRSFDATA READ DIRECT.ICF
RRSFDATA READ PWSYNC
RRSFDATA NONE RACLINK.DEFINE.ICF
STARTED NONE ANTMAIN.**
STARTED NONE ASCH.**
STARTED NONE BLSJPRMI.**
Figure 24. RACF Profiles within the Scope of the User
User Segment Information: This report lists all the user-defined segments. An
auditor or administrator can use this report to verify that a user does not have
segments defined that he is not supposed to have.
RACF SEGMENTS DEFINED FOR THIS USER PROFILE
USERID SEGMENT
-------- --------
JORDAN BASE
DCE
OMVS
TSO
Figure 25. User Segment Information
User RRSF Resources Profiles: This report shows those resource profiles
defined in the RRSFDATA class 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 shows the user ID, the class name
(RRSFDATA), Access Allowed, and the Profile Name.
Profile names have been truncated to 42 characters to avoid scrolling left and
right for terminal output. If your profile names are often more than 42 characters
long, you just have to change the QMF form specification.
Chapter 4. Using the Audit and Report Application and Sample Reports 35
RESOURCES PROFILES IN RRSFDATA CLASS
====================================
Figure 26. User RRSF Resources Profiles
Report on RRSF / DCE / OpenEdition information
===> __________________________________________________________________________
Figure 27. RACFUDCE User-Based DCE/OPENEDITION Panel
Show All Users with a DCE Segment: The report shows the RACF user ID, the
full user name, the DCE UUID, the home cell, the home UUID and the OMVS
user ID.
Figure 28. Summary Report With A l l DCE Users Defined in the System
Show All DCE Users Who Have No DCEUUIDS Profile: The report shows all
RACF user IDs with DCE segments, but there is no DCEUUIDS profile that
contains this user ID in the APPLDATA field of the profile. There can be no
cross-linking from DCE to RACF.
Show All DCE Users Who Are Not OpenEditon Users: The report shows all
RACF user IDs with DCE segments, but with no OMVS segments. These
instances are highly unlikely and are possible administration errors.
Show All OpenEdition Users: This report shows the RACF user ID, the full user
name and the Open Edition MVS user ID.
OMVS / RACF-USERID RELATED INFORMATION
======================================
Figure 29. OpenEdition User-Related Information
Show RRSF User Information (System Wide): The report shows the status of
defined password synchronization profiles in the various systems. It also shows
whether there are any pending associations either locally or remotely. You have
to keep in mind that all the reports describe that point in time when the RACF
Chapter 4. Using the Audit and Report Application and Sample Reports 37
database was copied. Before you take any action, you will have to verify that the
situation still exists by issuing RACF commands in real time.
RACF REMOTE SHARING INFORMATION
===============================
Figure 30. General RACF Remote Sharing Facility User Information
Group _________
Inst. data
Figure 31. RACFRY01 Group-Based Reports Panel
Your chosen group will now show up on the panel from which you started, along
with the information from the installation data field, where used. You can now
choose 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 in which 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 manager 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.
Chapter 4. Using the Audit and Report Application and Sample Reports 39
USERS OF THE GROUP: SYS1
Figure 32. User Connected to a Specific Group
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 profiles
that are owned by a given group in this kind of an environment are used by
administrators and auditors to verify that the resources reported on are the right
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.
GENERAL RESOURCES OWNED BY SYS1
CLASS
NAME UACC RESOURCE NAME
-------- -------- -----------------
DASDVOL READ MXXE83
PROGRAM NONE ICHDSM00
PROGRAM NONE ICHMIN00
FACILITY NONE BPX.SERVER
FACILITY NONE DCER005.ENTITY
PROGRAM NONE SU
SURROGAT NONE BPX.SRV.DCER05C
STARTED NONE FTPSERVE.*
STARTED NONE IKJTEST1.*
STARTED NONE INETD.*
Figure 33. General Resources Owned by the Group
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 want to
know the actual data sets that are protected by these profiles, you 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.
Chapter 4. Using the Audit and Report Application and Sample Reports 41
RACF PROFILES OWNED BY SYS1
RESOURCE
CLASS UACC RESOURCE NAME
+--------++--------++----------------
DATASET READ SYS1.KT210.MSG
DATASET NONE SYS1.UADS
DATASET ALTER TPNS.*.**
DATASET ALTER TPNS4.*.**
DATASET ALTER VSAPL.*.**
DATASET ALTER VSPASCAL.*.**
FACILITY NONE BPX.SERVER
FACILITY NONE DCER005.ENTITY
GROUP NONE @PL
GROUP NONE ACFNCP
Figure 34. Profiles Owned by the Group
Group Authorities: The group authorities report all of the RACF profiles that
have 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 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
also find out what attributes these users have been assigned. The last access
date is useful when trying to find user IDs that are not being used. Usually,
these user IDs should be revoked, but when a user ID has been defined and
never used, it will not be automatically revoked. Such user IDs can often pose a
danger in that they may have a default password (equal to their default group),
or the password might be a value known to most employees (always assigned to
new users).
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
SYS1 WITH SUBGROUPS AND USERS CONNECTED TO THEM
S G
S S - G G -
S - - A G - - A
- S O U - S O U
LAST R P P D R P P D
ACCESS E E E I E E E I
USERID PROGRAMMER NAME DATE V C R T V C R T
--------++--------------------++----------++-+-+-+-++-+-+-+-+
ARCHUSR2 DSM - ARCHIVAL 11/09/1994 N N N N N N N N
ARCURI ARCURI 07/06/1994 N N Y N N N N N
ARGENT RON ARGENT - N Y Y N N N N N
ALVAREZ RICARDO ALVAREZ 08/30/1995 N Y Y N N N N N
AYRESR ROB AYRES - N Y Y N N N N N
BASSI VALERIANO BASSI - N Y Y N N N N N
HILDING HILDING LANDEN - N N N N N N N N
GRAAFF PAUL DE GRAFF - N Y Y N N N N N
Figure 35. Group Hierarchy with Group Members
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.
Chapter 4. Using the Audit and Report Application and Sample Reports 43
RESOURCE PROFILES OWNED BY SYS1 OR ITS SUBGROUPS
CLASS
NAME PROFILE NAME UACC OWNER
-------- ----------------------------------------- -------- ------
$DCERACF ADMINISTRATOR ALTER ERICFI
$DCERACF SC60.CURRENT ALTER ERICFI
$DCERACF SC60.V003 ALTER ERICFI
$DCERACF SC60.V004 ALTER ERICFI
$DCERACF SC60.V005 ALTER ERICFI
$DCERACF 00000417-7c19-2f0b-9b00-10005ac95217 ALTER ERICFI
ACCTNUM ACCNT# ALTER IBMUSE
ACCTNUM ACCT# ALTER DODELL
APPCLU USIBMSC.SCDSCICS.SCDSCICS ALTER OCONNO
APPCLU USIBMSC.SCDSCICS.SCW1000I ALTER OCONNO
Figure 36. Scope of Group Authorities
Make sure that you have not specified the same Group ID for several RACF
groups which could lead to unclear access rights.
OMVS-GROUPID / RACF-GROUP-NAME RELATED INFORMATION
==================================================
RACF OMVS
GROUP GROUP
NAME ID
-------- -----------
SYS1 0
OMVSGRP 1
DCEGRP 2
TCPIPGRP 2
TSO 4
OP2 5
RACFTEST 5
OMVS 101
TTY 200
IMWEB 205
Figure 37. OpenEdition Group-Related Information
Use this report as a quick check for detecting misuse of the universal access
specification. Since universal access applies to all users (even those not defined
to RACF), you should always specify a universal access of NONE for resources
that have a real need for protection, either because they are needed for
availability reasons or because they contain classified information.
REPORT BASED ON THE UNIVERSAL ACCESS OF THE RESOURCE
CLASS
NAME UACC OWNER RESOURCE NAME
-------- -------- -------- -------------------------------------
DATASET ALTER DODELL HSM.BACK.T000422.POLAND.ISPF.I0194
DATASET ALTER DODELL HSM.BACK.T004714.P9113.S#.I0110
DATASET ALTER DODELL HSM.BACK.T011914.PIERRE.ITSC.I0117
DATASET ALTER DODELL HSM.BACK.T020422.PETERSE.TSCF.I0180
DATASET ALTER DODELL HSM.BACK.T034614.P9112KP.GUIDE.I0110
DATASET ALTER DODELL HSM.BACK.T050422.PETERSE.MISC.I0180
DATASET ALTER DODELL HSM.BACK.T054314.MICHEL.VERNON.I0110
DATASET ALTER DODELL HSM.BACK.T054614.P9113.MANUALS.I0110
DATASET ALTER DODELL HSM.BACK.T063714.FRANCK.MASTER.I0110
Figure 38. Profile Based on UACC
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 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
database.
Chapter 4. Using the Audit and Report Application and Sample Reports 45
Profile reports are handy when 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 are looking
for.
DATASET SYS1.KT210.LOAD READ SYS1
DATASET SYS1.LINKLIB READ SYS1
DCEUUIDS 05145C00-C0EE-1C8F-A NONE BOCHE
DCEUUIDS 05145C00-C0EE-1C8F-A NONE MICHEL
DCEUUIDS 05145C00-C0EE-1C8F-A NONE HILDING
DSNR DB3A.* NONE FINNTC
FACILITY DCER003.ENTITY NONE ALVAREZ
FACILITY IRRDPI00 NONE DODELL
PTKTDATA MVSESA1 NONE SILVIO2
PTKTDATA MVS3090 NONE GRAAFF
RRSFDATA AUTODIRECT.WTSCPLX1. NONE CRAIGJ
RRSFDATA RACLINK.DEFINE.ICF NONE ROBBYM
Figure 39. Profile Information
The obvious fast check to make 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 check to see that
profile ownership is by group and not user ID (providing this is your policy).
Figure 40. Compressed General Resource Report
Compressed User Profile Report: This report is designed to take just a few
important fields from every user profile and 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
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 USER PROFILE REPORT
Figure 41. Compressed User Profiles Report
Chapter 4. Using the Audit and Report Application and Sample Reports 47
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 subgroups, if there are any. The group report is 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 to
change that structure by 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 a numeric value, 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, for example, 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 a given value, or anything that you want to locate in a
fixed column of your report.
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.
Compressed OMVS Profile Report: When you use RACF commands to define
users and groups, the information RACF gathers from these commands is stored
in profiles and placed in the RACF database.
The user profile describes an individual user or a system task. Those users who
should be allowed to use the OpenEdition functions need an OMVS segment for
their user profile where to specify information specific to OpenEdition. When you
define a new OpenEdition MVS user or change the attributes for an existing user,
you can specify the following information in the OMVS segment for the user
profile:
Use the OMVS segment of the group profile to specify information about the
group′s OpenEdition MVS group ID. For example, you can use it when you
define a new OpenEdition MVS group or change the OMVS attributes for an
existing group. Users with a valid OMVS segment in their user profile and
whose default or current connect group has an OpenEdition MVS group identifier
(GID) specified can use OpenEdition MVS functions and can access OpenEdition
(HFS) files based on the GID and UID values assigned.
This report shows the information for each RACF defined user detailing USERID,
Default Group and User Name, related to the corresponding information for that
user in the OpenEdition environment including OMVS UID, OMVS Group ID,
OMVS Path, and OMVS Program.
Make sure that users have a personal UID so that you are able to ensure
individual accountability even in the OpenEdition environment (excluding super
users).
PROFILE INFORMATION FOR OPENEDITION USERS
=========================================
OMVS
RACF GROUP USER OMVS OMVS HOME DEFAULT
USERID NAME NAME UID GID PATH PROGRAM
-------- -------- --------------- ------ ------ ------------ ---------
ARGENT SYS1 RON ARGENT 20 0 /u/argent /bin/sh
ASSLING SYS2 RAINER ASSLING 356 3 /u/assling /bin/sh
AYRESR SYS1 ROB AYRES 888 0 /u/ayresr /bin/sh
BASSI SYS3 VALERIANO BASSI 39 5 /u/bassi /bin/sh
BENNO SYS1 BENNO ALADJEM 4 0 / /bin/sh
BHEU PROD BRIAN HEU 1234 56 /u/bheu /bin/sh
CELIO SYS1 CELIO COSTA 329 0 /u/celio /bin/sh
CHENS MARK SCOTT CHEN 45 14 /u/chens /bin/sh
CICSRSA SYS1 CICSRSA 66 0 / /bin/sh
CICSRS4 SYS1 CICS RESIDENT 7 0 / /bin/sh
Figure 42. Compressed OpenEdition Profile Report
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 of 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. It shows 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 a fast search of groups of interest and to find information.
Chapter 4. Using the Audit and Report Application and Sample Reports 49
Users and Their Connect Groups: This report is a bit different from the other
summary reports in that you have a multiple line output format for every user. A
sample report is shown in Figure 43 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, 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, and showing the REVOKE, AUDITOR, SPECIAL, and OPERATIONS
attributes as shown by the headings.
The report gives an auditor a fast means of checking what groups a user is
connected to (that is, what tasks this user is supposed to perform). You can also
see what special authorities apply for this user both on a system level and on a
group level. Naturally, you should check from time to time to see that the
system-level SPECIAL users have not increased and that you have no or very
few OPERATIONS users. Also, you could check users that have not logged on to
the system and users that are revoked.
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 44. 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.
Chapter 4. Using the Audit and Report Application and Sample Reports 51
Table 1 (Page 2 of 2). Interpreting the Option 11 Report
WHERE F O U N D RESOURCE NAME / INSTALLATION DATA CLASS/GROUP/USER
Type of checking
(PROGRAM, CONSOLE,
DS. COND. ACC. LIST Data set name
TERMINAL or
JESINPUT)
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
5 - Status of user association after RACLINK command
6 - ADDUSER commands issued (RRSF environment)
Figure 45. 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
Whenever you specify names in an input field on the panels of the Audit and
Report Application, you have to remember that QMF is used as a query
manager. The percent sign (%) is used as a generic (sometimes referred to as
a “wild card”) character instead of the asterisk (*), which is often the case.
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). For example, if you specify SYS1, the
application will expand it into SYS1%. In other words, all the names you specify
will be considered generic.
Limiting the Amount of Data: Depending on the audit options set in RACF, many
SMF records might be produced. To limit the amount of data produced for
specific auditing reports, all panels allow you to specify a system ID, a date
window, and a time window.
System: If SMF records are written by more than one system, you can select
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 or you can ask your systems programmer.
Chapter 4. Using the Audit and Report Application and Sample Reports 53
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 46. Event Summary Report
This list gives you an overview of what kind of events have taken place in the
specified time range. RACF Macros and Interfaces lists all event types and
possible event qualifiers.
By entering an S in the selection column (Sel), you 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 47.
EVT
EVENT EVENT USER DATE TIME RES
TYPE QUAL TERM ID WRITTEN WRITTEN NAME
-------- -------- -------- -------- ---------- -------- --------- --------
ACCESS INSAUTH A4F8X403 USER01 08/16/1994 05:00 PM SYS1.PARMLIB
ACCESS INSAUTH A4F8X403 USER02 08/16/1994 05:00 PM JES2.CANCEL.BAT
ACCESS INSAUTH DDJ8F301 USER04 08/16/1994 05:32 PM USER01.DAT
ACCESS INSAUTH DDJ8F301 USER01 08/16/1994 05:32 PM USER04.DAT
ACCESS INSAUTH DDJ8F301 USER10 08/16/1994 05:33 PM USER01.DAT
ACCESS INSAUTH USER01 08/16/1994 05:33 PM SBMVS.D.BAT
ACCESS INSAUTH USER05 08/16/1994 05:33 PM SBMVS.D.BAT
ACCESS INSAUTH USER05 08/16/1994 05:33 PM SBMVS.D.B AT
ACCESS INSAUTH DDJ8F301 USER01 08/16/1994 05:33 PM JES2.CANEL.BAT
ACCESS INSAUTH DDJ8F301 USER01 08/16/1994 05:33 PM SYS1.PARMLIB
Figure 47. Detailed Event List
By entering a 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.
The two rightmost columns of the summary report have a heading of “Resource
name / Path name” and “New resource name / Path name / File name”
respectively. Since the same form is used for many different event types, the
headings do not always make sense, nor is there always data in these columns.
This is because some event types reveal that an event took place but there is no
meaningful data to display (JOBINIT is a typical example). For OpenEdition
resources, the names shown are the path name and the file name; for file
rename operations you see the new path name. There are still many
OpenEdition event types where we have not specifically tailored the reports to
show a resource name because you would first have to decide what information
would be meaningful to audit.
Basically what you have available is a kind of skeleton from which you can mold
your own favorite report.
Chapter 4. Using the Audit and Report Application and Sample Reports 55
RACF AUDITOR RESOURCE REPORT
DAUDIT
ACCESS / INSAUTH
Figure 48. RACF Auditor Resource Report
These reports may help you find all violations against a specific resource and
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.
Option 2 takes you to the panel shown in Figure 49, where you can specify the
name of the resources you are interested in.
Audit Reports - Resource Name Selection
===> __________________________________________________________________
Figure 49. 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 50.
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 50. Access to Specific Resources
Option 3 takes you to the panel shown in Figure 51, where you can specify a
user ID.
Audit Reports - User ID Selection
===> __________________________________________________________________
Figure 51. User Selection Panel
Chapter 4. Using the Audit and Report Application and Sample Reports 57
Figure 52 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 whether 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 52. Specific User Report
Audit Reports - Special Attributes and Logging Options
===> __________________________________________________________________
Figure 53. Special Attributes and Logging Options Selection Panel
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 tells what events to
include in the resulting report. If you make no selections at all, a report of all
events is produced.
The SPECIAL and OPERATIONS attributes are very powerful RACF authorities,
and an auditor should carefully monitor the activities of these users.
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.
Chapter 4. Using the Audit and Report Application and Sample Reports 59
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 54. Events Due to SPECIAL Attribute Report
The report shows the event type, the event qualifier, the user ID, and the date
and 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; an ″N″ says logging was set to
off.
ADDUSER COMMAND
===============
Figure 55. ADDUSER Command (RRSF Environment)
Suppose we would like to share the RACF database between multiple systems,
which SMF-ID would be the right one to choose? This issue might find a solution
in the future, but right now it is an obstacle for enterprise wide reporting.
Chapter 4. Using the Audit and Report Application and Sample Reports 61
In Appendix C, “Sample REXX Procedure to Add SMF-ID” on page 101, a
sample REXX procedure is supplied which stores one character into the fifth
position of every record. This position is currently unused.
This means that all DB2 tables that are related to the RACF unload utility
(IRRDBU00), should have an additional field defined to account for the SMF-id of
the system. It also means that new indexes should be created including the
SMF-ID field. Some of the indexes used today are unique and do not allow for
duplicate entries. So you would need to create the indexes with the SMF-ID field
included to separate the data from multiple RACF databases.
To get the true SMF-ID into the DB2 tables, the single character that was loaded
into them needs to be translated to reflect the actual SMF-ID. This can be
achieved through a simple query, which updates all SMF-ID fields when they are
equal to a given character, for example :
--------------------------------------------------------------
-- SET ALL RECORDS TO SMF-ID 3090 WHEN THE LOADED FIELD IS 1
--------------------------------------------------------------
UPDATE HILDING.GROUP_BD
SET GPBD_SMF_ID = ′3090′
WHERE GPBD_SMF_ID = ′ 1 ′
This two-step process is a bit cumbersome, but currently there is no other way
of achieving this.
Be aware that if you choose this approach, you will also have to change the
reporting part of the application to include the SMF-ID.
The event type ′FACCESS′ (file access in OpenEdition) will be logged for your
GET and POST requests in the Internet Connection Server. However, mostly the
requests are done by a surrogate user such as PUBLIC and the real user behind
the request is not known to RACF. The Internet Connection Server keeps its own
logs for both errors and access requests where you can see the remote host
name (or IP address, or DNS host name), the name of the authenticated user (if
that was required), the date and time, and the request as entered. However, you
cannot directly correlate the request as entered from the browser and the file
accessed according to the report from SMF. The basic reason for this is that the
Internet Connection Server does have a configuration file that quite often results
in the conversion of the path name of the incoming request into something else.
Looking at the Internet Connection Server log file and the SMF records for file
access, we found that you can relate the date, time and file name (the part
beyond the last ′/′ in the path name).
You may wonder why a correlation of the Internet Connection Server log and the
file accesses reported by OpenEdition might be interesting. The answer is that
you could be able to identify the actual user that did the request, or at least be
Looking at all these facts, it may not be all that interesting to go through the
work of creating yet another table and some additional queries just to find some
additional information that is of limited use and not necessarily to be trusted. Of
course you may want to do it on occasion anyway, if you suspect someone is
trying to misuse information or penetrate your installation.
If you have chosen QMF as your report browsing option (see Figure 18 on
page 26), then you do not have to return to the base panel in order to change
the FORM or the QUERY; you only need to use the PF keys as shown on your
screen.
Chapter 4. Using the Audit and Report Application and Sample Reports 63
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 straightforward.
You can write your SAVE command in the format “SAVE FORM AS ?,” after
which 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 do not
specify the share option as “yes,” then only you can use that particular FORM or
QUERY.
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 (so scrolling is
necessary).
Figure 56. QMF Main Panel
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. Or you can simply press the PF key for FORM (normally PF9).
Using the same logic you may also change, for instance, 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 (by changing the ORDER BY),
and run the query again with your new sort order. The changes you make are
only temporary until you enter a SAVE command.
Note that the report application comes with a naming convention for naming
objects (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.
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 probably need to be tailored to the way your installation uses the help
function. Quite often it can be helpful to provide the user with the phone number
of the Help Desk or of a person to contact when necessary.
If you see a need for changing the information presented on the panels, you can
always enter PANELID in the command field on your screen, which shows you
the name of the current panel. Knowing this, you can modify the correct panel in
the PANELS dataset.
When translating the panel text to your own language, save the originals in a
separate library for later reference, if needed.
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, G is for the
group-based reports panel and A is for the audit reports.
• The last character or characters correspond to the option number on the
respective panels.
Chapter 4. Using the Audit and Report Application and Sample Reports 65
The U, G and A panels have an extra selection with an option of zero, which is
used to explain how to fill in the selection fields at the top of the panel.
For example, suppose 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, read the
note in section 4.3, “Audit Reports” on page 52. Other than that, you can
change your help screens as you like, using the attributes that are normal for
your installation.
When adding new selections to existing panels, or adding additional panels, you
should make sure that you are also adding the corresponding help text. Be sure
to understand the logic of how to specify help text panels and the hierarchy that
they are part of by studying how the package is built. If you are a seasoned
systems programmer that should be no problem; if you are less experienced
there are lot of examples to learn from.
This chapter is a discussion about possible ways of extending the use of the
Audit and Report Application, mainly to support alternative ways of interfacing
with DB2 information.
5.1 Introduction
As new technologies evolve, such as Internet and intranet applications, we
looked at the ways by which you can extend the reach of auditing and reporting
into these new environments.
An application programmer writes macros, which are stored on the Web Server,
letting anybody query databases using HTML forms. The results of the query are
displayed on the Web browser. The completed macros reside on the Web
Server. The development and runtime environments are illustrated in
Figure 58.
The SQL Query is dynamically created using the variables specified in the HTML
form in the SQL section. How much information people can access through the
DB2 WWW depends on the security features that you have enabled on the Web
server and for DB2, plus the contents of the HTML form and the SQL query.
To write a macro you only need to know HTML, SQL, and the few specifics of
macro design.
Chapter 5. Extending the Audit and Report Application to Support a Web Browser 69
5.5 DB2 WWW Security
The DB2 WWW has some security features, but they are dependent on the
environment in which it is running:
• Authentication
A DB2 WWW connection gateway supports two types of authentication:
− Most Web servers allow you to specify which directories on the server to
protect. You can also have your system require a user ID and password
for people accessing files in directories of your choice. See the
administrator′s guide for your Web server to determine your system′ s
capabilities.
− DB2 on most platforms has an authentication mechanism for database
access that can allow access to tables and columns for certain users.
You can use the special variables, LOGIN and PASSWORD, in the DB2
WWW Connection to pass information into the authentication routine in
DB2.
• Encryption
You can encrypt all data sent between a client and your Web server when
you use a Web server which supports the Secured Socket Layer (SSL) or the
Secured Hypertext Transfer Protocol (S-HTTP). These security measures
encrypt login IDs, passwords, and all data sent through HTML forms from the
client and all data sent from the Web Server.
• Firewall
The DB2 WWW Connection may be used with IBM′s Firewall and most other
available firewall products, which protect both the DB2 WWW Connection
server and the network from external probes or attacks.
Figure 60. OS/390 Security Server Auditing and Reporting Tool Home Page
Chapter 5. Extending the Audit and Report Application to Support a Web Browser 71
5.6.2 SMF Data Selection
This option will give you a summary of all SMF records grouped by event_type
and event_qualifier. This option resembles option A.1 in the TSO/ISPF
application.
Chapter 5. Extending the Audit and Report Application to Support a Web Browser 73
• S(elect)
This option gives a detailed overview of all records related to the selected
Event_Type and Event_Qualifier. See Figure 63.
Chapter 5. Extending the Audit and Report Application to Support a Web Browser 75
5.6.3 RACF Data Selection
This option gives you an overview of all user IDs defined to RACF. Based on this
data, it is then possible to select more detailed information. See Figure 65.
Figure 66. Detailed Overview of A l l RACF Profiles the User Has Access To
Chapter 5. Extending the Audit and Report Application to Support a Web Browser 77
• U(ser)
This option gives a more detailed overview of the RACF defined user. See
Figure 67.
5.7 Conclusion
Sample DB2 WWW macros and HTML pages are supplied in Appendix B,
“Sample DB2 WWW Macros and HTML Pages” on page 83. The DB2 WWW
Connection product does not allow for a full duplication of the TSO/ISPF-based
application. The product is limited in function. The follow-on product, Net.Data,
does allow for a full duplication of the TSO/ISPF application. The Net.Data
product for OS/390 will have REXX support, which is necessary for some of the
reports.
This appendix will give an overview of the structure of the HTML pages and
related DB2 WWW macros used in the application.
1. HOMEPAGE.HTML
This page gives the end user two options to select:
a. RACF data selection, which calls macro RACFSELECT.D2W
b. SMF data selection, which calls macro SMFSELECT.D2W
2. RACFSELECT.D2W
This macro will display all RACF user IDs. The example limits the output to
the first 10 records selected. The report will let you select more detailed
information.
a. U option
The U option will select more detailed information about the user. When
selecting option U, the LOOKUSEL.D2W macro is called.
b. R option
The R option will select all profiles (dataset and general resource) the
user has access to and the reason why. When selecting option R, the
LOOKURES.D2W macro is called.
3. SMFSELECT.D2W
This macro will display all SMF records grouped by event_type and
event_qualifier. From here on, it is possible to further select detailed
information.
a. U option
The U option will select all records of that specific event_type and
event_qualifier grouped by user ID. When selecting option U, the
LOOKUSER.D2W macro is called.
b. R option
The R option will select all records of that specific event_type and
event_qualifier and show the related resource information. When
selecting option U, the LOOKRES.D2W macro is called.
c. S option
The S option will select all records of that specific event_type and
event_qualifier and show the complete record created. When selecting
option S, the LOOKSEL.D2W macro is called.
<p>
<TABLE WIDTH=480 BORDER=0>
<TR VALIGN=TOP>
<TD>
</TD>
</TABLE>
%EXEC_SQL(second)
<hr>
<FONT size=-1>
<CENTER>
<A href=″ / BonusPak2/index.htmls″>
These pages were created as samples for the IBM OS/390 Security Server A.R.T.<br
The data and information presented are for demonstration purposes only.
The following REXX procedure inserts a one-character field into the RACF
database unload file to resemble an SMF-ID of the related MVS system.
C.1 ADDSYSID
/* REXX - Start of Specifications ***********************************/
/* */
/* EXEC Name: ADDSYSID */
/* */
/* Function: Insert a single character representation of the */
/* SMF System ID of the system upon which this utility */
/* executes into each of the IRRDBU00 records at */
/* column 5. This column is left blank by IRRDBU00. */
/* */
/* The character that is inserted is determined in */
/* the ″SELECT″ clause at label set_SMF_ID */
/* */
/* Input: The output of the RACF Data Base Unload Utility, */
/* allocated to DD name INDD. */
/* */
/* Output: A modified version of the input data set in which */
/* the SMF system ID has been inserted into each record */
/* at column 5. This data set is allocated to DD name */
/* OUTDD. */
/* */
/*------------------------------------------------------------------*/
/* */
/* Notice: This sample is provided for tutorial purposes only. */
/* It has not been submitted to any formal IBM testing */
/* This source is distributed on an ″as-is″ basis, */
/* without any warranties either expressed or implied. */
/* */
/* (c) Copyright 1996 IBM Corporation */
/* */
/* End of Specifications ********************************************/
/********************************************************************/
/*%PAGE */
/* Initializations */
/********************************************************************/
OFF = 0
ON = 1
record_count=0
address TSO
eof = ′ NO′ /* show no eof yet */
/********************************************************************/
/* Return codes */
/********************************************************************/
good_rc=0
execio_read_error=200
execio_write_error=201
/********************************************************************/
/* - Retrieve the SMF system ID, System name, and MVS level. */
/* - Display each of these. */
/********************************************************************/
set_SMF_ID:
/********************************************************************/
/* - Set the one-character value that is being inserted into the */
/* IRRDBU00 record at column 5. In this example, this character */
/* is selected based on the SMF_system_ID. */
/********************************************************************/
select
when SMF_system_ID=′ VMSP′ then IRRDBU00_ID=′ V′
when SMF_system_ID=′ IM13′ then IRRDBU00_ID=′ I′
when SMF_system_ID=′ AQTS′ then IRRDBU00_ID=′ A′
otherwise IRRDBU00_ID=′ ? ′
end
The following procedure describes how to obtain the Audit and Report
Application using the File Transfer Protocol (FTP) through the Internet.
ftp://lscftp.pok.ibm.com/pub/racf/mvs
1. Log in as anonymous
2. Password is your e-mail adress
3. Perform a “ C D ” to the “/pub/racf/mvs/os390art” directory
4. Change to binary mode by typing “ b i n a r y ”
5. The following files will be there:
• os390art.xmit.panels
Contains ISPF panels
• os390art.xmit.rexx
Contains REXX procedures
• os390art.xmit.exp.data
Used by QMF for loading QMF objects
• os390art.xmit.query
Contains QMF queries
• os390art.xmit.proc
Contains QMF procedures
• os390art.xmit.form
Contains QMF forms
After you receive these files, you can upload them to your MVS system through a
file transfer program (FTP or IND$FILE).
Make sure that these are uploaded as binary files. The files should then be
processed with the TSO receive command:
RECEIVE INDATASET(dsname)
For further installation instructions see Chapter 3, “Installing the Audit and
Report Application” on page 23
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.
Licensees of this program who wish to have information about it for the purpose
of enabling: (i) the exchange of information between independently created
programs and other programs (including this one) and (ii) the mutual use of the
information which has been exchanged, should contact IBM Corporation, Dept.
600A, Mail Drop 1329, Somers, NY 10589 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.
CICS DATABASE 2
DB2 DFSORT
Enterprise System/3090 Enterprise Systems Architecture/390
IBM MVS/ESA
OpenEdition OS/390
QMF RACF
The publications listed in this section are considered particularly suitable for a
more detailed discussion of the topics covered in this document.
REXX Publications
• TSO/E Version 2 REXX/MVS User ′ s Guide , SC28-1882
• TSO/E Version 2 REXX/MVS Reference , SC28-1883
DFSORT Publication
• DFSORT Application Programming Guide , SC33-4035
IBM Internet Connection Secure Server
• Up and Running , GC31-8312
• Webmaster ′ s Guide , GC31-8288
• How to Secure the Internet Connection Server for MVS/ESA , SG24-4803
• Web Programming Guide , available in HTML format from your server′s Front
Page or in PDF format from this URL: http://www.ics.raleigh.ibm.com
This information was current at the time of publication, but is continually subject to change. The latest
information may be found at URL http://www.redbooks.ibm.com.
IBMMAIL Internet
In United States: usib6fpl at ibmmail [email protected]
In Canada: caibmbkz at ibmmail [email protected]
Outside North America: dkibmbsh at ibmmail [email protected]
• Telephone orders
• 1-800-IBM-4FAX (United States) or (+1) 415 855 43 29 (Outside USA) — ask for:
Index # 4421 Abstracts of new redbooks
Index # 4422 IBM redbooks
Index # 4420 Redbooks for last six months
• Direct Services - send note to [email protected]
• On the World Wide Web
Redbooks Home Page http://www.redbooks.ibm.com
IBM Direct Publications Catalog http://www.elink.ibmlink.ibm.com/pbl/pbl
• Internet Listserver
With an Internet E-mail address, anyone can subscribe to an IBM Announcement Listserver. To initiate the
service, send an E-mail note to [email protected] with the keyword subscribe in the body of
the note (leave the subject line blank).
• Please put me on the mailing list for updated versions of the IBM Redbook Catalog.
Company
Address
We accept American Express, Diners, Eurocard, Master Card, and Visa. Payment by credit card not
available in all countries. Signature mandatory for credit card payment.
C F
CICS 41 FIND command 26
Class audit options 59 Firewall 70
CLIST DB23RACF 27 FTP 103
CLIST processing 5
collecting SMF data 15
command processing 10 G
compressed data set profile report 48 general resource profiles owned by the user 32
compressed general resource report 46 general resources owned by the group 40
compressed group profile report 48 Global Access Table 34
compressed user profile report 47 granting access to DB2 tables 63
Cross Reference Utility 6 group administrator 34
group authorities 42
group hierarchy with group members 42
D group-AUDITOR 6
Data Security Monitor 13 group-based reports 38
data set profiles owned by the group 41 group-SPECIAL 6, 31, 34, 43
Database Unload Utility 9 groups and connected users 49
dataset profiles owned by the user 32 groups owned by the group 40
date 54 groups owned by the user 31
DB2 8, 14, 15 groups under user control 34
DB2 subsystem name 26
DB2 table access 63
DB2 table creator 26
I P
ICETOOL 17 panel DB23PRIM 27
IFASMFDP 14 panel RACF01 24
import command 24, 27 panel RACFIMPO 25
install command 24, 27 panel RACFPARM 26
installation data field 38, 41 performance of IRRUT100 7
installation policy 31 predefined reports 23
installing ISPF Panels 27 prerequisites for the Audit and Report
installing the Audit and Report Application 24 Application 23
installing the QMF Part 27 profile information 45
installing the REXX Programs 27 profile-based reports 44
Interactive System Productivity Facility 23 profiles based on UACC 45
Internet 67, 103 profiles owned by the group 41
Intranet 67 profiles owned by the user 32
IRRADU00 14 profiles within the scope of the user 34
IRRADU86 14
IRRDBU00 8
IRRUT100 6 Q
IRRUT100 performance 7 QMF 30, 53
ISPF help panel structure 65 QMF administrator task 63
ISPF hints and tips 65 QMF export 27
ISPPLIB 27 QMF files 27
QMF form 27
QMF hints and tips 63
J QMF import 26, 27
JES(BATCHALLRACF) 34 QMF installation 27
QMF proc 27
QMF procedure creator 26
L QMF query 27
limiting amount of data 53 QMF reports and queries 63
LIST subcommand 10 QMF security aspects 63
list-of-groups 33
LISTDSD 3, 41
LISTGRP 3 R
LISTUSER 3 RACF Cross Reference Utility 6
loading SMF data 29 RACF Cross Reference Utility IRRUT100 3
logging indicator 60 RACF Data Security Monitor 3
logging options 58 RACF Data Security Monitor (DSMON) 53
RACF Database Unload Utility 1, 3, 8
RACF LIST commands 3
M RACF Remote Sharing Information 60
modifying QMF reports and queries 63 RACF Report Writer 3, 10
modifying the auditing package 65 RACF SEARCH command 3, 5
RACF SMF data collection 15
RACF SMF Data Unload Utility 1, 3, 14, 29
N RACF01 panel 24
naming conventions 24, 65
RACFIMPO panel 25
S
sample DB2 WWW macros 83 U
sample HTML pages 83 universal access 33, 34, 41
sample query 8 unknown GROUP 45
sample reports 29 unknown USER 45
scope of the user 34 user audit 60
scope-of-group 39, 40, 63 user audit options 59
scope-of-group authorities 43 user connect groups 31
SEARCH 5 user resource access authorities 33
SECDATA 46 user-based reports 30
SECLEVEL 46 users and their connect groups 50
security 70 users connected to the group 39
security aspects of QMF 63 users owned by the group 40
SELECT subcommand 10 users owned by the user 31
selecting reports 29, 52 using the Audit and Report Application 29
sequential file 8, 14
SETROPTS 34
SETROPTS audit options 59
V
violation 54
SMF 10, 15
violation reports 54
SMF data collection 15
SMF Dump Utility 14
SMF records 10
SMF unload 29
W
Web browser 67, 69
SMF-ID 53
source code for the Audit and Report Application 2
SPECIAL 6
SPECIAL attribute 43, 59
special attributes events 58
special audit options 59
Index 115
IBML
Printed in U.S.A.
SG24-4820-00