HP OpenVMS Guide to System Security > Chapter 5 Descriptions of Object
Classes
Devices
A device is a peripheral, physically connected or logically
known to a processor and capable of receiving, storing, or transmitting
data. A device can be physical, like a disk or terminal, or it can
be virtual, like a mailbox or pseudoterminal. Virtual devices are
implemented entirely in software. Virtual terminals are considered
LOCAL devices. They can be created over the network or on the local
system. Naming
Rules | |
You can use physical, logical, or generic names to refer to
devices. In addition, if your system is part of a clustered system,
certain devices are accessible to all members of the cluster. They
have the following formats: Most physical device names consist
of three parts: A device code (dd), which represents
the hardware device type. A controller designator (c), which identifies the
hardware controller to which the device is attached. The unit number (U), which uniquely identifies a
device on a particular controller.
The maximum length of the device name field, including the
controller and the unit number, is 15 characters. Logical device names equate the somewhat cryptic
physical device name to a short, meaningful name. You can use these
logical device names, rather than the physical device names, to
refer to devices. A generic device name consists of the device code
and omits the specific controller or unit number. A cluster device name includes the name of the node
to which the device is attached and the physical device name, separated
by a dollar sign ($).
See the HP OpenVMS System Manager's Manual and
the HP OpenVMS User's Manual for a full description of
device names. Types
of Access | |
Devices can be shared and thus have concurrent users or be
unshared and have a single user. Shared devices support the following types of access: Read | Gives you the right to read
data from the device | Write | Gives you the right to write
data to the device | Physical | Gives you the right to perform
physical I/O operations to the device | Logical | Gives you the right to perform
logical I/O operations to the device | Control | Gives you the right to change the protection
elements and owner of the device |
Unshared devices support only read, write, and control access.
The device driver rather than the operating system's security policy
defines the access requirements for other types of operations. Access Requirements for I/O Operations | |
Access requirements for I/O operations on devices can be quite
complex. The following list explains access requirements for typical
operations: Assigning a channel with $ASSIGN Assigning a channel to a nonspooled, nonshareable device requires
read access, write access, control access, or any combination. Assigning
a channel to a shareable device has no access requirement. Allocating a device with $ALLOC Allocating any device with $ALLOC requires read, write, or
control access. $QIO to spooled devices Access is handled as described for OpenVMS mounted volumes.
See the next list item, $QIO to file-oriented devices. $QIO to file-oriented devices: disks and tapes With file-oriented devices, logical I/O and physical I/O functions
have common elements. Any logical I/O function requires physical
or logical access plus read access to read a block (READLBLK) or
write access to write a block (WRITELBLK). Any physical I/O function
requires physical access plus either read access to read a block
(READPBLK) or write access to write a block (WRITEPBLK). Logical
and physical I/O also require LOG_IO and PHY_IO privileges, respectively. Beyond this, access requirements depend on how the volume
is mounted: OpenVMS supported volumes Any virtual I/O to the volume has the same access requirements
as the File or Volume class (see “Files” and “Volumes”). Volumes mounted foreign (/FOREIGN) Virtual read and write functions are converted to logical
I/O. All other functions are not processed by the operating system
and are sent to the device driver for processing. Physical I/O functions
also require PHY_IO privilege. Devices without a mounted volume Access to devices without mounted volumes requires privilege.
$QIO to devices that are not file oriented With non-file-oriented devices, OpenVMS converts virtual read
and write I/O requests to logical I/O before processing them. Other
kinds of access requests are not processed by OpenVMS; instead,
the request is passed to the device driver for processing. In general, access requirements for devices that are not file
oriented depend on whether the device is shareable or nonshareable: Shareable devices With shareable devices, such as mailboxes, any virtual I/O
function other than READVBLK/WRITEVBLK is handled by the system
I/O driver program. Any logical I/O function requires privilege
or logical access to the device. Any physical I/O function requires
privilege or physical access to the device. Unshareable devices With unshareable devices, such as terminals or printers, the
operating system checks only for read or write access to perform
virtual and logical I/O functions. Any physical I/O function requires
privilege.
Template Profile | |
The device class provides the following template profiles: Template Name | Device Type | Owner UIC | Protection Code |
---|
BUS | DC$_BUS | [SYSTEM] | S:RWPL,O:RWPL,G,W | CARDREADER | DC$_CARD | [SYSTEM] | S:RWPL,O:RWPL,G,W | COMMUNICATION | DC$_SCOM | [SYSTEM] | S:RWPL,O:RWPL,G,W | DEFAULT | | [SYSTEM] | S:RWPL,O:RWPL,G:RWPL,W:RWPL | DISK | DC$_DISK | [SYSTEM] | S:RWPL,O:RWPL,G:R,W | MAILBOX | DC$_MAILBOX | [SYSTEM] | S:RWPL,O:RWPL,G:RWPL,W:RWPL | PRINTER | DC$_LP | [SYSTEM] | S:RWPL,O:RWPL,G,W | REALTIME | DC$_REALTIME | [SYSTEM] | S:RWPL,O:RWPL,G:RWPL,W:RWPL | TAPE | DC$_TAPE | [SYSTEM] | S:RWPL,O:RWPL,G:R,W | TERMINAL | DC$_TERM | [SYSTEM] | S:RWPL,O:RWPL,G,W | WORKSTATION | DC$_WORKSTATION | [SYSTEM] | S:RWPL,O:RWPL,G:RWPL,W:RWPL |
Setting Up Profiles for New Devices | |
A device usually derives its security profile from the template
profile associated with its device type; however, the template is
often modified. The following list describes how the operating system
assigns a profile to different types of devices: Devices created during system configuration Devices introduced during system configuration with the system
commands CONNECT and LOAD (for example, pseudodevices and workstations)
take their profiles from the template appropriate for the device type. Disks and tapes Disk or tape devices take their profile from the DISK or TAPE
template profile, respectively. Once the device is visible within
a cluster, its profile, with any modifications, is retained across
system restarts. Changes to the DISK or TAPE template profile after
a device has its security profile do not apply to that device; therefore,
it is necessary to reset the specific object profile by using the
DCL command SET SECURITY (see “Modifying a Security Profile”).
Devices cloned from template devices Devices cloned from template devices (for example, Ethernet
devices) assume the security profile of the template device from
which they are cloned. Template devices are loaded during the autoconfiguration process;
at this time, their profile is taken from the profile template appropriate
for the device. Mailboxes Mailbox devices assume a modified version of the MAILBOX template
profile. The system modifies the template so the UIC of the creating
process becomes the owner and the protection code is set to the
value of the promsk argument
to the Create Mailbox ($CREMBX) system service (provided the value
is nonzero). To maintain compatibility with earlier versions of the operating
system, the MAILBOX template has a protection code of 0 (allowing
all access). Some applications may need a more restrictive default
than the template provides. If you do choose to restrict mailbox
access, be aware that the more restrictive access can cause applications
to fail in ways that are difficult to diagnose. Terminals Terminal devices assume a modified version of the TERMINAL
template profile. | | | | | NOTE: In OpenVMS Version 7.2-1 and earlier, all pseudo-terminal
(FT) device protection codes were set by the driver to (S:RWLP,O:RWLP,G,W).
In OpenVMS Version 7.3 and later, only device FTA0 is set to this
forced protection. This allows the system manager the option of modifying
the FTA0 device protection later in the boot process. This new protection
is inherited from FTA0 by any new FT devices created thereafter
(as well as other settings originating from the SECURITY class DEVICE
TERMINAL template profile, such as ACLs). A system manager can modify FTA0 manually, or change the SYSTARTUP_VMS.COM command
procedure. For example: $ SET SECURITY/CLASS=DEVICE - _$ /PROTECTION=(S:RWLP,O:RWLP,G:RW,W:R) FTA0:
|
If the device protection for FTA0 is left unmodified, the
behavior is unchanged from versions of OpenVMS prior to Version
7.3. That behavior is that all terminals except FT pseudo-terminal
devices inherit their device protection and other security characteristics from
the TERMINAL template profile. All FTA pseudo-terminal devices inherit
their protection from FTA0, which by default is set to (S:RWLP,O:RWLP,G,W).
Other settings, such as ACLs, are inherited from the TERMINAL template
profile. This ensures compatibility with existing applications. | | | | |
When a user logs in on a terminal, the operating system modifies
the profile so the owner becomes the UIC of the process logging
in to the terminal. The original security profile for the terminal
is restored when the user logs out.
Privilege Requirements | |
All logical or physical I/O to a spooled device requires privilege. The LOG_IO privilege allows the user's process to execute
the Queue I/O Request ($QIO) system service to perform logical-level
I/O operations. LOG_IO privilege is also required for certain device-control
functions, such as setting permanent terminal elements. The PHY_IO privilege allows the user's process to execute
the Queue I/O Request ($QIO) system service to perform physical-level
I/O operations. The PHY_IO privilege also grants LOG_IO privilege. To create a permanent mailbox or mark it for deletion requires
PRMMBX privilege. Kinds of Auditing Performed | |
The following types of events can be audited, provided the
security administrator enables auditing for the appropriate event
class: Event Audited | When Audit Occurs |
---|
Access | For nonshareable devices,
when the process calls $ASSIGN; for a shareable device, when the
process calls $QIO | Creation | When a process creates a
virtual device like a mailbox | Deletion | When a process deletes a virtual device
like a mailbox |
Permanence of the Object | |
The profile of clusterwide disks and tapes is stored in the
object database VMS$OBJECTS.DAT, but other object profiles have
to be reset each time the system starts up.
|