Showing posts with label technology preview. Show all posts
Showing posts with label technology preview. Show all posts

Friday, July 28, 2017

Towards Elastic on Security Onion: Technology Preview 3 (TP3)

UPDATED 2018/04/09! We've released a newer version!
https://blog.securityonion.net/2018/04/security-onion-elastic-stack-general.html

We recently announced the first two technology previews of the Elastic stack on Security Onion:
http://blog.securityonion.net/2017/03/towards-elk-on-security-onion.html
http://blog.securityonion.net/2017/06/towards-elastic-on-security-onion.html

We've made more progress, so it's time for our third technology preview (TP3)!

Changes from the last Technology Preview

  • upgraded from Elastic 5.4.0 to 5.5.0
  • added containers for ElastAlert, Curator, DomainStats, and FreqServer
  • each container logs to its own log directory in /var/log/
  • securityonion_elastic.sh now supports new installations in addition to upgrading ELSA installations
  • new and updated dashboards
  • added parsers for pfSense, sysmon, and autoruns logs
  • sostat now provides status for Elastic stack
  • Indicator dashboard now only searches the last 24 hours by default for better performance
Highlights of This Release




Endpoint Visibility - Autoruns

Endpoint Visibility - Autoruns (continued)
Endpoint Visibility - Autoruns (continued)
Endpoint Visibility - Sysmon
Endpoint Visibility - Sysmon (continued)
Firewall Logs

DNS Frequency Analysis

SSL Frequency Analysis

For more screenshots, please see the full Screenshot Tour at the end of this blog post.


Warnings and Disclaimers

  • This technology PREVIEW is PRE-ALPHA, BLEEDING EDGE, and TOTALLY UNSUPPORTED!
  • If this breaks your system, you get to keep both pieces!
  • This script is a work in progress and is in constant flux.
  • This script is intended to build a quick prototype proof of concept so you can see what our ultimate Elastic configuration might look like.  This configuration will change drastically over time leading up to the final release.
  • Do NOT run this on a system that you care about!
  • Do NOT run this on a system that has data that you care about!
  • This script should only be run on a TEST box with TEST data!
  • This script is only designed for standalone boxes and does NOT support distributed deployments.
  • Use of this script may result in nausea, vomiting, or a burning sensation.

Enough disclaimers?  Let's do this!

Hardware Requirements

Start with a disposable TEST VM with the following minimum requirements:

  • 2 CPU cores
  • 8GB RAM
  • 20GB virtual hard drive
  • (1) management interface with full Internet access
  • (1) sniffing interface (separate from management interface)

Choose ELSA Migration or New Installation

Previous technology previews used a script called securityonion_elsa2elastic.sh which only supported migrating from an existing ELSA installation.  That script is now deprecated.  This technology preview now uses a script called securityonion_elastic.sh which supports not only migrating from an existing ELSA installation but also configuring new installations.

Scenario #1 - Migrate from ELSA to Elastic (as in previous Technology Previews)

  • Install Security Onion 14.04.5.2 ISO image
  • Run through existing version of Setup choosing Evaluation Mode to enable ELSA
  • Download the script:

    wget https://raw.githubusercontent.com/Security-Onion-Solutions/elastic-test/master/securityonion_elastic.sh
  • Run the script with sudo privileges:

    sudo bash securityonion_elastic.sh
  • Please read through all the WARNINGS and DISCLAIMERS and ONLY proceed if you agree.
  • The script will take at least 10 minutes depending on the speed of your hardware and Internet connection. 
  • Proceed to the Kibana section below.


Scenario #2 - Fresh Elastic installation
  • Install Security Onion 14.04.5.2 ISO image
  • Download the script:

    wget https://raw.githubusercontent.com/Security-Onion-Solutions/elastic-test/master/securityonion_elastic.sh
  • Run the script with sudo privileges:

    sudo bash securityonion_elastic.sh
  • Please read through all the WARNINGS and DISCLAIMERS and ONLY proceed if you agree.
  • This will in turn download the Elastic components and then prompt you to run Setup.
  • Run through both phases of Setup (configure network interfaces, reboot, and then run Setup again choosing Evaluation Mode).
  • Once Setup has completed, create some test data:

    sudo so-test


Accessing Kibana
Once you've completed the migration or installation as described above, open the Chromium web browser and go to:

https://localhost/app/kibana

You should then see our new Security Onion login window.  Enter the same credentials that you use to login to Sguil/Squert.  This login window will provide single sign on for Kibana, Squert, and CapMe to allow seamless pivoting to full packet capture!

Once logged into Kibana, you will automatically start on our Overview dashboard and you will see links to other dashboards as well.  As you search through the data in Kibana, you should see Bro logs,  syslog, and Snort alerts.  Logstash should have parsed out most fields in most Bro logs and Snort alerts.  Notice that the search panels at the bottom of the dashboards display the source_ip and destination_ip fields with hyperlinks.  These hyperlinks will take you to a dashboard that will help you analyze the traffic relating to that particular IP address.  UID fields are also hyperlinked.  Clicking on a UID hyperlink will start a new Kibana search for that particular UID.  In the case of Bro UIDs this will show you all Bro logs related to that particular connection.  Each log entry also has an _id field that is hyperlinked.  This hyperlink will take you to CapMe, allowing you to request full packet capture for any arbitrary log type!  This assumes that the log is for tcp or udp traffic that was seen by Bro and Bro recorded it correctly in its conn.log.

