LJK/Security Reference Manual


Previous Contents Index


Appendix O
Quick Start Guide to DoD Instruction 8500.2 Vulnerability Assessments

This appendix tells how to use LJK/Security in complying with US Department of Defense Instruction 8500.2 published February 6, 2003.

Note

Within this appendix, specialized terms defined in DoD Instruction 8500.2 are presented in italic text, while specialized terms defined in the Glossary of the LJK/Security Reference Manual are presented in boldface text. The distinction is important because some words like "policy" are defined (differently) in both places.

O.1 The Role of LJK/Security in 8500.2 Assessments

For the February 6, 2003 of DoD Instruction 8500.2, LJK/Security V3.0 provides command procedure templates to set up policies covering only those controls that are susceptible to testing via the Automatic method under a running copy of the VMS (OpenVMS) operating system.

O.2 An Easy Start for DoD Instruction 8500.2 Assessments

If you are new to LJK/Security the vast array of capabilities can seem daunting. To get some quick results, use the following steps.

O.2.1 Setting Up the Environment

  1. Have the VMS system manager install LJK/Security as described in Section 2.2, Installation on the Master Node.
  2. Have the person who grants privileges1 issue the commands


    $ SET DEFAULT SYS$SYSTEM
    $ MCR AUTHORIZE GRANT/IDENTIFIER LJK$SECURITY_ALL <your-user-name>
    

  3. Log into a fresh session with your user name (this is required)

O.2.2 Running Your First Assessments

  1. Create a policy that will describe the particular DoD Instruction 8500.2 controls required for your system. Use a command like:


    $ LJK/SECURITY CREATE POLICY MY_8500_2_POLICY
    $ @LJK$SECURITY_EXAMPLES:POLICY_NULL.COM MY_8500_2_POLICY
    

    Note

    If you are not a touch typist, you can open this document on screen and copy and paste many of the commands as you need them.
  2. Use JUST ONE of the following commands to specify the Mission Assurance Category and Confidentiality Level that apply to your system:


    $ @LJK$SECURITY_EXAMPLES:POLICY_DODI_8500_2_MACI_CLASSIFIED.COM MY_8500_2_POLICY
    


    $ @LJK$SECURITY_EXAMPLES:POLICY_DODI_8500_2_MACII_CLASSIFIED.COM MY_8500_2_POLICY
    


    $ @LJK$SECURITY_EXAMPLES:POLICY_DODI_8500_2_MACIII_CLASSIFIED.COM MY_8500_2_POLICY
    


    $ @LJK$SECURITY_EXAMPLES:POLICY_DODI_8500_2_MACI_SENSITIVE.COM MY_8500_2_POLICY
    


    $ @LJK$SECURITY_EXAMPLES:POLICY_DODI_8500_2_MACII_SENSITIVE.COM MY_8500_2_POLICY
    


    $ @LJK$SECURITY_EXAMPLES:POLICY_DODI_8500_2_MACIII_SENSITIVE.COM MY_8500_2_POLICY
    


    $ @LJK$SECURITY_EXAMPLES:POLICY_DODI_8500_2_MACI_PUBLIC.COM MY_8500_2_POLICY
    


    $ @LJK$SECURITY_EXAMPLES:POLICY_DODI_8500_2_MACII_PUBLIC.COM MY_8500_2_POLICY
    


    $ @LJK$SECURITY_EXAMPLES:POLICY_DODI_8500_2_MACIII_PUBLIC.COM MY_8500_2_POLICY
    

  3. Use the DIRECTORY command to look at the list of policy modifications for particular VMS versions


    $ DIRECTORY/FULL LJK$SECURITY_EXAMPLES:POLICY_VMS_SHA1_*.COM;
    
    The names of those command procedures indication the version of VMS to which each one applies.

  4. Customize your policy for your version of VMS by invoking the proper command procedure


    $ @LJK$SECURITY_EXAMPLES:POLICY_VMS_SIMPLE_AXP_07_3_2.COM MY_8500_2_POLICY
    

    Note

    You can Copy and Paste portions of that command line, but be sure to specify the proper command procedure name for your version of VMS.
  5. Start LJK/Security in subsystem mode for easier typing


    $ LJK/SECURITY/NOSMG/INTERFACE=CHARACTER_CELL
    

    You may want to create a DCL symbol in your LOGIN.COM file if you are going to use command mode on a regular basis.

  6. Create an assessment


    LJKS> CREATE ASSESSMENT MY_8500_2_ASSESSMENT
    LJKS> MODIFY ASSESSMENT MY_8500_2_ASSESSMENT/NODE=<this-node>/POLICY=MY_8500_2_POLICY
    

  7. Run the assessment omitting resource-intensive facilities


    LJKS> RUN MY_8500_2_ASSESSMENT /METHODS=QUICK
    

  8. Take a break
  9. Come back and check results


    LJKS> REPORT MY_8500_2_ASSESSMENT/STATUS_ONLY
    

  10. When that indicates the assessment has completed, extract a summary and a detailed report


    LJKS> REPORT MY_8500_2_ASSESSMENT/SUMMARY=COMMENTS/OUTPUT=8500_2_SUMMARY.TXT
    LJKS> REPORT MY_8500_2_ASSESSMENT/OUTPUT=8500_2_DETAILS.TXT
    

  11. Start a full assessment running while you study the results of the quick assessment


    LJKS> RUN MY_8500_2_ASSESSMENT
    

  12. Exit from LJK/Security subsystem mode


    LJKS> [Ctrl/Z]
    

