CONTENTS
___________________________________________________________________________________________________________
WELCOME
____________________________________________________________________________________________________________
Welcome to the BotHunter User Guide. This living document describe how to install, configure, and operate BotHunter on Linux, FreeBSD, MacOS, Windows, and our Live-CD Release (ISO CD image). Please send us
feedback as you find mistakes and material that is unclear or incomplete, and we will endeavor to improve this online document so all may benefit.
When you register to download BotHunter, you must indicate which version of BotHunter you wish to use: Windows, Unix, or Live CD. We will then send you an email with a link to the appropriate release.
A LITTLE BACKGROUND: BotHunter is a new network defensive system design to help everyone from network adminstrators to individual Internet-connected PC users detect whether their systems are running coordination-centric malware (such as botnets, spambots, spyware, Trojan exfiltrators, worms, adware). It is based on an algorithm called
network dialog correlation, developed under the Cyber-TA research program, in the Computer Science Laboratory at SRI International. BotHunter is NOT an intrusion detection system, firewall, spam blocker, or antivirus tool. These tools generally don't work in helping you rid your network of malware infections. BotHunter takes a different approach.
BotHunter monitors the two-way communication flows between hosts within your internal network and the Internet. It aggressively classifies data exchanges that cross your network boundary as potential dialog steps in the life cycle of an ongoing malware infection. BotHunter employs Snort as a dialog event generator, and Snort is heavily modified and customized to conduct this dialog classification process. Dialog events are then fed directly into a separate dialog correlation engine, where BotHunter maps each host's dialog production patterns against an abstract malware infection life cycle model. When enough evidence is acquired to declare a host infected, BotHunter produces an infection profile to summarize all evidence it has gathered regarding the infection.
SYSTEM REQUIREMENTS
____________________________________________________________________________________________________________
Hardware Requirements
Your system should have a modern Intel Pentium-class or Motorola PowerPC processor, at least 1 GB RAM, and at least 1 Ethernet NIC/WIC for network monitoring.
OS and Software Requirements
BotHunter is available for use on the following operating systems:
Linux: tested on Fedora, Red Hat Enterprise Linux, Debian, Ubuntu, CentOS, and SuSE distributions
FreeBSD: tested on Product Release 7.2
Mac OS X tested on Panther, Tiger, Leopard, and Snow Leopard (Mac OS 10.3-10.6)
Windows tested on Windows 7 / Vista / XP / 2003 Server (32-bit and 64-bit)
Communication Requirements
BotHunter performs some outbound communications to the SRI automated threat intelligence updating service and infection profile repository. BotHunter's threat updating service periodically probes the BotHunter repository server (located at SRI International, California, USA) to pull in the latest botnet command and control (C&C) blacklist, malware DNS list, and new malware detection rules, which are updated on a regular basis. This allows your fielded BotHunter to maintain its awareness of the latest C&C servers, malware-associated DNS lookups, Russian Business Network address space, and malware control/backdoor ports. The repository service allows your fielded BotHunter to send anonymized infection profiles of detected external C&C's, egg download sites, exploit sources, and rule detection patterns. It does not report any IP addresses from your trusted net, and BotProfile sources are anonymized and are not tracked.
To utilize the BotHunter automated remote updating service, you must enable outbound connections from your BotHunter host to TCP ports 5242 and 6282. You may disable these outbound connections and your BotHunter will function, but it will not be able to receive new threat intelligence from our remote updating service.
Our policy is that you must enable BotHunter's anonymous repository reporting system in order to receive dynamic updates via our automated threat intelligence updating service. When you enable anonymous repository reporting, you are contributing Internet infection data to a knowledge base that is driving in depth research activities while also contributing to the body of threat intelligence from which all BotHunter users benefit. You are making a contribution to help us ALL better fight Internet malware.
Where to Install BotHunter
Installation requires Internet connectivity for downloading the necessary libraries, packages, and BotHunter ruleset updates.
For site-wide network monitoring, your target platform should have promiscuous-mode access to broadcast LAN traffic via port mirroring (e.g., Cisco Switched Port Analyzer (SPAN), 3COM Roving Analysis Port (RAP)). Ideally, your machine should be attached to a monitoring position on an internal network egress point to observe successful connection flows.
We strongly recommend that you place BotHunter behind your firewall. It does not need to monitor incoming packets that are blocked from entry to your net. See BotHunter Behind or In Front of Firewall for configuring BotHunter when the tap is in front of a firewall.
UNIX INSTALLATION
____________________________________________________________________________________________________________
The following is a summary of the minimum steps necessary to install, configure, and start BotHunter, in its default configuration for live traffic monitoring on Unix. Installation and startup proceed in two phaes: 1) a root user phase in which all packages are set up and the BotHunter user account is established, and 2) the BotHunter user configuration phase, in which you can choose to start BotHunter or revise its configuration.
Requirements for Root Installation Phase
* Root privilege is required to install BotHunter: While installation requires root privilege, BotHunter will not require root privilege to run. A nonprivileged account will be created to run BotHunter.
* Basic network configuration data is required:
- The IP netmask of the network you wish to protect
- IP addresses of your SMTP (email) and DNS servers
* Installing on hosts with prior botHunter installation: BotHunter's root-phase installation process will detect a prior installation to the selected nonprivileged user account and offer to rename the prior installation directory (which can later be safely removed). If you decline the rename, the installation will terminate. The network information from the prior installation (home net, SMTP & DNS servers, and network interface) will become the defaults for the current installation process, but any other uniquely set (nondefault configuration information will need to be reapplied.
* Sun's Java Runtime Environment (JRE) Release 1.5 or later (available here) is required. Install the Java JRE or JDK before you proceed with the software installation.
* Mac OS Users: for Mac OS X, Xcode must be installed on your system; it may be obtained from
http://developer.apple.com/tools/xcode/
* FreeBSD Users: for installing a recent version of Java, we recommend that you consult
http://www.freebsd.org/java/
Root-Phase Installation Procedure
Once you download the BotHunter Unix package from www.bothunter.net, save the package to a subdirectory where you wish to unpack the BotHunter files.
Note: you may type '?' at any prompt for a detailed explanation of what is expected.
1. Untar the BotHunter Unix distribution.
2. Begin the root installation procedure.
root% java -jar botHunterInstall.jar
Read the EULA and if acceptable click YES.
3. Confirm that you wish to perform the installation preparation checks and setup as root.
4. Optional: You are prompted to install Tor if it has not been installed previously. BotHunter may be configured to use Tor to interact
anonymously with the BotHunter repository services.
5. Indicate the new nonprivileged user account with which you wish to install BotHunter (default user account = cta-bh). BotHunter
will then install dependent packages. If you choose to install BotHunter over a preexisting user account, this account must use
csh(1). Once you define this user account, setup will search for and install dependent packages.
6. Enter your Trusted Network Mask: Provide a (comma separated) local network mask list, plus the IP addresses of all external
NetBIOS shares with which your internal machines are allowed to communicate.
example: 192.168.1.0/24,10.10.0.10/16
7. Enter the (comma separated) IP addresses of the email server(s) used by systems inside your network.
8. Enter the (comma separated) list of DNS servers used by systems inside your network.
9. Enter your network interface that BotHunter will use to monitor your network. This is the network interface that you wish
BotHunter to monitor in promiscuous mode.
10. Indicate whether you wish BotHunter to start automatically on system boot. If you answer "yes", a default configuration will be
created for the non-privileged user and you will be prompted to start the BotHunter process. If the default configuration is
satisfactory, you may start BotHunter and skip the user configuration procedure.
11. Optional: As a last step, you may now set the non-privileged user's password, for example:
root% /usr/bin/passwd cta-bh
User Configuration Procedure
You must now complete the user configuration phase of the BotHunter installation procedure. This step is performed as your installed user target, e.g., cta-bh (not as root).
12. su to the user account that you created during the BotHunter installation
root% su -l cta-bh
13. To run BotHunter in its default configuration, use the BotHunter shell alias:
cta-bh% BotHunter
On First-start Default Configuration: upon the first invocation of BotHunter, with no configuration established through root installation (i.e., by not selecting the on-boot option), the default configuration information will be displayed before BotHunter is started. The default configuration of BotHunter will inherit the parameters that were submitted during your root installation.
If you wish to view, with the option to change, the BotHunter configuration, you must add the "configure" option to the BotHunter command-line arguments:
cta-bh% BotHunter configure
See Section Configuring BotHunter for details regarding how to customize the BotHunter runtime configuration. At the configuration prompt, you may type 'done' when you have completed any configuration changes and are ready to proceed. You will then be prompted to start BotHunter or return to the command prompt. If you select 'no', you can later start BotHunter using the BotHunter command. If you type 'yes', BotHunter will start itself and return control back to the command prompt.
14. How to manage BotHunter
WINDOWS INSTALLATION
____________________________________________________________________________________________________________
The following is a summary of the minimum steps necessary to install, configure, and start BotHunter on your Windows PC. To complete this installation, you will also need to know the IP address netmask of the network you wish to protect, and the IP addresses of your email and DNS servers.
BotHunter's installation process will NOT upgrade a previous installation. If you have a previous installation of BotHunter, you should remove the previous user installation or install BotHunter using a different user account.
Software Installation Procedure
1. Upon first installation of BotHunter, the InstallShield Wizard will inspect your machine to determine whether dependent packages must be installed.