Previously, in Squert and Sguil, you could pivot from an IP address to ELSA.  Those pivots have been removed and replaced with a pivot to Kibana.

For screenshots, please see the Screenshot Tour at the bottom of this post.

Thanks
Special thanks to Justin Henderson for his work on the domainstats and freqserver integration in this release!

More Information
For more information about our Elastic integration, please see the Elastic page on our Wiki:
https://github.com/Security-Onion-Solutions/security-onion/wiki/Elastic

TODO
For the current TODO list, please see:
https://github.com/Security-Onion-Solutions/security-onion/issues/1095

Feedback
We're releasing this now because we want to get your feedback as early as possible in this project.  Please try it out and send your feedback to our mailing list:
https://github.com/Security-Onion-Solutions/security-onion/wiki/MailingLists

What do you think?

What works well?

What needs to be improved?

Any questions or other comments?

Thanks in advance for any and all feedback!

Want to show your support for Security Onion?
Security Onion t-shirts are available in our CafePress store!
http://www.cafepress.com/securityonion/11820053

Need Security Onion Training?
We offer both onsite and online training (although please note that Elastic will not be added to training classes until we reach a stable release):
https://securityonionsolutions.com/onsitetraining
https://securityonionsolutions.com/ondemandtraining

Conference
Our annual Security Onion Conference will be Friday September 15, 2017:
https://securityonion.net/conference

Hope to see you there!

Screenshot Tour
Overview Dashboard


Bro Notices Dashboard 
HIDS Alerts Dashboard (OSSEC)



NIDS Alerts Dashboard (Snort/Suricata)

Bro Connections Dashboard

Bro DCE/RPC Dashboard

Bro DHCP Dashboard

Bro DNP3 Dashboard

Bro DNS Dashboard 
Bro Files Dashboard



Bro FTP Dashboard

Bro HTTP Dashboard

Bro Intel Dashboard

Bro IRC Dashboard

Bro Kerberos Dashboard

Bro Modbus Dashboard

Bro MySQL Dashboard

Bro NTLM Dashboard

Bro PE Dashboard

Bro RADIUS Dashboard

Bro RDP Dashboard

Bro RFB Dashboard

Bro SIP Dashboard

Bro SMB Dashboard

Bro SMTP Dashboard

Bro SNMP Dashboard

Bro Software Dashboard

Bro SSH Dashboard

Bro SSL Dashboard

Bro Tunnels Dashboard 
Bro Weird Dashboard



Bro X.509 Dashboard

Autoruns Dashboard

Autoruns Dashboard (continued)

Autoruns Dashboard (continued) 

OSSEC Logs Dashboard 
Sysmon Dashboard



Sysmon Dashboard (continued)

Firewall Dashboard (pfSense logs)

Stats Dashboard

UPDATED 2017/07/29 - Added hyperlinks to wiki pages for Elastic, Curator, DomainStats, ElastAlert, and FreqServer.

Thursday, March 16, 2017

Towards ELK on Security Onion: A Technology Preview

UPDATED 2018/04/09! We've released a newer version!
https://blog.securityonion.net/2018/04/security-onion-elastic-stack-general.html

Over the last few years, we've had lots of folks ask for ELK (Elasticsearch, Logstash, and Kibana) on Security Onion.  The time has come to begin working towards ELK on Security Onion!

In the grand tradition of "release early, release often", we're releasing a very early Technology Preview of what ELK on Security Onion might look like.  This Technology Preview consists of a script that will take a Security Onion VM in Evaluation Mode and convert it from ELSA to ELK.  We're releasing this now because we want to get your feedback as early as possible in this project.

Thanks
Special thanks to Justin Henderson for his Logstash configs and installation guide!
https://github.com/SMAPPER/Logstash-Configs

Special thanks to Phil Hagen for all his work on SOF-ELK!
https://github.com/philhagen/sof-elk

Warnings and Disclaimers

  • This technology PREVIEW is PRE-ALPHA, BLEEDING EDGE, and TOTALLY UNSUPPORTED!
  • If this breaks your system, you get to keep both pieces!
  • This script is a work in progress and is in constant flux.
  • This script is intended to build a quick prototype proof of concept so you can see what our ultimate ELK configuration might look like.  This configuration will change drastically over time leading up to the final release.
  • Do NOT run this on a system that you care about!
  • Do NOT run this on a system that has data that you care about!
  • This script should only be run on a TEST box with TEST data!
  • This script is only designed for standalone boxes and does NOT support distributed deployments.
  • Use of this script may result in nausea, vomiting, or a burning sensation.

Bring on the ELK
Enough disclaimers?  Let's do this!

