Hi Everyone,

I havn't heard back from the IESG about the status of us becoming a working
group, but I think we may as well get things going.  

I've written part of the first Internet Draft for the Syslog protocol.  
That's the first part of the deliverables from the charter.  I've handed
this off to someone who will be able to complete all of the technical bits
of the protocol.  The important part of what's below is the security 
concerns.  Our work is to first discuss these and make sure that we can 
identify each of these concerns.  Once we have that nailed down, then we 
can move on to the next two parts.  The draft can also be found online
at:
   http://www.employees.org/~lonvick/draft.txt

Alex Brown has been working on a plan for authenticated event notification
since before the DC IETF.  I've asked him to monitor this discussion
closely so his plan can address the appropriate security concerns to which
we agree.  Once we get agreement on the security concerns of this draft,
then I'll ask him to post his proposal to the group and we can start 
discussing that. 

The Intrusion Detection Working Group (idwg) has proposed a protocol to
transport their messages.  I talked about this with Mike Erlinger, one of
the chairs of that working group.  He asked that we keep this in mind 
when we start discussing a protocol that will carry authenticated event
messages with verifiable delivery.  That draft is the Intrusion Alert
Protocol (IAP) and is posted at:
   http://www.ietf.org/internet-drafts/draft-ietf-idwg-iap-01.txt
I said that we would look at this when the time comes.  That won't, however,
be until after we fully agree to the concerns that we have in the current
Syslog protocol and get some agreement on how those concerns need to be
addressed.  If we can use their work, that will be great.  We are not at
a point now to look at it properly.  I bring this up now so that we can
keep this in our minds as we go forward.

As I said, let's get the ball rolling on this.  I would appreciate your
comments on the draft below.  This is rough -and I'll spend some time
polishing it- so please be somewhat forgiving.  :-)

Thanks,
Chris



------ Draft of Syslog Internet Draft ----------------------------------
Internet Engineering Task Force                                   Syslog
Internet Draft                                                
draft
May 8, 2000                                     Expires: September, 2000


                                    Syslog Protocol

STATUS OF THIS MEMO

    This document is an Internet-Draft and is in full conformance with
    all provisions of Section 10 of RFC2026.

    Internet-Drafts are working documents of the Internet Engineering
    Task Force (IETF), its areas, and its working groups.  Note that
    other groups may also distribute working documents as Internet-
    Drafts.

    Internet-Drafts are draft documents valid for a maximum of six months
    and may be updated, replaced, or obsoleted by other documents at any
    time.  It is inappropriate to use Internet-Drafts as reference
    material or to cite them other than as "work in progress".

    To view the list Internet-Draft Shadow Directories, see
    http://www.ietf.org/shadow.html.

1 Introduction

    Since the beginning, life has relied upon the transmission of
    messages.  For the self-aware organic unit, the messages can relay 
    many different things.  The messages may signal danger, the presence
    of food or the other necessities of life, and many other things.  
    In many cases, these messages are informative to other units and 
    require no acknowledgement.  As people created processes and 
    machines, this same principal was applied.  As an example, a whistle 
    from a locomotive alerted people that the train was nearby.  The 
    assumption was that people in the vicinity would be able to hear the 
    sound and that they would be able to realize its significance.  No 
    responding acknowledgement was required or even desired.

    Along these same lines, operating systems, processes and 
    applications were programmed to send messages of their own status.  
    These messages generally had local significance to the machine 
    operators.  As the operating systems, processes and applications grew 
    ever more complex, systems were devised to categorize and log these 
    diverse messages and allow the operations staff to more quickly 
    differentiate the notifications of problems from simple status 
    messages.  The Syslog process was one such system that has been widely 
    accepted in many operating systems.  It's design was to allow some 
    flexibility to the operations staff so that they may configure the 
    destination of messages sent from the processes running on the device.  

    The Syslog process was also built to be network aware since it was
    realized that the operators of the machines on the network would not 
    be able to access each machine in their domain to review the logged 
    messages.  The Syslog process on one machine required the ability to
    transmit these messages generated by the processes on that machine
    to a machine that could collect those messages.  The operators would
    then be able to review the messages from multiple machines on a 
    single machine.

    The Syslog protocol is an event notification protocol that allows
    a machine to send event notification messages across IP networks
    to event message collectors -also known as Syslog servers.  No 
    assumption is made upon the contents of the messages.  The protocol 
    is simply designed to transport these event messages.  In all cases, 
    there is one device that originates the message and, if appropriate, 
    sends the message to a collector.  If it is configured to do so, the 
    collector may subsequently also forward it to a further downstream 
    collector.

