As one of the people who have been pushing storage
security since the beginning, let me address this...

When the mailing list first started, there were two factions.
The first was biased toward solving the "entire" problem
of system logging, including cradle-to-grave confidentiality
and integrity.  As such, the group pondered many different
avenues, the most fully-cooked of which was an XML-based
log format that built on the UML work and used digital
signatures to provide integrity and key distro for
confidentiality (see attachments xml-log.{html|txt}).

The second wanted to bring reasonably secure logging
functionality to low-end embedded devices (i.e., sub $500
switches and hubs) and thought the public-key crypto of the first
group was too much overhead.

Eventually, the IETF agreed to form a working group to support
some of this work, but told us not to work on the end-to-end
roblem as it was also being worked on by the Intrusion Detection
Working Group (IDWG).  Additionally they said that they were
only interested in the protocol and security aspects and that any
message-formatting issues beyond these aspects were a
secondary affair.

As a result, work on the end-to-end problem was suspended
and work on simple authentication for embedded devices
moved forward.

Now, however, it has become clear that the work coming out of
the IDWG will not address the concerns of generalized
end-to-end secure logging.  And therefore there is renewed
interest in addressing that issue within that group.

The fundamental question is... Is it really true that embedded
devices don't have enough horsepower to do public-key crypto
at the speeds required?  This is a non-trivial question because
first we have to answer the question of what speed really is
required (i.e., how often secure messages really have to be
sent anyway).

If they can do it, then I believe we should concentrate only on
end-to-end solutions.  I also believe that shared secret solutions
are a fundamentally wrong approach to this problem.

If they can't, we'll need end-to-end solutions for systems that do
have the horsepower and an "on-ramp" solution to getting
messages from systems that don't.

Personally I'd be surprised if there really are any devices being
planned for manufacture within the timeframe of when this stuff
will become real (say a year from now) that couldn't handle the
computations.  After all, you can get a $150 LinkSys router that
can do several mb/s of IPsec these days, and the IKE bits of that
are pretty similar to the stuff we're talking about.  Yes, I know
IKE
key negotiation is only a small fraction of the overall traffic, but
so is logging.

Either way we need to develop the end-to-end solution.

That doesn't necessarily mean that the solution has to address
internal formatting of messages (as my original proposal did).
Another approach would be to specify a framework that provides
the security bits to protect free-form messages, but also allows
extensions to do more formatted stuff later.  Essentially this would
be something like my proposal with some of the formatting stuff
stripped out.  Some of the formatting bits could actually stay
because the system knows how to fill the answers in without help
from the logging application (timestamps, for example).  The other
bits that were stripped out could be specified in a seperate
extension  document published in another forum (W3C, POSIX,
and X/Open come to mind).

Another approach would be to beef up the current Syslog-Reliable
to do confidentiality and integrity.
Title: XML for Secure System Logs
Security Working Group
INTERNET DRAFT
C. Calabrese
June 2000

XML for Secure System Logs


Status of this Memo

This document is rough sketch/draft of an Internet Draft. Distribution of this memo is unlimited.


Copyright Notice

Copyright (C) The Internet Society (2000). All Rights Reserved.


Table of Contents

  1. Overview
  2. Specification
  3. Examples
  4. Deviation from Pure XML
  5. Implementation Considerations
  6. Discussion
  7. Security Considerations
  8. References
  9. Author's Address


1. Overview

One of the most important aspects of system, application, and security administration is event logging. Such logging involves capturing information about important events, possibly transmitting that information to a centralized logging facility, timestamping/filtering/manipulating the information, recording the information to persistent storage, and finally filtering, retrieval and analysis by events by an off-line program or person.

This memo concerns itself with the ability to the presentation layer and application layer issues of expressing logging information transport over a network or for persistent storage while maintaining ensuring log privacy and authenticity.

In particular, this memo introduces an Extensible Markup Language (XML) encoding to deal with the problem of expressing log entries as well as authentication and encryption of those entries[W3C98].


2. Specification

The scheme employed for basic log entries is, for the most part, an "XML-ization" of the Universal Format for Logger Messages (ULM) [ULM99].

Privacy and authenticity for log entries is handled by "wrapping" the basic log entries in privacy and authenticity XML elements much the same way that network traffic may be wrapped in IPsec, SSL, TLS, etc. This would most likely be done using standard for XML digital signatures being worked on by the IETF and W3C[W3C99]. However, an alternative scheme could be developed if this standard turns out not to meet the needs of secure system logging.

