OMP: OpenVAS Management Protocol

Version: 7.0

The "management" protocol of the Open Vulnerability Assessment System.

Contents

  1. Summary of Data Types
  2. Summary of Elements
  3. Summary of Commands
  4. RNC Preamble
  5. Data Type Details
  6. Element Details
  7. Command Details
  8. Compatibility Changes in Version 7.0

1 Summary of Data Types

alive_test
An alive test.
base64
Base64 encoded data.
boolean
A true or false value.
boolean_atoi
A true or false value, after conversion to an integer.
ctime
A date and time, in the C `ctime' format.
type_name
A name of a data type.
integer
An integer.
iso_time
A date and time, in ISO 8601 format.
levels
A string that may include the characters h, m, l, g and d.
name
A name.
port
A port.
user_list
A space separated list of users.
oid
An Object Identifier (OID).
severity
A severity score.
sort_order
A string describing an order for sorting.
status
The success or failure status of a command.
task_status
A task run status.
task_trend
The trend of results for a task.
threat
A threat level.
time_unit
A unit of time.
timezone
A timezone.
uuid
A Universally Unique Identifier (UUID).
uuid_or_empty
A Universally Unique Identifier (UUID), or the empty string.

2 Summary of Elements

c
A reference to a command.
e
A reference to an element.
r
A reference to a response.
o
An optional pattern item.
g
A group of pattern items.
any
Pattern item indicating "any number of".
pattern
The pattern element of a command or command descendant.
command_definition
Definition of a command in OMP describing HELP command.
filter_keywords
A group of filter keywords usable in an attribute or element text.
certificate_info
Info about a certificate.
note
A note.
override
An override.
result
A result.
report
Actually attributes and either base64 or a report.

3 Summary of Commands

authenticate
Authenticate with the manager.
commands
Run a list of commands.
create_agent
Create an agent.
create_alert
Create an alert.
create_asset
Create an asset.
create_config
Create a config.
create_credential
Create a credential.
create_filter
Create a filter.
create_group
Create a group.
create_note
Create a note.
create_override
Create an override.
create_permission
Create a permission.
create_port_list
Create a port list.
create_port_range
Create a port range.
create_report
Create a report.
create_report_format
Create a report format.
create_role
Create a role.
create_scanner
Create a scanner.
create_schedule
Create a schedule.
create_tag
Create a tag.
create_target
Create a target.
create_task
Create a task.
create_user
Create a user.
delete_agent
Delete an agent.
delete_asset
Delete an asset.
delete_config
Delete a config.
delete_alert
Delete an alert.
delete_credential
Delete a credential.
delete_filter
Delete a filter.
delete_group
Delete a group.
delete_note
Delete a note.
delete_override
Delete an override.
delete_report
Delete a report.
delete_permission
Delete a permission.
delete_port_list
Delete a port list.
delete_port_range
Delete a port range.
delete_report_format
Delete a report format.
delete_role
Delete a role.
delete_scanner
Delete a scanner.
delete_schedule
Delete a schedule.
delete_tag
Delete a tag.
delete_target
Delete a target.
delete_task
Delete a task.
delete_user
Delete a user.
describe_auth
Describe authentication methods.
empty_trashcan
Empty the trashcan.
get_agents
Get one or many agents.
get_configs
Get one or many configs.
get_aggregates
Get aggregates of various resources.
get_alerts
Get one or many alerts.
get_assets
Get one or many assets.
get_credentials
Get one or many credentials.
get_feeds
Get one or many feeds.
get_filters
Get one or many filters.
get_groups
Get one or many groups.
get_info
Get information for items of given type.
get_notes
Get one or many notes.
get_nvts
Get one or many NVTs.
get_nvt_families
Get a list of all NVT families.
get_overrides
Get one or many overrides.
get_permissions
Get one or many permissions.
get_port_lists
Get one or many port lists.
get_preferences
Get one or many preferences.
get_reports
Get one or many reports.
get_report_formats
Get one or many report formats.
get_results
Get results.
get_roles
Get one or many roles.
get_scanners
Get one or many scanners.
get_schedules
Get one or many schedules.
get_settings
Get one or many settings.
get_system_reports
Get one or many system reports.
get_tags
Get one or many tags.
get_targets
Get one or many targets.
get_tasks
Get one or many tasks.
get_users
Get one or many users.
get_version
Get the OpenVAS Manager Protocol version.
help
Get the help text.
modify_agent
Modify an existing agent.
modify_alert
Modify an existing alert.
modify_asset
Modify an existing asset.
modify_auth
Modify the authentication methods.
modify_config
Modify an existing config.
modify_credential
Modify an existing credential.
modify_filter
Modify an existing filter.
modify_group
Modify an existing group.
modify_note
Modify an existing note.
modify_override
Modify an existing override.
modify_permission
Modify a permission.
modify_port_list
Modify an existing port list.
modify_report
Modify an existing report.
modify_report_format
Update an existing report format.
modify_role
Modify an existing role.
modify_scanner
Modify an existing scanner.
modify_schedule
Modify an existing schedule.
modify_setting
Modify an existing setting.
modify_target
Modify an existing target.
modify_tag
Modify a tag.
modify_task
Modify an existing task.
modify_user
Modify a user.
move_task
Moves an existing task to another OMP slave scanner or the master.
restore
Restore a resource.
resume_task
Resume a task.
run_wizard
Run a wizard.
start_task
Manually start an existing task.
stop_task
Stop a running task.
sync_cert
Synchronize with a CERT feed.
sync_feed
Synchronize with an NVT feed.
sync_config
Synchronize a config with a scanner.
sync_scap
Synchronize with a SCAP feed.
test_alert
Run an alert.
verify_agent
Verify an agent.
verify_report_format
Verify a report format.
verify_scanner
Verify a scanner.

4 RNC Preamble

### Preamble

start = command | response

command
  = authenticate
    | commands
    | create_agent
    | create_alert
    | create_asset
    | create_config
    | create_credential
    | create_filter
    | create_group
    | create_note
    | create_override
    | create_permission
    | create_port_list
    | create_port_range
    | create_report
    | create_report_format
    | create_role
    | create_scanner
    | create_schedule
    | create_tag
    | create_target
    | create_task
    | create_user
    | delete_agent
    | delete_asset
    | delete_config
    | delete_alert
    | delete_credential
    | delete_filter
    | delete_group
    | delete_note
    | delete_override
    | delete_report
    | delete_permission
    | delete_port_list
    | delete_port_range
    | delete_report_format
    | delete_role
    | delete_scanner
    | delete_schedule
    | delete_tag
    | delete_target
    | delete_task
    | delete_user
    | describe_auth
    | empty_trashcan
    | get_agents
    | get_configs
    | get_aggregates
    | get_alerts
    | get_assets
    | get_credentials
    | get_feeds
    | get_filters
    | get_groups
    | get_info
    | get_notes
    | get_nvts
    | get_nvt_families
    | get_overrides
    | get_permissions
    | get_port_lists
    | get_preferences
    | get_reports
    | get_report_formats
    | get_results
    | get_roles
    | get_scanners
    | get_schedules
    | get_settings
    | get_system_reports
    | get_tags
    | get_targets
    | get_tasks
    | get_users
    | get_version
    | help
    | modify_agent
    | modify_alert
    | modify_asset
    | modify_auth
    | modify_config
    | modify_credential
    | modify_filter
    | modify_group
    | modify_note
    | modify_override
    | modify_permission
    | modify_port_list
    | modify_report
    | modify_report_format
    | modify_role
    | modify_scanner
    | modify_schedule
    | modify_setting
    | modify_target
    | modify_tag
    | modify_task
    | modify_user
    | move_task
    | restore
    | resume_task
    | run_wizard
    | start_task
    | stop_task
    | sync_cert
    | sync_feed
    | sync_config
    | sync_scap
    | test_alert
    | verify_agent
    | verify_report_format
    | verify_scanner

response
  = authenticate_response
    | commands_response
    | create_agent_response
    | create_alert_response
    | create_asset_response
    | create_config_response
    | create_credential_response
    | create_filter_response
    | create_group_response
    | create_note_response
    | create_override_response
    | create_permission_response
    | create_port_list_response
    | create_port_range_response
    | create_report_response
    | create_report_format_response
    | create_role_response
    | create_scanner_response
    | create_schedule_response
    | create_tag_response
    | create_target_response
    | create_task_response
    | create_user_response
    | delete_agent_response
    | delete_asset_response
    | delete_config_response
    | delete_alert_response
    | delete_credential_response
    | delete_filter_response
    | delete_group_response
    | delete_note_response
    | delete_override_response
    | delete_report_response
    | delete_permission_response
    | delete_port_list_response
    | delete_port_range_response
    | delete_report_format_response
    | delete_role_response
    | delete_scanner_response
    | delete_schedule_response
    | delete_tag_response
    | delete_target_response
    | delete_task_response
    | delete_user_response
    | describe_auth_response
    | empty_trashcan_response
    | get_agents_response
    | get_configs_response
    | get_aggregates_response
    | get_alerts_response
    | get_assets_response
    | get_credentials_response
    | get_feeds_response
    | get_filters_response
    | get_groups_response
    | get_info_response
    | get_notes_response
    | get_nvts_response
    | get_nvt_families_response
    | get_overrides_response
    | get_permissions_response
    | get_port_lists_response
    | get_preferences_response
    | get_reports_response
    | get_report_formats_response
    | get_results_response
    | get_roles_response
    | get_scanners_response
    | get_schedules_response
    | get_settings_response
    | get_system_reports_response
    | get_tags_response
    | get_targets_response
    | get_tasks_response
    | get_users_response
    | get_version_response
    | help_response
    | modify_agent_response
    | modify_alert_response
    | modify_asset_response
    | modify_auth_response
    | modify_config_response
    | modify_credential_response
    | modify_filter_response
    | modify_group_response
    | modify_note_response
    | modify_override_response
    | modify_permission_response
    | modify_port_list_response
    | modify_report_response
    | modify_report_format_response
    | modify_role_response
    | modify_scanner_response
    | modify_schedule_response
    | modify_setting_response
    | modify_target_response
    | modify_tag_response
    | modify_task_response
    | modify_user_response
    | move_task_response
    | restore_response
    | resume_task_response
    | run_wizard_response
    | start_task_response
    | stop_task_response
    | sync_cert_response
    | sync_feed_response
    | sync_config_response
    | sync_scap_response
    | test_alert_response
    | verify_agent_response
    | verify_report_format_response
    | verify_scanner_response

5 Data Type Details

5.1 Data Type alive_test

In short: An alive test.

5.1.1 RNC

alive_test = xsd:token { pattern = "ICMP, TCP Service & ARP Ping|TCP Service & ARP Ping|I↵
CMP & ARP Ping|ICMP & TCP Service Ping|ARP Ping|TCP Service Ping|ICMP Ping|S↵
can Config Default" }

5.2 Data Type base64

In short: Base64 encoded data.

5.2.1 RNC

base64 = xsd:base64Binary

5.3 Data Type boolean

In short: A true or false value.

Zero is false, anything else is true. As a result, the empty string is considered true.

5.3.1 RNC

boolean = text

5.4 Data Type boolean_atoi

In short: A true or false value, after conversion to an integer.

Zero is false, anything else is true. The value is first converted to an integer, as by the C `atoi' routine. This means that an empty string is considered false.