The files you created will list as violations some conditions that are actually acceptable under the organization's policy. That may seem annoying during the periodic unannounced in-depth monitoring specified for ECMT-* Conformance Monitoring and Testing, but it is probably intolerable during the more frequent ongoing automated vulnerability assessment conducted to meet the requirements of 8500.2 control VIVM-1 Vulnerability Management. Thus you will eventually want to set up exemptions for known acceptable deviations from the general rules.

You can specify which conditions are actually acceptable by customizing your policy. Then subsequent assessment runs will produce a proper "management by exception" report.

O.2.3 Choosing a User Interface

To customize your policy will take more interaction and be an ongoing activity as personnel and requirements change. You might want to use a different user interface. You have your choice of three

  1. Window
    Described in Section 3.3.3, Adding an Exemption
  2. Menu
    Described in Section 4.2.3, Adding an Exemption
  3. Command
    Described in MODIFY POLICY within Chapter 5, Command Interface
You can freely intermix use of the various user interfaces, perhaps depending on what type of connection you have to the system at a given time.

O.2.4 Adding Exemptions for Acceptable Deviations

Use your choice of interface to add exemptions to your policy as follows

Of course you could have added those exemptions before trying to run the assessment, but most people prefer to see some output first to understand that they want to add exemptions where authorized.

Note

1 The person who grants privileges to usernames will probably be a separate person from the VMS system manager in any organization which fully implements "Separation of Duties" specified in DoDI 8500.2 control ECLP-1. It might be the person who sets up new user accounts, or someone else specially designated to deal with privileged accounts.

O.3 Saving Time on ECMT Conformance Monitoring and Testing

Two of the DoD Instruction 8500.2 controls have a recursive relationship to the overall document because they actually pertain to occasions when compliance with other 8500.2 controls should be verified:

O.3.1 ECMT-* Conformance Monitoring and Testing

DoD Instruction 8500.2 controls ECMT-2 and ECMT-1 require periodic unannounced in-depth monitoring at all Confidentiality Levels:

ECMT-2 Conformance Monitoring and Testing

Conformance testing that includes periodic, unannounced in-depth monitoring and provides for specific penetration testing to ensure compliance with all vulnerability mitigation procedures such as the DoD IAVA or other DoD IA practices is planned, scheduled, conducted and independently validated. Testing is intended to ensure that the system's IA capabilities continue to provide adequate assurance against constantly evolving threats and vulnerabilities.
For DoD information systems processing publicly released information ECMT-1 is slightly less stringent by omitting the phrase and independently validated.

Organizations following DoD Instruction 8500.2 can save considerable effort if the periodic conformance testing required for control ECMT-2 or ECMT-1 make use of exemptions prepared as part of the LJK/Security assessments run in support of the VIVM-1 Vulnerability Management control.

The technique described involves creating a LJK/Security policy for ECMT Conformance Monitoring using two different techniques:

O.3.1.1 VIVM-1 Vulnerability Management

VIVM-1 Vulnerability Management

A comprehensive vulnerability management process that includes the systematic identification and mitigation of software and hardware vulnerabilities is in place. Wherever system capabilities permit, mitigation is independently validated through inspection and automated vulnerability assessment or state management tools. Vulnerability assessment tools have been acquired, personnel have been appropriately trained, procedures have been developed, and regular internal and external assessments are conducted. For improved interoperability, preference is given to tools that express vulnerabilites in the Common Vulnerabilities and Exposures (CVE) naming convention and use the Open Vulnerability Assessment Language (OVAL) to test for the presence of vulnerabilities.

As one considers the question of which controls should be subjected to that ongoing assessment, an ancillary question will arise about what effort is required for this continuous monitoring. There is no good reason to avoid continuous monitoring of a control if the effort required is minimal. By definition testing those controls that LJK/Security can test takes minimal effort, because the testing is automated. So for most VMS systems, testing controls related to the protection of every file on every disk once a week and other controls daily or hourly is quite reasonable. For special situations like warfighting systems it might be preferable to run that continuous monitoring only during a designated maintenance period, particularly if a realtime device must be manipulated by the VMS system with millisecond response times.

O.3.2 LJK/Security Document Naming for ECMT-* and VIVM-1

