Sunday, 24 February 2013

NSM With Bro-IDS Part 5: In-house Modules to Leverage Outside Threat Intelligence


Unless you just do not follow cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 InfoSec world or main-stream media, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 odds are pretty high that you've heard about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Mandiant APT1 report available at

http://intelreport.mandiant.com

There is some awesome information in that report and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y've provided a ton of data in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 form of Indicators of Compromise, or IOCs. It wasn't too long afterwards that Seth Hall released a script module for Bro IDS that incorporated some of those indicators. That module is available here:

https://github.com/sethhall/bro-apt1

Within a couple of days, Symantec released cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir own "Comment Crew: Indicators of Compromise" report. That report can be found here:

http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/comment_crew_indicators_of_compromise.pdf

To my knowledge, nobody has released a Bro module that incorporates any of that data and I wanted to use it -- so guess what I did tonight?

Good Programmers Borrow, Great Programmers Steal


Since I've never written a custom module for Bro, and because I had already started using Seth's module, I decided that imitation was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 greatest form of flattery and decided to use his module as a template for my own. After all, this guy eats, sleeps and lives Bro. If you're going to follow anyone's lead on writing a module for it, whose code would be better for re-use?


I used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 default location for my bro install, /usr/local/bro, so Seth's module is installed in /usr/local/bro/share/bro/site/apt1. That means any custom modules will go in /usr/local/bro/share/bro/site, so I went ahead and changed to that directory and copied Seth's module to a new directory called "sccrew" (Symantec Comment Crew):
cd /usr/local/bro/share/bro/site
sudo cp -prv apt1 sccrew
cd sccrew

I saved all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 domains in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Symantec report to a plain text file - one domain per line, each domain in quotes and all but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 last with a comma at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 end of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 line. That means cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file looks something like this:
"domain_0.com",
"domain_1.com",
"domain_n.com"


Some stuff you can toss, some stuff you keep...



The README.rst file and .git directory are both going to be useless for this purpose so you can go ahead and remove cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, leave cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, it doesn't matter, but it's good practice to go ahead and remove cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m.

The ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r files are important. data.bro contains cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual indicators. If you view it in vi, you'll see Seth's comments, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 module name, a list of hashes, a list of domains, etc. I removed everything in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file EXCEPT cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 domain block, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n deleted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 existing domains and replaced cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 domains I saved from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Symantec report. Then I changed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 module name from APT1 to SCCREW and saved cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file.

__load__.bro basically "includes" cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 data.bro and main.bro files. Leave it untouched.

main.bro controls cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actions to take. I modified cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 APT1::Domain_Hit to be a SCCREW::Domain_Hit and removed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r notice types. I changed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 module name to SCCREW, removed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 x509_certificate and http_message components and changed anything in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 dns_request section from APT1 to SCCREW. A little tweaking of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message that accompanies alarms to indicate it's from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Symantec report, not Mandiant's APT1, and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file was ready to be saved.

From cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re it was trivial to edit my /usr/local/bro/share/bro/site/local.bro and add cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 magic line that calls cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 sccrew module:
@load "sccrew"

Update cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Running Instance!


Then I told bro to install cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new configuration and update its running configuration:
sudo broctl check
sudo broctl install
sudo broctl update
And with that, boom, I had a module loaded that would alert based off of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Symantec indicators.

You can view cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 actual module here:

https://github.com/kevinwilcox/bro-sccrew

Many, many thanks to Seth for providing a great template to use for in-house modules and to Symantec for releasing a fairly small dataset that served as a great tool for looking at how to create a custom module for DNS alarms!

Wednesday, 13 February 2013

MySQL and ELSA - When Your Storage Runs Out


There has been recent discussion on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ELSA users mailing list about variations on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following scenario:

o SysAdmin (SA) has a single large drive
o SA installs Linux or BSD, MySQL and ELSA
o Something consumes all free space
o SA realises cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y need to to move ELSA and MySQL to anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r drive

I didn't think a lot about it when it came up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first time. After it came up multiple times, though, I figured I would write up some instructions, starting with item three from above -- something fills up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hard disk.

The Environment