5.4.1 RNC

boolean_atoi = text

5.5 Data Type ctime

In short: A date and time, in the C `ctime' format.

An example string in this format is "Wed Jun 30 21:49:08 1993\n".

5.5.1 RNC

ctime = text

5.6 Data Type type_name

In short: A name of a data type.

5.6.1 RNC

type_name = xsd:Name

5.7 Data Type integer

In short: An integer.

5.7.1 RNC

integer = xsd:integer

5.8 Data Type iso_time

In short: A date and time, in ISO 8601 format.

An example string in this format is "2011-11-08T19:57:06+02:00".

5.8.1 RNC

iso_time = text

5.9 Data Type levels

In short: A string that may include the characters h, m, l, g and d.

5.9.1 RNC

levels = xsd:token { pattern = "h?m?l?g?d?" }

5.10 Data Type name

In short: A name.

Typically this is the name of one of the manager resources, like a task or target.

5.10.1 RNC

name = xsd:string

5.11 Data Type port

In short: A port.

5.11.1 RNC

port = xsd:token { pattern = "[0-9]{1,5}" }

5.12 Data Type user_list

In short: A space separated list of users.

5.12.1 RNC

user_list = text

5.13 Data Type oid

In short: An Object Identifier (OID).

5.13.1 RNC

oid = xsd:token { pattern = "[0-9\.]{1,80}" }

5.14 Data Type severity

In short: A severity score.

A severity score is a decimal number between 0.0 and 10.0 (inclusive) with one digit after the decimal point or a special negative value (-1.0, -2.0 or -3.0). If a single severity score defines a constraint, e.g. on whether an override applies, for values 0.0 and lower the severity must be equal to match while for > 0.0 the compared value must be greater or equal.

5.14.1 RNC

severity = xsd:token { pattern = "-[1-3](\.0)?|[0-9](\.[0-9])?|10(\.0)?" }

5.15 Data Type sort_order

In short: A string describing an order for sorting.

The string "descending" denotes descending order, anything else means ascending.

5.15.1 RNC

sort_order = text

5.16 Data Type status

In short: The success or failure status of a command.

5.16.1 RNC

status = xsd:token { pattern = "200|201|202|400|401|403|404|409|500|503" }

5.17 Data Type task_status

In short: A task run status.

5.17.1 RNC

task_status = xsd:token { pattern = "Delete Requested|Done|New|Requested|Running|Stop Requ↵
ested|Stopped|Internal Error" }

5.18 Data Type task_trend

In short: The trend of results for a task.

5.18.1 RNC

task_trend = xsd:token { pattern = "up|down|more|less|same" }

5.19 Data Type threat

In short: A threat level.

Threat levels are a textual classification of severity scores only supported for importing reports from OpenVAS-6 and older. The use of these elements is deprecated as they are otherwise replaced by severity elements, which should be used instead.

5.19.1 RNC

threat = xsd:token { pattern = "High|Medium|Low|Alarm|Log|Debug" }

5.20 Data Type time_unit

In short: A unit of time.

5.20.1 RNC

time_unit = xsd:token { pattern = "second|minute|hour|day|week|month|year|decade" }

5.21 Data Type timezone

In short: A timezone.

The format of a timezone is the same as that of the TZ environment variable on GNU/Linux systems. That is, the same value accepted by the tzset C function. There are three versions of the format. Note the lack of spaces in the examples.

"std offset" defines a simple timezone. For example, "FOO+2" defines a timezone FOO which is 2 hours behind UTC.

"std offset dst [offset],start[/time],end[/time]" defines a timezone, including daylight savings time. For example, "NZST-12.00:00NZDT-13:00:00,M10.1.0,M3.3.0".

":[filespec]" refers to a predefined timezone. For example, ":Africa/Johannesburg". Note that the colon is optional. Certain acronyms are predefined, such as GB, NZ and CET.

5.21.1 RNC

timezone = text

5.22 Data Type uuid

In short: A Universally Unique Identifier (UUID).

5.22.1 RNC

uuid = xsd:token { pattern = "[0-9abcdefABCDEF\-]{1,40}" }

5.23 Data Type uuid_or_empty

In short: A Universally Unique Identifier (UUID), or the empty string.

5.23.1 RNC

uuid_or_empty = xsd:token { pattern = "[0-9abcdefABCDEF\-]{0,40}" }

6 Element Details

6.1 Element c

In short: A reference to a command.

6.1.1 Structure

    6.1.2 RNC

    c
     = element c
         {
           text
         }
    

    6.2 Element e

    In short: A reference to an element.

    6.2.1 Structure

      6.2.2 RNC

      e
       = element e
           {
             text
           }
      

      6.3 Element r

      In short: A reference to a response.

      6.3.1 Structure

        6.3.2 RNC

        r
         = element r
             {
               text
             }
        

        6.4 Element o

        In short: An optional pattern item.

        6.4.1 Structure

          • One of
            • <c>
              A reference to a command.
            • <e>
              A reference to an element.
            • <r>
              A reference to a response.
            • <g>
              A group of pattern items.

        6.4.2 RNC

        o
         = element o
             {
               ( c
                   | e
                   | r
                   | g )
             }
        

        6.5 Element g

        In short: A group of pattern items.

        6.5.1 Structure

          • <c> *
            A reference to a command.
          • <e> *
            A reference to an element.
          • <r> *
            A reference to a response.
          • <o> *
            An optional pattern item.
          • <any> *
            Pattern item indicating "any number of".

        6.5.2 RNC

        g
         = element g
             {
               c*
               & e*
               & r*
               & o*
               & any*
             }
        

        6.6 Element any

        In short: Pattern item indicating "any number of".

        6.6.1 Structure

          • One of
            • <c>
              A reference to a command.
            • <e>
              A reference to an element.
            • <r>
              A reference to a response.
            • <g>
              A group of pattern items.

        6.6.2 RNC

        any
         = element any
             {
               ( c
                   | e
                   | r
                   | g )
             }
        

        6.7 Element pattern

        In short: The pattern element of a command or command descendant.

        It's actually either a 't' element, or the word "text", or "".

        6.7.1 Structure

          • <attrib> *
            An attribute.
            • <name>
              • <type>
                • <required>
                  • <filter_keywords> *
                    Optional description of filter keywords usable in the attribute.
                  • <c> *
                    A reference to a command.
                  • <e> *
                    A reference to an element.
                  • <r> *
                    A reference to a response.
                  • <o> *
                    An optional pattern item.
                  • <g> *
                    A group of pattern items.
                  • <any> *
                    Pattern item indicating "any number of".
                  • <t> ?
                    The type of the text of the element.

                  6.7.2 RNC

                  pattern
                   = element pattern
                       {
                         text
                         & pattern_attrib*
                         & c*
                         & e*
                         & r*
                         & o*
                         & g*
                         & any*
                         & pattern_t?
                       }
                  
                  pattern_attrib
                   = element attrib
                       {
                         pattern_attrib_name
                         & pattern_attrib_type
                         & pattern_attrib_required
                         & pattern_attrib_filter_keywords*
                       }
                  
                  pattern_attrib_name
                   = element name
                       {
                         type_name
                       }
                  
                  pattern_attrib_type
                   = element type
                       {