1.1 Events and Generated Messages

    The writers of the operating systems, processes and applications
    have had total control over the circumstances that would generate 
    any message.  In some cases, messages are generated periodically to 
    give status.  These can be either of a certain periodicity of time, 
    or at some other interval such as the invocation or exit of a 
    program.  In other cases, the messages may be generated due to a
    set of conditions being met.  In that case, either a status message
    or a message containing an alarm of some type may be generated.  

    The contents of a message have also been at the discretion of its
    creator.  It has been considered to be good form to write the
    messages so that they are informative to the person who may be
    reading them.  It has also been considered good practice to 
    include a timestamp in the messages.  However, neither of those
    are required.     

    Just about any process can generate an event message.  This may
    include processes on machines that do not have any local storage
    - e.g. printers, routers, hubs, switches, and diskless 
    workstations.  In that case, it may be imperative that event 
    messages are transported to a collector.  

1.2 Operations of the Message Collector

    It is beyond the scope of this Internet Draft to specify how 
    event messages should be treated, handled or processed.  It
    was considered that the writers of the operating systems, processes
    and applications would quantify their messages into broad
    categories so that the operations staff could receive the more 
    important and time sensitive messages quickly, while also having 
    the ability to place status or informative messages in a file for 
    later perusal.

    The Syslog process on the collecting machine should have the 
    ability to specify the disposition of received messages.  In many
    cases, the administrative staff may want the messages to be sorted
    based upon some criteria in the message, such as the level or 
    facility.  They may want certain messages that have local 
    importance to be sent to a file.  In other cases, they may want
    very important messages sent to a device such as the console.  In
    certain cases, they may want messages to be forwarded to another
    collector.  

2  Transport layer protocol

    Syslog uses the user datagram protocol (UDP) [1] as its underlying 
    transport layer mechanism. <more would be better - convenience and
    portability?>

3  Overall operation

    <need input>

4  Protocol parameters

    <need input>

5 Security Considerations

    The Syslog protocol is intended to be used for carrying event 
    notification messages quickly and simply.  In its initial 
    configuration, the Syslog process places event notification messages 
    into files on that system.  This relies upon the integrity of the 
    system for the protection of the messages.  The subsequent 
    configuration of the Syslog process to use the Syslog protocol to 
    transport the messages to another collector was an extension of the 
    delivery of event notification messages and exhibited the same trust 
    of the network.  As such there are some concerns about the 
    applicability of this protocol in situations that require robust 
    delivery.  