Start with a disposable TEST VM with the following minimum requirements:

  • 2 CPU cores
  • 4GB RAM
  • 20GB virtual hard drive
  • (1) management interface with full Internet access
  • (1) sniffing interface (separate from management interface)
  • Security Onion 14.04.5.2 ISO image installed
  • Setup ran in Evaluation Mode

Download the script:
wget https://raw.githubusercontent.com/Security-Onion-Solutions/elastic-test/master/securityonion_elsa2elastic.sh
Run the script with sudo privileges:
sudo bash securityonion_elsa2elastic.sh
Please read through all the WARNINGS and DISCLAIMERS and ONLY proceed if you agree.

The script will take at least 10 minutes depending on the speed of your hardware and Internet connection.

After a minute or two, you should be able to access Kibana via the following URL:
https://localhost/app/kibana

You should see our new Security Onion login window.  Enter the same credentials that you use to login to Sguil and Squert.  This login window will provide single sign on for both Kibana and CapMe to allow seamless pivoting to full packet capture!

Once logged into Kibana, you will automatically start on our Overview dashboard and you will see links to other dashboards as well.  These dashboards are designed to work at 1024x768 screen resolution in order to maximize compatibility.

As you search through the data in Kibana, you should see Bro logs, syslog, and Snort alerts.  Logstash should have parsed out most fields in most Bro logs and Snort alerts.

Notice that the search panels at the bottom of the dashboards display the source_ip and destination_ip fields with hyperlinks.  These hyperlinks will take you to a dashboard that will help you analyze the traffic relating to that particular IP address.

UID fields are also hyperlinked.  This hyperlink will start a new Kibana search for that particular UID.  In the case of Bro UIDs this will show you all Bro logs related to that particular connection.

Each log entry also has an _id field that is hyperlinked.  This hyperlink will take you to CapMe, allowing you to request full packet capture for any arbitrary log type!  This assumes that the log is for tcp or udp traffic that was seen by Bro and Bro recorded it correctly in its conn.log.  CapMe should try to do the following:

  • retrieve the _id from Elasticsearch
  • parse out timestamp
  • if Bro log, parse out the CID, otherwise parse out src IP, src port, dst IP, and dst port
  • query Elasticsearch for those terms and try to find the corresponding bro_conn log
  • parse out sensor name (hostname-interface)
  • send a request to sguild to request pcap from that sensor name

Previously, in Squert, you could pivot from an IP address to ELSA.  That pivot has been removed and replaced with a pivot to ELK.

Screenshots
Using wget to download the script


Running the script as root with "sudo bash securityonion_elsa2elk.sh"

TODO and HARDWARE REQUIREMENTS

Thanks to Justin Henderson and Phil Hagen!

WARNINGS and DISCLAIMERS

Instructions at end of script

New Security Onion login window (use your existing Sguil/Squert credentials) provides single sign on for both Kibana and CapMe

Overview Dashboard contains graphs and links to other dashboards

All of our dashboards include a search panel at the bottom so you can quickly drill into details

Indicator Dashboard is great for seeing the most interesting data types for a particular IP address

Notices Dashboard shows Bro Notices

NIDS Dashboards shows NIDS alerts from Snort or Suricata 
Bro_conn Dashboard allows you to slice and dice Bro's conn.log



Bro_dns Dashboard allows you to slice and dice Bro's dns.log

Bro_http Dashboard allows you to slice and dice Bro's http.log

Bro_ssl Dashboard allows you to slice and dice Bro's ssl.log

Scrolling down the Bro_http Dashboard, we see raw logs with hyperlinks to pivot to further information

Clicking the source IP address in the previous screenshot takes us to the Indicator Dashboard for the source IP

Clicking the destination IP address takes us to the Indicator Dashboard for the destination IP

Clicking the uid field takes us to the Indicator Dashboard for the Bro connection ID

Clicking the _id hyperlink takes us to CapMe to retrieve full packet capture for that stream

Feedback
We're releasing this now because we want to get your feedback as early as possible in this project.  Please try it out and send your feedback to our mailing list:
https://github.com/Security-Onion-Solutions/security-onion/wiki/MailingLists

What do you think?

What works well?

What needs to be improved?

Any questions or other comments?

Thanks in advance for any and all feedback!

UPDATE 2017-03-16 Fixed link to Justin Henderson's github repo

UPDATE 2017-06-01 Renamed github repo from elk-test to elastic-test

UPDATE 2017-06-03 Added link to Technology Preview 2

UPDATE 2017-07-28 Changed TP2 link to point to TP3

UPDATE 2017-09-16 Changed TP3 link to point to ALPHA

UPDATE 2017-11-01 Changed ALPHA link to point to BETA

UPDATE 2017-11-30 Changed BETA link to point to BETA 2

UPDATE 2017-12-18 Changed BETA 2 link to point to BETA 3


Search This Blog

Featured Post

Registration Now Open for Augusta Cyber Week 2026!

Registration is now open for Augusta Cyber Week in beautiful Augusta GA from October 19, 2026 through October 24, 2026! This includes: 4-day...

Popular Posts

Blog Archive