Showing posts with label rocknsm. Show all posts
Showing posts with label rocknsm. Show all posts

Monday, April 08, 2019

Troubleshooting NSM Virtualization Problems with Linux and VirtualBox

I spent a chunk of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 day troubleshooting a network security monitoring (NSM) problem. I thought I would share cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem and my investigation in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 hopes that it might help ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs. The specifics are probably less important than cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 general approach.

It began with ja3. You may know ja3 as a set of Zeek scripts developed by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Salesforce engineering team to profile client and server TLS parameters.

I was reviewing Zeek logs captured by my Corelight appliance and by one of my lab sensors running Security Onion. I had coverage of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same endpoint in both sensors.

I noticed that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SO Zeek logs did not have ja3 hashes in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ssl.log entries. Both sensors did have ja3s hashes. My first thought was that SO was misconfigured somehow to not record ja3 hashes. I quickly dismissed that, because it made no sense. Besides, verifying that intution required me to start troubleshooting near cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 top of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 software stack.

I decided to start at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bottom, or close to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 bottom. I had a sinking suspicion that, for some reason, Zeek was only seeing traffic sent from remote systems, and not traffic originating from my network. That would account for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 creation of ja3s hashes, for traffic sent by remote systems, but not ja3 hashes, as Zeek was not seeing traffic sent by local clients.

I was running SO in VirtualBox 6.0.4 on Ubuntu 18.04. I started sniffing TCP network traffic on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SO monitoring interface using Tcpdump. As I feared, it didn't look right. I ran a new capture with filters for ICMP and a remote IP address. On anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r system I tried pinging cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 remote IP address. Sure enough, I only saw ICMP echo replies, and no ICMP echoes. Oddly, I also saw doubles and triples of some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 ICMP echo replies. That worried me, because unpredictable behavior like that could indicate some sort of software problem.

My next step was to "get under" cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM guest and determine if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM host could see traffic properly. I ran Tcpdump on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Ubuntu 18.04 host on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 monitoring interface and repeated my ICMP tests. It saw everything properly. That meant I did not need to bocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r checking cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 switch span port that was feeding traffic to cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VirtualBox system.

It seemed I had a problem somewhere between cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM host and guest. On cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same VM host I was also running an instance of RockNSM. I ran my ICMP tests on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 RockNSM VM and, sadly, I got cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same one-sided traffic as seen on SO.

Now I was worried. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem had only been present in SO, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n I could fix SO. If cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem is present in both SO and RockNSM, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 problem had to be with VirtualBox -- and I might not be able to fix it.

I reviewed my configurations in VirtualBox, ensuring that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 "Promiscuous Mode" under cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Advanced options was set to "Allow All". At this point I worried that cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was a bug in VirtualBox. I did some Google searches and reviewed some forum posts, but I did not see anyone reporting issues with sniffing traffic inside VMs. Still, my use case might have been weird enough to not have been reported.

I decided to try a different approach. I wondered if running VirtualBox with elevated privileges might make a difference. I did not want to take ownership of my user VMs, so I decided to install a new VM and run it with elevated privileges.

Let me stop here to note that I am breaking one of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 rules of troubleshooting. I'm introducing two new variables, when I should have introduced only one. I should have built a new VM but run it with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 same user privileges with which I was running cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 existing VMs.

I decided to install a minimal edition of Ubuntu 9, with VirtualBox running via sudo. When I started cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 VM and sniffed traffic on cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 monitoring port, lo and behold, my ICMP tests revealed both sides of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 traffic as I had hoped. Unfortunately, from this I erroneously concluded that running VirtualBox with elevated privileges was cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 answer to my problems.

I took ownership of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 SO VM in my elevated VirtualBox session, started it, and performed my ICMP tests. Womp womp. Still broken.

I realized I needed to separate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 two variables that I had entangled, so I stopped VirtualBox, and changed ownership of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Debian 9 VM to my user account. I cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365n ran VirtualBox with user privileges, started cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Debian 9 VM, and ran my ICMP tests. Success again! Apparently elevated privileges had nothing to do with my problem.

By now I was glad I had not posted anything to any user forums describing my problem and asking for help. There was something about cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 monitoring interface configurations in both SO and RockNSM that resulted in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 inability to see both sides of traffic (and avoid weird doubles and triples).

I started my SO VM again and looked at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 script that configured cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 interfaces. I commented out all cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 entries below cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 management interface as shown below.

$ cat /etc/network/interfaces

# This configuration was created by cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Security Onion setup script.
#
# The original network interface configuration file was backed up to:
# /etc/network/interfaces.bak.
#
# This file describes cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network interfaces available on your system
# and how to activate cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m. For more information, see interfaces(5).

# loopback network interface
auto lo
iface lo inet loopback

# Management network interface
auto enp0s3
iface enp0s3 inet static
  address 192.168.40.76
  gateway 192.168.40.1
  netmask 255.255.255.0
  dns-nameservers 192.168.40.1
  dns-domain localdomain

#auto enp0s8
#iface enp0s8 inet manual
#  up ip link set $IFACE promisc on arp off up
#  down ip link set $IFACE promisc off down
#  post-up ethtool -G $IFACE rx 4096; for i in rx tx sg tso ufo gso gro lro; do ethtool -K $IFACE $i off; done
#  post-up echo 1 > /proc/sys/net/ipv6/conf/$IFACE/disable_ipv6

#auto enp0s9
#iface enp0s9 inet manual
#  up ip link set $IFACE promisc on arp off up
#  down ip link set $IFACE promisc off down
#  post-up ethtool -G $IFACE rx 4096; for i in rx tx sg tso ufo gso gro lro; do ethtool -K $IFACE $i off; done
#  post-up echo 1 > /proc/sys/net/ipv6/conf/$IFACE/disable_ipv6

I rebooted cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 system and brought cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 enp0s8 interface up manually using this command:

$ sudo ip link set enp0s8 promisc on arp off up

Fingers crossed, I ran my ICMP sniffing tests, and voila, I saw what I needed -- traffic in both directions, without doubles or triples no less.

So, cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re appears to be some sort of problem with cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 way SO and RockNSM set parameters for cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365ir monitoring interfaces, at least as far as cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y interact with VirtualBox 6.0.4 on Ubuntu 18.04. You can see in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network script that SO disables a bunch of NIC options. I imagine one or more of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 culprit, but I didn't have time to work through cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m individually.

I tried taking a look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 network script in RockNSM, but it runs CentOS, and I'll be darned if I can't figure out where to look. I'm sure it's cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re somewhere, but I didn't have cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 time to figure out where.

The moral of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 story is that I should have immediately checked after installation that both SO and RockNSM were seeing both sides of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 traffic I expected cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365m to see. I had taken that for granted for many previous deployments, but something broke recently and I don't know exactly what. My workaround will hopefully hold for now, but I need to take a closer look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 NIC options because I may have introduced anocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365r fault.

A second moral is to be careful of changing two or more variables when troubleshooting. When you do that you might fix a problem, but not know what change fixed cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 issue.