Documentation Nexus IQ Server 1.19

Our documentation site has moved. For the most current version, please see http://help.sonatype.com

12.3. Audit and Quarantine

[Tip]

The features discussed in this section require IQ Server and Nexus Repository Manager with the following licenses: Repository and Firewall.

The Audit and Quarantine features provide a way to protect your development environment from risky or undesirable components. These features use Nexus IQ policy management to identify, and if desired, prevent a proxy repository from serving unwanted components.

Before activating Audit and Quarantine, there are several items you need to complete:

  • Both Repository Manager and IQ Server must be running and must have a working connection between the two systems. For more information, see the Section 12.1, “Connecting to IQ Server” section in this chapter.
  • In Repository Manager, you need the following privileges to use Audit and Quarantine:

    • Add, edit, and delete privileges for capabilities, which allows you to configure, enable, and disable the Audit and Quarantine features.
    • Read privilege for repositories, which lets you view a results column in the Repositories tab.

      For information on assigning privileges, see the Managing Privileges section in the Nexus Repository Manager book. * For IQ Server, you must be assigned to a role in the root organization with permissions to view and edit CLM Elements. The built-in roles of CLM Administrator and Owner have these permissions. For more information on assigning roles and permissions, see the Security Administration chapter. To learn more about the root organization, see the Organization and Application Management chapter.

  • Also with regard to IQ Server, you should create a policy in the root organization that defines the rules or criteria to use when evaluating components of a proxy repository. The policy must be at the root organization level in the system hierarchy; policies at other levels are ignored by Audit and Quarantine. To learn more about creating a policy, see the Basic Policy Management chapter.

Once these items are completed, you are ready to configure Audit and Quarantine and view audit results. Each of these actions is described below in more detail.

12.3.1. Configuring Audit and Quarantine

You configure the Audit and Quarantine features by adding them to Repository Manager as a plug-in capability.

To configure Audit and Quarantine:

  1. In Repository Manager, click Capabilities on the Administration menu.
  2. Click the New button on the Capabilities tab. The Create new capability dialog is displayed.
  3. In the Type list, choose IQ: Audit and Quarantine.
  4. Configure Settings as follows:

    1. Enabled - Make sure the check box is selected to activate the Audit feature. The check box is selected by default.
    2. Repository - Select a specific proxy repository to scan, for example, Central.
    3. Quarantine - Select the check box to quarantine any components that violate policy whenever you add new components to the selected proxy repository. This setting affects only components that are added to the repository after Quarantine is enabled. When a component is quarantined, the Repository Manager prevents it from being served from the proxy repository. The check box is deselected by default.
  5. Click Add to create the new capability for Audit and Quarantine.

At this point, an audit of the selected repository is automatically started. Repository Manager contacts IQ Server and evaluates the components within the selected repository against any associated policy. The results are displayed in Repository Results, which is described in the next section.

[Note]

To successfully quarantine components when the Quarantine feature is enabled, the policy used to evaluate components must be configured to fail when policy violations occur at the proxy stage in the development lifecycle. If the policy is set to warn (rather than fail), the quarantining of components will not occur. For more information about setting policy and the proxy stage, see the Basic Policy Management chapter.

After the IQ: Audit and Quarantine capability is added, it appears on the Capabilities tab in Repository Manager as shown in the figure below.

figs/web/nexus-clm-capabilities.png

Figure 12.11. Capabilities Tab in Repository Manager


12.3.2. Disabling Audit and/or Quarantine

To disable Audit and/or Quarantine:

  1. In the Repository Manager interface, click Capabilities on the Administration menu.
  2. Click the IQ: Audit and Quarantine capability for a specific repository.
  3. Click the Settings tab of the IQ: Audit and Quarantine capability and set the following attributes:

    1. Click the Enabled check box to deselect it and disable the Audit feature.

      [Note]

      When you disable the IQ: Audit and Quarantine capability, Quarantine is also disabled.

    2. Click the Quarantine check box to deselect it and disable only the Quarantine feature.

      [Caution]

      When Quarantine is disabled, all quarantined components are made available for download from your proxy repository. This remains true, if you re-enable Quarantine. That is, any previously quarantined components are not quarantined again; only new components are evaluated for quarantine when you re-enable the Quarantine feature.

  4. Click Save to save your changes or click Discard to undo your changes.