I already have a running ELSA installation on Ubuntu Server, and I configured it with a single drive, so all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 setup is already done. If you're following along with some of my earlier posts, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 exact VM I'm going to work with is Debian_121_elsanode:


I know that I'm going to fill my drive, and I know I'm going to have to add a drive, so I'll go ahead and do that before I boot cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM. In this case I'll add an 8GB data drive called, "Debian_121_elsanode_mysql_data". The process is outlined in screenshots below.

In cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM settings, choose "storage" and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n select cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SATA controller. Click cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 icon for "Add Hard Disk":


I want to "Create new disk":


I like to use VMDK files if I think I might export cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM as an appliance:


I don't need to waste cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time setting aside all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 space for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new drive, I won't have it long enough to use more than a couple of hundred MB -- and that's a stretch, odds are it's less than 100 MB:


Give cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new drive an unique name inside of VirtualBox. "Create" will finally create cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new drive:


When I booted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM I verified Ubuntu picked up cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two hard disks with:
dmesg | grep -e sda -e sdb
Note cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 drive sizes in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output - new drives are added in lexicographical order but it's always nice to verify you're working with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correct drive:


Prepping cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 New Drive


In reality, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new drive would get added *after* realising cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re is a storage issue. For cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 purposes of this demo, though, that's okay, it doesn't matter if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 existing drive fills up and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n I add cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new one and move ELSA/MySQL or if I add cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new drive, fill cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 old one and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n move what I need.

So, let's go ahead and prep cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new drive. I won't start moving data to it but I'll go ahead and partition and format it.

First, partition cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 drive with fdisk.
sudo /sbin/fdisk /dev/sdb


This starts fdisk. I can use 'p' inside of fdisk to show me cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 existing partitions for /dev/sdb:


To create a new partition that uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entire drive, I'll hit 'n' for new, 'p' for primary, accept cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 default value of '1' for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 partition number, accept cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 first and last cylinders, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n use 'p' again to show cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new partition:


Use 'w' to write cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 changes to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 partition table and quit.

With cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new partition ready, I need to format it before I can mount it. I prefer ext3, your mileage may vary. To format it in ext3, I'll use:
sudo /sbin/mkfs.ext3 /dev/sdb1
Note that when it runs, I get journal and superblock information. On physical drives, particularly large drives that aren't SSD, this can take a while to run.


One utility every Linux and Unix admin should use on a regular basis is 'df', for 'disk free'. I use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 '-h' flag to get "human readable" output -- basically it just outputs all values in kilo-, mega- or gigabytes. It's  great for seeing, in short order, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 amount of free space on a partition:


Fill The Old Drive


So I have about 16GB free on my root partition (where both ELSA and MySQL live). To quickly fill that up, I'm going to use a utility called 'dd'. My input will be /dev/zero (so I quickly get values - /dev/random and /dev/urandom can be considerably slower) and I'll output to a file called "consume_drive". Since I'm not giving 'dd' a count, it will run to completion - in this case, until cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 drive fills up.



Just to verify, I used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mysql command to connect to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 locally running database instance, list cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 existing databases and try to create a new one (note it errors due to full disk):


Recovery Step One: Stop cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Running Processes


At this point I would start receiving errors from Sphinx, MySQL and probably rsyslog saying I had disk issues. To kill all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m, I used killall with each process name and used cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mysql init script to stop mysqld:
sudo killall -9 syslog-ng searchd perl
sudo /etc/init.d/mysql stop


Note that you DEFINITELY want to make sure searchd and elsa.pl aren't running, ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rwise cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system load can go through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 roof when MySQL stops:



Recovery Step Two: Mount cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 New Drive, Move Data


With everything stopped, I mounted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new drive as /mnt using:
sudo mount /dev/sdb1 /mnt
I moved everything in /data to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new drive:
cd /data
sudo mv * /mnt/
Then I moved cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MySQL database directory from /var/lib/mysql to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new drive:
sudo mv /var/lib/mysql /mnt/

Just for display purposes, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output of 'mount' and a directory listing of /mnt are included:


Recovery Step Three: Mount Point for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 New Drive


Since I'm adding cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new drive to house all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MySQL and ELSA data, and I'd already decided to mount cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 drive as /data, I just need to add one line to /etc/fstab to reflect cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new disk and mount point:


Recovery Step Four: MySQL Link


Since all of my MySQL data will live on /data, and I don't really want to fuss around with editing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MySQL configuration file to point to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new location, I'll create a symbolic link from /data/mysql to /var/lib/mysql (remember: hard links can't cross mountpoints, soft/symbolic links can) using:
sudo ln -sf /data/mysql /var/lib/mysql
Right now that location doesn't exist but it will on reboot, as long as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appropriate entry is in /etc/fstab and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are no filesystem issues.

EDIT -- 16 February 2013

I heard from Mike Miller at Miller Twin Racing that on machines with SELinux enabled, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are additional steps that must be taken. It turns out if you try to restart MySQL at this point cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you get a failure, even though cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 symlink is in place:


If you look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 security contexts for /var/lib and /var/lib/mysql, you'll see that /var/lib has a context of var_lib_t and /var/lib/mysql has a context of mysqld_db_t:


There are multiple ways to solve this, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 cleanest probably being to add a custom data_dir context that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 mysql user can access/write. Since I am treating /data as an extension of /var/lib, a reasonable compromise for me was to give /data cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same context as /var/lib and set cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 context for both /data/mysql* and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 /var/lib/mysql symlink to that of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 original /var/lib/mysql. This is accomplished with:
semanage fcontext -a -t var_lib_t /data
semanage fcontext -a -t mysqld_db_t "/data/mysql(/.?*)"
semanage fcontext -a -f -l -t mysqld_db_t /var/lib/mysql
restorecon -Rv /


Again, thanks to Mike Miller at Miller Twin Racing for that heads up and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 correction!

Recovery Step Five: Reboot


Yes, really, reboot. You can remount /dev/sdb1 as /data to test but this is a virtual, non-production environment and I've followed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 steps in this blog post a half-dozen times before actually writing it so I'm pretty confident of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 outcome. On reboot /data gets mounted, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 symlink for /var/lib/mysql is live and MySQL should be able to restart. You can verify all of this after reboot with a simple 'ps' and 'grep':
ps aux | grep -e perl -e syslog-ng -e sphinx -e mysql
If everything works, you should see output similar to:


Recovery Step Six: ... Profit


Okay, so maybe no profit, but you can rest comfortably knowing that you now have quite a bit of disk space available for your database and syslog needs, that you now can migrate services from a smaller disk to a larger disk with some basic Unix-fu and that you are almost certainly a better system administrator because of it!

Saturday, 9 February 2013

NSM With Bro-IDS Part 4: Bro and ELSA, a Happy Couple


In part three of my Bro series I started pointing out how Bro can almost single-handedly transform cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way you approach network security monitoring (and network monitoring in general). Gone are cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 days of wondering which of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 300 sites a potentially infected machine was trying to access on that Amazon virtual server, what jar file was requested by that piece of malware and whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r Sys-Admin Jack has *really* enabled Remote Desktop connections from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world on one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 public-facing web servers under his care. To gacá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r this data "out-of-cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365-box" requires at least a working knowledge of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Linux or Unix command line interface and a basic understanding of tools like grep, cut and awk. Bro can generate a mountain of data, kept in plaintext log files, in a very short amount of time, and searching through all of that text at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 CLI can be a daunting task.

But wait a second...we have already solved this problem! Since we have a functional ELSA deployment already, and we have verified that we can send log data to it, it is trivial to configure a machine running bro to send its bro logs to an ELSA node via rsyslog.

rsyslog on Ubuntu uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 /etc/rsyslog.d/ directory for user-add and site-specific configurations. By default, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only items in that directory on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Ubuntu machine I've used for bro are for postfix, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "default" rsyslog configuration and a stub for ufw:


I added a file called "60-bro.conf" (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 numbering is important, it reflects cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 order in which cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 files should be included) with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following contents:

##### Using local7 because that's where Martin put it
###### and it's a pretty standard usage
$ModLoad imfile #
$InputFileName /usr/local/bro/logs/current/ssl.log
$InputFileTag bro_ssl:
$InputFileStateFile stat-bro_ssl
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
$InputFileName /usr/local/bro/logs/current/smtp.log
$InputFileTag bro_smtp:
$InputFileStateFile stat-bro_smtp
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
$InputFileName /usr/local/bro/logs/current/smtp_entities.log
$InputFileTag bro_smtp_entities:
$InputFileStateFile stat-bro_smtp_entities
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
$InputFileName /usr/local/bro/logs/current/notice.log
$InputFileTag bro_notice:
$InputFileStateFile stat-bro_notice
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
$InputFileName /usr/local/bro/logs/current/ssh.log
$InputFileTag bro_ssh:
$InputFileStateFile stat-bro_ssh
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
$InputFileName /usr/local/bro/logs/current/ftp.log
$InputFileTag bro_ftp:
$InputFileStateFile stat-bro_ftp
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
$InputFileName /usr/local/bro/logs/current/conn.log
$InputFileTag bro_conn:
$InputFileStateFile stat-bro_conn
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
$InputFileName /usr/local/bro/logs/current/dns.log
$InputFileTag bro_dns:
$InputFileStateFile stat-bro_dns
$InputFileSeverity info
$InputFileFacility local7
$InputRunFileMonitor
# check for new lines every second
$InputFilePollingInterval 1
###### 10.10.10.121 is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IP of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ELSA node
local7.* @10.10.10.121

ELSA's author, Martin, has some pretty awesome documentation regarding setting up a bro instance, setting up a bro cluster and configuring bro to log to syslog. Yes, I lifted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above directly from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re and added cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 section for bro_dns. Specifically, I recommend you take a look at:

http://ossectools.blogspot.com/2011/09/bro-quickstart-cluster-edition.html

The really big plus here is that this is not specific to bro - any process that writes a log file can have that log file sourced by rsyslog, which means any text log can be pulled into ELSA...but what practical application does that have for bro?

Why, I'm glad you asked! Let's contrive a situation based on my existing VM infrastructure. To review, I have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following in place:


o 10.10.10.115 -- bro
o 10.10.10.121 -- cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ELSA node
o 10.10.10.122 -- cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ELSA web front-end
o 10.10.10.150 -- a KUbuntu client (simulating desktops)
o 10.10.10.254 -- cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 FreeBSD router


A Contrived Situation


It's no small understatement that network and InfoSec folks have to wear a lot of hats, and it's not uncommon for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two groups to be comprised mostly of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same individuals. The same person who gets called to handle cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 investigation of a server compromise may also have to help find a stolen or "misplaced" computer or smartphone, analyze traffic to find cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 machine spewing funky traffic into a VLAN or, my personal favourite, find out why in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 world cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bandwidth usage spiked at a certain time.

To set cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 stage, I used my KUbuntu VM and downloaded cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latest stable Linux kernel from kernel.org. It's a pretty hefty download, just under 100MB, so it's great for demonstrating this.

Here's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 scenario. You're cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tech for an organisation with a big event coming up in two days and you have "all hands on deck". Ordinarily your Internet connections are sufficient for your business use but for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 next few days everyone is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 office, basically working around cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 clock, and your Internet resources are stretched pretty thin. Because you are a fairly small organisation you don't have a networking group and a security group, you have...you.

A little after 2330 you get a phone call saying cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network has gone to pieces. Everything inside cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 company network works fine, and now everything seems okay, but for a few minutes "cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet" slowed to a crawl and you have to find and explanation because "cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y can't work when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet is that slow" and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're afraid it's going to happen again.

You fire up your VPN client, connect back to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 office and, sure enough, everything is okay now. Speed tests show good numbers, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 few servers you have look okay, everything looks good. With all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system and firewall logs showing nothing odd, and no alerts firing on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IDS, it's time to go to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network logs.

Step 1: Identify cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 connections


Bro has a fantastic log called conn.log. With bro now being pulled into ELSA (or parts of it, anyway), it's fairly trivial to search for all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 connections Bro saw between 2300 and 2330. Just set cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appropriate start and end times, change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 search type from "Index" to "Archive" and use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 search bar:

+class:bro_conn

So if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 call came in at 2330 on 8 February 2013, your initial search might look something like this:


Note: if you do NOT change cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 search type to Archive, you MUST supply something to search for instead of just setting a filter. If you search in Archive mode, though, you can supply just a filter and no search string. Be careful, on a busy node you may get back far too much information to be useful -- cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time selections or searching a specific node may really help.

In my case, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following was returned:


Unless you only get a few results back, this may not seem to hold much useful information, but look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "Field Summary" - srcip, srcport, dstip, dstport and a host of ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs. In this case, I would want to know if I had any really "chatty" talkers or listeners, probably listeners since people were complaining about Internet speeds. It's possible that it's a talker but, in my experience, if speeds are going to crud cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n it's probably someone trying to archive cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Internet and that means a large number of bytes in.

Step Two: Who's been downloading cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 big stuff?


To get a list of all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bytes_in counters, just click on "bytes_in" in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 field summary. ELSA will automatically present a chart giving cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "bytes_in" values and how many times those values showed up in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 given time period. For this scenario, I was presented with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following:


Here I get something hinting at an anomaly. Most of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 values are in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 tens or thousands of bytes but whoa, is that a value of over eighty-three million? That's certainly an outlier, let's take a look at it. Just click on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 '83612841' and ELSA will use that as a required search item so your search gets restricted to items that a) are only in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bro_conn class and b) have a bytes_in value of 83612841:


