The growing requirement for statutory and regulatory compliance has many systems administrators scrambling for a way to manage their security logs more effectively. Security logs can be a great way to prove compliance and detect noncompliance. Even for companies that aren't subject to regulatory compliance requirements, security logs are an effective means of detecting violations of security policy and attempted and successful intrusions by attackers. The Windows event logs provide comprehensive security logging, but managing logs across many systems has always been challenging.
Solutions have sprung up to address this difficulty. Many are designed for larger enterprises and are quite expensive; fewer are what I would consider affordable for small-to-midsized businesses (SMBs). Fortunately, some free tools fill the gaps.
Let's look at how to identify some criteria you can use to help choose a security log management tool. I'll also show you some free and low-cost security log management tools and describe some security log management best practices.
Evaluating Your Security Log Management Needs
Before you begin testing security log management tools, you should spend some time thinking about your security log data collection requirements. The following five steps outline a process that can help you identify which security event data you need to collect. This exercise will give you some criteria to use to determine which collection tool is right for you.
Step 1: Identify the security event data you're interested in. Windows and other systems generate a wealth of security data. Typically you'll want to log the results of authentication and authorization operations, such as user logon and logoff activity; access to restricted pages on Web sites; and database and Internet access. Think about what data you actually need. Do you need all authentication and authorization-related data, or are you interested in only failed attempts? Do you need both logon and logoff data for all logon and logoff events (e.g., interactive, network, services, batch) or only interactive logon data?
In this step, I recommend thinking at a high level instead of very specifically—for example, think failed user authentication instead of failed interactive logon to a Windows XP Professional Edition desktop—so that you'll be less likely to miss or overlook sources of data. If you aren't sure what security event data you actually need, consult business decision makers and other stakeholders, such as your inhouse legal counsel or audit group for guidance about what data might be required to prove compliance or look for policy violations.
Step 2: Identify available security logs and the format of each. You might find that there are more security logs in your environment than you originally thought. For starters, there's a Security event log on every Windows system. On UNIX and Linux systems, there's probably a file called Messages (or something similar) that might contain security information. Microsoft IIS and Internet Authentication Service (IAS) also have log files containing security information. These logs can be written in a variety of text and database-compatible formats. You can use the Microsoft Management Console (MMC) snap-ins for IIS and IAS to configure the format used by the services. Generally, it's easier to search text files for items of interest.
Firewalls, access points (APs), routers, and so forth typically create security log data. If these are devices that send their security log data to a logging host—as opposed to services running on a host—note the protocols used and make sure that your log management system can support those protocols. Chances are the devices use the syslog protocol (or a variant of it) or SNMP. You should also record potential sources of security log data, even if the data isn't currently available. For example, a Web server or database might be able to generate security log data even though it isn't currently configured to do so.
Step 3: Map the needed security data to its specific sources. If you need to manage security log data to identify potential attacker activity related to failed authentication attempts, list each source that provides that data. You also might be able to eliminate some sources of data in this step. For example, if you decide to keep a record of user logon and logoff activity in your forest or domain, you could record all activity from the Windows Security event log on each XP and Windows Server system. Alternatively, if everyone has a domain account, each system is a member of a domain, and resources are centralized, you could record logon and logoff activity from the Windows Security event log only on key servers and domain controllers (DCs).
Map the high-level data requirements to the specific logs and events that provide that information. This step is perhaps the most difficult because it requires you to understand what data is available in each log.
Step 4: Identify security log and event platforms. Identify the platforms on which the security logs and sources of security event data reside. Most business environments are heterogeneous, having a mix of Windows, UNIX, Linux, Cisco Systems, and NETGEAR hardware and software, for instance. Count appliances, workstations, and servers alike. For each platform, determine whether there's a security log of interest. If the platforms don't use SNMP, syslog, or another protocol to export their logs, you need to make sure that your chosen log management solution will work on those platforms.
Step 5: Determine how you want to use the data. Do you want to analyze security data in real time—perhaps using a security event management tool—or simply collect it for analysis (to be done later or only if a particular need arises)? If you have multiple systems, each running a different OS and each with a security log, you might want a tool that lets you configure and manage the security log on each system as well as collect data.
After you've identified the security log data you're interested in, where it can be found in your environment, and what you want to do with it, compile all the information into a reference table similar to Table 1. You'll use this table when you're evaluating security log collection tools so that you'll be sure to choose a product that can collect the necessary events in the proper formats for the required realtime or batch analysis.
There are four additional questions unrelated to your security logs and the data contained within them that you must ask yourself before choosing a management tool. Security logs can contain sensitive information, so the first question is: Does the tool need to encrypt log data that it collects and moves across the network? The second question is: Does the tool need to authenticate the source of the data? If the data source isn't authenticated, an attacker could anonymously mount a Denial of Service (DoS) attack or at least spam the system with falsified data, making it difficult for you to find real data of interest admidst all the noise.
The third question is: Must the tool authenticate itself to a central collection server component, and must the server authenticate itself to the tool? Mutual authentication, combined with encryption, guarantees that the tool will supply the collected logs— which can contain sensitive information—to a legitimate server and that no one can eavesdrop on communications.
Finally, ask yourself whether maintaining the integrity of security logs during transit and in storage is a requirement. If you can't guarantee the integrity of the data, it might not satisfy your external auditors or be admissible in a court case. The answer to each of these questions is probably yes.
Security Log Management Tools
Now that you have your criteria, you can begin evaluating management tools. There are several high-quality free or inexpensive tools that you can download and use. I recommend experimenting with each in a test lab environment before choosing one and deploying it in a production environment.
No discussion of security log management tools can omit syslog. Designed as a log collection tool for UNIX systems, syslog captures security log data from UNIX and Linux hosts and appliances such as firewalls and routers but suffers from many of the security problems that other UNIX management tools do, including lack of confidentiality, integrity, and availability. Windows implementations of syslog are also available.
Request for Comments (RFC) 3195, which you can read at http://www.ietf.org/rfc/rfc3195.txt, defines a newer standard for syslog. There are other proposed extensions and standards, including San Diego Supercomputer Center (SDSC) Secure Syslog (http://security.sdsc.edu/software/sdscsyslog) and BalaBit IT Security's syslogng (http://www.balabit.com/products/syslog_ng). All proposed extensions and standards were designed to address the weaknesses of the original syslog. You need to be aware of the differences between standards when selecting products that claim to be syslog-compatible.
You already have a syslog server on your network if you're running Microsoft Operations Manager (MOM) 2005, including MOM 2005 Workgroup Edition. You can create a syslog data provider and create and configure a rule group to log syslog messages to the MOM Operator Console. Unfortunately, MOM 2005 supports only classic syslog with all its security problems. If you can wait, the upcoming version of MOM, MOM System Center 2007 (currently in Beta 2), comes with Audit Collection—formerly known as Audit Collection System— which lets you securely consolidate security event logs from Windows systems for central analysis.
If you don't have MOM, or you require a higher level of security, a great freeware syslog server is Kiwi Enterprises Syslog Daemon for Windows, which is available at http://www.kiwisyslog.com. A retail version with additional features is also available. Syslog Daemon allows incoming connections from syslog agents over TCP as well as UDP, addressing the original syslog's limitation of using only UDP. Neither the freeware nor the licensed version of Syslog Daemon addresses syslog's confidentiality problems, so syslog data will be sent across the network in clear text. You can encrypt the data sent to the syslog server using Kiwi Secure Tunnel, although the freeware version restricts you to a single secure tunnel.
Deploying a syslog server in your environment is great if you want to capture security log data from UNIX and Linux hosts and appliances such as firewalls and routers, but it doesn't help you gather data from your IIS and IAS logs, security logs generated by servers and applications, or Windows Security event logs. One option is to deploy agents that can gather data from these security log sources and convey it to a central syslog server. LogLogic's Project Lasso (http://www.loglogic.com/logforge/#) can capture the Windows Security event log and several other Windows event logs. Project Lasso sends security log data to a centralized logging server by using the syslog-ng protocol.
Syslogng doesn't offer client or server authentication or encryption, but it does use TCP instead of UDP to transport messages across the network. (You can use a third-party tool or IPsec if you want to encrypt traffic and add authentication.)
Another great tool that's based on syslog is InterSect Alliance's System iNtrusion Analysis and Reporting Environment (SNARE), available at http://www.intersectalliance.com/projects/index.html. SNARE supports multiple platforms and applications, including Windows, Microsoft ISA Server, IIS, Apache, IBM's Lotus Notes, and a variety of UNIX and Linux systems. This support makes SNARE easy to deploy, and SNARE's remote administration features make it easy to use. SNARE also comes with a server to consolidate logs from agents. However, SNARE uses classic syslog and might not be suitable for your environment due to the security problems I described earlier.
Microsoft offers a tool called Event-CombMT that can be used to collect Windows Security event logs for centralized analysis. For more information about EventCombMT, see "Take Advantage of the EventComb-MT Utility," February 2003, Instant-Doc ID 37450, and the Web-exclusive article "Collecting and Analyzing Event and System Logs," March 2006, InstantDoc ID 49492.
Another popular tool for working with the Windows event logs is Log-Parser. You can read more about this tool in "LogParser," May 2004, Instant-Doc ID 42174. And the new Windows PowerShell offers the Get-EventLog cmdlet, which you can read about in Reader to Reader: "Use Cmdlets to Monitor Your Security Event Logs," page 12.
In a future article, I'll look at products that SMBs can use if they need more features than the free tools provide.
Regardless of the security log management solution you choose, following some best practices can ensure that the security log data under management is as useful as possible. First, be sure you secure the repository of stored logs. I recommend that you use a dedicated server and restrict interactive and network logon access to the server.
Second, ensure that the clock on every system that has security logs from which data is collected is synchronized with a reliable time source. You have a variety of options to choose from, ranging from the very expensive (dedicated time servers on your network that are synchronized with reference clocks by radio) to the cheap (an application that checks an Internet-based Network Time Protocol— NTP—server such as time.windows .com). If your system clocks aren't synchronized, correlating events from multiple systems is extremely difficult— if not impossible.
Third, frequently revisit your decision about what security log data to manage to ensure that the data you're collecting is what you need to fulfill your compliance and security policy requirements. Also, whenever you reconfigure or add to your environment, consider the impact the change has on your security log management strategy.
Fourth, calculate how much storage you'll need for the log data you've collected. You'll need to figure out how much data is collected daily and how long you need to retain it. If you're subject to compliance requirements around retention periods, chances are you'll need to back up log data to long-term storage, such as tapes or CD-R discs, and purge old logs that are no longer necessary online. Assume worst-case scenarios to ensure that security log data isn't inadvertently lost due to storage problems.
Finally, check your log collection system frequently to ensure that logs are being collected correctly. Create a series of tests to generate representative security log data, then use that data to verify that you're collecting and managing log data properly. There's nothing worse than turning to collected logs to determine what happened after a security incident, only to find that the logs weren't collected and are now lost.
If you choose a classic syslog-based security log management tool, I recommend that you create a management network between your monitored servers and your centralized logging server. You can use a physical or virtual network. Only data related to management should flow over this network, and your security log management traffic should be restricted to this network. These practices will address potential confidentiality and availability concerns (but don't address integrity problems).
The National Institute of Standards and Technology (NIST)—part of the US Department of Commerce—recently released a draft of NIST Special Publication 800-92, "Guide to Computer Security Log Management." Some of the best practices I've described can be found in this guide. Although the guide was designed for use by federal agencies, you can use it and other special publications in the 800 series in your company.You can obtain this guide from http://csrc.nist.gov.