12.3.3. Re-enabling Audit and/or Quarantine

To re-enable Audit and/or Quarantine:

  1. In Repository Manager, click Capabilities on the Administration menu.
  2. Click the IQ: Audit and Quarantine capability for a specific repository.
  3. Click the Settings tab of the IQ: Audit and Quarantine capability and set the following attributes:

    1. Click the Enabled check box to enable the Audit feature.
    2. Click the Quarantine check box to enable to the Quarantine feature.

      [Note]

      Any previously quarantined components are not quarantined again even though they were quarantined in the past. Only new components are evaluated for quarantine when the Quarantine feature is re-enabled.

  4. Click Save to save your changes or click Discard to undo your changes.

12.3.4. Managing Repositories

The creation, modification, and deletion of repositories is managed via Repository Manager. However, when connected to IQ Server, informational details of the repositories are also available.

To view these details:

  1. Click the Organization & Policy button located in the IQ Server toolbar.
  2. Click on Repositories, located in the sidebar on the left side of the screen. The Configuration tab is displayed. As shown in the figure below.
figs/web/clm-server-repositories.png

Figure 12.12. IQ Repositories


Details on repositories include:

  • The public id of the repository
  • The instance id of the Repository Manager hosting the repository
  • The current Audit enabled state of the repository

Clicking the Delete button (shaped like a trash can) allows you to delete the repository after you confirm the deletion in a dialog.

[Note]

The deletion of a repository in IQ Server will NOT be replicated to Repository Manager.

12.3.5. Managing User Roles

Repositories, which appears in the sidebar of the Organization & Policy area, lets you set security for repository evaluation results. The process is the same as managing roles and permissions for organizations and applications on IQ Server. Through role assignments, you have the ability to grant users different permissions for repository evaluation results without granting them access to organizations and applications. For example, to grant a user the ability to view repository results, you assign the user to a role with View CLM Elements permission. To edit repository results, you assign the user to a role with Edit CLM Elements permission. The role assignments affect all repositories, not individual ones. For more information about assigning user roles, see Role Management in the Security Administration chapter.

[Note]

Any role assignments made at the Root Organization level are inherited automatically by Repositories. However, if you set a role in Repositories, the Root Organization is unaffected.

12.3.6. Viewing Audit Results

Once the Audit and Quarantine features are enabled, whenever you add a component to a proxy repository (or delete one), Repository Manager contacts IQ Server to evaluate the components within the proxy repository against any associated policy. The IQ Policy Violations, are summarized in Repository Manager, and detailed in IQ Server.

In Repository Manager:

The audit results are summarized in the IQ Policy Violations column of the Repositories tab as shown in the figure below.

figs/web/firewall-column.png

Figure 12.13. IQ Policy Violations Column


The IQ Policy Violations column includes the following items:

  • A count of components by their highest policy violation level.
  • A count of quarantined components.
  • A link to Repository Results on IQ Server

In IQ Server:

The IQ Policy Violations column will also alert you if there are any errors in the audit and quarantine process. If there is an error, for example if Repository Manager cannot communicate with IQ Server, a red exclamation mark will appear to the right of the Repository Results link along with text pertinent to the error that occurred. Additional information will be available in the Repository Manager logs.

If you have permissions to add capabilities in Repository Manager, then you can also access Repository Results from the Capabilities tab:

  1. In the Type list of capabilities, select IQ: Audit and Quarantine.
  2. Click the Status tab of the IQ: Audit and Quarantine capability.
  3. Click View Results.

Both methods open Repository Results on IQ Server as shown in the figure below.

figs/web/repo-results.png

Figure 12.14. Repository Results