Finally, intermediate-hop and final-hop hosts may put their own mark on the logs by putting their own privacy, authenticity, or timestamp wrappers around the messages they receive.

2.1. XML Specification

    Note: While the author is developing a formal XML specification, it has been omitted from this draft version of this memo.

2.2. Explanation

    2.2.1. Basic Log Entry

      The log:EVNT element contains information generated by the original process generating the log entry.

      log:SEV
      Severity of the event as an integer in the space 0..99, with 0 as the lowest severity. Note: log:SEV is a required log attribute. Note: A future draft of this memo should contain a standard mapping from syslog and SNMP severity levels into the 0..99 space of log:SEV.
      log:PROC.NAME, log:PROC.ID, log:PROC.USR, log:PROC.MAIL, log:PROC.GRP, log:PROC.PRIV, log:PROC.TTY
      Information identifying the program/process generating the event. Respectively, they are:
      • The name of the program generating the event. Can either be a simple name ("Sendmail"), or a hierarchy identifying the program and it's facility ("Mail/MTA/Sendmail", "Audit/Tripwire", "Kernel/FS/Buffer_Cache"). Note: log:PROC.NAME is a required log attribute. Note: A future draft of this memo should specify standard facility hierarchies.
      • An identification of the instance of the program/process that generated the event. On a Unix system, this would by the process identification (PID) plus the thread identifier for multi-threaded processes ("2207.3"). Note: log:PROC.ID is a required log attribute.
      • The user/login/account the process is running as ("chris", "id748").
      • An e-mail address associated with the usr/login/account the process is running as.
      • The group(s) the process belongs to ("bin,mail").
      • Other special priveleges the process has ("EUID-root, EGID-kmem, DAC_READ") Note: A future draft of this memo should specify standard nomclementure for Unix setuid and setgid priveleges, for Window NT priveleges, and for IEEE 1003.1e/2c priveleges.
      • The TTY or other description of the user's physical connection to the host generating the event.
      log:EVENT.TYPE
      Gives a further taxonomy of the type of event that occurred. Allowed values given under log:Event_Type_Enumeration.
      XML:LANG
      The language used for any textual messages in the standard XML LangCode format[W3C98].
      log:DUR
      Duration of the event being logged in seconds.
      log:SRC.ADDR, log:SRC.PORT, log:SRC.FQDN, log:SRC.NAME, log:SRC.USR, log:SRC.MAIL
      For events representing network traffic, these attributes represent information about the source of the traffic. Respectively, they are
      • The network source address in log:Address_Format.
      • The network protocols/ports used in log:Protocol_Format ("IP/TCP/25/ESMTP", "IP/ICMP/Source_Quench").
      • The fully qualified domain name for the source host.
      • Some other unique identifier for the source host.
      • The source user/login/account.
      • An e-mail address associated with the traffic source.
      log:DST.ADDR, log:DST.PORT, log:DST.FQDN, log:DST.NAME, log:DST.USR, log:DST.MAIL
      Attributes representing the traffic destination.
      log:REL.IN.ADDR, log:REL.IN.PORT, log:REL.IN.FQDN, log:REL.IN.NAME, log:REL.IN.USR, log:REL.IN.MAIL, log:REL.OUT.ADDR, log:REL.OUT.PORT, log:REL.OUT.FQDN, log:REL.OUT.NAME, log:REL.OUT.USR, log:REL.OUT.MAIL
      Attributes representing inbound and outbound traffic to a relay or proxy.
      log:VOL, VOL.SENT, VOL.RCVD
      Total data volume in octets, volume sent, and volume received.
      log:CNT, log:CNT.SENT, log:CNT.RCVD
      Total data volume in records, records sent, and records received.
      log:PROG.FILE, log:PROG.LINE
      The name of the program source file and line number within the source file. Typically used for debugging and assert messages.
      log:DOC
      Name of an accessed document/file, such as an FTP file, a newsgroup, or a URL.
      log:CMD
      Issued command that generated the event. For example:
      <log:EVNT
          log:PROC.NAME="cron"
          log:PROC.USR="news"
          log:PROC.GRP="news"
          log:CMD="/usr/local/news/bin/news.daily/exprire delayrm"
          DUR=927>
      
      log:MSG
      Free form message text.

    2.2.2. Receiving Identifiers

      The log:RCVD element contains information generated by logging subsystems. When a program generates a log:EVNT, the receiving logging subsystem (most likely part of the trusted computing base on the same machine) will wrap it with its own identifiers. When one machine transmits a log stream to another, the receiving machine may also wish to wrap the log stream received with its identifiers.

      Note: The log:RCVD element could also be extended to provide authenticity and non-repudiation guarantees by adding digital signature elements. However, these capabilities have not been specified in the the current draft of this memo because it is assumed they will be provided the forthcoming standard for XML digital standards[W3C99].

      log:HOST
      The host receiving the log.
      log:DATE
      The date/time at which the log was received in ISO.8601:1998_Date_Format.
      log:SEQ
      A sequence number other than date/time used to serialize logs received by the host and for detecting deleted logs.

    2.2.3. Data Types