That's fantastic! It looks like whoever is using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 machine with IP 10.10.10.150 has downloaded a pretty big file at 2325. That alone is enough to probably explain cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 anomaly - everyone else's downloads or activity could certainly be impacted by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one person who thought cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y needed to grab a 100 MB file. So, was it legitimate? Well, you can certainly find out who's using it and ask cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. If you have bro's http.log being sourced by rsyslog cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n that would actually have shown up on this search. I do not in this instance but it is a trivial addition.

Step Three: Using cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 raw log archive to see what was downloaded


If you don't have it sourced by rsyslog, and want to go back after-cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365-fact and check cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 log archive, you can do that pretty easily. Bro gives me cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 UID for that connection, it's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 second value in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 raw output of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 log entry, in this case JRibhV6DJge, and if you remember from my part three, that UID stays consistent across all of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 various log files. So, if I wanted to search for it in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 archive, I could do cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following:
cd /usr/local/bro/logs/2013-02-08
grep JRibhV6DJge http.23\:00\:00-00\:00\:00.log.gz
That gives me cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following output:


And cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's my answer - at 2325, someone downloaded cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 latest linux kernel tarball from kernel.org. In this instance a single  user can cause a problem with one big download. Even with a 1Gbps, a single user who gets really lucky can saturate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 connection with a large download. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're downloading a lot of small files it may be more sporadic but you can use some slightly different parameters to see which machines are downloading a lot of small files or which machines are making a lot of connections relative to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rest of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 computers on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network. These are always pretty good places to start because cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're basic steps, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y don't seriously impact cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're easy to verify.

