LJK/Security Reference Manual


Previous Contents Index


Chapter 8
Assessment Modification

This chapter discusses the uses of assessment modification.

Modification of assessments gives you the ability to apply differing policies and transmission media to various nodes in your organization. It is rare that an organization which has totally uniform uses for all VMS systems, and thus it is rare than an organization has totally uniform security needs for all those systems.

NIST 800-53 Note

Because the assessment is the basis for reporting violations, formal assessments to meet NIST 800-53 requirements should be for an entire "system" as defined for NIST 800-53 compliance purposes. See further discussion of this issue in Section M.2.4.

8.1 Adding and Removing Nodes from the Assessment

Specifying the name of a node when modifying a assessment serves to add the node to that assessment.

To remove a node from an assessment modify the assessment to give the node a policy name which is blank. Technically a record of the node will remain in the file (for audit-trail purposes, if nothing else) but the node will not be included when the assessment is run.

Note

On master nodes without DECnet, the master node should be specified as "0" when adding it to an assessment.

8.2 Changing Policies Applied to Nodes

Modifying an assessment to change the policy associated with a node will cause subsequent RUN commands for that assessment to use the new policy. Any previous RUN commands (even those specifying an AFTER or INTERVAL time) will use the policy in effect at the time the RUN command was issued.

8.3 Changing Request Media

Modifying an assessment to change the request medium associated with a node will cause subsequent RUN commands for that assessment to use the new request medium. Any previous RUN commands (even those specifying an AFTER or INTERVAL time) will use the request medium in effect at the time the RUN command was issued.

8.4 Changing Result Media

Modifying an assessment to change the result medium associated with a node will cause subsequent RUN commands for that assessment to use the new result medium. Any previous RUN commands (even those specifying an AFTER or INTERVAL time) will use the result medium in effect at the time the RUN command was issued.

8.5 Changing Default Methods

Modifying an assessment to change the default methods associated with a node will cause subsequent RUN commands for that assessment to use the new default methods. Any previous RUN commands (even those specifying an AFTER or INTERVAL time) will use the methods (default or otherwise) in effect at the time the RUN command was issued.

8.6 Audit history

The audit history mechanism can be used to show when changes were made to your assessments.


Chapter 9
Using Program Call Interfaces

This chapter describes how to access LJK/Security from programs you have written in VMS programming languages.

As used below, names of the form LJK$SECURITY_*_xxx.EXE stand for both LJK$SECURITY_*_AXP.EXE and LJK$SECURITY_*_VAX.EXE.

9.1 Master Node Invocation Entrypoints

These entrypoints to the shareable image LJK$SECURITY_SHARE_xxx.EXE are used to invoke LJK/Security from a user program on the master node. Their use on a tributary node is not supported.

By calling these entrypoints, a user program effectively replaces the small program LJK$SECURITY_xxx.EXE which is normally used to process the command LJK/SECURITY.

In order to call these entrypoints, a user program must be linked against the shareable image SYS$LIBRARY:LJK$SECURITY_SHARE or it must invoke the entrypoints within that image by using the VMS function LIB$FIND_IMAGE_SYMBOL.

For successful invocation of anything other than a parsing function, certain privileges are required:

9.1.1 Parsing Entrypoints

These entrypoints are used to parse LJK/Security commands in preparation for subsequent execution. If one of them is called without a subsequent call to the execution entrypoint, it serves to "test" the command for legality.

9.1.1.1 LJK$SECURITY_PARSE_DCL entry

This entrypoint takes a single parameter which is a string descriptor of the command to be parsed. It returns status in R0.

9.1.1.2 LJK$SECURITY_PARSE_CLI entry

This entrypoint takes no parameters, but parses the command which was used to invoke the program. It returns status in R0.

9.1.1.3 LJK$SECURITY_PARSE_FOREIGN entry

This entrypoint takes no parameters, but parses a foreign command which was used to invoke the program. It returns status in R0.

9.1.2 Execution Entrypoint

9.1.2.1 LJK$SECURITY_EXECUTE entry

