מה זה Snorby?
יישום אינטרנטי לניתוח ולניטור אבטחה ברשת ומשמש כהרחבה למערכות לגילוי חדירה כגון: Snort, Suricata ו-Sagan.





הכנות להתקנה:
1. התקנת Ruby 1.9.2
2. התקנת Rails 3.0.0
3. התקנת Snort

נתחיל בהתקנה של הכלים הנדרשים:


1. התקנת aptitude:

sudo apt-get install aptitude -y
sudo aptitude update -y

2. התקנת libdaq-dev:
sudo apt-get install libdaq-dev -y


3. התקנת libdumbnet-dev:

apt-get install libdumbnet-dev -y

4. התקנת Curl & RVM:

יש להריץ את הפקודות הבאות:
sudo aptitude install build-essential git-core curl

sudo gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

curl -sSL https://get.rvm.io | bash -s stable

source /usr/local/rvm/scripts/rvm

rvm requirements

echo '[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"' >> ~/.bashrc

5. התקנת הכלים הבאים:

aptitude install build-essential bison openssl libreadline6 libreadline6-dev curl git-core zliblg zliblg-dev libssl-dev libyaml-dev libsqlite3-0 libsqlite3-dev sqlite3 libxml2-dev libslt-dev sutoconf

6. התקנת PHP:
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6 -y

7. התקנת הכלים הבאים:
sudo apt-get install libmysqlclient-dev -y
sudo apt-get install postgresql -y
sudo apt install postgresql postgresql-contrib -y
sudo apt-get install ruby-redcloth -y
sudo apt-get install postgresql-9.5 postgresql-server-dev-9.5 libpq-dev -y
apt install ruby-railties -y
apt install ruby-bundler -y
sudo apt-get install ruby-dev -y

sudo apt-get install libpcap0.8-dev -y

8. התקנת Snort:

יש להריץ את הפקודה הבאה:
apt-get install snort -y

כעת, נערוך באמצעות nano את קובץ הקונפיגורציה של Snort:
nano -c /etc/snort/snort.conf

בשורה מספר 537 להחליף את השורה הכתובה בשורה הבאה:
output unified2: filename snort.log, limit 128, mpls_event_types, vlan_event_types

יש לבצע הפעלה מחדש לשירות של סנורט:
sudo service snort restart

לאחר ש-Snort הותקן, ניתן להוסיף אליו חוקים, נערוך באמצעות nano את הקובץ הבא:
sudo nano /etc/snort/rules/local.rules


ונוסיף את החוקים הבאים:

alert icmp any any -> $HOME_NET any (msg:"ICMP Request"; classtype:not-suspicious; sid:1000001; rev:1;)

alert tcp any any -> $HOME_NET 80 (msg:"HTTP Connection"; classtype:not-suspicious; sid:1000002;  rev:1;)

כעת נבדוק ש-Snort עובד כמו שצריך ונחיל את החוקים החדשים:


sudo snort -i ens4 -v




sudo snort -A console -u snort -g snort -c /etc/snort/snort.conf -i ens4 -T



אם התהליך הסתיים תקין, תוצג ההודעה הבאה:
Snort successfully validated the configuration!
Snort exiting


8. התקנת PhpMyAdmin, Apache ו-MySQL:
sudo apt-get install mysql-server -y
apt-get install apache2 phpmyadmin -y

9. התקנת Ruby:
rvm install 1.9.3
rvm --default use 1.9.3
apt-get install bundler

10. התקנת Barnyard:
cd /usr/src
sudo wget https://github.com/firnsy/barnyard2/tarball/master
sudo tar -zxf master
cd firnsy-barnyard2*
sudo autoreconf -fvi -I ./m4
sudo ./configure --with-mysql --with-mysql-libraries=/usr/lib/x86_64-linux-gnu/
ln -s /usr/include/dumbnet.h /usr/include/dnet.h
sudo make
sudo make install
sudo cp /usr/local/etc/barnyard2.conf /etc/snort
sudo cp schemas/create_mysql /usr/src
sudo mkdir /var/log/barnyard2


