SUNWast
The Automated Security Enhancement Tool (ASET) is a set of administrative utilities that can improve system security by allowing the system administrators to check the settings of system files, including both the attributes (permissions, ownership, etc.) and the contents of the system files. It warns the users of potential security problems and, where appropriate, sets the system files automatically according to the security level specified.
The security level for aset can be specified by setting the -l command line option or the ASETSECLEVEL environment variable to be one of 3 values: low, med, or high. All the functionality operates based on the value of the security level.
At the low level, aset does not alter any system behavior. It merely performs a number of checks and reports any potential security weaknesses.
At the med level, aset modifies some of the settings of system files and parameters, thus restricting system access, to reduce the risks from security attacks. Again it will report the security weaknesses and the modifications performed to restrict access. This does not affect the operations of system services. All the system applications and commands will maintain all of their original functionality.
At the high level, further restrictions are made to system access, rendering a very defensive system. Security practices which are not normally required are included. Many system files and parameters settings are modified to minimum access permissions. At this level, security is the foremost concern, higher than any other considerations that affect system behavior. The vast majority of system applications and commands will maintain their functionality, although there may be a few that exhibit behaviors that are not familiar in normal system environment.
More exact definitions of these levels (what exactly aset will do at each level) can be found in the administrator manual. The asetenv(4) file and the master files (see asetmasters(4) ) determine to a large extent what aset performs at each level, and can be used by the experienced administrators to redefine the definitions of the levels to suit their particular needs. These files are provided by default to fit most security conscious environments and in most cases provide adequate security safeguards without modification. They are, however, designed in a way that can be easily edited by experienced administrators with specific needs.
aset can be periodically activated at
the specified security level with default definitions using the -p option.
aset will be automatically activated at a frequency specified by the administrator
starting from a designated future time (see asetenv(4)
). Without the -p option,
aset will operate only once immediately.
The following paragraphs discuss the features provided by ASET. Hereafter, each feature is referred to as a task. The first task, tune, is intended to be executed only once per installation of ASET. The other tasks are intended to be executed periodically at the specified frequency.
This task is used to tighten system file permissions. In standard releases, system files or directories have permissions defined to maximize open information sharing. In a more security conscious environment, the administrator may want to redefine these permission settings to more restrictive values. aset allows resetting of these permissions, based on the specified security level. Generally, at the low level the permissions are set to what they should be as released. At the medium level the permissions are tightened to ensure reasonable security that is adequate for most environments. At the high level they are further tightened to very restrictive access. The system files affected and the respective restrictions at different levels are configurable, using the tune.low, tune.med, and tune.high files. See asetmasters(4) .
System directories that contain relatively static files (that is, their contents and attributes do not change frequently) are examined and compared with a master description file. The /usr/aset/masters/cklist.level files are automatically generated the first time the cklist task is executed. See asetenv(4) . Any discrepancy found is reported. The directories and files are compared based on the following:
- owner and group
- permission bits
- size and checksum (if file)
- number of links
- last modification time
The lists of directories to check are defined in asetenv(4) , based on the specified security level, and are configurable using the CKLISTPATH_LOW , CKLISTPATH_MED , and CKLISTPATH_HIGH environment variables. Typically, the lower level lists are subsets of the higher level lists.
aset checks the consistency and integrity of user accounts and groups as defined in the passwd and group databases, respectively. Any potential problems are reported. Potential problems for the passwd file include:
- passwd file entries are not in the correct format.
- User accounts without a password.
- Duplicate user names.
- Duplicate user IDs. Duplicate user IDs are reported unless allowed by the uid_alias file. See asetmasters(4) ).
- Invalid login directories.
- If C2 is enabled, check C2 hidden passwd format.
Potential problems for the group file include:
- Group file entries not in the right format.
- Duplicate group names.
- Duplicate group IDs.
- Null group passwords.
aset checks the local passwd file. If the
YPCHECK
environment variable is set to true, aset also checks the NIS
passwd files. See asetenv(4)
. Problems in the NIS passwd file are only reported
and not corrected automatically. The checking is done for all three security
levels except where noted.
aset checks various system configuration tables, most of which are in the /etc directory. aset checks and makes appropriate corrections for each system table at all three levels except where noted. The following discussion assumes familiarity with the various system tables. See the manual pages for these tables for further details.
The operations for each system table are:
CONSOLE
aset checks critical environment variables for root and users specified with the -u userlist_file option by parsing the /.profile, /.login, and /.cshrc files. This task checks the PATH variable to ensure that it does not contain ‘.’ as a directory, which makes an easy target for trojan horse attacks. It also checks that the directories in the PATH variable are not world-writeable. Furthermore, it checks the UMASK variable to ensure files are not created as readable or writeable by world. Any problems found by these checks are reported.
Newer versions of the EEPROM allow specification of a secure parameter. See eeprom(1M) . aset recommends that the administrator sets the parameter to command for the medium level and to full for the high level. It gives warnings if it detects the parameter is not set adequately.
At the high security level, aset takes proper measures such that the system can be safely used as a firewall in a network. This mainly involves disabling IP packets forwarding and making routing information invisible. Firewalling provides protection against external access to the network.