Upload
luizfmattos26
View
78
Download
0
Embed Size (px)
Citation preview
5/12/2018 Artigo_tcc _1.5 - slidepdf.com
http://slidepdf.com/reader/full/artigotcc-15 1/8
LORO, Edgar – TAVEIRA, Leandro Guilherme
Resumo — Este artigo explicará como implementar um
Sistema de Prevenção de Invasão (IPS – Intrusion Prevent
System) com integração com o firewall IPtables para criaçãoautomática de regras e bloqueio de Ip e bloqueio de ataques ou
ameaças. Para esta implementação será utilizado o IDS(Intrusion Detection System) Snort, SnortSam agente e plugin
para que se possa utilizar o Snort como IPS e o firewallIptables, em sistema operacional Ubuntu.
Palavras chaves — Snort, SnortSam, Iptables, Ubuntu
I. INTRODUÇÃO
OJE em dia existem diversas ameaças e pessoas malintencionadas que podem capturar informações ou
até mesmo destruir redes de computadores inteiras através devários tipos diferente de ataque. Devido à existência destasameaças é primordial termos uma boa defesa para
prevenirmos estes tipos de problema. Ferramentas poderosasintituladas por firewalls e sniffers podem se de grande valiana detecção e remoção de ameaças não desejadas em suarede. Um bom exemplo de defesa baseado nestas ferramentasé a utilização do firewall Iptables e o sniffer SNORT que,
quando combinados, pode se tornar um IPS (IntrusionPrevention System) poderoso podendo assim deixar a redemais segura de ameaças que procuram se infiltrar em suarede aproveitando alguma vulnerabilidade encontrada. Antesde explicarmos a instalação e integração do Iptables com oSnort, é importante conhecer o conceito de cada ferramentaque será utilizada.
H
II.UBUNTU
Realizaremos a implantação de nosso IPS no sistemaoperacional Ubuntu versão 11.04. O ubuntu é um sistemaoperacional open source baseado em Unix e por possuir
interface gráfica pode ser utilizado por maior parte deusuários de Windows pois suas interfaces são muito parecidas. Além de sua interface amigável o Ubuntu, por ser baseado em Linux, pode ser utilizado como servidor firewalle IPS, pois além do bom desempenho possui o firewallIptables nativo.
Instalação do Ubuntu
A instalação do Ubuntu é bem simples. Abaixo estdescrito passo a passo como realizar sua instalação.
1. O primeiro passo é baixar a imagem do Ubuntdo link http://www.ubuntu.com/download.
2. Após terminar o download grave a imagem emum cd;
3. Defina a opção de boot da máquina deixando pardar boot em primeiro lugar pela unidade de cd;
4. Quando a máquina reiniciar será exibido uma tel
como mostrado abaixo e, a partir desta tela bastseguir o wizard de instalação;
Fig. 1. Tela inicial de instalação do sistema operacional Ubuntu.
5. As demais telas são semelhantes às telas dinstalação do Windows devendo ser definido sserá uma nova instalação, o idioma da instalaçãoo fuso-horário, o tipo de configuração do teclado
partição em que será instalado e informaçõsobre o usuário da máquina. Abaixo serãmostrados exemplos destas telas.
Integração entre Snort e Iptables para criação deregras automáticas no firewall e bloqueio de
ataque.
Edgar Loro, Leandro Guilherme Taveira, Universidade Anhanguera
5/12/2018 Artigo_tcc _1.5 - slidepdf.com
http://slidepdf.com/reader/full/artigotcc-15 2/8
LORO, Edgar – TAVEIRA, Leandro Guilherme
Fig. 2. Tela de opção de instalação do Ubuntu.
Fig. 3. Tela de seleção de idioma do Ubuntu.
Fig. 4. Tela de seleção de fuso-horário do Ubuntu.
Fig. 5. Tela de seleção de layout do teclado a ser utilizado no Ubuntu
Fig. 6. Seleção de partição em que o Ubuntu será instalado.
Fig. 7. Tela de definição de usuário, senha e nome da máquina do Ubuntu.[5
III. IPTABLES
O IPTABLES é um firewall nativo do sistema operaciona
5/12/2018 Artigo_tcc _1.5 - slidepdf.com
http://slidepdf.com/reader/full/artigotcc-15 3/8
LORO, Edgar – TAVEIRA, Leandro Guilherme
Ubuntu, conforme informado antes, também conhecido comoum código das versões 2.4 do KERNEL. O Iptables éconstituído com os seguintes pacotes: IPTABLES,IP6TABLES, IPTABLES-SAVE e IPTABLES-RESTORE. Ofiltro dos pacotes é realizado através de comparação deregras em tabelas identificando se um pacote tem ou não
permissão para chegar ao seu destino. Estas tabelas são áreasna memória usadas para armazenar os chains em conjunção
com o conjunto de regras. Existem três tipos de tabelasdentro do Iptables que são ”Tabela NAT", “Tabela Filter” e“Tabela Mangle”. Cada uma destas tabelas é constituída por chains diferentes que serão mostradas a seguir:
TABELA CHAIN
Filter Input, Output e Forward Nat Prerouting, Output e PostroutingMangle Input, Output, Forward e Prerouting,
Postrouting
Duas características interessantes do Iptables são a possibilidade de realizar a análise do cabeçalho e assimdecidir se o pacote é confiável ou não, e ser um firewall do
tipo stateful, ou seja, ele memoriza conexões anteriores econsegue aplicar as regras de filtragem de pacote.[4]
IV. SNORT
O Snort é uma das ferramentas mais utilizadas atualmenteem servidores espalhados pela internet; é composto por vários módulos que são ferramentas poderosas capazes de
produzir uma grande quantidade de informação sobre osataques monitorados, tais como Sniffer que serve paracapturar os pacotes e exibir na tela, packtlogger que registraos pacotes capturados no disco rígido e etc. Basicamente osnort funciona analisando pacotes que trafegam na redetentando identificar se existe alguma anomalia no pacote que
possa indicar algum tipo de ameaça para o sistema. Seufuncionamento é teoricamente simples, pois ele faz análisedo sistema operacional e dos componentes da redearmazenando em uma base de dados informações comovolume de dados, serviços da rede, excesso de conexões, etc.Após a coleta destas informações, qualquer tipo de alteraçãosuspeita que haja na rede ou no sistema operacional, apóscomparação com as informações coletadas anteriormente, éinformada ao administrador da rede. Esta análise é realizadacomparando a assinatura do pacote com a base de dados doSnort e caso seja uma assinatura conhecida, que indique umaameaça ou ataque, é gerado um log com as informações
referentes à ameaça e gerado um alerta informando o tipo deataque. Como o Snort é um IDS ele apenas alerta sobre oataque sendo necessário utilizar outra ferramenta, como oSnortSam, para poder realizar o bloqueio das ameaçasidentificadas.
A instalação do Snort não é uma tarefa simples de executar pois se faz necessário ter algumas bibliotecas específicasinstaladas no Ubuntu, porém, seguindo exatamente os passosdescritos abaixo não haverá problema ao realizar a instalaçãodo Snort.
1. Antes de realizar a instalação do Snort no Ubuntu necessário realizar um update e upgrade no repositórido ubuntu instalar os pacotes make, g++, flex, bisonnmap, nbtscan, apache2, php5, php5-gd, php5-mysqmysql-server. Para isso execute os comandos listadoabaixo:
#apt-get update
#apt-get upgrade
#apt-get install make
#apt-get install g++
#apt-get install flex
#apt-get install bison
#apt-get install apache2
#apt-get install php5 php5-gd php5
mysql
#apt-get install mysql-server
2. Os pacotes de bibliotecas necessários para realizar compilação e instalação do Snort são libpcap0.8-devlibpcre3-dev, lipcap-ruby e libmysqlclient-dev. Parisso execute os seguintes comandos:
#apt-get install libcap0.8-dev
#apt-get install libpcre3-dev
#apt-get install libpcap-ruby
#apt-get install libmysqlclient-dev
3. Para realizar a compilação do Snort, além do pacotes listados nos passos anteriores, também necessário atualizar o pacote libpcap da versão 0.
para 1.1.1. Para isso é necessário realizar o downloadesta pois esta versão não está disponível nrepositório do Ubuntu. A lista de comando abaixrealiza a atualização desta biblioteca:
#cd /srv
#wgethttp://www.tcpdump.org/release/libpc
ap-1.1.1.tar.gz
#tar zxvf libpcap-1.1.1.tar.gz
#cd libpcap-1.1.1
5/12/2018 Artigo_tcc _1.5 - slidepdf.com
http://slidepdf.com/reader/full/artigotcc-15 4/8
LORO, Edgar – TAVEIRA, Leandro Guilherme
#./configure --prefix=/usr
#make
#make install
4. Com a atualização da biblioteca libpcap é possível
prosseguir com a instalação do Snort instalando a APIData Acquisition API (daq), A versão desta APIdepende da versão escolhida para compilação doSnort, neste artigo será utilizada a versão 0.5 destaAPI por utilizarmos o Snort versão 2.9.0.5. É possívelrealizar o download desta API utilizando o link www.snort.org/downloads/745 e instalaçãoexecutando os seguintes comandos:
#cp /root/Downloads/daq0.5.tar.gz
#cd /srv
#tar zxvf daq0.5.tar.gz
#cd daq0.5
#./configure
#make
#make install
#ldconfig
5. Um detalhe importante para continuar com estainstalação é necessário instalar uma bibliotecaespecífica que também não está disponível norepositório do Ubuntu, a libdnet1.12. Os comandosabaixo realizaram o download e instalaram esta
biblioteca:
#cd /srv
#wget
http://libdnet.googlecode.com/files/
libdnet-1.12.tgz
#tar zxvf libdnet1.12.tgz
#cd libdnet1.12/
#./configure
#make
#make install
#ln -s
/usr/local/lib/libdnet.1.0.1
/usr/lib/libdnet.1
6. O próximo passo, finalmente, é realizar o downloae compilar o Snort. O link para download da versão dsnort é www.snort.org/downloads/867. Se todos o
passos listados foram seguidos corretamente nhaverá problemas ao executar os passos abaixo:
#cp /root/Downloads/snort-
2.9.0.5.tar.gz /srv
#cd /srv
#tar zxvf snort-2.9.0.1.tar.gz
#cd snort-2.9.0.1
#./configure--prefix=/usr/local/snort --enable-
ipv6 --enable-normalizer
#make
#make install
#mkdir /var/log/snort
#groupadd snort
#useradd -g snort snort
#chown snort:snort /var/log/snort
7. Após realizar a compilação e instalação do Snort possível criar a parte de banco de dados onde sercriado usuário e definido as permissões para o usuárido Snort no banco de dados e serão armazenadaalgumas informações como, por exemplo, os alertagerados pelo Snort. Para logar no mysql, instaladanteriormente, e realizar a criação do usuário schemas utilizados pelo Snort execute os comandoabaixo:
#mysql -u root -p
> create database snort;
> exit
#mysql -u root -p -D snort <
srv/snort-2.9.0.5/schemas/create_mysql;
#mysql -u root –p
> grant create, insert, select,delete, update on snort.* to
snort@localhost identified by
'SENHA';
5/12/2018 Artigo_tcc _1.5 - slidepdf.com
http://slidepdf.com/reader/full/artigotcc-15 5/8
LORO, Edgar – TAVEIRA, Leandro Guilherme
> flush privileges;
> exit
8. Este passo consiste em baixar o pacote de regrasutilizadas pelo Snort para realizar a detecção dosataques. Para realizar o download das regras énecessário realizar um cadastro gratuito no site doSnort e após isso clicar no link Get Rules. Após
realizar o download das regras execute os seguintescomandos:
#cp /root/Downloads/ snortrules-
snapshot-2900.tar.gz /srv
#tar zxvf snortrules-snapshot-
2900.tar.gz -C /usr/local/snort
#mkdir/usr/local/snort/lib/snort_dynamicru
les
#cp/usr/local/snort/so_rules/precompiled
/DebianLenny/i386/2.9.0.0/*
/usr/local/snort/lib/snort_dynamicrul
es
9. Com o Snort compilado e com suas regras aplicadasiremos configurar seu arquivo para que seja possíveliniciar o Snort. Para isso devemos editar o arquivosnort.conf. utilizando o comando “#vi/usr/local/snort/etc/snort.conf “. Já dentro do arquivo é
procure e substitua as informações conforme mostradoabaixo:
dynamicpreprocessor directory/usr/local/lib/snort_dynamicpreprocessor/
dynamicengine/usr/local/lib/snort_dynamicengine/libsf_engine.so
dynamicdetection directory/usr/local/lib/snort_dynamicrules
Substitua por:
dynamicpreprocessor directory
/usr/local/snort/lib/snort_dynamicpreprocessor/
dynamicengine/usr/local/snort/lib/snort_dynamicengine/libsf_engine.so
dynamicdetection directory/usr/local/snort/lib/snort_dynamicrules
Ainda dentro do arquivo snort.conf troque procure pela linha abaixo:
preprocessor http_inspect: global iis_unicode_mapunicode.map 1252 decompress_depth 20480compress_depth 20480 decompress_depth 20480
E substitua por:
preprocessor http_inspect: global iis_unicode_mapunicode.map 1252
Um pouco abaixo desta linha apague a linha:
inspect_gzip \ e compress_depth \
Para finalizar a configuração do arquivo snort.confinclua a linha abaixo na seção Output deste arquivo
output unified2: filename snort.u2, limit 128
10. Com a configuração do arquivo snort.conf realizadutilize o seguinte comando para iniciar o Snort:
#/usr/local/snort/bin/snort -u snor-g snort -
/usr/local/snort/etc/snort.conf -
eth0
11. Agora, para finalizar, precisamos instalar o softwarBarnyard 2 que interpretará os arquivos bináriocontendo os logs, gerados pelo Snort, e armazenará n
banco de dados e o aplicativo web BASE para qu possamos visualizar as informações capturadas peSnort.
Antes de iniciar a instalar o Barnyard e o BAS
execute as instruções abaixo para permitir escrita n pasta do BASE e alterar o nível de log do php.
#cd /var
#chmod 757 /www
Alterando nível de log do php5:
Edite os arquivos abaixo deixando a linherror_reporting com o valor mostrado abaixo:
#vi /etc/php5/apache2/php.ini
error_reporting = E_ALL & -E_NOTICE
#vi /etc/php5/cli/php.ini
error_reporting = E_ALL & -E_NOTICE
Para instalar o Barnyard 2
#cd /srv
5/12/2018 Artigo_tcc _1.5 - slidepdf.com
http://slidepdf.com/reader/full/artigotcc-15 6/8
LORO, Edgar – TAVEIRA, Leandro Guilherme
#wget
http://www.securixlive.com/download/
barnyard2/barnyard2-1.8.tar.gz
#tar zxvf barnyard2-1.8.tar.gz
#cd barnyard2-1.8
#./configure --with-mysql
#make
#make install
#cp etc/barnyard2.conf
/usr/local/snort/etc
#mkdir /var/log/barnyard2
#chmod 666 /var/log/barnyard2
#touch
/var/log/snort/barnyard2.waldo
#chown snort.snort
/var/log/snort/barnyard2.waldo
12. Após a instalação do Barnyard, vamos editar seuarquivo de configuração utilizando o comando vi/usr/local/snort/etc/barnyard2.conf.
Com o arquivo de configuração aberto encontre asinformações abaixo:
config reference_file:/etc/snort/reference.config
config classification_file:
/etc/snort/classification.config
config gen_file:/etc/snort/genmsg.map
config sid_file:/etc/snort/sidmsg.map
...
#config hostname: thor
#config interface: eth0...
#output database: log, mysql,
user=root password=test dbname=db
host=localhost
E substitua por:
config reference_file:
/usr/local/snort/etc/reference.configconfig classification_file:
/usr/local/snort/etc/classification.c
onfigconfig gen_file:
/usr/local/snort/etc/genmsg.mapconfig sid_file:
/usr/local/snort/etc/sidmsg.map
...
config hostname: localhost
config interface: eth0...
output database: log, mysql,
user=snort password=SENHAdbname=snort host=localhost
Para Iniciar o Barnyard 2 execute a seguinte linha dcomando:
#/usr/local/bin/barnyard2 –c/usr/local/snort/etc/barnyard2.conf
-G /usr/local/snort/etc/genmsg.map -S
/usr/local/snort/etc/sidmsg.map -d/var/log/snort -f snort.u2 -w
/var/log/snort/barnyard2.waldo
A execução do BASE é realizada com os seguintecomandos:
#cd /srv
#wgethttp://sourceforge.net/projects/secu
reideas/files/BASE/base-1.4.5/base-
1.4.5.tar.gz
#tar zxvf base-1.4.5.tar.gz
#mv base-1.4.5 /var/www/base
#wgethttp://sourceforge.net/projects/adod
b/files/adodb-php5-only/adodb-511-
for-php5/adodb511.zip
#unzip adodb511.zip
#mv adodb5 /var/www/
Caso a instalação tenha êxito ao acessar o linhttp://enderecodohost/base/setup, em seu browser de interneaparecerá um tela de configuração do BASE. Preencha ainformações solicitadas e ao terminar a configuração você irdireto para a tela de monitoração de eventos capturados pelSnort.[6]
5/12/2018 Artigo_tcc _1.5 - slidepdf.com
http://slidepdf.com/reader/full/artigotcc-15 7/8
LORO, Edgar – TAVEIRA, Leandro Guilherme
V. SNORTSAM
O SnortSam trata-se de uma ferramenta que permite que oSnort possa além de identificar ameaças bloqueá-las nofirewall, assim, trabalhando como um IPS. O SnortSam éconstituído de dois componentes: Client (patch) e Agent(aplicação). O Agent (aplicação) deve ser instalado na
mesma máquina em que o firewall esta instalado. Sua funçãoé ficar escutando até que receba alguma informação docliente para que, se necessário, crie uma regra no IPtablescom as informações recebidas para que seja realizado o
bloqueio da ameaça no firewall.O client (patch) funciona como um sensor e tem como
objetivo coletar as informações detectadas pelo Snort eenviá-las ao Agent para que possa ser realizada a criação daregra de bloqueio no firewall.
A instalação do SnortSam é realizada em duas partes. Ainstalação do Agent deve ser realizada no servidor de firewalle a instalação do Client no servidor onde está o Snort.
Instalação SnortSam Agent
1. Para realizar a instalação do SnortSam Agent énecessário realizar o download do código fonte daversão 2.70 utilizando o link http://www.snortsam.net/download.html e em seguidacompila-lo e instalá-lo. Para isto siga as instruçõesabaixo:
#cd /root/Downloads
#tar -xvvzf snortsam-src-
2.26.tar.gz /src
#cd /src
#chmod +x makesnortsam.sh
#/makesnortsam.sh
2. Após a instalação é necessário configurar o arquivosnortsam.conf localizado na pasta /etc para que sejarealizada comunicação e ele possa aceitar assolicitações dos sensores. Este arquivo deve conter informações como os endereços IPs dos agentes Snort
que serão aceitos, tipo de firewall utilizado peloSnortSam, local onde será armazenado o arquivo delog dos registros de bloqueio, endereço IP onde ficaráesperando por requisições e os endereços IP que nuncaserão bloqueados (white-list). Para isso execute oscomandos abaixo e edite o arquivo snort.conf.
#vi /etc/snortsam.conf
Exemplo de snort.sam configurado:
accept 192.168.2.2
logfile /var/log/snort.u2.1306546038bindip 192.168.2.0
dontblock 192.168.2.2daemon
Instalação SnortSam Sensor 1. Para realizar a instalação do SnortSam Sensor
necessário aplicar um patch no snort e posteriormentrecompilá-lo. Para isto faça o download do patcversão 2.9.0.3 utilizando o linhttp://www.snortsam.net/download.html e em seguidexecute os comandos abaixo:
#cd /root/Downloads
#tar zxvf snortsam-2.9.0.3.diff.gz
#cd /srv/snort-2.9.0.5
#patch –p1 </root/Downloads/snortsam-
2.9.0.3.diff
#chmod +x autojunk.sh
#./autojunk.sh
#./configure
--prefix=/usr/local/snort --enable-
ipv6 --
enable-normalizer
#make
#make install
Após realizar todas as instalações mencionadas ser possível realizar a integração entre Snort (IPS) e Iptable(Firewall) para que sejam criadas regras de firewaautomáticas a partir das detecções realizadas pelo Snort. [7]
VI. CONCLUSÕES
Nenhuma rede é 100% segura nos dias de hoje, devido
muitos aspectos, porém se você deseja ter uma boa rede, necessário ter uma rede bem estruturada desde o secabeamento até os seus servidores.
Nos dias de hoje você não deve somente contar com"desastres naturais" como um fio corrompido ou um HDqueimado, pois isso não é mais problema é só um merdetalhe; as verdadeiras ameaças são os famosos crackers, qugeralmente se infiltram nas de grandes corporações com intuito de coletar informações sigilosas ou até mesmdanificar a rede.
Devido a isso toda rede deve possuir um firewa poderoso, não só um firewall físico, mas também lógico, par
5/12/2018 Artigo_tcc _1.5 - slidepdf.com
http://slidepdf.com/reader/full/artigotcc-15 8/8
LORO, Edgar – TAVEIRA, Leandro Guilherme
auxiliar o gerente no monitoramento da rede. Uma ótimaopção é o IPTABLES, que combinado com o SNORT eSNORTSAM se transforma em uma ferramenta poderosa dedetecção e neutralização de intrusões, assim diminuindo asvulnerabilidades da sua rede.
Logo se pode afirmar que possuir um IPS em sua rede, sótraz vantagens a sua empresa, pois a maioria das ameaças einfiltrações serão detectadas e neutralizadas antes da perda de
alguma informação importante ou até mesmo a causa dedanos na sua rede.
VII. REFERÊNCIAS
[1] [1] FILHO, Bernardo Severo da Silva. Curso de MATLAB 5.1 -Introdução à Solução de Problemas de Engenharia, 2ª ed. Rio deJaneiro: The Math Works Inc.
[2] [2] SEVERANCE, F. L.. System Modeling and Simulation, JohnWiley& Sons, 2001.
[3] [3] Singh, V.P.. System Modeling and Simulation, New Delhi: New AgeInternational Publishers,2009. ISBN (13) : 978-81-224-2924-4.
[4] [4] THOMAZ, Ygor, Viva o Linux, Dominando o IPTABLES (parte 1)http://www.vivaolinux.com.br/artigo/Dominando-o-iptables-%28parte-1%29/?pagina=6 acessado em 27/05/2011.
[5] [5] GONDIM, André, André Gondim, Como instalar o ubuntu em nove passos. http://andregondim.eti.br/ubuntu/como-instalar-o-ubuntu-em-nove-passos/ acessado em 26/05/2011
[6] WESLEY, Harpia consultoria e tecnologia da informação, tutorial deinstalação do snort no Debian/lenny,http://www.harpiatec.com/2010/12/01/tutorial-de-instalacao-do-snort-no-debianlenny/ acessado em 25/05/2011
[7] JONKMAN, Matt, Emerging threats, SnortSam Install,http://doc.emergingthreats.net/bin/view/Main/SnortSamINSTALLacessado em 25/05/2011.