This entrypoint takes no parameters, but relies on values previously determined from a call to a parsing entrypoint. It returns status in R0.

Note that the call to a parsing routine above may produce results which cause multiple subsequent commands to be parsed within the call to the execution entrypoint. Cases where this happen include:

  1. Empty command invoking "subsystem" operation
  2. Empty command invoking Menu Interface

9.1.3 Detailed Master Node Invocation Entrypoint Descriptions

The following pages contain full descriptions of each Invocation entrypoint.


LJK$SECURITY_PARSE_DCL

Parse the LJK/SECURITY command that is passed as a parameter, storing the results for a subsequent call.

Format

status =LJK$SECURITY_PARSE_DCL (command)


RETURNS

VMS usage: cond_value
type: longword (unsigned)
access: write only
mechanism: by value

Arguments

command


VMS usage: char_string
type: character string
access: read only
mechanism: by descriptor

The command which is to be parsed. It must start with the string "LJK/SECURITY " (ending in a space).

Description

This entrypoint takes a single parameter which is a string descriptor of the command to be parsed. It returns status in R0.

LJK$SECURITY_PARSE_CLI

Parse the LJK/SECURITY command that was used to invoke the program, storing the results for a subsequent call.

Format

status=LJK$SECURITY_PARSE_CLI


RETURNS

VMS usage: cond_value
type: longword (unsigned)
access: write only
mechanism: by value

Arguments

None.

Description

This entrypoint takes no parameters, but parses the command which was used to invoke the program. It returns status in R0.

LJK$SECURITY_PARSE_FOREIGN

Parse the LJK/SECURITY command that was used to invoke the program as a foreign command, storing the results for a subsequent call.

Format

status=LJK$SECURITY_PARSE_FOREIGN


RETURNS

VMS usage: cond_value
type: longword (unsigned)
access: write only
mechanism: by value

Arguments

None.

Description

This entrypoint takes no parameters, but parses a foreign command which was used to invoke the program. It returns status in R0.

LJK$SECURITY_EXECUTE

Execute the command whose parse results were stored by a previous call.

Format

status=LJK$SECURITY_EXECUTE


RETURNS

VMS usage: cond_value
type: longword (unsigned)
access: write only
mechanism: by value

Arguments

None.

Description

This entrypoint takes no parameters, but relies on values previously determined from a call to a parsing entrypoint. It returns status in R0.

Note that the call to a parsing routine above may produce results which cause multiple subsequent commands to be parsed within the call to the execution entrypoint. Cases where this happen include:

  1. Empty command invoking "subsystem" operation
  2. Empty command invoking in MENU interface

9.2 Master Node Report Formatting Callout Entrypoints

Report Formatting entrypoints allow generation of custom reports based on LJK/Security assessment results.

When provided by the customer, these callouts are used by LJK/Security to invoke customer-provided software to produce reports.

Unlike other callable interfaces to LJK/Security, the Report Formatting module provided by the user is not treated as trusted software and does not become part of the Trusted Computing Base (TCB). The user-provided Report Formatting module is run with the original privileges of the user, which must include TMPMBX.

Four of the Report Formatting entrypoints are mandatory and must be provided by every user-provided Report Formatting module. Other Report Formatting entrypoints are optional, depending on what you want to include in your report.

One important concept running through most of the entrypoint definitions is that of Policy Number, which can be used as an index into a list of multiple policies used in the assessment being reported. The Policy Number is generated at run-time, so it is specific to a single invocation of the command LJK/SECURITY REPORT and has no use after that. Even if you do not currently intend to create assessments that use multiple policies, it is important to write your Report Formatting module to handle multiple policies correctly because:

  1. that is when your knowledge of writing Report Formatting modules is most clear
  2. if you never get around to it, you (or your successor) may be ill-equipped to implement such a change in the face of an urgent management directive

9.2.1 Required Report Formatting Entrypoints

9.2.2 Optional Report Formatting Entrypoints

9.2.2.1 Total Entrypoints (optional)