There can be only one copy of the LJK/Security software installed on a particular running instance of the VMS operating system. There is a single name space for policy documents which must be shared by all those who have been authorized to run LJK/Security. Organization-specific naming conventions provide an easy way to distinguish between documents used for VIVM-1 Vulnerability Management on a day-to-day basis and documents used for the unannounced in-depth ECMT-* Conformance Monitoring and Testing. For instance, in an organization where a team from the Office of the Inspector General conducts the unannounced in-depth ECMT-* Conformance Monitoring and Testing, files they create could all have names starting with a particular string of characters, like "OIG_". A different scheme might use "OIG_FY06_" one year and "OIG_FY07_" the next year.

O.3.3 Using VIVM-1 Exemptions for ECMT-* Assessments

In setting limits within a policy, those conducting the separate ECMT-* Conformance Monitoring and Testing will want to create a policy from scratch, perhaps carrying in policy settings prepared in advance or used for ECMT-* Conformance Monitoring and Testing on some other system operated by the organization. Another option would be:

  1. Create a new policy compatible with DoD Instruction 8500.2 by using the command procedures that ship with LJK/Security as described in:
  2. make particular changes for those controls where the policy of the organization mandates a different value in the policy from that created by the command procedures described in the Sections listed above.
It would be a mistake to just make a wholesale copy of the policy used for VIVM-1 Vulnerability Management, since that might not have been kept current with the organization's policy.

But the situation is different in the case of exemptions in the new policy. Exemptions are used in LJK/Security to indicate special cases where abnormal values are permitted based on management approval. For instance a typical limit says that no individuals should have privileges assigned to their VMS username. Then exemptions are entered for the VMS usernames of those assigned to system management duties, so that violation reports are not generated for those usernames authorized to have privilege. To recreate the exemptions appropriate to a system would be time consuming, so a better tactic is:

  1. Extract the exemptions (but not the limits) from the appropriate VIVM-1 policy (or policies) with a command like


     
        $ LJK/Security SHOW POLICY vivmpolicyname - 
              /EXEMPTIONS /NOLIMITS /COMMAND_PROCEDURE - 
              /OUTPUT=REVIEW.TXT 
     
    
    creating a command procedure for applying those exemptions to some other policy. Each line in the command procedure contains an entire command for establishing one exemption, so some of those lines will be quite long.

  2. Use a text editor to inspect each exemption in the resulting command procedure and decide whether it was properly granted. On lines where the exemption is not appropriate, comment out the line with an initial exclamation point (!). This has the same effect as deleting the line, but leaves a better record of what actions are taken. For an even better record, one can follow that exclamation point with brief text (on a single line) indicating the reason for the decision.
  3. Apply the resulting batch of exemptions to the ECMT-* policy with a command like


     
        $ @REVIEW.TXT ecmtpolicyname 
     
    
    where ecmtpolicyname is the name of the policy created earlier with the current limits for the organization.

  4. Use the resulting policy for the unannounced in-depth ECMT-* Conformance Monitoring and Testing.
Thus rather than taking a guess at what exemptions should be granted in the unannounced in-depth ECMT-* Conformance Monitoring and Testing, the team effectively considers nominations made by the VIVM-1 Vulnerability Management team who evaluate security of the system all year long.

Depending on the organization's policy some manual reporting of inappropriate exemptions found in step 2 above might be in order.

In the following sections, we discuss various considerations for proposed exemptions, depending on the LJK/Security facility in which the exemptions are located. The examples are based on limits specified in the POLICY_DODI_8500_2_*.COM files provided in directory LJK$SECURITY_EXAMPLES. Your own organization's limits may be different.

O.3.3.1 Example of an Exemption Based on Node

For LJK/Security test (VMS,ANNOUNCE,CONTAINS)2 the value specified in the limit is the system use notification to be displayed to authorized users on login. This means a violation will be reported for any Node where this notification is not provided. An exemption might be present allowing a particular Node to skip this message if it is exclusively for public use. Questions that might be asked about such an exemption include:

O.3.3.2 Example of an Exemption Based on Node/Filename pair

For LJK/Security test (DISK, FILEPROT, ABSOLUTHI)3 the value specified in the limit is (SYSTEM:RWED,OWNER:RWED,GROUP:RE,WORLD), meaning a violation will be reported for each file which has a more permissive protection mask.

For LJK/Security test (DISK, FILEPROT,PERCENTHI)4 and selector READ, the limit specified has a value of 10 meaning a violation will be reported for each file to which more than 10 percent of users have read access.

Often exemptions will be used for those two tests with respective values of (SYSTEM:RWED, OWNER:RWED,GROUP:RE,WORLD:RE) and 100 percent for a VMS system-wide login command procedure, since that must be executed on behalf of each user at login. Questions that might be asked about such exemptions include:

Note

2 (VMS,ANNOUNCE,CONTAINS) is the LJK/Security notation for the test of text which must be present in the message that is displayed to all users before login.

3 (DISK, FILEPROT, ABSOLUTHI) is the LJK/Security notation for the test that no file has an overly permissive protection mask.

4 (DISK, FILEPROT,PERCENTHI) is the LJK/Security notation for the test that no file can be accessed in the selector-specified mode by more than a certain percentage of the usernames on the system, regardless of whether access is granted by protection mask or access control list.


Previous Next Contents Index