There are a lot of ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r things to do with ELSA and Bro, this is just scratching cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 surface. For more information I highly recommend cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ELSA and Bro project pages at:

http://code.google.com/p/enterprise-log-search-and-archive/
http://www.bro-ids.org/

Saturday, 26 January 2013

NSM WIth Bro-IDS Part 3: Grabbing Packets

The lights are dimming, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 curtains have been drawn and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 crowd is going silent. Now it's time to start cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 show!

E-mail Alerts


I've been using bro at work and I really, really like cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hourly emails it sends out with connection details. If you recall, I didn't install any type of MTA in part two. Before I jump too far into bro, I want to go ahead and install mailutils using:

sudo apt-get install mailutils

This results in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following:


apt/dpkg will go ahead and prompt for postfix configuration. Since I'm only delivering to my VM I'll choose "Local only"; for a machine that only sends mail (and doesn't receive), I would normally choose "Satellite system" or "Internet with smarthost":


To test whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r you can send mail to local users, use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 'mail' command. So that I can put it into one line, I take cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output of 'echo' and send it as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 content of a mail message that is sent to demo@localhost:

echo "foo" | mail -s "test message" demo@localhost

'mail' is a pretty useful utility, you can also use it to read cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current user's mail spool just by typing 'mail' and hitting enter. If you are presented with something similar to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 following, congratulations, you can send mail to local users!


You can delete cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 message by typing 'd 1' (for 'd'elete message number '1') and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n exit with 'quit'.

One Quick "gotcha" - Cron


I didn't realise it at first but, at least on Ubuntu, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bro installation process doesn't configure cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system to start bro when cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system boots and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are a couple of housekeeping items that bro needs to take care of on regular time deltas. Addressing this issues is as simple as

1) Adding a line to /etc/rc.local to start bro at boot via 'broctl start':


