FACULDADE DE TECNOLOGIA SENAC GOIÁS Segurança da

Transcrição

FACULDADE DE TECNOLOGIA SENAC GOIÁS Segurança da
FACULDADE DE TECNOLOGIA SENAC GOIÁS
Segurança da Informação
Técnicas de segurança em
servidores web
Rodrigo da Silva Sousa
Roberto José Duarte
Tiago Felício Castro da Silveira
Goiânia
2014
SUMÁRIO
1 INTRODUÇÃO ....................................................................................................................... 3
2 PRINCIPIOS BÁSICOS DE SEGURANÇA DA INFORMAÇÃO ....................................... 4
2.1 Os três pilares da segurança da informação ...................................................................... 4
2.1 Confidencialidade ............................................................................................................. 4
2.1 Integridade ........................................................................................................................ 4
2.1 Disponibilidade ................................................................................................................. 4
3 Aplicação das técnicas de segurança aos servidores/serviços web ......................................... 5
3.1 HTTP ................................................................................................................................ 5
3.2 DNS .................................................................................................................................. 7
3.3 CORREIO ELETRÔNICO ............................................................................................... 8
3.4 BANCO DE DADOS ..................................................................................................... 14
3.5 FTP.................................................................................................................................. 15
1 INTRODUÇÃO
Essa documentação tem como objetivo demonstrar a aplicação de técnicas de
segurança em servidores web seguindo os três princípios básicos de segurança da informação
que são:confidencialidade,disponibilidade e integridade.Tais técnicas aplicadas em cada
serviço proposto em questão(HTTP,dns,FTP,Banco de dados e Correio eletrônico ) será
explicada detalhadamente como usamos cada técnica para garantir a segurança em nossos
servidores.
2 PRINCIPIOS BÁSICOS DE SEGURANÇA DA INFORMAÇÃO:
2.1 Os três pilares da segurança da informação
Com a complexidade atual dos sistemas de informação e a conectividade à outras
redes, incluindo a Internet, os ataques se tornaram mais efetivos e abalam aspectos que
sustentam a credibilidade das empresas.
Mas como saber se os recursos de segurança da sua empresa atendem os pilares da
segurança da informação? Os três pilares da Segurança da Informação são: Confidencialidade,
Integridade e Disponibilidade. Definidos da seguinte forma…
2.2 Confidencialidade
É a garantia de que a informação é acessível somente por pessoas autorizadas;
O que pode acontecer se as informações de sua organização caírem nas mãos da
concorrência?
2.3 Integridade
É a salvaguarda da exatidão da informação e dos métodos de processamento;
O que pode acontecer se as informações de sua organização forem corrompidas ou apagadas?
2.4 Disponibilidade
É a garantia de que os usuários autorizados obtenham acesso à informação e aos ativos
correspondentes sempre que necessário que pode acontecer se as informações de sua
organização não puderem ser acessadas para o fechamento de um grande negócio?
Ao compreender esses conceitos e ao responder a estes questionamentos, você com
certeza estará apto a mensurar o quanto os recursos atuais de segurança da sua empresa estão
além ou aquém do esperado.
3 APLICAÇÃO DAS TÉCNICAS DE SEGURANÇA AOS SERVIDORES/SERVIÇOS
3.1 HTTP
Na configuração de nosso servidor HTTP aplicamos as seguinte técnicas:
ModSecurity:
O ModSecurity é um firewall de aplicação que é executado como um módulo do servidor
Web Apache. O WAF (Web Application Firewall), ou firewall de aplicação, tem por objetivo
bloquear diversos tipos de ataques, como o Cross-Site Scripting (XSS), SQL Injection,
Command Injection, ASP e PHP Injection, Trojans & Backdoors Detection, dentre outros,
que variam de acordo com as regras existentes.
Aplicando essa técnica tivemos que habilitar a seguinte linha no arquivo httpd.conf:
Dos-deflate
Essa técnica de aplicação tem como objetivo prevenir um ataque DoS (Distributed Denial of
Service) onde esse faz basicamente inúmeras conexões ao servidor, tornando o servidor
sobrecarregado.Com essa técnica você consegue deixar o servidor mais seguro garantindo que
nenhum cracker possa invadir o servidor de forma fácil.
Abaixo o script que utilizamos pra aplicar a técnica:
3.2 DNS
No servidor de DNS restringimos o bind para ser executado em ambiente restrito e ocultamos
a versão do mesmo.
Segue abaixo as técnicas:
Restrinja o bind para ser executado em
ambiente restrito:
mkdir -p /var/bind
cd /var/bind
mkdirdev
mkdiretc
mkdir logs
mkdir -p var/run
mkdir -p etc/bind
mknoddev/null c 1 3
mknoddev/zero c 1 5
mknoddev/random c 1 8
cp /etc/localtimeetc
Ocultar a versão do bind com o camando:
Restringe buscas recursivasalterando o arquivo named.conf:
3.3 CORREIO ELETRÔNICO
No servidor de correio usamos os seguintes aplicativos:
Postfix: Mail Transfer Agent (MTA)
Amavisd-new: analisador de conteúdo
ClamAV: virus scanner
SpamAssassin: spam scanner
Primeiramente instalamos o postifix, o Postfix é um agente de transferência de emails (MTA) livre e de código aberto que encaminha e entrega e-mails, e tem como objetivo
ser uma alternativa segura ao Sendmail, muito utilizado em servidores UNIX.
#apt-get install postfix
Apos instalado o postfix iremos instalar os aplicativos que mencionamos abaixo para
proteger e filtrar o conteúdo do e-mail. O funcionamento dessas aplicações dentro do postfix e
o seguinte, as mensagens recebidas pelo Postfix na porta 25/tcp serão enviadas ao Amavisdnew pela porta 10024/tcp, que irá invocar o ClamAV e o SpamAssassin para analisar a
mensagem e caso a mesma esteja livre de Vírus e não seja SPAM, será devolvida ao Postfix,
através da porta 10025/tcp, e assim entregue na caixa postal do destinatário.
Amavisd-new: analisador de conteúdo
ClamAV: virus scanner
SpamAssassin: spam scanner
A seguir os comando para instalação dessas aplicações
#apt-get install amavisd-new spamassassin clamav clamav-daemon
#apt-get install zoo unzip bzip2 unzoo
#apt-get install libnet-ph-perl libnet-snpp-perl libnet-telnet-perl
#apt-get install nomarch lzop
Configurando o amavisd-new,
Entre no arquivo /etc/amavis/conf.d/15-content_filter_mode e descomente as linhas abaixo.
Siga as instruções.
@bypass_virus_checks_maps = (
\%bypass_virus_checks, \@bypass_virus_checks_acl, \ $bypass_virus_checks_re);
@bypass_spam_checks_maps = (
\%bypass_spam_checks, \@bypass_spam_checks_acl, \ $bypass_spam_checks_re);
Entre também no arquivo /etc/amavis/conf.d/05-node_id e descomente a linha abaixo:
$myhostname = “mail.example.com”;
Após isso adicione o usuário CLAMAV ao grupo AMAVIS
#gpasswd -a clamav amavis
Configure também o arquivo /etc/clamav/freshclam.conf, inserindo a linha abaixo no final do
arquivo.
NotifyClamd /etc/clamav/clamd.conf
Reinicie os serviços:
/etc/init.d/amavis restart
/etc/init.d/clamav-daemon restart
/etc/init.d/clamav-freshclam restart
Crie o arquivo main.cf dentro do diretorio /etc/postfix, após ter criado o arquivo em branco
digite os seguintes comandos.
#postconf -e 'content_filter = amavis: [127.0.0.1]:10024'
#postconf -e 'receive_override_options = no_address_mappings'
A seguir insira as linhas abaixo no arquivo /etc/postfix/master.cf
amavis unix - - - - 2 smtp
-o smtp_data_done_timeout=1200
-o smtp_send_xforward_command=yes
127.0.0.1:10025 inet n - - - - smtpd
-o content_filter=
-o local_recipient_maps=
-o relay_recipient_maps=
-o smtpd_restriction_classes=
-o smtpd_client_restrictions=
-o smtpd_helo_restrictions=Hardening - Postfix
-o smtpd_sender_restrictions=
-o smtpd_recipient_restrictions=permit_mynetworks,reject
-o mynetworks=127.0.0.0/8
-o strict_rfc821_envelopes=yes
-o receive_override_options=no_unknown_recipient_checks,no_h eader_body_checks
-o smtpd_bind_address=127.0.0.1
Reinicie o postfix
# /etc/init.d/postfix restart
ou
# service postfix restart
Para verificarmos se o postfix esta funcionando pelos caminhos corretos façam o seguinte
teste!
#netstat -tap
Verifique se as linhas abaixo aparecem:
tcp
0
0 localhost:10024
*:*
OUÇA
6237/amavisd-new (m
tcp
0
0 localhost:10025
*:*
OUÇA
9165/master
Teste Amavis Clamav
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR- STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
#telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 VM-Projeto.localdomain ESMTP Postfix
mail from: <roberto@projeto>
250 2.1.0 Ok
rcpt to: <root@projeto>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject: teste amavis clamav
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
.
250 2.0.0 Ok: queued as 3D8AE23B1F
quit
221 2.0.0 Bye
Connection closed by foreign host.
# tail -f /var/log/mail.log
Jun 5 20:43:46 VM-Projeto postfix/qmgr[7493]: 95B2223B22: removed
Jun 5 20:43:47 VM-Projeto postfix/smtp[8287]: B752223B25: to=<[email protected]>,
relay=none, delay=0.6, delays=0.01/0/0.59/0, dsn=5.4.4, status=bounced (Host or domain name not
found. Name service error for name=projeto.localdomain type=AAAA: Host not found)
Jun 5 20:43:47 VM-Projeto postfix/qmgr[7493]: B752223B25: removed
Jun 5 20:44:10 VM-Projeto postfix/smtpd[8271]: 3D8AE23B1F: client=localhost[127.0.0.1]
Jun 5 20:44:52 VM-Projeto postfix/cleanup[8275]: 3D8AE23B1F: messageid=<[email protected]>
Jun 5 20:44:52 VM-Projeto postfix/qmgr[7493]: 3D8AE23B1F: from=<[email protected]>,
size=418, nrcpt=1 (queue active)
Jun 5 20:44:52 VM-Projeto amavis[6243]: (06243-05) Blocked INFECTED (Eicar-Test-Signature)
{DiscardedOutbound,Quarantined}, LOCAL [127.0.0.1]:42775 [127.0.0.1]
<[email protected]> -> <[email protected]>, quarantine: K/virus-K0yHiiknBOzD,
Queue-ID: 3D8AE23B1F, Message-ID: <[email protected]>,
mail_id: K0yHiiknBOzD, Hits: -, size: 418, 180 ms
Jun 5 20:44:52 VM-Projeto postfix/smtp[8280]: 3D8AE23B1F: to=<[email protected]>,
orig_to=<root@projeto>, relay=127.0.0.1[127.0.0.1]:10024, delay=52, delays=51/0/0.02/0.17,
dsn=2.7.0, status=sent (250 2.7.0 Ok, discarded, id=06243-05 - INFECTED: Eicar-Test-Signature)
Jun 5 20:44:52 VM-Projeto postfix/qmgr[7493]: 3D8AE23B1F: removed
Jun 5 20:44:53 VM-Projeto postfix/smtpd[8271]: disconnect from localhost[127.0.0.1]
Teste Spamassassin
X5O!P%@AP[4\PZX54(P^)7CC)7}$EICAR- STANDARD-ANTIVIRUS-TEST-FILE!$H+H*
# telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 VM-Projeto.localdomain ESMTP Postfix
mail from: <roberto@projeto>
250 2.1.0 Ok
rcpt to: <root@projeto>
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
subject: teste spamassassin
XJS*C4JDBQADN1.NSBN3*2IDNEN*GTUBE-STANDARD-ANTI-UBE-TEST-EMAIL*C.34X
.
250 2.0.0 Ok: queued as 604C023B1F
quit
221 2.0.0 Bye
Connection closed by foreign host.
# tail -f /var/log/mail.log
Jun 5 20:44:52 VM-Projeto postfix/smtp[8280]: 3D8AE23B1F: to=<[email protected]>,
orig_to=<root@projeto>, relay=127.0.0.1[127.0.0.1]:10024, delay=52, delays=51/0/0.02/0.17,
dsn=2.7.0, status=sent (250 2.7.0 Ok, discarded, id=06243-05 - INFECTED: Eicar-Test-Signature)
Jun 5 20:44:52 VM-Projeto postfix/qmgr[7493]: 3D8AE23B1F: removed
Jun 5 20:44:53 VM-Projeto postfix/smtpd[8271]: disconnect from localhost[127.0.0.1]
Jun 5 20:46:42 VM-Projeto postfix/smtpd[8302]: error: open database /etc/aliases.db: No such file or
directory
Jun 5 20:46:42 VM-Projeto postfix/smtpd[8302]: warning: dict_nis_init: NIS domain name not set - NIS
lookups disabled
Jun 5 20:46:42 VM-Projeto postfix/smtpd[8302]: connect from localhost[127.0.0.1]
Jun 5 20:47:08 VM-Projeto postfix/smtpd[8302]: 604C023B1F: client=localhost[127.0.0.1]
Jun 5 20:47:48 VM-Projeto postfix/cleanup[8311]: 604C023B1F: messageid=<[email protected]>
Jun 5 20:47:48 VM-Projeto postfix/qmgr[7493]: 604C023B1F: from=<[email protected]>,
size=417, nrcpt=1 (queue active)
Jun 5 20:47:51 VM-Projeto postfix/smtpd[8302]: disconnect from localhost[127.0.0.1]
Jun 5 20:48:07 VM-Projeto postfix/qmgr[7493]: 58AE523B0E: from=<>, size=2877, nrcpt=1 (queue
active)
Jun 5 20:48:07 VM-Projeto postfix/local[8316]: error: open database /etc/aliases.db: No such file or
directory
Jun 5 20:48:07 VM-Projeto postfix/local[8316]: warning: dict_nis_init: NIS domain name not set - NIS
lookups disabled
Jun 5 20:48:07 VM-Projeto postfix/local[8316]: warning: hash:/etc/aliases is unavailable. open
database /etc/aliases.db: No such file or directory
Jun 5 20:48:07 VM-Projeto postfix/local[8316]: warning: hash:/etc/aliases: lookup of 'roberto' failed
Jun 5 20:48:07 VM-Projeto postfix/local[8316]: 58AE523B0E: to=<[email protected]>,
relay=local, delay=1059, delays=1059/0.04/0/0.07, dsn=4.3.0, status=deferred (alias database
unavailable)
3.4 BANCO DE DADOS
No postgres a técnica aplicada foi executar o serviço somente em localhost e limitamos a
quantidade de conexões, como mostra a imagem abaixo:
3.5 FTP
O hardenig teve inicio liberando o diretório home dos usuários utilizando o seguinte comando
abaixo:
setsebool ftp_home_dir 1
No arquivo /etc/vsftpd/vsftpd.conf foi adicionado os seguintes parâmetros
Userlist_enable: este parâmetro permite criar uma lista de usuários que não poderão acessar o
servidor.O arquivo é definido pelo parâmetro userlist_file.
Userlist_file=Esse arquivo contém a lista dos usuários bloqueados pelo servidor que não
poderão acessar o serviço em questão.
Userlist_denny=no: Esse parâmetro faz com que somente os usuários listados no userlist_file
tenham acesso as servidor.

Documentos relacionados

Prof. Diogo Oliveira

Prof. Diogo Oliveira Para isso assiciamos o serviço de e-mail ao antivírus clamav e ao analisador de conteúdo de e-mail Amavis. Quando o serviço de correio eletrônico recebe uma mensagem, antes de disponiza-la ao usuár...

Leia mais

Serviço e-mail Postfix agosto/2013 Instalação e

Serviço e-mail Postfix agosto/2013 Instalação e shell_cliente$ ping host10 PING host10 (192.168.1.10) 56(84) bytes of data. 64 bytes from host10 (192.168.1.10): icmp_seq=1 ttl=58 time=12.3 ms 64 bytes from host10 (192.168.1.10): icmp_seq=2 ttl=5...

Leia mais

Vinícius Graciano Elias Servidor de E-mail - Postfix/Amavisd

Vinícius Graciano Elias Servidor de E-mail - Postfix/Amavisd Amavisd-new - Inicialização em modo debug . . . . . Amavisd-new - Testando porta SMTP 10024 . . . . . . Alterações no final do /etc/postfix/master.cf . . . . . . ClamAV - Arquivo clamd.conf . . . ....

Leia mais