5.1 Message authenticity

    The Syslog protocol does not strongly associate the message with 
    the message sender.  Any device can generate any Syslog message
    and send it to any other machine through the Syslog protocol.  The
    receiver of that packet will not be able to ascertain that the
    message was indeed sent from the reported sender, or if the packet
    was sent from another device.  

    One possible consequence of this is that a misconfigured machine
    may send Syslog messages to a collector representing itself as
    another machine.  The administrative staff may become confused
    that the status of the supposed sender of the messages may not
    be accurately reflected in the received messages.  The 
    administrators may not be able to discern that there are two
    machines representing themselves as the same machine unless they
    view the packets on the wire.

    Malicious exploits of this vulnerability have also been noted.  An 
    attacker may transmit Syslog messages (either from the machine that 
    the messages purport to be sent from, or from any other machine) to 
    a collector.  The attacks that have been noted run along these 
    lines:

    - An attacker may perform a Denial of Service attack by filling the 
    disk with false messages, or otherwise overwhelming the collector 
    by sending more messages than it can receive or process.  

    -An attacker may hide the true nature of an attack amidst many other 
    messages.  As an example, an attacker may start generating messages 
    indicating a problem on some machine.  This may get the attention of
    the system administrators who will spend their time investigating
    the alleged problem.  During this time, the attacker may be able to
    compromise a different machine, or a different process on the same
    machine.  

    -An attacker may generate false Syslog messages to give untrue 
    indications of status or of events.  As an example, an attacker may 
    stop a critical process on a machine which will generate a 
    notification of exit.  The attacker may subsequently generate a 
    false notification that the process had been restarted.  The system 
    administrators may accept that misinformation and not verify that 
    the process had indeed been restarted.    

5.2 Sequenced delivery

    The Syslog records are usually presented (placed in a file, 
    displayed on the console, etc.) in the order in which they are
    received.  This is not always in accordance with the sequence in
    which they were generated.  As they are transported across an IP
    network, some out of order receipt should be expected.  This may
    lead to some confusion as messages may be received that would 
    indicate that a process has stopped before it was started.

    Also, without any sequence indication, messages may be recorded
    and replayed.  An attacker may record a set of messages that
    indicate normal activity of a machine.  At a later time, that
    attacker may remove that machine from the network and resend
    the Syslog messages to the collector.  The administrators would
    find nothing unusual in the received messages and their receipt
    would again indicate normal activity of the machine.

5.3 Reliable delivery

    As there is no mechanism within the Syslog process to ensure
    delivery, and since the underlying transport is UDP, some messages
    may be lost.  They may either be dropped through network 
    congestion, or they may be maliciously intercepted and discarded.
    The possible consequences of the drop of one or more Syslog 
    messages cannot be easily determined.  If the messages are 
    simple status updates, then their non-receipt may either not be
    noticed, or it may cause an annoyance for the system operators.
    If the messages are more critical, then the administrators may 
    not become aware of a developing and potentially serious 
    problem.  Messages may be intercepted and discarded by an
    attacker as a way to hid unauthorized activities.

5.4 Message integrity

    Besides being discarded, Syslog messages may be damaged in
    transit, or they may be maliciously modified by an attacker.
    In either case, the original contents of the message will not
    be delivered to the collector.  If an attacker is positioned
    between the sender and collector of Syslog messages, then he
    may be able to modify those messages to hide unauthorized 
    activities.

5.5 Message observation

    The Syslog messages are generated in human readable form and
    capable administrators should be able to understand their
    meaning.  Unfortunately, as they are passed across a network,
    an attacker will also be able to observe the message 
    contents of Syslog messages.  The attacker may then use the
    knowledge gained from those messages to compromise a
    machine.

6 Acknowledgements


8 Bibliography

    [1] J. Postel, "User Datagram Protocol," Request for Comments
    768 (STD0006), Internet Engineering Task Force, Aug., 1980.



A Author's Address



B Full Copyright Statement

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

    This document and translations of it may be copied and furnished to
    others, and derivative works that comment on or otherwise explain it
    or assist in its implementation may be prepared, copied, published
    and distributed, in whole or in part, without restriction of any
    kind, provided that the above copyright notice and this paragraph are
    included on all such copies and derivative works. However, this
    document itself may not be modified in any way, such as by removing
    the copyright notice or references to the Internet Society or other
    Internet organizations, except as needed for the purpose of
    developing Internet standards in which case the procedures for
    copyrights defined in the Internet Standards process must be
    followed, or as required to translate it into languages other than
    English.

    The limited permissions granted above are perpetual and will not be
    revoked by the Internet Society or its successors or assigns.

    This document and the information contained herein is provided on an
    "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
    TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
    BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
    HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
    MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Reply via email to