3. Examples

3.1. Nested log:RCVD Entries

    This example shows nested log:RCVD elements used to place timestamp/sequence information on log entries by successive machines:

    <log:RCVD log:HOST=central_log_server.somewhere.com
      log:DATE=1999-10-27T3:00 log:SEQ=403409 >
        <log:RCVD log:HOST=log_relay.somewhere.com
          log:DATE=1999-10-27T2:59 log:SEQ=56789 >
    	<log:RCVD log:HOST=originating_host.somewhere.com
    	  log:DATE=1999-10-27T2:58 log:SEQ=12324 >
    	    <log:EVNT log:SEV=80
    	      log:PROC.NAME="Audit/Tripwire" log:PROC.ID=1234
    	      log:MSG="unexpected file" log:DOC="/a/b/c"/>
    	    </log:RCVD>
    	</log:RCVD>
        </log:RCVD>
    

3.2. Nested log:EVNT Entries

    At first blush, it's not obvious why we need a MSG attribute when we could use something like:

    <log:EVNT ...>this is the text</log:EVNT>
    

    The reason is to allow log:EVNT elements to nest. One possible interpretation of nested log entries is to be able to represent complex relationships in the data. Instead, here we use nesting to collapse redundant data. For example, the following are considered equivalent:

    <log:RCVD log:HOST=myhost log:DATE=1999-10-27T2:58>
        <log:EVNT log:SEV=80
          log:PROC.NAME="Audit/Tripwire" log:PROC.ID=1234
          log:MSG="unexpected file" log:DOC="/a/b/c"/>
        <log:EVNT log:SEV=80
          log:PROC.NAME="Audit/Tripwire" log:PROC.ID=1234
          log:MSG="unexpected file" log:DOC="/a/b/d"/>
        <log:EVNT log:SEV=80
          log:PROC.NAME="Audit/Tripwire" log:PROC.ID=1234
          log:MSG="unexpected file" log:DOC="/a/b/e"/>
        </log:RCVD>
    
    <log:RCVD log:HOST=myhost log:DATE=1999-10-27T2:58>
        <log:EVNT log:SEV=80
          log:PROC.NAME="Audit/Tripwire" log:PROC.ID=1234
          log:MSG="unexpected file">
    	<log:EVNT log:DOC="/a/b/c"/>
    	<log:EVNT log:DOC="/a/b/d"/>
    	<log:EVNT log:DOC="/a/b/e"/>
    	</log:EVNT>
        </log:RCVD>
    

    As a result, only inner-most log:EVNT elements are log entries. Outer log:EVNT elements set attributes common to the contained entries.


4. Deviation from Pure XML

Although XML is a good fit for the structure needed to describe system logs, it is not a perfect fit. In particular:

  1. In the interest of compactness, logs will be considered complete even if they do not contain the standard XML prolog containing the XML version, element declarations, etc.
  2. Also in the interest of compactness, log message streams not beginning with < will assume to be bracketed by '<log:' and '>'. This way, the existing syslog behavior of sending a single log entry inside a single UDP packet may be preserved.
  3. Some might argue that having the free-form messages as log:MSG attribute values is somewhat messy from an XML standpoint and that "proper" XML would be to unravel the nesting and put the message text in as the "payload" of the log:EVNT elements.

Implementations may contain a tool to generate 100% XML compliant "documents" from log files so that the logs may be processed by standard XML tools.


