Are your powerful users accountable for their actions?
Written by Robin Tatam
One of the greatest challenges an organization faces when securing an IBM i environment is protecting the system from the very people who are charged with its care: programmers, administrators, and security officers. While these power users often need access to restricted objects and commands, they rarely need that level of access 24 hours a day—and definitely not without accountability.
Setting Up Auditing
IBM i audits events into a secure repository for analysis. The Change Security Auditing (CHGSECAUD) command creates the security audit journal QAUDJRN and creates and associates the first journal receiver. By prompting the command, you can override the default journal receiver name and location and also designate the initial settings for two auditing system values: QAUDCTL acts as the auditing on/off switch; QAUDLVL designates which events are recorded for all users.
Once you establish an auditing infrastructure, you can audit system events, object accesses, and user activities.
This article focuses on user activity auditing. You can view current audit settings using normal user profile commands, but changes to the configuration can be made only with the Change User Auditing (CHGUSRAUD) command. This supports the separation of duty between auditor and administrator.
PowerTech recommends that activities be audited for any user with command-line permission (i.e., profiles with a Limited Capabilities setting of *NO or *PARTIAL). Several network interfaces permit command execution and may not adhere to a limited-capabilities restriction. These interfaces should always be controlled and audited using an exit-point solution, such as PowerTech's Network Security, as network data access isn't normally an auditable event.
IBM i V6.1 allows auditing of 16 categories of user events, such as object deletions, profile activities, and authority failures. The QAUDLVL system value supports 15 of the categories for auditing all users, but the value of *CMD is permitted only for individual users, recording the commands the user runs.
The Operating System Challenge
We typically audit only users who can enter commands, but that still leaves us with the issues of controlling administrators and effectively reporting on the large volumes of audit data that might be generated.
Removing command-line access from administrators or programmers isn't a viable option, but you should audit their activities. In addition, consider restricting profiles to remove unnecessary capabilities, allowing only the authorities that are needed throughout the day.
Solution 1: Adopting Authority
When a system activity requires special authority, consider using a custom program to perform the task. For example, a password-reset program could adopt the authority of a profile that has security administrator (*SECADM) authority and prevent access to other profile settings. This approach permits a restricted function to be performed without security administrator rights. Of course, a program that adopts authority should verify that the calling user is eligible to perform the function.
Authority adoption is cumulative; the program owner's authority is added to the run-time user's authority. The more programs in the call stack, the more authority the user may potentially receive. If the user already has the necessary authority—perhaps through *ALLOBJ special authority—there is no way to reduce the capabilities. It also isn't feasible to have a program for every function that a programmer or administrator might need to perform.
Solution 2: Profile Switching
Profile switching is a better solution to the issue of temporary authority. IBM provides APIs to allow a job that was started under one profile to take on the authority of another profile mid-process. PowerTech Authority Broker is a powerful solution built around these APIs. Authority Broker allows for the removal of special authorities and private authorities from a user's normal profile and then provides elevated access when necessary.
Authority Broker offers numerous advantages:
- No need to manage another user profile and password
- Detailed auditing
- Notification capabilities
- Comprehensive reporting and exporting
- A "Firecall" feature to require administrator intervention prior to switching
Authority Broker also includes the ability to switch within your own application programs. A popular use of this capability is to reduce a user's authority prior to performing a sensitive function like STRSQL or Query.
We will always need administrators and security officers, but we must ensure that they don't become our biggest vulnerability. Authority Broker's auditing and notification functionality prevents powerful users from running wild and provides accountability where normally there is none.
For more information on PowerTech Authority Broker or to receive a free system compliance assessment (including a review of user capabilities), visit http://www.powertech.com/mcp/techtip/0910/index.html.