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
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 maisServiç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 maisViní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