5. Implementation Considerations

5.1. Network Communications

    5.1.1. Transport

      5.1.1.1. Transmission Over UDP
      5.1.1.2. Transmission Over TCP
      5.1.1.3. Non-IP Transport

    5.1.2. Session, Transport, and Network Layer Security

      5.1.2.1. TLS/SSL
      5.1.2.2. IPsec

    5.1.3. Delivery Guarantees

5.2. Event Filtering

5.3. Event Viewing/Reporting

5.4. Logging API's

5.5. Backward Compatibility

    5.5.1. Syslog

    5.5.2. NT Event Logger


6. Discussion


7. Security Considerations

7.1. Privacy of Log Messages

7.2. Authenticity of Log Messages

7.3. Non-Repudiation of Log Messages

7.4. Immutability of Log Messages Without Detection

7.5. Denial of Service Attacks Against Log Servers


8. References

[W3C98]
World Wide Web Consortium, "Extensible Markup Language (XML) 1.0." February 1998. Available from www.w3.org/TR/REC-xml.
[ULM99]
J. Abela and T. Debeaupis, "Universal Format for Logger Messages." The Internet Society, May 1999. Available from ftp.ietf.org/internet-drafts/draft-abela-ulm-05.txt.
[W3C99]
World Wide Web Consortium, "Digital Signature Initiative Activity Statement." October 1999. Available from www.w3.org/Signature/Activity.html.


9. Author's Address


C. Calabrese
26 Wellesley Road
Montclair, NJ, USA 07043
Phone: (201) 703-7218
EMail:
[EMAIL PROTECTED]







Security Working Group                                         C. Calabrese
INTERNET DRAFT                                                 June 2000

                 XML for Secure System Logs

Status of this Memo

   This document is rough sketch/draft of an Internet Draft.
   Distribution of this memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society  (2000).   All  Rights
   Reserved.

Table of Contents

    1   Overview                                         ???
    2   Specification                                    ???
    3   Examples                                         ???
    4   Deviation from Pure XML                          ???
    5   Implementation Considerations                    ???
    6   Discussion                                       ???
    7   Security Considerations                          ???
    8   References                                       ???
    9   Author's Address                                 ???


1.  Overview

   One of the most important aspects of system, application,
   and  security  administration  is  event  logging.   Such
   logging  involves  capturing  information about important
   events,  possibly  transmitting  that  information  to  a
   centralized               logging               facility,
   timestamping/filtering/manipulating   the    information,
   recording  the  information  to  persistent  storage, and
   finally filtering, retrieval and analysis by events by an
   off-line program or person.

   This  memo  concerns  itself  with  the  ability  to  the
   presentation  layer  and  application  layer  issues   of
   expressing  logging  information transport over a network
   or for persistent storage while maintaining ensuring  log
   privacy and authenticity.

   In  particular, this memo introduces an Extensible Markup
   Language (XML) encoding  to  deal  with  the  problem  of
   expressing  log  entries  as  well  as authentication and
   encryption of those entries[1].






INTERNET DRAFT   XML for Secure System Logs        June 2000



2.  Specification

   The scheme employed for basic log  entries  is,  for  the
   most  part,  an "XML-ization" of the Universal Format for
   Logger Messages (ULM) [2].

   Privacy and authenticity for log entries  is  handled  by
   "wrapping"   the   basic   log  entries  in  privacy  and
   authenticity XML elements much the same way that  network
   traffic  may  be  wrapped  in IPsec, SSL, TLS, etc.  This
   would most likely be done using standard for XML  digital
   signatures  being  worked  on  by  the  IETF  and W3C[3].
   However, an alternative scheme could be developed if this
   standard turns out not to meet the needs of secure system
   logging.

   Finally, intermediate-hop and  final-hop  hosts  may  put
   their  own mark on the logs by putting their own privacy,
   authenticity, or timestamp wrappers around  the  messages
   they receive.

   2.1  XML Specification

      Note:  While  the  author  is  developing a formal XML
      specification, it has been  omitted  from  this  draft
      version of this memo.

   2.2  Explanation

      2.2.1  Basic Log Entry
         The log:EVNT element contains information generated
         by the original process generating the log entry.

            log:SEV
               Severity of the event as an  integer  in  the
               space  0..99,  with 0 as the lowest severity.
               Note: log:SEV is a  required  log  attribute.
               Note:  A  future  draft  of  this memo should
               contain a standard mapping  from  syslog  and
               SNMP  severity levels into the 0..99 space of
               log:SEV.

            log:PROC.NAME,
            log:PROC.ID,
            log:PROC.USR,
            log:PROC.MAIL,
            log:PROC.GRP,
            log:PROC.PRIV,
            log:PROC.TTY
               Information identifying  the  program/process
               generating  the  event.   Respectively,  they
               are:




