<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="exp" docName=" draft-zhang-i2nsf-info-model-monitoring-03"
     ipr="trust200902">
  <front>
    <title abbrev="IM for NSF Monitoring">An Information Model for the
    Monitoring of Network Security Functions (NSF)</title>

    <author fullname="Liang Xia" initials="L." surname="Xia">
      <organization>Huawei</organization>

      <address>
        <email>frank.xialiang@huawei.com</email>
      </address>
    </author>

    <author fullname="Dacheng Zhang" initials="D." surname="Zhang">
      <organization>Huawei</organization>

      <address>
        <email>dacheng.zhang@huawei.com</email>
      </address>
    </author>

    <author fullname="Yi Wu" initials="Y." surname="Wu">
      <organization>Aliababa Group</organization>

      <address>
        <email>anren.wy@alibaba-inc.com</email>
      </address>
    </author>

    <author fullname="Rakesh Kumar" initials="R." surname="Kumar">
      <organization>Juniper Networks</organization>

      <address>
        <email>rkkumar@juniper.net</email>
      </address>
    </author>

    <author fullname="Anil Lohiya" initials="A." surname="Lohiya">
      <organization>Juniper Networks</organization>

      <address>
        <email>alohiya@juniper.net</email>
      </address>
    </author>

    <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
      <organization>Fraunhofer SIT</organization>

      <address>
        <email>henk.birkholz@sit.fraunhofer.de</email>
      </address>
    </author>

    <date day="13" month="March" year="2017"/>

    <abstract>
      <t>The Network Security Functions (NSF) NSF-facing interface exists
      between the Service Provider's management system (or Security
      Controller) and the NSFs to enforce the security policy provisioning and
      network security status monitoring . This document focuses on the
      monitoring part of it and proposes the information model for it. </t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>According to <xref target="I-D.ietf-i2nsf-framework"/>, the interface
      provided by a NSF (e.g., FW, IPS, Anti-DDOS, or Anti-Virus) to
      administrative entities (e.g., NMS, security controller) for configuring
      security function in the NSF and monitoring the NSF is referred to as a
      'I2NSF customer-facing interface'. The monitoring part of it is meant to
      monitor the NSF e.g. events, alerts, alarms, logs, counters. The
      monitoring of the NSF plays a very important role in the overall
      security framework if done in a timely and comprehensive way. The
      monitoring information generated by a NSF could very well be an early
      indication of malicious activity, or anomalous behavior, or a potential
      sign of denial of service attacks. </t>

      <t>This draft proposes a comprehensive NSF monitoring information model
      that provide visibility into NSFs. This document will not go into the
      design details of NSF-facing interface. Instead, this draft is focused
      on specifying the information that a NSF needs to provide in the
      monitoring part of the NSF-facing interface, as well as its information
      model. Besides, [I-D.draft-xibassnez-i2nsf-capability ] specifies the
      information model for the security policy provisioning part of the
      NSF-facing interface. </t>
    </section>

    <section title="Terminology">
      <section title="Key Words">
        <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
        "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
        document are to be interpreted as described in [RFC2119].</t>
      </section>

      <section title="Definition of Terms">
        <t>This document uses the terms defined in
        [I-D.draft-ietf-i2nsf-terminology].</t>
      </section>
    </section>

    <section title="Use cases for NSF Monitoring Data">
      <t>As mentioned earlier, monitoring plays a very critical role in the
      overall security framework. The monitoring of the NSF provides very
      valuable information to the security controller in maintaining the
      provisioned security posture. Besides this, there are various other
      reasons to monitor the NSFs as listed below:<list style="symbols">
          <t>The security administrator could configure a policy that is
          triggered on a specific event happened in the NSF or the network.
          The security controller would monitor for the specified event and
          once it happens, it configures additional security functions as per
          the policy.</t>

          <t>The events triggered by NSFs as a result of security policy
          violation could be used by SIEM to detect any suspicious
          activity.</t>

          <t>The events and activity logs from NSFs could be used to build
          advanced analytics such as behavior and predictive to improve the
          security posture.</t>

          <t>The security controller could use events from the NSF for
          achieving high availability. It could take corrective actions such
          as restarting a failed NSF, horizontally scaling the NSF etc.</t>

          <t>The events and activity logs from the NSF could aid in debugging
          and root cause analysis of an operational issue.</t>

          <t>The activity logs from the NSF could be used to build historical
          data for operational and business reasons.</t>
        </list></t>
    </section>

    <section title="Classification of NSF Monitoring Data">
      <t>In order to maintain a strong security posture, it is not only
      necessary to configure NSF security policies but also to continuously
      monitor NSF by consuming acquirable monitoring data. This enables
      security admins to assess what is happening in the network timely. It is
      not possible to block all the internal and external threats based on
      static security posture but requires a very dynamic posture with
      constant visibility. This draft defines a set of information elements
      (and their scope) that can be acquired from NSF and can be used as
      monitoring data. In essence, these types of monitoring data can be
      leveraged to support constant visibility on multiple levels of
      granularity and can be consumed by corresponding functions. The types of
      monitoring data as ordered below increase in expressiveness by
      incorporating more information to the semantics of the monitoring data.
      There are two categories of monitoring data. Information that is
      produced and emitted by an NSF automatically (published data) and
      information that is produced and retained by the NSF and has to be
      collected in intervals (retained data):</t>

      <t>Published Data:<list style="symbols">
          <t>Events: the most generic type of monitoring data that can be
          emitted by an NSF. An event is defined in [RFC3877] as
          &ldquo;something that happens which may be of interest. A fault, a
          change in status, crossing a threshold, or an external input to the
          system, for example. In the context of the I2NSF IMM, an event is a
          representation of a change of state, configuration, or composition
          of an NSF or an entity (e.g. an endpoint) or an activity (e.g. a PDU
          flow) that can be observed by the NSF and can be interpreted as a
          change of state or behavior by the NSF. An event can be created
          without the use of an I2NSF Condition (declarative guidance)
          available to the NSF. In the context of I2NSF, in some cases an
          event can trigger low level I2NSF actions (which constitutes an
          implicit escalation to alert via primate assessment).</t>

          <t>Alert: an event that is annotated with a criticality assessment
          due to non-compliance with I2NSF conditions (declarative guidance)
          available to an I2NSF Consumer via I2NSF Actions. The Intrusion
          Detection Message Exchange Format [RFC4765] defines a representation
          that &ldquo;systems can use to report alerts about events that they
          deem suspicious&rdquo; and also associates a severity (&ldquo;an
          estimate of the relative severity of the event&rdquo;) with the
          corresponding alert. In the context of the I2NSF IMM, an alert is
          derived from events that express changes indicating not to conform
          with declarative guidance (e.g. an exceeded threshold of a value or
          a pattern or signature found in a PDU stream &ndash; typically an
          I2NSF condition) or due to imperative guidance (e.g. correlation
          rules applied to streams of multiple events over time or a
          black-list content of an event matches &ndash; typically an I2NSF
          Policy Rule). An alert is created by an I2NSF Producer with respect
          to I2NSF conditions (declarative guidance) or imperative guidance
          available to the I2NSF Producer. An alert does not indicate an
          immediate impact on operations and are not time-sensitive (but can
          be escalated to an alarm nevertheless due to persistence via an
          I2NSF Policy Rule). </t>

          <t>Alarms: an alarm that is annotated with the assertion of: 1.)
          having immediate impact on operations, or 2.) a persistence that in
          non-compliant in respect to I2NSF conditions (declarative guidance),
          or 3.) a correlation result produced by a I2NSF Service in respect
          to the result of I2NSF Policy Rules that process alerts. Alarms are
          time-sensitive and must be reported to the security admin as soon as
          possible. By processing alarms, the administrator can rapidly locate
          the root-cause of faults and rapidly deal with the faults to ensure
          normal operation of the NSFs and avoid NSFs going into unknown state
          or potentially exposing security vulnerabilities. An analyst can
          manage the NSF with via I2NSF Policy Rules. The intend of alarms is
          to highlight only critical information and to avoid continuous
          combing through large amount alerts (or even events) by
          analysts.</t>
        </list></t>

      <t>Retained Data:<list style="symbols">
          <t>Logs: Logs are information generated by NSF about its operational
          and informational data, or various events such as user activities,
          network/traffic status and network activity, etc. Logs are important
          for debugging, auditing and security forensic. Unlike events, logs
          do not require an immediate attention from an analyst but may be
          useful for visibility and retroactive cyber forensic. Hence, logs
          usually include less structures but potentially more detailed
          information in regard to events. For example, the NSF could generate
          a log when due to an I2NSF Policy Rule. Logs can be continuously
          processed by I2NSF Agent that act as I2NSF Producer and emit events
          via function specifically tailored to a type of log. </t>

          <t>Counters: A specific representation of identical state changes
          that potentially occur in high frequency. Examples include network
          interface counters (packets, bytes), drop, error counters etc.
          Counters are useful in debugging and visibility into operational
          behavior of the NSF. An I2NSF Agent that observes the progress of
          counters can act as an I2NSF Producer and emit Events in respect to
          I2NSF Policy Rules.</t>
        </list></t>
    </section>

    <section title="Exporting NSF Monitoring Data">
      <t>As per the use cases of NSF monitoring data, the data need to be sent
      to various consumers based on the needs and requirements. There are
      multiple things to be considered for exporting this data to needed
      parties as listed below:<list style="symbols">
          <t>Pull-Push model: A set of data could be pushed by a NSF to the
          needed party or pulled by the needed party from a NSF. A specific
          data might need both the models at the same time if there are
          multiple consumers with varying requirements. It really depends upon
          the need and its usages to the consumer. In general, any alarm is
          considered to be of great importance and must be sent immediately
          for any meaningful action so it should be sent using push model but
          logs are not as critical so could be pulled by the consumer. The
          I2NSF does not mandate a specific scheme for each data set, it is up
          to each implementation.</t>

          <t>Export frequency: The monitoring data could be sent immediately
          upon generation by a NSF to interested parties or pushed
          periodically. The frequency of exporting the data depends upon its
          size and timely usefulness. It is out of the scope of I2NSF and left
          to each NSF implementation.</t>

          <t>Authentication: There may be a need for authentication between
          monitoring data producer (NSF) and consumer to ensure that critical
          information does not fall into wrong hands. This may be necessary if
          the NSF directly export data to the consumer outside its admin
          boundary. The I2NSF does not mandate when and how specific
          authentication must be done.</t>

          <t>Subscription method: In order for the consumer to pull the data
          from NSF or for NSF to push the data to a consumer, there must be a
          mechanism for consumer to subscribe to the NSF data it is interested
          in. There are few open source method available and it is up to each
          implementation to decide the right one.</t>

          <t>Data transfer mode: The data could be pushed by NSF using a
          connection-less model that does require a persistent connection or
          streamed over a persistent connection. It depends upon the
          requirement of the consumer and the nature of data. A particular set
          of data can use either or both the mode based on implementation.</t>

          <t>Transport method: There are lot of transport mechanism such as
          IP, UDP, TCP. There are also open source implementations for
          specific set of data such as systems counter. The I2NSF does not
          mandate any specific method for a given data set, it is up to each
          implementation.</t>
        </list></t>
    </section>

    <section title="Basic Information Model for All Monitoring Data">
      <t>As explained in the above section, there is a wealth of data
      available from the NSF that can be monitored. Firstly, there must be
      some general information with each monitoring message sent from an NSF
      that helps consumer in identifying meta data with that message, which
      are listed as below: </t>

      <t><list style="symbols">
          <t>message_version: Indicate the version of the data format and is a
          two-digit decimal numeral starting from 01</t>

          <t>message_type: Event, Alert, Alarm, Log, Counter, etc</t>

          <t>time_stamp: Indicate the time when the message is generated</t>

          <t>vendor_name: The name of the NSF vendor</t>

          <t>NSF_name: The name (or IP) of the NSF generating the message</t>

          <t>Module_name: The module name outputting the message</t>

          <t>Severity: Indicates the level of the logs. There are total eight
          levels, from 0 to 7. The smaller the numeral is, the higher the
          severity is. </t>
        </list></t>
    </section>

    <section title="Extended Information Model for Monitoring Data">
      <t>This section covers the additional information associated with the
      system messages. The extended information model is only for the
      structured data such as alarm. Any unstructured data is specified with
      basic information model only.</t>

      <t>[Editors' note]: This section remains the same as -02 version,
      although the classification of the monitoring data has been changed from
      -02 version. The new inconsistency will be addressed in next verion.
      </t>

      <section title="System Alarm">
        <t/>

        <section title="Memory Alarm">
          <t>The following information should be included in a Memory
          Alarm:</t>

          <t><list style="symbols">
              <t>event_name: 'MEM_USAGE_ALARM'</t>

              <t>module_name: Indicate the NSF module responsible for
              generating this alarm</t>

              <t>usage: specifies the amount of memory used</t>

              <t>threshold: The threshold triggering the alarm</t>

              <t>severity: The severity of the alarm such as critical, high,
              medium, low</t>

              <t>message: 'The memory usage exceeded the threshold'</t>
            </list></t>
        </section>

        <section title="CPU Alarm">
          <t>The following information should be included in a CPU Alarm:</t>

          <t><list style="symbols">
              <t>event_name: 'CPU_USAGE_ALARM'</t>

              <t>usage: Specifies the amount of CPU used</t>

              <t>threshold: The threshold triggering the event</t>

              <t>severity: The severity of the alarm such as critical, high,
              medium, low</t>

              <t>message: 'The CPU usage exceeded the threshold'</t>
            </list></t>
        </section>

        <section title="Disk Alarm">
          <t>The following information should be included in a Disk Alarm:</t>

          <t><list style="symbols">
              <t>event_name: 'DISK_USAGE_ALARM'</t>

              <t>usage: Specifies the amount of disk space used</t>

              <t>threshold: The threshold triggering the event</t>

              <t>severity: The severity of the alarm such as critical, high,
              medium, low</t>

              <t>message: 'The disk usage exceeded the threshold'</t>
            </list></t>
        </section>

        <section title="Hardware Alarm">
          <t>The following information should be included in a Hardware
          Alarm:</t>

          <t><list style="symbols">
              <t>event_name: 'HW_FAILURE_ALARM'</t>

              <t>component_name: Indicate the HW component responsible for
              generating this alarm</t>

              <t>threshold: The threshold triggering the alarm</t>

              <t>severity: The severity of the alarm such as critical, high,
              medium, low</t>

              <t>message: 'The HW component has failed or degraded'</t>
            </list></t>
        </section>

        <section title="Interface Alarm">
          <t>The following information should be included in a Interface
          Alarm:</t>

          <t><list style="symbols">
              <t>event_name: 'IFNET_STATE_ALARM'</t>

              <t>interface_Name: The name of interface</t>

              <t>interface_state: 'UP', 'DOWN', 'CONGESTED'</t>

              <t>threshold: The threshold triggering the event</t>

              <t>severity: The severity of the alarm such as critical, high,
              medium, low</t>

              <t>message: 'Current interface state'</t>
            </list></t>
        </section>
      </section>

      <section title="System Events">
        <t/>

        <section title="Access Violation">
          <t>The following information should be included in this event:</t>

          <t><list style="symbols">
              <t>event_name: 'ACCESS_DENIED'</t>

              <t>user: Name of a user</t>

              <t>group: Group to which a user belongs</t>

              <t>login_ip_address: Login IP address of a user</t>

              <t>authentication_mode: User authentication mode. e.g., Local
              Authentication, Third-Party Server Authentication,
              Authentication Exemption, SSO Authentication</t>

              <t>message: 'access denied'</t>
            </list></t>
        </section>

        <section title="Configuration Change">
          <t>The following information should be included in this event:</t>

          <t><list style="symbols">
              <t>event_name: 'CONFIG_CHANGE'</t>

              <t>user: Name of a user</t>

              <t>group: Group to which a user belongs</t>

              <t>login_ip_address: Login IP address of a user</t>

              <t>authentication_mode: User authentication mode. e.g., Local
              Authentication, Third-Party Server Authentication,
              Authentication Exemption, SSO Authentication</t>

              <t>message: 'Configuration modified'</t>
            </list></t>
        </section>
      </section>

      <section title="System Log">
        <t/>

        <section title="Access Logs">
          <t>Access logs record administrators' login, logout, and operations
          on the device. By analyzing them, security vulnerabilities can be
          identified. The following information should be included in
          operation report:</t>

          <t><list style="symbols">
              <t>Administrator: Administrator that operates on the device</t>

              <t>login_ip_address: IP address used by an administrator to log
              in</t>

              <t>login_mode: Specifies the administrator logs in mode e.g.
              root, user</t>

              <t>operation_type: The operation type that the administrator
              execute, e.g., login, logout, configuration, etc</t>

              <t>result: Command execution result</t>

              <t>content: Operation performed by an administrator after
              login.</t>
            </list></t>
        </section>

        <section title="Resource Utilization Logs">
          <t>Running reports record the device system's running status, which
          is useful for device monitoring. The following information should be
          included in running report:</t>

          <t><list style="symbols">
              <t>system_status: The current system's running status</t>

              <t>CPU_usage: Specifies the CPU usage</t>

              <t>memory_usage: Specifies the memory usage</t>

              <t>disk_usage: Specifies the disk usage</t>

              <t>disk_left: Specifies the available disk space left</t>

              <t>session_number: Specifies total concurrent sessions</t>

              <t>process_number: Specifies total number of system
              processes</t>

              <t>in_traffic_rate: The total inbound traffic rate in pps</t>

              <t>out_traffic_rate: The total outbound traffic rate in pps</t>

              <t>in_traffic_speed: The total inbound traffic speed in bps</t>

              <t>out_traffic_speed: The total outbound traffic speed in
              bps</t>
            </list></t>
        </section>

        <section title="User Activity Logs">
          <t>User activity logs provide visibility into users' online records
          (such as login time, online/lockout duration, and login IP
          addresses) and the actions users perform. User activity reports are
          helpful to identify exceptions during user login and network access
          activities.</t>

          <t><list style="symbols">
              <t>user: Name of a user</t>

              <t>group: Group to which a user belongs</t>

              <t>login_ip_address: Login IP address of a user</t>

              <t>authentication_mode: User authentication mode. e.g., Local
              Authentication, Third-Party Server Authentication,
              Authentication Exemption, SSO Authentication</t>

              <t>access_mode: User access mode. e.g., PPP, SVN, LOCAL</t>

              <t>online_duration: Online duration</t>

              <t>lockout_duration: Lockout duration</t>

              <t>type: User activities. e.g., Successful User Login, Failed
              Login attempts, User Logout, Successful User Password Change,
              Failed User Password Change, User Lockout, User Unlocking,
              Unknown</t>

              <t>cause: Cause of a failed user activity</t>
            </list></t>
        </section>
      </section>

      <section title="System Counters">
        <t/>

        <section title="Interface counters">
          <t>Interface counters provide visibility into traffic into and out
          of NSF, bandwidth usage.</t>

          <t><list style="symbols">
              <t>interface_name: Network interface name configured in NSF</t>

              <t>in_total_traffic_pkts: Total inbound packets</t>

              <t>out_total_traffic_pkts: Total outbound packets</t>

              <t>in_total_traffic_bytes: Total inbound bytes</t>

              <t>out_total_traffic_bytes: Total outbound bytes</t>

              <t>in_drop_traffic_pkts: Total inbound drop packets</t>

              <t>out_drop_traffic_pkts: Total outbound drop packets</t>

              <t>in_drop_traffic_bytes: Total inbound drop bytes</t>

              <t>out_drop_traffic_bytes: Total outbound drop bytes</t>

              <t>in_traffic_ave_rate: Inbound traffic average rate in pps</t>

              <t>in_traffic_peak_rate: Inbound traffic peak rate in pps</t>

              <t>in_traffic_ave_speed: Inbound traffic average speed in
              bps</t>

              <t>in_traffic_peak_speed: Inbound traffic peak speed in bps</t>

              <t>out_traffic_ave_rate: Outbound traffic average rate in
              pps</t>

              <t>out_traffic_peak_rate: Outbound traffic peak rate in pps</t>

              <t>out_traffic_ave_speed: Outbound traffic average speed in
              bps</t>

              <t>out_traffic_peak_speed: Outbound traffic peak speed in
              bps.</t>
            </list></t>
        </section>
      </section>

      <section title="NSF Events">
        <t/>

        <section title="DDoS Event">
          <t>The following information should be included in a DDoS Event:</t>

          <t><list style="symbols">
              <t>event_name: 'SEC_EVENT_DDoS'</t>

              <t>sub_attack_type: Any one of Syn flood, ACK flood, SYN-ACK
              flood, FIN/RST flood, TCP Connection flood, UDP flood, Icmp
              flood, HTTPS flood, HTTP flood, DNS query flood, DNS reply
              flood, SIP flood, and etc.</t>

              <t>dst_ip: The IP address of a victum under attack</t>

              <t>dst_port: The port numbers that the attrack traffic aims
              at.</t>

              <t>start_time: The time stamp indicating when the attack
              started</t>

              <t>end_time: The time stamp indicating when the attack ended. If
              the attack is still undergoing when sending out the alarm, this
              field can be empty.</t>

              <t>attack_rate: The PPS of attack traffic</t>

              <t>attack_speed: the bps of attack traffic</t>

              <t>rule_id: The ID of the rule being triggered</t>

              <t>rule_name: The name of the rule being triggered</t>

              <t>profile: Security profile that traffic matches.</t>
            </list></t>
        </section>

        <section title="Session Table Event">
          <t>The following information should be included in a Session Table
          Event:</t>

          <t><list style="symbols">
              <t>event_name: 'SESSION_USAGE_HIGH'</t>

              <t>current: The number of concurrent sessions</t>

              <t>max: The maximum number of sessions that the session table
              can support</t>

              <t>threshold: The threshold triggering the event</t>

              <t>message: 'The number of session table exceeded the
              threshold'</t>
            </list></t>
        </section>

        <section title="Virus Event">
          <t>The following information should be included in a Virus
          Event:</t>

          <t><list style="symbols">
              <t>event_Name: 'SEC_EVENT_VIRUS'</t>

              <t>virus_type: Type of the virus, e.g., trojan, worm, macro
              Virus type</t>

              <t>virus_name</t>

              <t>dst_ip: The destination IP address of the packet where the
              virus is found</t>

              <t>src_ip: The source IP address of the packet where the virus
              is found</t>

              <t>src_port: The source port of the packet where the virus is
              found</t>

              <t>dst_port: The destination port of the packet where the virus
              is found</t>

              <t>src_zone: The source security zone of the packet where the
              virus is found</t>

              <t>dst_zone: The destination security zone of the packet where
              the virus is found</t>

              <t>file_type: The type of the file where the virus is hided
              within</t>

              <t>file_name: The name of the file where the virus is hided
              within</t>

              <t>virus_info: The brief introduction of virus</t>

              <t>raw_info: The information describing the packet triggering
              the event.</t>

              <t>rule_id: The ID of the rule being triggered</t>

              <t>rule_name: The name of the rule being triggered</t>

              <t>profile: Security profile that traffic matches.</t>
            </list></t>
        </section>

        <section title="Intrusion Event">
          <t>The following information should be included in a Intrustion
          Event:</t>

          <t><list style="symbols">
              <t>event_name: The name of event: 'SEC_EVENT_Intrusion'</t>

              <t>sub_attack_type: Attack type, e.g., brutal force, buffer
              overflow</t>

              <t>src_ip: The source IP address of the packet</t>

              <t>dst_ip: The destination IP address of the packet</t>

              <t>src_port:The source port number of the packet</t>

              <t>dst_port: The destination port number of the packet</t>

              <t>src_zone: The source security zone of the packet</t>

              <t>dst_zone: The destination security zone of the packet</t>

              <t>protocol: The employed transport layer protocol, e.g.,TCP,
              UDP</t>

              <t>app: The employed application layer protocol, e.g.,HTTP,
              FTP</t>

              <t>rule_id: The ID of the rule being triggered</t>

              <t>rule_name: The name of the rule being triggered</t>

              <t>profile: Security profile that traffic matches</t>

              <t>intrusion_info: Simple description of intrusion</t>

              <t>raw_info: The information describing the packet triggering
              the event.</t>
            </list></t>
        </section>

        <section title="Botnet Event">
          <t>The following information should be included in a Botnet
          Event:</t>

          <t><list style="symbols">
              <t>event_name: the name of event: 'SEC_EVENT_Botnet'</t>

              <t>botnet_name: The name of the detected botnet</t>

              <t>src_ip: The source IP address of the packet</t>

              <t>dst_ip: The destination IP address of the packet</t>

              <t>src_port: The source port number of the packet</t>

              <t>dst_port: The destination port number of the packet</t>

              <t>src_zone: The source security zone of the packet</t>

              <t>dst_zone: The destination security zone of the packet</t>

              <t>protocol: The employed transport layer protocol, e.g.,TCP,
              UDP</t>

              <t>app: The employed application layer protocol, e.g.,HTTP,
              FTP</t>

              <t>role: The role of the communicating parties within the
              botnet: <list style="numbers">
                  <t>the packet from zombie host to the attacker</t>

                  <t>The packet from the attacker to the zombie host</t>

                  <t>The packet from the IRC/WEB server to the zombie host</t>

                  <t>The packet from the zombie host to the IRC/WEB server</t>

                  <t>The packet from the attacker to the IRC/WEB server</t>

                  <t>The packet from the IRC/WEB server to the attacker</t>

                  <t>The packet from the zombie host to the victim</t>
                </list></t>

              <t>botnet_info: Simple description of Botnet</t>

              <t>rule_id: The ID of the rule being triggered</t>

              <t>rule_name: The name of the rule being triggered</t>

              <t>profile: Security profile that traffic matches</t>

              <t>raw_info: The information describing the packet triggering
              the event.</t>
            </list></t>
        </section>

        <section title="Web Attack Event">
          <t>The following information should be included in a Web Attack
          Alarm:</t>

          <t><list style="symbols">
              <t>event_name: the name of event: 'SEC_EVENT_WebAttack'</t>

              <t>sub_attack_type: Concret web attack type, e.g., sql
              injection, command injection, XSS, CSRF</t>

              <t>src_ip: The source IP address of the packet</t>

              <t>dst_ip: The destination IP address of the packet</t>

              <t>src_port: The source port number of the packet</t>

              <t>dst_port: The destination port number of the packet</t>

              <t>src_zone: The source security zone of the packet</t>

              <t>dst_zone: The destination security zone of the packet</t>

              <t>req_method: The method of requirement. For instance, 'PUT' or
              'GET' in HTTP</t>

              <t>req_url: Requested URL</t>

              <t>url_category: Matched URL category</t>

              <t>filtering_type: URL filtering type, e.g., Blacklist,
              Whitelist, User-Defined, Predefined, Malicious Category,
              Unknown</t>

              <t>rule_id: The ID of the rule being triggered</t>

              <t>rule_name: The name of the rule being triggered</t>

              <t>profile: Security profile that traffic matches.</t>
            </list></t>
        </section>
      </section>

      <section title="NSF Logs">
        <t/>

        <section title="DDoS Logs">
          <t>Besides the fields in an DDoS Alarm, the following information
          should be included in a DDoS Logs:</t>

          <t><list style="symbols">
              <t>attack_type: DDoS</t>

              <t>attack_ave_rate: The average pps of the attack traffic within
              the recorded time</t>

              <t>attack_ave_speed: The average bps of the attack traffic
              within the recorded time</t>

              <t>attack_pkt_num: The number attack packets within the recorded
              time</t>

              <t>attack_src_ip: The source IP addresses of attack traffics. If
              there are a large amount of IP addresses, then pick a certain
              number of resources according to different rules.</t>

              <t>action: Actions against DDoS attacks, e.g., Allow, Alert,
              Block, Discard, Declare, Block-ip, Block-service.</t>
            </list></t>
        </section>

        <section title="Virus Logs">
          <t>Besides the fields in an Virus Alarm, the following information
          should be included in a Virus Logs:</t>

          <t><list style="symbols">
              <t>attack_type: Virus</t>

              <t>protocol: The transport layer protocol</t>

              <t>app: The name of the application layer protocol</t>

              <t>times: The time of detecting the virus</t>

              <t>action: The actions dealing with the virus, e.g., alert,
              block</t>

              <t>os: The OS that the virus will affect, e.g., all, android,
              ios, unix, windows</t>
            </list></t>
        </section>

        <section title="Intrusion Logs">
          <t>Besides the fields in an Intrusion Alarm, the following
          information should be included in a Intrusion Logs:</t>

          <t><list style="symbols">
              <t>attack_type: Intrusion</t>

              <t>times: The times of intrusions happened in the recorded
              time</t>

              <t>os: The OS that the intrusion will affect, e.g., all,
              android, ios, unix, windows</t>

              <t>action: The actions dealing with the intrusions, e.g., e.g.,
              Allow, Alert, Block, Discard, Declare, Block-ip,
              Block-service</t>

              <t>attack_rate: NUM the pps of attack traffic</t>

              <t>attack_speed: NUM the bps of attack traffic</t>
            </list></t>
        </section>

        <section title="Botnet Logs">
          <t>Besides the fields in an Botnet Alarm, the following information
          should be included in a Botnet Logs:</t>

          <t><list style="symbols">
              <t>attack_type: Botnet</t>

              <t>botnet_pkt_num:The number of the packets sent to or from the
              detected botnet</t>

              <t>action: The actions dealing with the detected packets, e.g.,
              Allow, Alert, Block, Discard, Declare, Block-ip, Block-service,
              etc</t>

              <t>os: The OS that the attack aiming at, e.g., all, android,
              ios, unix, windows, etc.</t>
            </list></t>
        </section>

        <section title="DPI Logs">
          <t>DPI Logs provide statistics on uploaded and downloaded files and
          data, sent and received emails, and alert and block records on
          websites. It's helpful to learn risky user behaviors and why access
          to some URLs is blocked or allowed with an alert record.</t>

          <t><list style="symbols">
              <t>type: DPI action types. e.g., File Blocking, Data Filtering,
              Application Behavior Control</t>

              <t>file_name: The file name</t>

              <t>file_type: The file type</t>

              <t>src_zone: Source security zone of traffic</t>

              <t>dst_zone: Destination security zone of traffic</t>

              <t>src_region: Source region of the traffic</t>

              <t>dst_region: Destination region of the traffic</t>

              <t>src_ip: Source IP address of traffic</t>

              <t>src_user: User who generates traffic</t>

              <t>dst_ip: Destination IP address of traffic</t>

              <t>src_port: Source port of traffic</t>

              <t>dst_port: Destination port of traffic</t>

              <t>protocol: Protocol type of traffic</t>

              <t>app: Application type of traffic</t>

              <t>policy_id: Security policy id that traffic matches</t>

              <t>policy_name: Security policy name that traffic matches</t>

              <t>action: Action defined in the file blocking rule, data
              filtering rule, or application behavior control rule that
              traffic matches.</t>
            </list></t>
        </section>

        <section title="Vulnerabillity Scanning Logs">
          <t>Vulnerability scanning logs record the victim host and its
          related vulnerability information that should to be fixed. the
          following information should be included in the report:</t>

          <t><list style="symbols">
              <t>victim_ip: IP address of the victim host which has
              vulnerabilities</t>

              <t>vulnerability_id: The vulnerability id</t>

              <t>vulnerability_level: The vulnerability level. e.g., high,
              middle, low</t>

              <t>OS: The operating system of the victim host</t>

              <t>service: The service which has vulnerabillity in the victim
              host</t>

              <t>protocol: The protocol type. e.g., TCP, UDP</t>

              <t>port: The port number</t>

              <t>vulnerability_info: The information about the
              vulnerability</t>

              <t>fix_suggestion: The fix suggestion to the vulnerability.</t>
            </list></t>
        </section>

        <section title="Web Attack Logs">
          <t>Besides the fields in an Web Attack Alarm, the following
          information should be included in a Web Attack Report:</t>

          <t><list style="symbols">
              <t>attack_type: Web Attack</t>

              <t>rsp_code: Response code</t>

              <t>req_clientapp: The client application</t>

              <t>req_cookies: Cookies</t>

              <t>req_host: The domain name of the requested host</t>

              <t>raw_info: The information describing the packet triggering
              the event.</t>
            </list></t>

          <t/>
        </section>
      </section>

      <section title="NSF Counters">
        <t/>

        <section title="Firewall counters">
          <t>Firewall counters provide visibility into traffic signatures,
          bandwidth usage, and how the configured security and bandwidth
          policies have been applied.</t>

          <t><list style="symbols">
              <t>src_zone: Source security zone of traffic</t>

              <t>dst_zone: Destination security zone of traffic</t>

              <t>src_region: Source region of the traffic</t>

              <t>dst_region: Destination region of the traffic</t>

              <t>src_ip: Source IP address of traffic</t>

              <t>src_user: User who generates traffic</t>

              <t>dst_ip: Destination IP address of traffic</t>

              <t>src_port: Source port of traffic</t>

              <t>dst_port: Destination port of traffic</t>

              <t>protocol: Protocol type of traffic</t>

              <t>app: Application type of traffic</t>

              <t>policy_id: Security policy id that traffic matches</t>

              <t>policy_name: Security policy name that traffic matches</t>

              <t>in_interface: Inbound interface of traffic</t>

              <t>out_interface: Outbound interface of traffic</t>

              <t>total_traffic: Total traffic volume</t>

              <t>in_traffic_ave_rate: Inbound traffic average rate in pps</t>

              <t>in_traffic_peak_rate: Inbound traffic peak rate in pps</t>

              <t>in_traffic_ave_speed: Inbound traffic average speed in
              bps</t>

              <t>in_traffic_peak_speed: Inbound traffic peak speed in bps</t>

              <t>out_traffic_ave_rate: Outbound traffic average rate in
              pps</t>

              <t>out_traffic_peak_rate: Outbound traffic peak rate in pps</t>

              <t>out_traffic_ave_speed: Outbound traffic average speed in
              bps</t>

              <t>out_traffic_peak_speed: Outbound traffic peak speed in
              bps.</t>
            </list></t>
        </section>

        <section title="Policy Hit Counters">
          <t>Policy Hit Counters record the security policy that traffic
          matches and its hit count. It can check if policy configurations are
          correct.</t>

          <t><list style="symbols">
              <t>src_zone: Source security zone of traffic</t>

              <t>dst_zone: Destination security zone of traffic</t>

              <t>src_region: Source region of the traffic</t>

              <t>dst_region: Destination region of the traffic</t>

              <t>src_ip: Source IP address of traffic</t>

              <t>src_user: User who generates traffic</t>

              <t>dst_ip: Destination IP address of traffic</t>

              <t>src_port: Source port of traffic</t>

              <t>dst_port: Destination port of traffic</t>

              <t>protocol: Protocol type of traffic</t>

              <t>app: Application type of traffic</t>

              <t>policy_id: Security policy id that traffic matches</t>

              <t>policy_name: Security policy name that traffic matches</t>

              <t>hit_times: The hit times that the security policy matches the
              specified traffic.</t>
            </list></t>
        </section>
      </section>
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>This document makes no request of IANA.</t>

      <t>Note to RFC Editor: this section may be removed on publication as an
      RFC.</t>
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>The monitoring information of NSF should be protected by the secure
      communication channel, to ensure its confidentiality and integrity. In
      another side, the NSF and security controller can all be faked, which
      lead to undesireable results, i.e., leakage of NSF's important
      operational information, faked NSF sending false information to mislead
      security controller. The mutual authentication is essential to protected
      against this kind of attack. The current mainstream security
      technologies (i.e., TLS, DTLS, IPSEC, X.509 PKI) can be employed
      approriately to provide the above security functions.</t>

      <t>In addition, to defend against the DDoS attack caused by a lot of
      NSFs sending massive monitoring information to the security controller,
      the rate limiting or similar mechanisms should be considered in NSF and
      security controller, whether in advance or just in the process of DDoS
      attack.</t>
    </section>

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t/>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.3877"?>

      <?rfc include="reference.RFC.4765"?>
    </references>

    <references title="Informative References">
      <?rfc include='reference.I-D.ietf-i2nsf-framework'?>

      <?rfc include='reference.I-D.xia-i2nsf-capability-interface-im'?>
    </references>
  </back>
</rfc>
