Olá,
Para finalizar o nosso ultimo post sobre snort e a pfsense, chegou agora a altura de apresentar uma forma mais intuitiva de ver os logs de deteção do nosso snort.
Recordam-se da linha que mostrei de processo no nosso ultimo post?
Como podem ver, alem do snort temos um outro processo de nome baryard2. O barnyard2 é um unificador, processador e concentrador de logs produzidos pelo snort (entre outras coisas).
Neste caso, o que nos interessa é a capacidade do barnyard2 enviar os dados trabalhados para uma base de dados para posterior análise.
Esta configuração pode ser conseguida na pfsense, secção snort, secção/instância, $instância Barnyard2:
Vamos usar para tal, a instalação de snort do nosso ultimo post, e uma nova instalação de Snorby.
O Snorby é uma ruby on rails application – opensource – com uma versão comercial suportada.
Então qual a necessidade do Snorby?
Se configuraram corretamente o vosso snort, devem ter notado o absurdo de logs que tem por dia, assim bem como a quantidade de eventos despoletados.
O Snorby auxilia que pequenas equipas que não tenham um analista de segurança em permanência, a classificar e analisar os resultados obtidos, conseguindo assim uma melhor gestão de incidentes e riscos das vossas plataformas de segurança.
A nossa instalação do Snorby será efetuada num container em CentOS 7.2 (compatível RHEL7.2) que vou assumir para encurtar este post que já está pronto e atualizado.
Em primeiro lugar será necessitar instalar dependências e pré requisitos do Snorby:
yum -y install epel-release
yum -y groupinstall “Development Tools”
yum install -y openssl-devel readline-devel libxml2-devel libxslt-devel mysql mysql-devel mysql-libs mysql-server urw-fonts libX11-devel libXext-devel qconf fontconfig-devel libXrender-devel unzip ImageMagick git
Manualmente instalaremos as dependências cuja versão em repositório de RPM não é preenche os pré-requisitos:
cd /usr/local/src
wget pyyaml.org/download/libyaml/yaml-0.1.6.zip
unzip yaml.zip
cd yaml
./configure
make
sudo make install
cd /usr/local/src
wget cache.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p547.tar.gz
tar -zxvf ruby-1.9.3-p547.tar.gz
cd ruby-1.9.3-p547
./configure
make
sudo make install
sudo gem install rails
sudo gem install nokogiri — –use-system-libraries
sudo gem install bundler
cd /usr/local/src
wget www.imagemagick.org/download/ImageMagick.tar.gz
tar -zxvf ImageMagick.tar.gz
cd ImageMagick*
./configure
make
sudo make install
cd /usr/local/src
wget sourceforge.net/projects/wkhtmltopdf/files/archive/0.12.0/wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz
tar xJ wkhtmltox-linux-amd64_0.12.0-03c001d.tar.xz
cd wkhtml*
sudo mv bin/wkhtmltopdf /usr/local/bin
Finalmente é altura de instalar a aplicação:
cd /usr/local/src
git clone https://github.com/Snorby/snorby.git
cd snorby
sudo bundle install –deployment
sudo cp /usr/local/src/snorby/config/database.yml.example /usr/local/src/snorby/config/database.yml
sudo cp /usr/local/src/snorby/config/snorby_config.yml.example /usr/local/src/snorby/config/snorby_config.yml
No ficheiro de configuração do snorby deveremos indicar a password / user que demos na nossa configuração do barnyard.
Terão de ser credenciais válidas e a base de dados terá de estar a receber dados das pfsenses / barnyard:
password: “Enter Password Here” # Example: password: “s3cr3tsauce”
para
password: “l33tp@ssw0rd” # Example: password: “s3cr3tsauce”
Finalmente e para deploy, corremos:
cd /usr/local/src/snorby
bundle exec rake snorby:setup
A aplicação em si está agora instalada e se tiverem feito dos os passos estará a funcionar.
Mas será necessário disponibilizar a webgui de gestão da mesma. Para isso instalaremos o Phusion Passenger:
gem install passenger
passenger-install-apache2-module –auto
Em termos de despiste, caso existam problemas, a minha sugestão em primeiro lugar é validarem a vossa DB de snorby. Se conseguem aceder a ela com o utilizador que está configurado.
Para um despiste ainda mais profundo existem as seguintes opções self explanatory:
cd /usr/local/src/snorby
sudo RAILS_ENV=production script/rails r “Snorby::Worker.stop”
sudo RAILS_ENV=production script/rails r “Snorby::Worker.start”
sudo RAILS_ENV=production script/rails r “Snorby Cache Jobs”
sudo RAILS_ENV=production script/rails r “Snorby::Jobs::SensorCacheJob.new(true).perform”
sudo RAILS_ENV=production script/rails r “Snorby::Jobs::DailyCacheJob.new(true).perform”
sudo RAILS_ENV=production script/rails r “Snorby::Jobs.clear_cache”
sudo RAILS_ENV=production script/rails r “Snorby::Jobs.run_now”
sudo RAILS_ENV=production script/rails r “Snorby::Jobs::GeoipUpdatedbJob.new(true).perform”
Da experiência que tive em relação ao deployment do produto, posso dizer que a unica dificuldade foi uma credencial da base de dados mal passada. Tudo o resto funcionou assim que foi ligado.
Concluindo, com ferramentas opensource, simples e extremamente potentes, podemos alavancar a segurança que é tão importante nos nossos ambientes hoje em dia.
Como sempre, sabem onde me podem encontrar caso tenham duvidas ou comentários.
Até ao próximo post!
Abraço!
Nuno