INTERNET DRAFT   XML for Secure System Logs        June 2000



                  o The name of the program  generating  the
                    event.   Can  either  be  a  simple name
                    ("Sendmail"), or a hierarchy identifying
                    the    program    and    it's   facility
                    ("Mail/MTA/Sendmail",  "Audit/Tripwire",
                    "Kernel/FS/Buffer_Cache").         Note:
                    log:PROC.NAME   is   a   required    log
                    attribute.  Note: A future draft of this
                    memo should  specify  standard  facility
                    hierarchies.

                  o An identification of the instance of the
                    program/process   that   generated   the
                    event.   On a Unix system, this would by
                    the process  identification  (PID)  plus
                    the thread identifier for multi-threaded
                    processes ("2207.3").  Note: log:PROC.ID
                    is a required log attribute.

                  o The  user/login/account  the  process is
                    running as ("chris", "id748").

                  o An e-mail address  associated  with  the
                    usr/login/account the process is running
                    as.

                  o The  group(s)  the  process  belongs  to
                    ("bin,mail").

                  o Other special priveleges the process has
                    ("EUID-root, EGID-kmem, DAC_READ") Note:
                    A  future  draft  of  this  memo  should
                    specify standard nomclementure for  Unix
                    setuid and setgid priveleges, for Window
                    NT priveleges, and for  IEEE  1003.1e/2c
                    priveleges.

                  o The  TTY  or  other  description  of the
                    user's physical connection to  the  host
                    generating the event.

            log:EVENT.TYPE
               Gives a further taxonomy of the type of event
               that occurred.  Allowed  values  given  under
               log:Event_Type_Enumeration.

            XML:LANG
               The language used for any textual messages in
               the standard XML LangCode format[1].

            log:DUR
               Duration  of  the  event  being   logged   in
               seconds.



INTERNET DRAFT   XML for Secure System Logs        June 2000



            log:SRC.ADDR,
            log:SRC.PORT,
            log:SRC.FQDN,
            log:SRC.NAME,
            log:SRC.USR,
            log:SRC.MAIL
               For   events  representing  network  traffic,
               these attributes represent information  about
               the  source  of  the  traffic.  Respectively,
               they are

                  o The   network    source    address    in
                    log:Address_Format.

                  o The   network  protocols/ports  used  in
                    log:Protocol_Format  ("IP/TCP/25/ESMTP",
                    "IP/ICMP/Source_Quench").

                  o The  fully qualified domain name for the
                    source host.

                  o Some other  unique  identifier  for  the
                    source host.

                  o The source user/login/account.

                  o An  e-mail  address  associated with the
                    traffic source.

            log:DST.ADDR,
            log:DST.PORT,
            log:DST.FQDN,
            log:DST.NAME,
            log:DST.USR,
            log:DST.MAIL
               Attributes    representing    the     traffic
               destination.

            log:REL.IN.ADDR,
            log:REL.IN.PORT,
            log:REL.IN.FQDN,
            log:REL.IN.NAME,
            log:REL.IN.USR,
            log:REL.IN.MAIL,
            log:REL.OUT.ADDR,
            log:REL.OUT.PORT,
            log:REL.OUT.FQDN,
            log:REL.OUT.NAME,
            log:REL.OUT.USR,
            log:REL.OUT.MAIL
               Attributes  representing inbound and outbound
               traffic to a relay or proxy.