Repository Results is a display of policy violations and the components that violated those policies, as well as components that don’t have violations. At the top of the view is a summary section with the following information:

  • A count of components that were identified and scanned in the selected proxy repository.
  • A percentage of scanned components that are open source.
  • A count of policy violation alerts displayed by threat level.
  • A count of components affected by policy violations.
  • A count of quarantined components.

Below the summary section is a list of policy violations and the components that violated those policies. By default, this information is ordered by the highest policy threat level. You can refine the list using one of the following filter categories:

Filter
  • All - Every component in the proxy repository.
  • Exact - Components in the proxy repository that have an exact match to a component known to IQ Server.
  • Unknown - Components in the proxy repository that have no exact match in IQ Server and cannot be identified.
Violations
  • Summary - The most severe policy violation of each component.
  • All - Every policy violation and the components that violated those policies. A component may appear more than once, if it violated multiple policies.
  • Quarantined - Components that are prevented from being served by the proxy repository because they violate policy.
  • Waived - Only policy violations that have been waived.
[Note]

You can update the audit results for the entire proxy repository by clicking the Re-evaluate Policy button in the upper right corner of the Audit View. This is useful especially after an associated policy is added or modified on IQ Server. However, it may take some time, if the repository is large.

During re-evaluation any previously quarantined components remain quarantined, no matter whether they still violate policy.

With quarantine enabled, if you delete a quarantined component, its quarantine status is also deleted. If you add the component back in, it is evaluated again just like any new addition to the repository. Currently the only way to remove a component from quarantine is to change the policy accordingly, then delete and add back the component.

Also, whenever you add or delete a component in the proxy repository, the audit results are automatically updated for the individual component only (not the entire repository).

12.3.7. Component Information Panel (CIP)

When you select a component listed in Repository Results, more detailed information is provided in the Component Information Panel (CIP) section of Repository Results.

Component Info

The Component Info tab displays the following information about a specific component:

  • Declared License - Any licenses(s) that has been declared by the author.
  • Observed License - Any license(s) found during the scan of the component’s source code.
  • Effective License - Either all licenses included in the Declared or Observed Group, or the overridden license.
  • Coordinates - The identifying information for a component. For known components, all available coordinate information will be displayed.
  • Highest Policy Threat - The highest threat level policy that has been violated, as well as the total number of violations.
  • Highest Security Threat - The highest threat level security issue and the total number of security issues.
  • Cataloged - The age of the component based on when it was first uploaded to an accessible storage site such as the Central Repository, for example.
  • Match State - How the component was matched (exact, similar, or unknown).
  • Identification Source- Whether a component is identified by Sonatype, or claimed by your own process.
  • Website - If available, an information icon providing a link to the project is displayed.

    The graph itself is laid out like a grid, with each vertical column representing a particular version. The selected version being identified by a vertical line. The information displayed in the graph includes:

  • Popularity - The relative popularity for each version is shown as a bar graph. The larger the graph the more popular the version.
  • License Risk - A display of risk based on license threat group settings from IQ Server.
  • Security Alerts - For each version, the highest security threat will be displayed by color, with the highest shown as red, and no marker indicating no threat.
figs/web/audit-view-component-info.png

Figure 12.15. The Component Info Tab


Policy

The Policy tab displays all policies that were violated by a component. Here you can see the name of the policy that has been violated (and any action that was taken), the name of the constraint that has been violated, and the value that was found.

While the Policy/Action and Constraint names are straight forward, the Condition Value may be a little confusing at first. A condition is simply the if part of an if/then statement. If a certain condition value is found which is equivalent to a condition being met, then the policy will be violated. E.g. if we have a policy that has a condition such that if a security vulnerability is found, our Condition Value column would indicate, Found x Security Vulnerabilities. In the same regard, Constraints are simply multiple conditions joined together.

figs/web/audit-view-policy.png

Figure 12.16. The Policy Tab


Licenses

The Licenses tab displays all Effective licenses, any licenses identified as declared by the author of the component, as well as any license found during the scan of the component source code. It also allows you to override the Effective license. To do this:

  1. Select the Scope of the override
  2. Select the Status
  3. Select one, or more, of the License(s)
  4. Optionally, but advised, provide a Comment
  5. Click Update
