Comparison of History Log and Job Log to the Audit Journal
Question: I was conducting a security review on a client’s AS/400, and he told me that he uses the history log and job log to monitor his AS/400. He does not have the audit journal activated. What are these logs, and do the history log and job log serve the same function as the audit journal? What benefits, if any, would the audit journal give my client?
Answer: All AS/400s have a history log that records job start/stop information, the messages sent to the system operator, and some authority violations. The history log was implemented on the system before the AS/400 supported auditing. The Display Log (DSPLOG) command can be used to view the history log.
The job log is a record of all of the CL commands issued and related messages that were sent during the execution of a job on the system. The level of detail retained is based upon the message logging level (LOG parameter) of the individual job. Users who perform malicious actions can delete the information from the job log or delete the job log after it has been created (if they have enough authority). The purpose of the job log is to assist in problem resolution; it is not meant to be used as an audit tool. OS/400 has no good tools to search the job log. The main purpose of the job log is for problem resolution in the event that a job abnormally terminates. My article “Managing Job Logs” in the May 1997 issue of MC describes how to prevent users from deleting their job logs.
The audit journal is a more complete record of information than either the history log or the job log. The audit journal cannot be altered, but both the history log and job log are subject to modification. The audit journal allows the installation to select what information is recorded and provides tools to search the recorded information. The only advantage of the history log and job log is that they are automatically created by the system; the audit journal requires that the system manager set up the audit journal. I recommend using auditing as it has better selection and analysis tools, plus it’s more complete and tamperproof.
Naming the Audit Journal
Question: Where are the audit logs stored within the AS/400 system? Are there any naming conventions for the audit log?
Answer: The AS/400 stores audit data in a journal receiver. Journal receivers are created and named by the installation’s system administrator and follow the same naming rules as any other OS/400 object name. The journal receivers where the audit data is stored can be in any library on the system, except QTEMP. The audit journal must be in the QSYS library and must be named QAUDJRN.
You do not need to know the library (directory) where the journal receivers are stored. You display the data by referencing the audit journal using the Display Journal (DSPJRN) command as follows:
DSPJRN JRN(QSYS/QAUDJRN)
The additional parameters on the DSPJRN command allow you to select data for specific users, date/time ranges, and specific types of events.
To determine the name of the currently attached journal receiver, use the Work with Journal Attributes (WRKJRNA) command.
Is Menu Security Adequate?
Question: I need your expertise to solve an AS/400 security discussion. Menu security can prevent command line access so that an individual cannot create havoc. While object level security is the way to go, if an administrator chose not to use object level security, would the system still be fairly secure? How easy is it to get command line access in an environment where your initial sign-on puts you directly into an application and your sign-off of that application logs you out?
Answer: In your note, you talk about menu security but do not explicitly say that users have LMTCPB(*YES) in their user profiles. Just limiting users by initial program access is not adequate, and the user profiles must specify LMTCPB(*YES) to assist in the prevention of command line access.
When users have LMTCPB(*YES) in their user profile (no command line access), it is difficult (impossible) for users from a fixed function display (dumb terminal) to get other access unless the applications are poorly written. However, PC users have alternatives that create exposures.
When users access the AS/400 from a PC (and many do), then the knowledgeable user can use other techniques to get around limitations imposed by the absence of command line access:
• Users connected over the Internet or intranet (TCP/IP protocol) can use FTP to access files they are authorized to and even invoke OS/400 commands.
• Users of Client Access/400 and other PC connection products can use file transfer to upload and download production files.
• The Operations Navigator (GUI) allows users to move, rename, and delete objects if the user is authorized.
• Users with network access may be able to map a network drive to the AS/400 and delete and rename objects. (The users of concern are those with OS/2 or Windows 95/98, which allow longer names. The DOS and Windows 3.1 names were limited in size and extension, so most AS/400 objects were safe.)
I would view limiting your users’ command lines as the first line of defense. But depending upon the environment, object level security should also be implemented.
Restricting Group Members
Question: I have a group profile called MAPTEST, which owns four libraries. The users in the MAPTEST group have the same access to the four libraries. Let’s say now that I want one user to have access to only one library and be excluded from the other libraries, another user to have access to only two libraries and be excluded from the other libraries. How can a situation like this be handled without any complication?
Answer: AS/400 security checks the authority for objects by first checking the individual user profile before the group profiles. When there is no access for the object in the individual user profile, only then does the system check the group profiles.
Since the system checks the individual user profile first, it is easy to implement the security that you described. In the following example, assume that users (U1, U2, and U3) are members of the group profile MAPTEST and that the user profile, MAPTEST, owns the libraries LIB1, LIB2, LIB3, and LIB4.
To give U1 access to LIB4, U2 access to LIB1 and LIB4, and U3 access to all libraries, set the authority as shown in Figure 1.
LIB1
MAPTEST -- *ALL (Owner)
U1 -- *EXCLUDE
*PUBLIC -- *EXCLUDE
LIB2
MAPTEST -- *ALL (Owner)
U1 -- *EXCLUDE
U2 -- *EXCLUDE
*PUBLIC -- *EXCLUDE
LIB3
MAPTEST -- *ALL (Owner)
U1 -- *EXCLUDE
U2 -- *EXCLUDE
*PUBLIC -- *EXCLUDE
LIB4
MAPTEST -- *ALL (Owner)
*PUBLIC -- *EXCLUDE
Figure 1: Authority example restricting group members
LATEST COMMENTS
MC Press Online