11. הגדרת Barnyard2:
נערוך את קובץ הקונפיגורציה באמצעות עורך הטקסט nano:
nano -c /etc/snort/barnyard2.conf

בשורה 349 נוסיף את השורה הבאה במקום המילה Sisma נכניס את הסיסמה שהכנסנו למסד הנתונים:
output database: log, mysql, user=snort password=Sisma dbname=snort host=localhost


נעבור אל תיקיית oinkmaster
cd /usr/share/oinkmaster

sudo bash -c "sudo ./create-sidmap.pl /etc/snort/rules > /etc/snort/sid-msg.map"


12. הגדרת מסד הנתונים MySQL:
כעת יש להתחבר לשרת שם המשתמש והסיסמה שנבחרו על מנת ליצור מסד נתונים יעודי ל-Snort:
sudo mysql -u root -p

create database snort;
create database archive;
create user 'snort'@'localhost' IDENTIFIED BY 'SISMA';
grant usage on snort.* to snort@localhost;
grant usage on archive.* to snort@localhost;
grant all privileges on snort.* to snort@localhost;
grant all privileges on archive.* to snort@localhost;
flush privileges;
use snort;
source /usr/src/create_mysql;

כעת, נוודא שהטבלאות נוצרו:
show tables;

exit


בדיקת הרצה של Barnyard2:
נריץ את Barnyard2 באמצעות הפקודה הבאה:
sudo /usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/barnyard2/bylog.waldo -C /etc/snort/classification.config



13. התקנת Wkhtmltopdf:
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.3/wkhtmltox-0.12.3_linux-generic-amd64.tar.xz
tar vxf wkhtmltox-0.12.3_linux-generic-amd64.tar.xz 

cp wkhtmltox/bin/wk* /usr/local/bin/


14. התקנת Snorby:

נוריד את snorby:
git clone git://github.com/Snorby/snorby.git


נעבור אל התיקייה ונתקין את המערכת:
cd snorby
bundle install / bundle install --path vendor/cache

נעבור אל תיקיית הקונפיגורציה ונשנה את שמות הקבצים:
cd config
cp database.yml.example database.yml
cp snorby_config.yml.example snorby_config.yml


יש להיכנס אל קובץ database.yml ולהזין את הסיסמה של ה-MySQL:
nano database.yml

כעת, ניגש אל התיקייה של Snorby ונריץ את הפקודה הבאה:
cd ..
bundle exec rake snorby:setup


הגדרת Sensor לשליחת אירועים אל Snorby:
יש לערוך את קובץ הקונפיגורציה של Snort באמצעות nano:
nano -c /etc/snort/snort.conf

בשורה 538, יש להוסיף את השורה הבאה:
output log_unified2: filename snort.log, limit 128

יש להיכנס את קובץ הקונפיגורציה של Barnyard2 ובשורה 351 יש להוסיף:
nano -c /etc/snort/barnyard2.conf
output database: log, mysql, dbname=snorby user=snortusr password=sisma host=localhost

נחזור אל התיקייה הקודמת ונריץ את השרת שלנו:
bundle exec rails server -e production -b 0.0.0.0

באמצעות דפדפן האינטרנט ניתן לגשת אל ממשק המשתמש של Snorby, הכתובת המוגדרת כברירת מחדל היא 127.0.0.1:3000 אך ניתן לגשת לכתובת אחרת במידה והוגדרה.

שם המשתש: snorby@example.com
סיסמה: snorby

כעת, כשהכל כבר פועל יש להריץ את הפקודה הבאה במקביל ולבדוק אם מתקבלים אירועים:
sudo /usr/local/bin/barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.log -w /var/log/barnyard2/bylog.waldo -C /etc/snort/classification.config




שתף:

פאביו ליאור רחמים

סקרן, אוהב טכנולוגיה ומחשבים מזה שנים רבות וכותב ערכים קבוע בויקיפדיה.