figs/web/audit-view-licenses.png

Figure 12.17. The Licenses Tab


Labels

The Labels tab displays any component labels that have been assigned previously at the root organization level on IQ Server. Component labels are essentially metadata that is assigned to a component within the context of a particular application or organization.

figs/web/audit-view-labels.png

Figure 12.18. The Labels Tab


Assigning a Label

When assigning a label, you will only see labels defined on the root organization.

To assign a label:

  1. Click a component you wish to assign a label to. The Component Information Panel (CIP) is displayed.
  2. Click the Label option from the CIP menu. Two boxes are displayed:

    • The Available box on the left displays all labels.
    • The Applied box on the right displays labels that have been assigned to the component.
  3. Click the button on the right side of a label to move it to the opposite side. You can hover over a label to view its description.
  4. Click on the + button on the right side of a label in the Available list to assign the label to the component.
  5. Click on the - button on the right side of a label in the Applied list to remove the label from the component.

When applying a label, you have the following options:

  • Assign label for a repository
  • Assign label for All Repositories
  • Assign label for all within the Root Organization

Vulnerabilities

The Vulnerabilities tab displays all security vulnerabilities related to a component. The list of vulnerabilities is sorted by Threat Level from higher to lower risk. The Problem Code column displays unique identifiers obtained from security information web sites such as CVE and OSVDB. The Info button provides additional information about each security vulnerability. Lastly, the Status column tracks the state of your research regarding the vulnerability.

figs/web/audit-view-vulnerabilities.png

Figure 12.19. The Vulnerabilities Tab


12.3.8. Waiving Repository Policy Violations

Policy violations for components found in your repositories can be waived with a number of options for the scope and target of the waiver. As with all features, make sure to verify you have the appropriate level of access provided by the role you have been assigned.

[Note]

Waiving policy violations for components in your repository is different than waiving for an application. See Section 10.9.2, “Adding a Waiver” for additional information on waiving components at that level.

Waive Policy Violation
  1. From within Nexus Repository Manager select a repository that has been evaluated.
  2. Click the IQ Policy Violations count for a repository. This will open the Repository Results hosted on IQ Server.
  3. Click a component that has a policy violation. This will expand the row to display the Component Information Panel (CIP).
  4. Click the Policy tab within the CIP to display the current policy violations for the selected component.
  5. Click the Waive button next to the policy violation you wish to waive.
  6. A dialog is displayed with the following settings:

    1. Determine the scope of the waiver:

      1. Repository selected repository [default]
      2. All repositories
      3. Organization Root Organization (This is displayed only if you have the appropriate level of access.)
    2. Determine the targeted component of the waiver:

      1. Selected component component name [default]
      2. All components
    3. Comments - Add a brief note if desired.
  7. Click the Waive button to complete the waiving process.
figs/web/audit-view-policy.png

Figure 12.20. Waiving Policy Violations


View/Remove Existing Waivers
  1. From within Nexus Repository Manager select a repository that has been evaluated by IQ Server.
  2. Click the IQ Policy Violations count for a repository. This will open the Repository Results hosted on IQ Server.
  3. Just above the list of components, you will see three options in the Violations filter. Click Waived, and then click one of the displayed components.
  4. Click the Policy tab within the CIP to display the current policy violations for the selected component.
  5. Click the View Existing Waivers button located above the list of policy violations. The Component Waivers dialog is displayed.
  6. If you wish to remove a waiver, click the Remove icon (shaped like a minus sign). A confirmation dialog is displayed. Click the Remove button to remove the waiver.
figs/web/repoman-view-waiver.png

Figure 12.21. Waiving Policy Violations


[Note]

Waivers will not be applied until a re-evaluation of the Repository Results has occurred. This will occur automatically if the targeted component is left to the default settings (i.e. not set to All). In cases where the selected component is set to All, a manual re-evaluation will need to occur for any results previously applying the violation.