INTERNET DRAFT   XML for Secure System Logs        June 2000



            log:VOL,
            VOL.SENT,
            VOL.RCVD
               Total data volume in octets, volume sent, and
               volume received.

            log:CNT,
            log:CNT.SENT,
            log:CNT.RCVD
               Total  data  volume in records, records sent,
               and records received.

            log:PROG.FILE,
            log:PROG.LINE
               The name of the program source file and  line
               number  within  the  source  file.  Typically
               used for debugging and assert messages.

            log:DOC
               Name of an accessed document/file, such as an
               FTP file, a newsgroup, or a URL.

            log:CMD
               Issued command that generated the event.  For
               example:

               <log:EVNT
               log:PROC.NAME="cron"
               log:PROC.USR="news"
               log:PROC.GRP="news"
               log:CMD="/usr/local/news/bin/news.daily/exprire delayrm"
               DUR=927>


            log:MSG
               Free form message text.

      2.2.2  Receiving Identifiers
         The log:RCVD element contains information generated
         by  logging subsystems.  When a program generates a
         log:EVNT, the  receiving  logging  subsystem  (most
         likely  part  of  the trusted computing base on the
         same  machine)  will   wrap   it   with   its   own
         identifiers.   When  one  machine  transmits  a log
         stream to another, the receiving machine  may  also
         wish  to  wrap  the  log  stream  received with its
         identifiers.

         Note: The log:RCVD element could also  be  extended
         to   provide   authenticity   and   non-repudiation
         guarantees by adding  digital  signature  elements.
         However, these capabilities have not been specified
         in the the current draft of this memo because it is