2) Adding a line to /etc/crontab to take care of housecleaning items every five minutes via 'broctl cron':


Bro Configuration Files


The bro configuration files can be found in /usr/local/bro/etc:


The first file I want to edit is node.cfg. There is an interface line in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re that, by default, is set to eth0. To make sure I set cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appropriate interface, I ran 'ifconfig' to see which interface didn't have an IP and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n edited cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 file. The output of ifconfig and cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 modified node.cfg are below:



Note cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "type=standalone" line. It is possible to run bro in a clustered mode, eicá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r with multiple hosts or multiple instances on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same host. Since I'm dealing with less than 5 Mb/s of traffic, it is pointless to configure multiple instances ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r than as an academic exercise. While I may address that configuration in anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r post, right now I want to keep cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 configuration simple so I'm running in standalone mode.

The next change is to networks.cfg. This file tells bro which networks are "local" and is used for determining incoming vs. outgoing connections. My psql_test network, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 one using my FreeBSD VM as a router, uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 10.10.10.0/24 IP space, so that's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only network I'm defining in networks.cfg:


The last file to edit is broctl.cfg.  In production I would want to make a change to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 MailTo line, add a custom MailFrom line and set cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 path for sendmail. I don't mind having emails go to root@localhost in a test environment so cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 only change I'm going to make is to add cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 path for sendmail:


Installing cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Configuration and Starting bro


All of my groundwork is ready to come togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r. Bro's configuration files are ready, my FreeBSD router is pushing data over cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 span port and I have a handful of virtual machines ready to generate some traffic. Now to start bro!

The broctl tool is used for basic administration tasks. You can use it to start/stop bro, update cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 configuration, get stats for running manager/worker instances, get basic stats on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current traffic rate being monitored and more. First, start broctl using 'sudo broctl':


Note cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 prompt changed to '[BroControl] >'. To exit cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 broctl program, type 'quit' and hit enter. Don't do that yet, though, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are a few things to do first!

Since this is a new installation, I need to 'install' cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 configuration files. This is done by typing 'install' at  cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 BroControl prompt and hitting 'enter'. I actually did that and hit Ctrl-L to clear cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 screen before I thought to take a screenshot so you'll get something *VERY SIMILAR* but possibly not *EXACTLY* like this:


Now use cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 'start' command to start bro:


To get cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 status of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 newly started process, use 'status':


At this point I switched over and started 'sudo apt-get update && sudo apt-get upgrade' on a couple of Ubuntu virtual machines and 'sudo portsnap fetch update' on a couple of FreeBSD virtual machines to generate some traffic, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n I came back to bro and used 'capstats' to get some basic information on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 capture interface:


 Note that I'm only pulling about .8 Mb/second at less than 1,000 packets per second. That's fine considering my uber-slow DSL connection. In production I have virtual machines monitoring a couple of hundred megabits of traffic per second. It's pretty cool.

Carving cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Logs (or, Going for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Scoobies!)


At this point you're possibly (probably...) thinking, "um...Kev...this is cool and all but...where's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 payoff? Why have I gone through all of this?

Bro stores its logs (by default) in /usr/local/bro/logs. In that directory is a series of directories created by timestamp. An example directory would be /usr/local/bro/logs/2013-01-24. There is also a "current" directory, where cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 log files for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 current bro process are kept. This is a symbolic link to bro's spool directory and every hour bro archives those logs to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 appropriate directory. For this post I'll work entirely in /usr/local/bro/logs/current:


If you have been monitoring an active network cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n you should be able to run 'ls' and see several log files present:


