21.03.2013 Views

Problem - Kevin Tafuro

Problem - Kevin Tafuro

Problem - Kevin Tafuro

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

access to the machine. This makes it significantly more difficult for an attacker to<br />

gain access to your logs. If you need remote access to view your log files, a service<br />

like ssh is reasonably safe to enable as long as it is properly configured, * but it does<br />

increase the risk of the log files being compromised.<br />

One final point regarding logging to a remote server using syslog: syslog sends log<br />

entries to the server over a UDP port without any kind of encryption or authentication.<br />

As a side effect of using a connectionless protocol, syslog is also notorious for<br />

losing log entries, particularly on heavily loaded systems.<br />

Ideally, syslog would support making entries using an SSL-enabled TCP connection<br />

with authentication, but because it does not, system administrators should take steps<br />

to protect the log entries in transit to the logging server. One possible way to do this<br />

is to use a virtual private network (VPN) between the logging server and all network<br />

hosts that will be using it. Other possibilities include signing and encrypting the log<br />

entries in your programs before sending the entries to syslog, but this can be very<br />

difficult to do correctly. In an ideal world, the syslog daemon would handle encryption<br />

and signatures for you.<br />

An alternative to using the stock syslog implementation that is included as part of<br />

most Unix distributions is to use syslog-ng, produced by Balabit IT Security LTD in<br />

Budapest, available under the GPLfrom http://www.balabit.com/products/syslog_ng/.<br />

It provides support for a variety of different network protocols, including both UDP<br />

and TCP; however, it does not support any kind of encryption or authentication.<br />

Before making the decision to use syslog-ng, you should be aware that it has had a<br />

few security vulnerabilities in recent history.<br />

The audit logging service that is a part of Windows makes no provision for network<br />

logging. Every system stores its logs locally. In addition, log files are stored in a proprietary<br />

binary format that is not documented. At least in theory, it is possible to<br />

make the Windows logging service relay log entries to a centralized server, but to do<br />

so would require a program external to the logging service that listens for logging<br />

notifications and forwards them to the logging server. Logging to a remote server in<br />

this manner would cause a record to be kept in two locations: one on the local<br />

machine, and the other on the remote server.<br />

Unfortunately, this solution is not likely to work very well in practice, because the<br />

Windows logging service depends upon local DLLs to supply the messages that you<br />

see when you view the logs. When a program wants to make log entries using the<br />

Windows logging service, it must first register a DLL that contains logging informa-<br />

* In particular, protocol 1, root logins, and password authentication should be disabled. Any user accounts on<br />

the machine should not share their names with any other names on your network, making it more difficult<br />

for an attacker to guess an account name and password if he has compromised the rest of your network and<br />

has access to your password files. In general, your logging machine should share as little in common as possible<br />

with all other systems on your network.<br />

Following Best Practices for Audit Logging | 735<br />

This is the Title of the Book, eMatter Edition<br />

Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!