INTERNET DRAFT   XML for Secure System Logs        June 2000



         assumed  they  will  be  provided  the  forthcoming
         standard for XML digital standards[3].

            log:HOST
               The host receiving the log.

            log:DATE
               The date/time at which the log  was  received
               in ISO.8601:1998_Date_Format.

            log:SEQ
               A  sequence  number other than date/time used
               to serialize logs received by  the  host  and
               for detecting deleted logs.

      2.2.3  Data Types

            log:Severity_Type
               ('0'|'1'|...|'99')

            ISO.8601:1998_Date_Format
               (YYYY  '-'  MM  '-'  DD 'T' hh ':' mm [':' ss
               ['.' f+]]('+' | '-') zzzz)

            log:Event_Type_Enumeration
               ( 'AUTH.FAIL' | 'AUTH.SUCCESS' |  'PROC.FAIL'
               | 'PROC.START' | ...)

            Seconds.Decimal
               (s+ ['.' f+])

            log:Address_Format
               (IPv4_Address|IPv6_Address|IPX_Address|...)

            log:Protocol_Format
               ( ('IPv4/' ('UDP'|'TCP') '/' IPv4_Port_Number
               ['/'      CDATA])       |       ('IPv4/ICMP/'
               IPv4_ICMP_Message_Type)   |   ...   |  ('IPX'
               ['/SPX/' IPX_Port_Number ['/' CDATA]) )


3.  Examples

   3.1  Nested log:RCVD Entries

      This example shows nested log:RCVD  elements  used  to
      place timestamp/sequence information on log entries by
      successive machines:








INTERNET DRAFT   XML for Secure System Logs        June 2000



      <log:RCVD log:HOST=central_log_server.somewhere.com
        log:DATE=1999-10-27T3:00 log:SEQ=403409 >
          <log:RCVD log:HOST=log_relay.somewhere.com
            log:DATE=1999-10-27T2:59 log:SEQ=56789 >
           <log:RCVD log:HOST=originating_host.somewhere.com
             log:DATE=1999-10-27T2:58 log:SEQ=12324 >
               <log:EVNT log:SEV=80
                 log:PROC.NAME="Audit/Tripwire" log:PROC.ID=1234
                 log:MSG="unexpected file" log:DOC="/a/b/c"/>
               </log:RCVD>
           </log:RCVD>
          </log:RCVD>

   3.2  Nested log:EVNT Entries

      At first blush, it's not obvious why  we  need  a  MSG
      attribute when we could use something like:

      <log:EVNT ...>this is the text</log:EVNT>

      The reason is to allow log:EVNT elements to nest.  One
      possible interpretation of nested log entries is to be
      able  to  represent complex relationships in the data.
      Instead, here we use  nesting  to  collapse  redundant
      data.   For  example,  the  following  are  considered
      equivalent:

      <log:RCVD log:HOST=myhost log:DATE=1999-10-27T2:58>
          <log:EVNT log:SEV=80
            log:PROC.NAME="Audit/Tripwire" log:PROC.ID=1234
            log:MSG="unexpected file" log:DOC="/a/b/c"/>
          <log:EVNT log:SEV=80
            log:PROC.NAME="Audit/Tripwire" log:PROC.ID=1234
            log:MSG="unexpected file" log:DOC="/a/b/d"/>
          <log:EVNT log:SEV=80
            log:PROC.NAME="Audit/Tripwire" log:PROC.ID=1234
            log:MSG="unexpected file" log:DOC="/a/b/e"/>
          </log:RCVD>

      <log:RCVD log:HOST=myhost log:DATE=1999-10-27T2:58>
          <log:EVNT log:SEV=80
            log:PROC.NAME="Audit/Tripwire" log:PROC.ID=1234
            log:MSG="unexpected file">
           <log:EVNT log:DOC="/a/b/c"/>
           <log:EVNT log:DOC="/a/b/d"/>
           <log:EVNT log:DOC="/a/b/e"/>
           </log:EVNT>
          </log:RCVD>

      As a result, only inner-most log:EVNT elements are log
      entries.    Outer  log:EVNT  elements  set  attributes
      common to the contained entries.




INTERNET DRAFT   XML for Secure System Logs        June 2000



4.  Deviation from Pure XML

   Although XML is a good fit for the  structure  needed  to
   describe  system  logs,  it  is  not  a  perfect fit.  In
   particular:

     1.  In  the  interest  of  compactness,  logs  will  be
         considered complete even if they do not contain the
         standard XML prolog  containing  the  XML  version,
         element declarations, etc.

     2.  Also  in  the  interest of compactness, log message
         streams not beginning with  <  will  assume  to  be
         bracketed  by  '<log:'  and  '>'.   This  way,  the
         existing syslog behavior of sending  a  single  log
         entry  inside a single UDP packet may be preserved.

     3.  Some might argue that having the free-form messages
         as  log:MSG attribute values is somewhat messy from
         an XML standpoint and that "proper" XML would be to
         unravel  the nesting and put the message text in as
         the "payload" of the log:EVNT elements.

   Implementations may contain a tool to generate  100%  XML
   compliant "documents" from log files so that the logs may
   be processed by standard XML tools.


5.  Implementation Considerations

   5.1  Network Communications

      5.1.1  Transport

         5.1.1.1  Transmission Over UDP

         5.1.1.2  Transmission Over TCP

         5.1.1.3  Non-IP Transport

      5.1.2  Session, Transport, and Network Layer  Security


         5.1.2.1  TLS/SSL

         5.1.2.2  IPsec

      5.1.3  Delivery Guarantees

   5.2  Event Filtering






INTERNET DRAFT   XML for Secure System Logs        June 2000



   5.3  Event Viewing/Reporting

   5.4  Logging API's

   5.5  Backward Compatibility

      5.5.1  Syslog

      5.5.2  NT Event Logger


6.  Discussion


7.  Security Considerations

   7.1  Privacy of Log Messages

   7.2  Authenticity of Log Messages

   7.3  Non-Repudiation of Log Messages

   7.4  Immutability of Log Messages Without Detection

   7.5  Denial of Service Attacks Against Log Servers


8.  References

      [1]  World  Wide  Web  Consortium,  "Extensible Markup
           Language (XML) 1.0."  February  1998.   Available
           from www.w3.org/TR/REC-xml.
      [2]  J.  Abela and T. Debeaupis, "Universal Format for
           Logger  Messages."   The  Internet  Society,  May
           1999.    Available   from  ftp.ietf.org/internet-
           drafts/draft-abela-ulm-05.txt.
      [3]  World Wide  Web  Consortium,  "Digital  Signature
           Initiative  Activity  Statement."   October 1999.
           Available                                    from
           www.w3.org/Signature/Activity.html.


9.  Author's Address

   C. Calabrese
   26 Wellesley Road
   Montclair, NJ, USA 07043
   Phone: (201) 703-7218
   EMail: [EMAIL PROTECTED]




begin:vcard 
n:Calabrese;Chris
tel;work:201-703-7218
x-mozilla-html:TRUE
org:Merck-Medco Managed Care, L.L.C.;Internet Infrastructure and Security
adr:;;1900 Pollitt Drive;Fair Lawn;NJ;07410;USA
version:2.1
email;internet:[EMAIL PROTECTED]
title:Internet Security Administrator
fn:Chris Calabrese
end:vcard

Reply via email to