Each of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se files is interesting but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are a few that are particularly relevant to me. Recently I've been responding to a LOT of problems with outdated Java versions being exploited by exploit packs like Blackhole and CoolEK. I had written a Snort rule to look for Java versions up to 1.7.0_10 but I'm already taxing my Snort machines pretty hard. It would be really wicked if I could look for Java versions or wacky user-agent strings - Internet Explorer from a FreeBSD server or curl from a Windows server, for example. They aren't necessarily impossible, just generally unlikely. As it turns out, bro identifies cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 software it sees making network connections and logs it in software.log:


You can see that it identified 'portsnap' from one of my FreeBSD virtual machines, wget from a Linux virtual machine and 'rekonq' (cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 new version of Konqueror) from my KUbuntu virtual machine. If I wanted to see only portsnap connections I could have used:

grep portsnap software.log

If I wanted to look for Java as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user-agent, I could have used:

grep -i java software.log

See where this is going? By logging in plain-text, you can search cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bro logs using any common command-line tool. Very cool!

Anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r interesting file is conn.log. This file keeps a list of all connections it sees, with data equivalent to that gacá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365red from netflow. It provides a timestamp, IPs, ports, bytes transferred, packets transferred, duration of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 connection and more. A complete description of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 fields can be found in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bro documentation. The sample from my test shows several connections from my FreeBSD virtual machine:


Bro assigns an UID per connection and it uses cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same UID for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same connection whecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r it is in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 connection log, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 HTTP log or cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 DNS log, making it trivial to gacá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r information about a particular network conversation. If I pick one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 unique IDs from that table, for example if I choose 'AHNlJWaph34', I can search for any occurrence of that UID in any log with a simple grep:


This lets me know I not only had a connection between 192.168.1.76 and 192.168.1.254 on port 53, I can verify that it was indeed a DNS lookup for update5.freebsd.org and that update5.freebsd.org resolves to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 IP address 204.9.55.80.

Ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r Logs

While I won't go into samples, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re are many more useful logs bro creates out-of-cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365-box. If your network has any FTP servers you can monitor those FTP connections -- you can see which user is getting or putting which files, provided it is pure FTP and not SFTP, via ftp.log.

Bro keeps track of any SSL certificates it sees and can do real-time validation of those certificates. The identifying information for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365se certificates is kept in known_certs.log.

As machines come on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network, bro logs cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir IP in known_hosts.log, so you can keep track of which machines are on at what time of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 day. This is highly useful for trending and monitoring for deviations from cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 norm.

If your network has SMTP servers you can get much better logs in smtp_entities.log and smtp.log than what most MTAs provide out-of-cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365-box. IPs, recipients, senders, mail message IDs, subject lines, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 names of any attachments and, optionally, a MD5 of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 attachment, are all available.

One of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 most frustrating things for me when doing incident response is trying to guess what file a machine downloaded just before Snort starts alerting me to botnet behaviour. Unless we are in an environment with mature IR and NSM programs, most of us have no reliable way of determining what domain cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 infected machine was trying to access at a given IP or, if HTTP, if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 infected machine cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n tried to do a GET or POST and to which script at a given site. This can be particularly frustrating if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 site is at a shared hosting provider like Amazon, Rackspace or one of a thousand Moldovan, Russian or Dutch web hosts. Bro addresses this huge problem via http.log, a wonderful resource for following cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 flow of web requests from a given host. As with dns.log, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same UID used in conn.log is used in http.log.

Getting Away From cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Command Line

I live at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 command line. At work I use plain-text email (mutt). I generally have ten to twenty tabs open with SSH sessions to various Linux or Unix servers at any one time. Tools like grep, awk, sed, vi, cat and cut are an integral part of my day. They are awesome for quick-and-dirty work but have I mentioned that my current favourite open source project is ELSA? As it turns out, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 author is a professional incident handler/responder and he's a pretty big fan of bro so ... ELSA has support for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bro connection log. In part four of this series I'll cover tying two really awesome projects togecá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r by sending bro connection data to ELSA, giving you cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ability to monitor connections on multiple networks from totally different buildings, data centres, countries or even continents via a single web-based tool.

Parallelising Python: What Happens When a Beginner Discovers Multiprocessing

Some of you will remember that I have a few scripts that can be used for incident response in G Suite environments, available at: https...