do Projeto
Transcrição
do Projeto
Faculdade de Tecnologia SENAC Goiás Segurança da informação Projeto Integrador LUIS HENRIQUE FERREIRA PORTILHO ANA GABRIELA MOREIRA RIOS SAMUEL LUCAS DE BRITO LUCAS REGES BARROS Goiânia 2013 LUIS HENRIQUE FERREIRA PORTILHO ANA GABRIELA MOREIRA RIOS SAMUEL LUCAS DE BRITO LUCAS REGES BARROS Projeto Integrador Projeto Final de semestre apresentado para avaliação do Curso de Segurança da informação módulo III, da Faculdade de Tecnologia SENAC Goiás de Goiânia, GO. Orientadores: Marissol Martins Olegário Correia neto Marcelo de Almeida Gonzaga Alice Mota Faleiro Elias Batista Ferreira Lucília Gomes Ribeiro Goiânia 2013 LISTA DE FIGURAS Figura 1 - Tabela de partições..................................................................................... 7 Figura 2 - MER .......................................................................................................... 31 Figura 3 - DER .......................................................................................................... 32 SUMÁRIO 1 INTRODUÇÃO ......................................................................................................... 4 2 SISTEMAS OPERACIONAIS ................................................................................... 5 2.1 Hardening........................................................................................................... 5 2.1.1 Pontos positivos de utilizar esta técnica ...................................................... 5 2.1.2 Particionamento de discos ........................................................................... 7 2.1.3 Serviços Desnecessários e inseguros ......................................................... 7 2.1.4 Procura de senhas fracas ............................................................................ 8 2.1.5 PAM (Pluggable Authentication Module) .................................................. 9 2.1.6 Usuários Inválidos........................................................................................ 9 2.1.7 Desconexão de usuários não autorizados ................................................. 10 2.1.8 Colocar senha criptografada no GRUB...................................................... 10 2.1.9 Política de utilização de serviços de Rede................................................. 10 2.1.10 Gerenciamento de privilégios................................................................... 11 2.1.11 Segurança no Terminal............................................................................ 11 2.1.12 SSH (Secure Shell) .................................................................................. 13 2.1.13 Portas Abertas ......................................................................................... 14 2.1.14 Suid Bit .................................................................................................... 15 2.1.15 NOEXEC.................................................................................................. 19 3 SERVIÇOS IP ........................................................................................................ 21 3.1 Serviços IP e alguns aspectos de segurança................................................... 21 3.1.1 Protocolo DHCP......................................................................................... 21 3.1.2 Protocolo HTTP ......................................................................................... 23 3.1.3 Protocolo SMTP ......................................................................................... 23 3.1.4 Protocolo SSH ........................................................................................... 25 4 NOÇÕES DE DIREITO E LEGISLAÇÃO EM INFORMÁTICA ............................... 26 4.1 Legislação aplicável a crimes cibernéticos....................................................... 26 5 BANCO DE DADOS ............................................................................................... 31 5.1 MER(Modelo Relacional) ................................................................................. 31 5.2 DER (Dagrama Entidade Relacionamento)...................................................... 32 5.3 Script ................................................................................................................ 32 5.4 Respostas dos Selects..................................................................................... 34 6 PLANEJAMENTO DE SI ........................................................................................ 38 6.1 Planejamento de Segurança da Informação .................................................... 38 7 CONCLUSÃO ......................................................................................................... 44 REFERÊNCIAS ......................................................................................................... 45 4 1 INTRODUÇÃO O projeto integrador do terceiro período de Segurança da Informação é o Planejamento de Segurança com ênfase nas recomendações de segurança para Serviços IP, influencia do sistema operacional sobre estes serviços, nas citações da Legislação aplicável a crimes cibernéticos e definição de um modelo de banco de dados para registro de incidentes de segurança. 5 2 SISTEMAS OPERACIONAIS 2.1 Hardening Com, o aumento e a sofisticação de pragas virtuais, a cada dia devemos estar atualizados sobre as melhores formas de proteger a informação em redes corporativas, e esta proteção não deve somente estar ligada a servidores com acesso a internet, servidores de acesso interno como servidores de impressão também devem ser protegidos. Muitos administradores por falta de experiência ou praticidade preparam os servidores com uma instalação básica e depois que suas aplicações estão disponíveis não se preocupam em manter a integridade do sistema. A técnica Hardening (blindagem do sistema), que em uma descrição simplificada consiste na implementação de diretivas de segurança que devem ser seguidas antes, durante e após a instalação e configuração de servidores GNU/Linux. Trazendo assim mais conhecimento, segurança, e tranquilidade para os administradores da rede. Sem contar os benefícios que serão agregados a segurança de sua rede. 2.1.1 Pontos positivos de utilizar esta técnica • Pode ser aplicada em qualquer sistema operacional; • Aumenta o desempenho de hardware, liberando recursos que estão sendo utilizados por aplicativos desnecessários, implementando configurações específicas em alguns serviços, consequentemente gerando um ambiente mais estável e seguro; • Pode ser utilizado para evitar que usuários mal intencionados aproveitem da ausência do administrador e implantem scripts maliciosos em servidores infectando 6 toda a rede • Bloqueia o usuário administrador impedindo que faça login diretamente no terminal • Efetuar logout por tempo de inatividade • Remover permissões especiais de binários executáveis Essas só são alguns dos benefícios desta técnica, ao decorrer do texto vou citando outras. Vamos analisar esta técnica desde a instalação do sistema operacional, o processo de particionamento de discos, análise de serviços desnecessários e inseguros, localização de senhas fracas, verificação de usuários inválidos, desconexão de usuários não autorizados, implementação de políticas de utilização de serviços de rede, gerenciamento de privilégios e aplicação de segurança no terminal. As técnicas aqui demonstradas foram testadas em maquinas virtuais com as seguintes configurações 2 clientes Ubuntu (versão 9.10); 1 Servidor Debian Lenny. Atenção: Recomendo a utilização de maquinas virtuais para realizar esta técnica e evitar possíveis falhas na implementação. Ao se aplicar Hardening há três grandezas que devem ser consideradas: segurança, risco e flexibilidade. O administrador de redes deve analisar e estar ciente dessas grandezas, para elevar o sistema a um alto padrão de produtividade, estabilidade, confiança e segurança. É importante ressaltar que as técnicas aqui apresentadas podem não ser adequadas para todas as situações. Para isso é essencial que seja feito um estudo 7 por completo do cenário e dos serviços. A primeira medida é fazer uma atualização dos sistemas operacionais e serviços críticos como WEB, DNS e E-MAIL, pois nessas atualizações que contem as maiorias das correções de segurança, alias essa medida de manter o sistema atualizado deve ser rotineiro, junto com o ato de retirar programas obsoletos e pacotes inseguros devem ser substituídos por alternativas mais confiáveis. 2.1.2 Particionamento de discos Uma importante parte da configuração de um sistema é a parte de particionamento de disco, que é a divisão do disco, deixando assim cada partição com sua tabela de alocação de arquivos separada, a seguir um exemplo/opção de como pode ser configurada a tabela de partições. Conforme mostrado na Figura 1. Figura - Tabela de partições Fonte: Autoria própria. 2.1.3 Serviços Desnecessários e inseguros 8 Após a instalação de um sistema operacional, deve ser feito uma analise dos programas instalados, a procura de programas que não serão utilizados, como já ditos anteriormente quanto menos aplicações em seu sistema melhor o desempenho, estabilidade, e segurança. Uma parte importante dessa analise é verificar se possuem programas “clientes” instalados, pois este é um falha de segurança, alguns exemplos seriam: telnet, rshd, rlogind, rwhod, ftpd, sendmail, identd, wget, wireless-tools (caso o servidor não utilize placa sem fio), esses e outros do mesmo gênero devem ser removidos. Para a remoção de pacotes que não são utilizados pelo sistema é só seguir os seguintes passos: Crie uma pasta em “/root” chamado auditoria, que será gerado nesta pasta a lista (LOG) de todos os pacotes instalados. Digite o seguinte comando no terminal para a geração deste LOG: # dpkg -l | awk '{print $2,$3}' | sed '1,5d' >/root/auditoria/pacotes.txt Para a remoção de um pacote/aplicativo utilize o seguinte comando: # aptitude purge wget 2.1.4 Procura de senhas fracas Qualquer empresa que não tome as devidas precauções está passível de ter sua rede de computadores comprometida. A senha é uma maneira de autenticação do usuário, ela é uma certificação que ele quem está utilizando o computador naquele momento, então devemos ter alguns cuidados para que isto não vire um problema. A criação de uma senha segura é algo simples, mas você pode ter problemas caso a faça de maneira errada. Para criar uma senha segura é só seguir as dicas a baixo: • Nunca utilize palavras de dicionários, marcas de produtos, nomes telefones, 9 apelidos ou dados pessoais como senha. • Crie senhas com mais de oito caracteres e que misture letras maiúsculas, minúsculas, números e caracteres especiais. • A melhor maneira é criar uma senha aleatória. • Segundo especialistas 8 caracteres é mais que suficiente, dês que siga os padrões citados a cima. 2.1.5 PAM (Pluggable Authentication Module) É um conjunto de bibliotecas compartilhadas que permitem ao administrador do sistema local definir como determinadas aplicações autenticam os usuários, sem a necessidade de modificar e recompilar programas. O PAM é um recurso que auxilia muito quando se pensa em segurança. Existem vários módulos que podem ser implementados, aumentando assim o controle de criação e troca de senhas. Uma boa utilidade de se usar PAM é a limitação do tamanho mínimo da senha do usuário, basta utilizar o comando a baixo: password required pam_unix.so nullok obscure min=10 md5 2.1.6 Usuários Inválidos Nos Sistemas GNU/Linux existem três tipos de usuários: Root: Administrador do sistema Usuários comuns: Os quais possuem uma senha para logar no sistema e acesso a um diretório home onde os mesmos poderão ter privacidade com seus arquivos pessoais e. 10 Sistema: Responsáveis por controlar requisições de serviços. O shell é a interface entre usuário e sistema. Sem um shell válido, não é possível digitar comandos e interagir com o sistema. O usuário de sistema www-data, responsável por receber requisições do servidor Web, que esteja com um shell válido, poderá introduzir vulnerabilidades ao seu sistema. 2.1.7 Desconexão de usuários não autorizados A tentativa ou o acesso não autorizado pode ocorrer tanto da parte externa da empresa quanto da parte interna, funcionários da própria empresa acessando locais aos quais não foi liberado acesso tentando burlar as regras de segurança, neste caso em especial se deve aplicar ações disciplinares, e dependendo a ação temos que nos atentar ao fato de não desativar a conta deste funcionário pois podemos destruir as provas deste acesso não autorizado. 2.1.8 Colocar senha criptografada no GRUB O acesso físico ao servidor deve receber atenção especial da parte dos administradores, dar acesso ao servidor físico somente as pessoas autorizadas, pois ao reiniciar o servidor a pessoa mal intencionada tem acesso ao (GRUB) podendo assim alterar a senha do root. Uma maneira de impedir isso é vetando o acesso ao servidor, como dito anteriormente e criptografando a senha, impedindo assim o acesso ao modo de segurança do servidor. 2.1.9 Política de utilização de serviços de Rede Ainda na lista de boas práticas que devemos ter, entra a politica de utilização de serviços de rede, que conta com um ótimo aliado, TCP wrappers que oferece 11 controle de acesso a vários serviços como SSH, Telnet e FTP. O TCP wrappers monitora a entrada de um pedido e o serviço requisitado. Outra boa pratica é liberar acesso somente a IPs desejados, configurando as restrições do ssh para não permitir login como root e configurar os módulos do PAM para restringir acesso ao servidor em determinado horário. 2.1.10 Gerenciamento de privilégios O foco de um Cracker/Hacker é conseguir o controle total do sistema, e a melhor maneira é conseguir a senha do root. Após conseguirem a senha do root eles passam a ter acesso ilimitado ao sistema. Para evitar que isso ocorre podemos utilizar algumas técnicas como: • Desativar o login como usuário root nos terminais modo texto torna-se fundamental, dessa forma, o administrador deverá efetuar o login como usuário comum e quando for necessário executar uma tarefa administrativa tornar se root com o comando su. • Determinar a data de validade para a senha dos usuários e, com auxílio do comando usermod, remover shells válidos de usuários que não estão em uso também são ações importantes a serem tomadas para garantir a robustez do sistema. 2.1.11 Segurança no Terminal Uma maneira simples mas pratica de proteger o terminal é utilizar a variável TMOUT que tem a função de executar um logout automático após determinado tempo de inatividade do terminal, seu valor pode ser configurado no arquivo /etc/profile. O valor a ser adicionado deverá ser analisado com cuidado, evitando 12 assim acessos indevidos. Valores muito altos podem dar espaço para que o usuário tenha acesso à estação logado como root, valores muito baixos podem interferir em tarefas onde é necessário uma pesquisa, por exemplo. Para editar o arquivo /etc/profile e adicionar um valor de 60 segundo utilize os seguintes comandos: Inserindo valores no /etc/profile. #vim /etc/profile TMOUT=60 export PATH TMOUT Comando source. #source /etc/profile Outro ponto importante a ser levado em consideração quando se pensa em controle de acesso em uma organização, é avaliar quem tem acesso aos servidores. Usuários mal intencionados podem simplesmente usar o CTRL+ALT+DEL para reiniciar o servidor, parando assim todos os serviços disponíveis em uma rede. Segundo a norma ISO 27002, devem-se tratar as questões de acesso físico à sala de servidores. No entanto, independentemente desta norma, pode-se inibir a função CTRL+ALT+DEL editando o arquivo /etc/inittab, conforme o exemplo a seguir. #vim /etc/inittab Antes # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now Depois # What to do when CTRL-ALT-DEL is pressed. #ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now Ou # What to do when CTRL-ALT-DEL is pressed. ca:12345:ctrlaltdel:/bin/echo “Opção desativada !” 13 Zoom de Listagem [fechar] 2.1.12 SSH (Secure Shell) Atenção especial em configurar o SSH, pois este programa é utilizado para executar comandos em uma máquina remota e copiar arquivos de um computador para outro. Isso tudo pode ser feito pela internet não é necessário estar na mesma rede física que o servidor. Editando o arquivo /etc/ssh/sshd_config (ssh) #vim /etc/ssh/sshd_config Altere a porta padrão Port 42129 Protocolo 2 (anteriores possuem falhas de segurança) Protocol 2 Tempo ativado para digitar a senha LoginGraceTime 45 Não aceitar login como root PermitRootLogin no Não aceitar login sem senha PermitEmptyPasswords no Usar o modulo do pam para se autenticar UsePAM yes Definir usuários que tem permissão de fazer login 14 AllowUsers “luis” Depois basta reiniciar o serviço ssh: $invoke-rc.d ssh restart 2.1.13 Portas Abertas Nmap veio para ajudar os administradores, a verificarem portas abertas em seus servidores, na instalação de um novo sistema ou de novos serviços a grande possibilidade de deixarem portas abertar/vulneráveis. Nmap faz um scan em todas as portas e gera um log onde mostra as portas abertas em seu servidor, com esse auxilio fica mais fácil verificar que portas realmente necessitam de estarem abertas e que medidas devemos tomar para protege-las. Abaixo um exemplo do log criado pelo Nmap: #nmap -A -p 1-65535 localhost PORT STATE SERVICE VERSION 22/tcp open ssh protocol 2.0 25/tcp open smtp Postfix smtpd 53/tcp open domain dnsmasq 2.47 80/tcp open http httpd 2.2.11 631/tcp open ipp CUPS 1.3.9 3306/tcp open mysql MySQL 5.0.75-0 Podemos verificar que a porta 80 está aberta, caso ela não seja utilizada devemos fecha-la, para isso utilize o seguinte comando: #iptables -A INPUT -i eth0 -p tcp -dport 80 -j DROP 15 Agora uma nova verificação para ver se continua aberta: #nmap -A -p 80 localhost PORT STATE SERVICE VERSION 22/tcp open ssh protocol 2.0 25/tcp open smtp Postfix smtpd 53/tcp open domain dnsmasq 2.47 80/tcp filtered http 631/tcp open ipp CUPS 1.3.9 3306/tcp open mysql MySQL 5.0.75-0 Como podemos perceber a porta 80 foi alterada para filtered, isso indica que a regra de firewall foi adicionada com sucesso. 2.1.14 Suid Bit É uma permissão especial disponível no GNU/Linux. Quando está atribuída a um binário, é possível que um usuário execute o mesmo com os privilégios de seu dono. Se o dono do binário for o usuário root, o usuário vai executar o binário como root. Segundo a norma ISO 27002, no item 11.6.1, o acesso à informação e às funções dos sistemas de aplicações por usuário e pessoal do suporte devem ser restritas, de acordo com o definido na política de controle de acesso. Os funcionários devem estar cientes desta norma, pois algo for violado, não podem alegar o não conhecimento de seus deveres. Para fazer as alterações dessas permissões no Suid-Bit podemos utilizar o seguinte script: #vim /root/auditoria/localiza_suid.sh #!/bin/bash Envia uma mensagem na saída padrão de vídeo 16 echo "Verificando arquivos com permissão de SUID BIT.." Faz uma busca em todo sistema por arquivos que contenham a permissão de SUID BIT e salva em um arquivo texto find / -perm -4000 > /root/auditoria/list.suid Envia mensagem na tela orientando o que deve ser feito echo -n "Deseja remover o SUID BIT dos arquivos?(S/N):" Recebe a opção escolhida read acao Executa a ação case $acao in S|s) chmod -Rv -s / echo " Permissões de SUID BIT Removidas!" sleep 3 exit ;; N|n) exit ;; *) echo "Opção Inválida!!" sleep 3 exit ;; esac 17 Após o script ter sido criado as permissões de acesso ao mesmo devem ser alteradas, para que somente o root tenha acesso a ele, com o seguinte comando: #chmod 700 /root/auditoria/localiza_suid.sh O primeiro passo é executar o script, e como parâmetro deverá ser utilizado “n” ou “N”. Nesse modo ele apenas irá gerar uma lista de binários que possuem a permissão de SUID-BIT no sistema. #./localiza_suid.sh n Como se trata de um sistema recém-instalado, o administrador não deve encontrar nenhum problema. Mas é necessária a atenção do mesmo, pois se estiver analisando um servidor de uma empresa, onde este se encontra em produção, devem-se remover as permissões suid. Agora execute o script utilizando o parâmetro “s” ou “S”, removendo assim a permissão SUID BIT de todos os binários. #./localiza_suid.sh s Deve-se observar quais binários serão necessários ficar com a permissão ativa. Considerando que o firewall está sendo desenvolvido, o comando su será necessário para que o usuário comum possa virar root e assim executar as políticas implementadas no firewall. Utilizando o comando chmod, atribui-se a permissão suid somente ao comando su, para isso utilize o comando: # chmod +s /bin/su Outro binário que precisamos deixar com a permissão SUID BIT ativa é o passwd, para que os usuários consigam trocar suas próprias senhas: 18 # chmod +s /usr/bin/passwd Com essa modificação, um dos problemas será resolvido. Mas apenas retirar a permissão SUID BIT dos comandos não evitará problemas no sistema de arquivos. Um cracker pode instalar uma backdoor no sistema utilizando uma técnica como, por exemplo, o PHP Injection (inserção de script malicioso através de páginas vulneráveis), a colocando dentro do /tmp com permissões de SUID BIT e executá-la remotamente. Para exemplificar um ataque ao diretório /tmp, é utilizado o comando adduser para adicionar um usuário luis: . #adduser luis Copiar todos os shells do sistema para a partição /tmp: # cp /bin/*sh* /tmp Atribuir a permissão de Suit-Bit: # chmod 4755 /tmp/*sh* Exemplo de usuário comum com permissão de root: $w 22:31:21 up 3:46, 1 users, load average: 0,07, 0,07, 0,08 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT luis tty1 - 22:20 0.00s 0.26s 0.01s w $ cd /tmp $ ./sh Utilizando o parâmetro nosuid evitamos este tipo de problema, ele inibe a execução de binários na partição indicada. Logado como usuário root, aplica-se 19 essa opção à partição montada em /tmp, Para remontar o diretório com a opção nosuid utiliza-se: # mount -o remount,rw,nosuid /tmp # mount Atenção. O diretório /tmp deverá estar em uma partição separada. Isso segue as boas práticas de particionamento. 2.1.15 NOEXEC O comando mount tem um parâmetro chamado noexec, seu uso pode evitar que um script malicioso seja executado dentro dessa partição. Para isso utilize o seguinte comando: # mount -o remount,rw,noexec /tmp Atenção, realizando a montagem das partições manualmente, os parâmetros não serão aplicados de forma fixa às partições, ou seja, ao reiniciar o sistema, essas configurações serão perdidas. Para que as configurações sejam mantidas mesmo após um restart, basta editar o arquivo /etc/fstab (responsável por armazenar a tabela de partições do GNU/LINUX, que é lido durante o boot do sistema). Se o administrador for executar o aplicativo aptitude com as partições /tmp e /var já configuradas com noexec e nosuid, pode encontrar um erro, pois o aplicativo aptitude necessita de executar scripts dentro dessas partições, o seguinte script pode ser utilizado para resolver este problema, removendo assim a proteção ao executar o aplicativo e depois reativa-las. #!/bin/bash case $1 in 20 start) Monta as partições listadas mount -o remount,rw,noexec /var mount -o remount,rw,noexec /tmp mount echo "Partições SEM permissão de execução" ;; stop) Monsta as partições listadas mount -o remount,rw,exec /var mount -o remount,rw,exec /tmp mount echo " Partições COM permissão de execução " ;; *) echo "erro use $0 {start|stop}" exit 0 ;; esac exit 1 21 3 SERVIÇOS IP 3.1 Serviços IP e alguns aspectos de segurança Os serviços IP's são suscetíveis a uma variedade de possíveis ataques, desde ataques passivos (como espionagem) até ataques ativos (como a impossibilidade de acesso aos serviços). Por esses e outros motivos necessitamos de manter um nível de segurança e controle desses serviços. 3.1.1 Protocolo DHCP DHCP. Do inglês Dynamic Host ConfigurationProtocol é um protocolo utilizado em redes de computadores que permite às máquinas obterem um endereço IP automaticamente. O protocolo DHCP, por meio de um servidor é capaz de distribuir automaticamente endereços de IP diferentes a todos os computadores à medida que eles fazem a solicitação de conexão com a rede. Essa distribuição dos IPs é feita em um intervalo pré-definido configurado no servidor. Sempre que uma das máquinas for desconectada o IP ficará livre para o uso em outra. • Configuração manual - O administrador de rede pode configurar um determinado endereço para um determinado host. • Configuração automática - O administrador permite que um servidor DHCP atribua um endereço permanente quando um computador conecta-se pela primeira vez na rede. • Configuração dinâmica - O servidor “empresta” um endereço a um host, por um tempo limitado. No conceito de segurança o DHCP dinâmico pode vir a comprometer seriamente a rede cujos pontos de acesso não são controlados, ou são utilizados por usuários 22 não confiáveis. Um usuário mal intencionado ou desavisado pode causar grandes transtornos, configurando um servidor DHCP não oficial, por exemplo. Em redes onde o tipo de controle é feito á nível de maquina, é necessário restringir o uso do DHCP dinâmico. O uso do DHCP com alocação dinâmica pode comprometer seriamente a segurança de uma rede cujos pontos de acesso não são controlados, ou são utilizados por usuários "não confiáveis". As máquinas clientes buscam o serviço de DHCP na rede através de Broadcast e o servidor irá responder, mas quem pode garantir que este servidor que respondeu é o legitimo da rede? O DHCP é construído sobre o protocolo UDP, que é um protocolo inseguro, herdando, portanto, as suas falhas de segurança. A base de protocolo DHCP não inclui qualquer mecanismo de autenticação. Por isso, é vulnerável a uma variedade de ataques como: * Servidores DHCP não autorizados fornecimento de informações falsas aos clientes. * Clientes não autorizados tenham acesso aos recursos. * Esgotamento dos recursos de clientes ataques maliciosos DHCP. Em alocação manual, o endereço de IP de um cliente é atribuído pelo administrador da rede, e o DHCP é usado simplesmente para transmitir o endereço atribuído ao cliente. O endereço IP é associado ao endereço físico da maquina, o MAC. Uma rede privada, independentemente de seu porte, estrutura ou finalidade poderá e irá utilizar um ou mais desses mecanismos, dependendo de fatores como: a política do administrador da rede, finalidade da rede, serviços sendo executados e disponibilizados na rede, tipos de maquinas e equipamentos conectados, entre outros. O servidor DHCP não tem nenhum mecanismo seguro para autenticar o cliente, os clientes podem obter acesso não autorizado aos endereços IP de apresentação de credenciais, tais como identificadores do cliente, que pertencem a outros clientes DHCP. Isso também permite que os clientes DHCP para esgotar o DHCP armazenamento de servidor de endereços IP-, apresentando novas credenciais cada vez que ele pede um endereço, o cliente pode consumir todos os endereços IP disponíveis em um link de rede particular, impedindo outros clientes DHCP da obtenção de serviços. DHCP fornece alguns mecanismos para mitigar esses 23 problemas. 3.1.2 Protocolo HTTP Hyper Text Transfer Protocol é o protocolo usado na World Wide Web para a distribuição e recuperação de informação. A troca de informações entre um browser e um servidor Web é toda feita através desse protocolo, que foi criado especificamente para a World Wide Web. O HTTP define uma forma de conversação no estilo pedido-resposta entre um cliente (o (Browser) e um servidor (o servidor Web). Toda a conversação se dá no formato ASCII (texto puro) através de um conjunto de comandos simples baseados em palavras da língua inglesa No conceito de segurança o HTTP pode limitar a quantidade de informações exibidas sobre o servidor, pode remover as funcionalidades desnecessárias, e limitar à quantidade de informações exibidas sobre o servidor. Em sua configuração padrão os servidores HTTP exibem uma série de informações valiosas, nas quais devemos limitar ao máximo a sua exibição para em caso de ataques, elas não ficarem expostas. Quando for configurado, devemos remover as funcionalidades que são consideradas desnecessárias como: Módulos para autenticação, redirecionamentos, páginas pessoais de usuários, pois se ficarem expostas possa por em risco a segurança de todo o servidor. Já que o foco é segurança, é valido também citar o protocolo HTTPS, que, para fácil entendimento, é o protocolo HTTP, melhorado com uma camada extra de segurança, onde os dados que trafegam sob esse protocolo são transmitidos de forma criptografada usando os protocolos SSL/TLS, que permitem justamente essas comunicação segura, e a verificação da autenticidade do servidor e do cliente. 3.1.3 Protocolo SMTP 24 O SMTP (Simple Mail TransferProtocol, que se pode traduzir por Protocolo Simples de Transferência de Correio), controla como o e-mail é transportado e entregue através da Internet, ao servidor de destino. O serviço SMTP envia e recebe e-mails entre os servidores. Sempre que alguém manda um e-mail, um servidor SMTP se encarrega de levá-los a seu destino, ou seja, qualquer ferramenta ou serviço de e-mail pode utilizar esse protocolo de envio de mensagens. O SMTP deve ser configurado de forma eficiente, pois por ele é possível enviar mensagens de e-mail com qualquer identificação, se esta questão não for trabalhada durante a sua configuração. Como exemplo, e por efeito de conhecimento, explicarei um pouco sobre alguns aspectos de uma ferramenta de e-mail bastante difundida entre os adeptos de softwares livres, o Sendmail. O Sendmail é um agente de transferência de correio de código aberto, que suporta diversos tipos de transferência de e-mail e métodos de entrega, incluindo o SMTP, citado acima. Algumas dicas para a segurança de quem quiser implementar o serviço seguem abaixo. Devido à natureza do e-mail, um determinado atacante pode facilmente lotar o servidor com correspondências e causar um ataque “denial of service”. Ao determinar limites para as diretivas a seguir em /etc/mail/sendmail.mc, a efetividade de ataques deste tipo é limitada. • confCONNECTION_RATE_THROTTLE — O número de conexões que o servidor pode receber por segundo. Por default, o Sendmail não limita o número de conexões. Se um limite for definido e alcançado, conexões futuras terão demora. • confMAX_DAEMON_CHILDREN — O número máximo de processos-filho que podem ser gerados pelo servidor. Por default, o Sendmail não determina um número limite de processos-filho. Se um limite for definido e alcançado, conexões futuras terão demora. • confMIN_FREE_BLOCKS — O número mínimo de blocos livres que devem estar disponíveis para que o servidor aceite correspondência. O default são 100 blocos. • confMAX_HEADERS_LENGTH — O tamanho máximo aceitável (em bytes) para o cabeçalho de uma mensagem. • confMAX_MESSAGE_SIZE — O tamanho máximo aceitável (em bytes) para qualquer mensagem. 25 3.1.4 Protocolo SSH O protocolo de comunicação SSH (Secure Shell), é um protocolo que visa fazer a comunicação remota de forma segura entre dois hosts. Existem duas versões do protocolo, o SSH1 e o SSH2. O SSH1 já é considerado ultrapassado, por isso nas comunicações e trocas de dados baseadas nesse protocolo é utilizada a versão SSH2, que garante uma segurança mais elevada em relação à primeira versão. Em uma estrutura cliente servidor o SSH garante, o acesso seguro aos servidores para manutenção remota. Possui opções nativas, que necessitam ser ativadas e configuradas, que permitem impedir, por exemplo, que o usuário faça o login como root, evitando permissões especiais a visitantes que não precisam, é possível também limitar o tempo de uma sessão dos usuários como root. São apenas alguns exemplos das vantagens relacionadas à segurança que esse protocolo oferece, o que o torna uma ferramenta de grande relevância para um ambiente de rede seguro. Para resumir, O SSH envia dados criptografados e dependendo da sua configuração, pode implantar autenticação de chaves, por isso ele se torna uma ótima opção em relação aos outros que enviam dados em texto puro, dificultando o ataque de spoofing e snifers. 26 4 NOÇÕES DE DIREITO E LEGISLAÇÃO EM INFORMÁTICA 4.1 Legislação aplicável a crimes cibernéticos Classifica-se como Crime Cibernético: Crimes contra a honra (injúria, calúnia e difamação), furtos, extorsão, ameaças, violação de direitos autorais, pedofilia, estelionato, fraudes com cartão de crédito, desvio de dinheiro de contas bancárias. A lista de crimes cometidos por meio eletrônico é extensa e sua prática tem aumentado geometricamente com a universalização da internet. Crime informático, e-crime, cyber crime, crimes eletrônicos ou crime digital são termos utilizados para se referir a toda à atividade onde um computador ou uma rede de computadores é utilizada como uma ferramenta, uma base de ataque ou como meio de crime. A internet ainda é tida por muitos como um território livre, sem lei e sem punição. Mas a realidade não é bem assim: diariamente, o Judiciário vem coibindo a sensação de impunidade que reina no ambiente virtual e combatendo a criminalidade cibernética com a aplicação do Código Penal, do Código Civil e de legislações específicas como a Lei n. 9.296 – que trata das interceptações de comunicação em sistemas de telefonia, informática e telemática – e a Lei n. 9.609 – que dispõe sobre a proteção da propriedade intelectual de programas de computador. Atualmente existem mais de 17 mil decisões judiciais envolvendo problemas virtuais, em 2002 eram apenas 400. Na ausência de uma legislação específica para crimes eletrônicos, os tribunais brasileiros estão enfrentando e punindo internautas, crakers e hackers que utilizam a rede mundial de computadores como instrumento para a prática de crimes. Grande parte dos magistrados, advogados e consultores jurídicos considera que cerca de 95% dos delitos cometidos eletronicamente já estão tipificados no Código Penal brasileiro por caracterizar crimes comuns praticados por 27 meio da internet como: insultar a honra de alguém (calúnia – artigo138), espalhar boatos eletrônicos sobre pessoas (difamação – artigo 139), insultar pessoas considerando suas características ou utilizar apelidos grosseiros (injúria – artigo 140), ameaçar alguém (ameaça – artigo 147), utilizar dados da conta bancária de outrem para desvio ou saque de dinheiro (furto – artigo 155), comentar, em chats, emails e outros, de forma negativa, sobre raças, religiões e etnias (preconceito ou discriminação – artigo 20 da Lei n. 7.716/89), enviar, trocar fotos de crianças nuas (pedofilia – artigo 247 da Lei n. 8.069/90, o Estatuto da Criança e do Adolescente ECA). Os outros 5% para os quais faltaria enquadramento jurídico abrangem transgressões que só existem no mundo virtual, como a distribuição de vírus eletrônico, cavalos-de-tróia e worm (verme, em português). O STJ, como guardião e uniformizador da legislação infraconstitucional, vem consolidando a aplicação desses dispositivos em diversos julgados. Nos casos de pedofilia, por exemplo, o STJ já firmou o entendimento de que os crimes de pedofilia e divulgação de pornografia infantil por meios eletrônicos estão descritos no artigo 241 da Lei n. 8.069/90 (apresentar, produzir, vender, fornecer, divulgar ou publicar, por qualquer meio de comunicação, inclusive pela rede mundial de computadores ou internet, fotografias ou imagens com pornografia ou cenas de sexo explícito envolvendo criança ou adolescente), e previstos em convenção internacional da qual o Brasil é signatário. Aplicando os dispositivos do Código Penal, o STJ vem negando habeas-corpus a acusados e condenados por diversas modalidades de crimes eletrônicos. Entre vários casos julgados, a Corte manteve a prisão do hacker Otávio Oliveira Bandetini, condenado a 10 anos e 11 meses de reclusão por retirar irregularmente cerca de R$ 2 milhões de contas bancárias de terceiros via internet; negou o relaxamento da prisão preventiva de um tatuador denunciado por divulgar fotos pornográficas de crianças e adolescentes na internet; de um acusado preso em operação da Polícia Federal por participar de um esquema de furto de contas bancárias; de um hacker preso pelos crimes de furto mediante fraude, formação de quadrilha, violação de sigilo bancário e interceptação telemática ilegal; e de um técnico em informática de Santa Catarina acusado de manipular e-mails para incriminar colegas de trabalho. Já os delitos informáticos próprios são aqueles em que o bem penal protegido é 28 violado. Exemplo desse crime pode ser apontada a interceptação telemática ilegal, prevista no art. 10 da lei 9296/96 (Lei federal Brasileira) pirataria/reprodução não autorizada de um programa informático protegido: processo de cópia ilegal de software, reprodução, difusão ou comunicação ao público, sem autorização, de um programa informático protegido pela lei. Tal conduta já se encontra devidamente tipificada pelo legislador penal pátrio, no art. 12 da Lei nº 9.609, de 19 de fevereiro de 1998. Utilização não autorizada de um programa informático protegido: utilização sem autorização de um programa informático protegido pela lei e reproduzido sem autorização, na intenção, seja de obter para si ou para outrem qualquer vantagem, seja de causar prejuízos ao titular do direito. Tal conduta também se encontra devidamente tipificada pelo legislador penal pátrio, no art. 12 da Lei nº 9.609, de 19 de fevereiro de 1998, vez que viola o direito de autor de programa de computador. O legislador começou a se preocupar com o mau uso dos recursos da informática, introduzindo em nosso ordenamento jurídico a Lei 7.646/87, que regulamenta a proteção da propriedade intelectual sobre programas de computador e sua comercialização no país. Esta Lei prevê dois tipos penais relativos à matéria: Art. 35 – Violar direito do autor de programa de computador: Pena-detenção, de 6 (seis) meses a 2 (dois) anos e multa. Art. 37- Importa, expor, manter em depósito, para fins de comercialização, programas de computador de origem externa não cadastrada. Pena- detenção, de 1 (um) a 4 (quatro) anos e multa. Lei 8.078/90 Art. 72- Impedir ou dificultar o acesso de consumidor às informações que sobre ele constem em cadastros, banco de dados, fichas e registros: Pena- detenção de 6 (seis) meses a 1 (um) ano ou multa. Art. 73- Deixar de corrigir imediatamente informação sobre consumidor constante no cadastro, banco de dados, fichas ou registros que sabe ou deveria saber ser inexata: Pena- detenção de 1 (um) a 6 (seis) ou multa. O texto legal, Lei nº 9.296, de 24 de julho de 1996, em seu art. 10 tipifica a interceptação de comunicações de informática e telemática. Art. 10. Constitui crime realizar interceptação de comunicações telefônicas, de 29 informática ou telemática, ou quebrar segredo da Justiça, sem autorização judicial ou com objetivos não autorizados em lei. Pena: reclusão, de dois a quatro anos, e multa. Lei nº 9.609, de 19 de fevereiro de 1998. Dispõe sobre a proteção da propriedade intelectual de programa de computador e sua comercialização no País tutelando apenas e tão-somente o direito de autor de programas de computador. Lei nº 9.983, de 14 de julho de 2000. Essa lei alterou alguns artigos da Parte Especial do Código Penal, acrescentando dispositivos que tratam das seguintes condutas concernentes à criminalidade informática: Art. 313 – “A” do Código Penal: Inserção de dados falsos em sistema de informações, alteração ou exclusão indevidas de dados corretos nos sistemas informatizados ou bancos de dados da Administração Pública; Art. 313 – “B” do Código Penal: Modificação ou alteração não autorizada de sistema de informações ou programa de Informática; [...] Art. 153, § 1º, do Código Penal: Divulgação, sem justa causa, de informações sigilosas ou reservadas, assim definidas em lei, contidas ou não nos sistemas de informações ou banco de dados da Administração Pública; [...] Art. 325, § 1º, inc. I, do Código Penal: Fornecimento e empréstimo de senha a pessoas não autorizadas, a sistemas de informações ou banco de dados da Administração Pública; Art. 325, § 1º, inc. II, do Código Penal: Utilização indevida do acesso restrito. O Estatuto da Criança e do Adolescente (com redação dada pela Lei n° 10.764, de 12 de novembro de 2003) divulgação, por qualquer meio de comunicação, inclusive pela internet, de imagens com pornografia ou cenas de sexo explícito envolvendo criança ou adolescente. “Art. 241”. Apresentar, produzir, vender, fornecer, divulgar ou publicar, por qualquer meio de comunicação, inclusive rede mundial de computadores ou internet, fotografias ou imagens com pornografia ou cenas de sexo explícito envolvendo 30 criança ou adolescente: Pena - reclusão de 2 (dois) a 6 (seis) anos, e multa. § 1o Incorre na mesma pena quem: I - agencia, autoriza, facilita ou, de qualquer modo, intermedeia a participação de criança ou adolescente em produção referida neste artigo; II - assegura os meios ou serviços para o armazenamento das fotografias, cenas ou imagens produzidas na forma do caput deste artigo; III - assegura, por qualquer meio, o acesso, na rede mundial de computadores ou internet, das fotografias, cenas ou imagens produzidas na forma do caput deste artigo. § 2o A pena é de reclusão de 3 (três) a 8 (oito) anos: I - se o agente comete o crime prevalecendo-se do exercício de cargo ou função; II - se o agente comete o crime com o fim de obter para si ou para outrem vantagem patrimonial. 31 5 BANCO DE DADOS Este banco de dados foi modelado com o intuito de armazenar informações sobre a incidência de ataques que ocorre em determinado ambiente, os tipos de ataques mais comuns, as soluções dadas a determinados tipos, e também demonstrar o estado do chamado (Em andamento, sem solução ou solucionado) e os respectivos relatores, e responsável pelo fechamento, ou atualização do status do chamado. 5.1 MER(Modelo Relacional) Figura - MER Fonte: Autoria própria. 32 5.2 DER (Dagrama Entidade Relacionamento) Figura - DER Fonte: Autoria própria. 5.3 Script CREATE DATABASE projeto; \c projeto CREATE TABLE usuario( codigo integer not null, usuario varchar(80) not null, CONSTRAINT Usuario_PK PRIMARY KEY (codigo) ); 33 CREATE TABLE incidente( Cod_Incidente integer NOT NULL, Class_Incidente integer NOT NULL, Usuario_Cod integer NOT NULL, Incidente_Data_Hora timestamp NOT NULL, Incidente_Tipo varchar(120) NOT NULL, Incidente_Depart varchar(30) NOT NULL, CONSTRAINT Incidente_PK PRIMARY KEY (Cod_Incidente), CONSTRAINT Usuario_Cod_Incidente_Fk FOREIGN KEY (Usuario_Cod) REFERENCES usuario (codigo) ); CREATE TABLE solucao( Incidente_Cod_Incidente integer NOT NULL , Usuario_Cod_Usuario integer NOT NULL, Solucao_Descricao text NOT NULL, Solucao_Data_Hora timestamp NOT NULL, CONSTRAINT Solucao_PK PRIMARY KEY (Incidente_Cod_Incidente), CONSTRAINT Incidente_Cod_Incidente_FK FOREIGN KEY (Incidente_Cod_Incidente) references incidente (Cod_Incidente), CONSTRAINT Usuario_Cod_Usuario_FK FOREIGN KEY (Usuario_Cod_Usuario) references usuario (codigo) ); insert into usuario (codigo, usuario) values(001,'Samuel'); insert into usuario (codigo, usuario) values(002,'Ana'); insert into usuario (codigo, usuario) values(003,'Luis'); insert into usuario (codigo, usuario) values(004,'Lucas'); insert into incidente (Cod_Incidente,Class_Incidente,Usuario_Cod,Incidente_Data_Hora,Incidente_Tipo,I ncidente_Depart) values(101,2,002,'2012-05-16 15:36:38','Foi detectado um ataque 34 de Spam no Emails','Financeiro'); insert into solucao (Incidente_Cod_Incidente,Usuario_Cod_Usuario,Solucao_Descricao,Solucao_Data_ Hora) values(101,2,'Foi Trocada a porta de recebimento de email, para a porta 587 e instalacao do certificado de seguranca','2012-05-18 15:36:38'); 5.4 Respostas dos Selects 2- Quais incidências ainda não foram resolvidas (estão pendentes)? Select Incidente_Tipo from incidente where Class_Incidente=0; 3- Quais incidências estão em avaliação? Select Incidente_Tipo from incidente where Class_Incidente=1; 4- Quais incidências foram resolvidas (estão concluídas)? Select Incidente_Tipo from incidente where Class_Incidente=2; 5- Qual a solução foi dada para uma determinada incidência? Quem resolveu? Quanto tempo (em dias) demorou a soluciona-la? Quem relatou o incidente? Select Solução_Descricao from Incidente where Cod_Incidente = 101 Select Usuario_Cod from Incidente where Cod_Incidente = 101 Select Usuario_Cod_Usuario from Solucao where Incidente_Cod_Incidente = 101 Select Incidente.Incidente_data_hora,Solucao.Solucao_data_hora, timestamp '2012-05-16 15:36:38' - timestamp '2012-05-18 15:36:38' dias FROM Incidente where Incidente.Cod_Incidente=101; 7- Quais os tipos de ataques mais comuns na empresa nos últimos12 meses? Select cod_Incidente,Class_Incidente, Count(*) from incidente where date_part('year',Incidente.Incidente_Data_Hora) = '2013' and cod_incidente='101' group by cod_Incidente; 35 5.5 Especificações técnicas do servidor de banco de dados Processador Família de produtos E5-2400 com processador Intel® Xeon® Soquetes de processador: 2 Interconexão interna: Link Intel QuickPath Interconnect (QPI): 6,4 GT/s; 7,2 GT/s; 8,0 GT/s Cache: 2,5 MB por núcleo; opções de núcleo: 2, 4, 6, 8 Sistema operacional Microsoft® Windows Server® 2012 Microsoft Windows Server 2012 Essentials Microsoft Windows Server 2008 R2 SP1, x64 (inclui Hyper-V® v2) Novell® SUSE® Linux Enterprise Server Red Hat® Enterprise Linux® Opções de virtualização: Citrix® XenServer® VMware® vSphere® ESX™ e ESXi™ Red Hat Enterprise Virtualization® Chipset Intel C600 Series Memória RAM1 Até 384 GB (12 slots DIMM) DDR3 de 2 GB/4 GB/8 GB/16 GB/32 GB até 1600 MT/s Storage Armazenamento interno máximo: Até 32 TB Unidades de disco rígido: Opções de disco rígido com conector automático: SATA de 2,5”, SAS nearline, SAS (15.000, 10.000), SSD SAS, SSD SATA SATA de 3,5”, SAS nearline, SAS (15.000) Unidades com criptografia automática disponíveis Opções de disco rígido com cabo: 36 SATA de 3,5”, SAS nearline, SAS (15.000) Compartimentos de unidade As opções são: quatro de 3,5” cabeados, oito de 3,5” de conector automático ou dezesseis de 2,5” de compartimento de unidade de conector automático Slots 6 slots PCIe: Dois slots x16 com largura de banda x16, 3.0, altura e comprimento completos Um slot x8 com largura de banda x4, 3.0, meio comprimento, altura completa Um slot x8 com largura de banda x4, 2.0, meio comprimento, altura completa Um slot x8 com largura de banda x4, 3.0, altura e comprimento completos Um slot x8 com largura de banda x1, 2.0, altura e comprimento completos Opções de GPU: Uma placa gráfica NVIDIA® Quadro® 6000 ou até duas placas gráficas NVIDIA Quadro 4000 Controladores RAID Controladores internos: PERC S110 (SW RAID) PERC H310 PERC H710 PERC H710P HBAs externos (RAID): PERC H810 HBAs externos (não RAID): SAS HBA de 6 Gbps Controlador de rede Placa de rede incorporada: Broadcom® 5720 GbE de duas portas Alimentação Fonte de alimentação: Fontes de alimentação redundantes de conector automático e eficiência Platinum de 495W, 750 W e 1.100 W Fonte de alimentação cabeada com eficiência Silver de 550 W Fontes de alimentação de variação automática Disponibilidade 37 Fontes de alimentação de alta eficiência, conector automático e redundante opcionais; compartimentos de unidade de conector automático; TPM; suporte ao SD interno duplo; ventiladores redundantes; memória ECC; tela de LCD interativa opcional; suporte térmico estendido; compatível com ENERGY STAR®; particionamento independente de switch, sem perda de performance em caso de falha de fonte ou ventilador redundante. Chassi Formato: Torre (montável em rack de 5 U) Suporte a rack: Trilhos deslizantes ReadyRails II para montagem sem ferramentas em racks de 4 hastes de orifícios redondos não rosqueados ou quadrados, ou montagem com ferramentas em racks de 4 hastes rosqueadas, com suporte para braço de gerenciamento de cabo opcional sem ferramentas (somente modelo para chassi montável em rack) Gerenciamento Gerenciamento remoto: Gerenciamento básico (padrão) iDRAC7 com Lifecycle Controller iDRAC7 Express (opção de atualização) ou iDRAC7 Enterprise (opção de atualização) Mídia vFlash de 8 GB ou 16 GB (opções de atualização) Gerenciamento de sistemas: Compatível com IPMI 2.0 OpenManage™ Essentials e Dell Management Console OpenManage Power Center Conexões do Dell OpenManage: OpenManage Integration Suite para o Microsoft® System Center Plug-in da Dell para o VMware® vCenter® HP Operations Manager, IBM Tivoli® Netcool® e CA Network and Systems Management (NSM) 38 6 PLANEJAMENTO DE SI 6.1 Planejamento de Segurança da Informação O Planejamento de Segurança é algo necessário para bom funcionamento da empresa como um todo. Ao contrário do que se pensa, o Planejamento de Segurança vai muito além de limitações de acesso tanto físico quanto lógico, mas começa desde a formatação de uma máquina e configuração do seu sistema operacional (principalmente se tratando de servidores), até o controle de acessos, limitação de banda, liberação de portas etc. As configurações de serviços, de sistemas operacionais, de politicas e procedimentos internos, devem possuir documentos devidamente atualizados, especificando as devidas configurações, ou que atitude tomar em determinados problemas que podem vir a ocorrer na empresa. Toda documentação tem por objetivo garantir a continuidade do negocio, educar o usuário sobre os bons hábitos de T.I, dar embasamento de acordo com a legislação vigente, para uma devida punição caso qualquer tipo de violação das normas e políticas venham a ser violadas por algum usuário. Iniciando pelos servidores, é importante expor a real necessidade de se “blindar” o S.O de um servidor, visando uma maior margem de segurança, e um mínimo risco assumido sobre o mesmo. Algumas atitudes práticas podem ser tomadas visando a preservação do “tripé” da área de segurança da informação, Integridade, confidencialidade e disponibilidade, no que se trata de configuração de máquinas para servidores. A técnica Hardening (blindagem do sistema), que em uma descrição simplificada, consiste na implementação de diretivas de segurança que devem ser seguidas antes, durante e após a instalação e configuração de servidores. Trazendo assim mais conhecimento, segurança, e tranquilidade para os administradores da rede. Sem contar os benefícios que serão agregados a segurança de sua rede. Algumas das vantagens de se utilizar essa técnica são, o fato de poder ser 39 aplicada em qualquer sistema operacional, a sua implementação aumenta o desempenho de hardware, liberando recursos que estão sendo utilizados por aplicativos desnecessários, implementando configurações específicas em alguns serviços, consequentemente gerando um ambiente mais estável e seguro, pode ser utilizado para evitar que usuários mal intencionados aproveitem da ausência do administrador e implantem scripts maliciosos em servidores infectando toda a rede, bloqueia o usuário administrador impedindo que faça login diretamente no terminal, efetuar logout por tempo de inatividade, remover permissões especiais de binários executáveis entre outros. É fácil notar que a simples configuração minuciosa de um sistema operacional pode evitar serias dores de cabeça para um administrador de redes. Mas a técnica de Hardening não se limita simplesmente a configuração de um sistema operacional propriamente dito. Os serviços implementados no S.O, como por exemplo, DHCP, SSH, HTTP, SMTP, podem ser configurados com parâmetros de segurança que assim como as configurações primordiais do sistema operacional, visa dificultar a vida dos hackers, e garantir que as informações mais sensíveis para o negocio da empresa estejam seguras. O DHCP, Dynamic Host Configuration Protocol (Protocolo de configuração dinâmica de host), é um protocolo de serviço TCP/IP que oferece configuração dinâmica de terminais, com concessão de endereços IP de host, Máscara de subrede, Default Gateway (Gateway Padrão), Número IP de um ou mais servidores DNS, Número IP de um ou mais servidores WINS e Sufixos de pesquisa do DNS. Este protocolo é o sucessor do BOOTP que, embora mais simples, tornou-se limitado para as exigências atuais. Resumidamente, o DHCP opera da seguinte forma: Um cliente envia um pacote UDP em broadcast (destinado a todas as máquinas) com uma requisição DHCP (para a porta 67); Os servidores DHCP que capturarem este pacote irão responder (se o cliente se enquadrar numa série de critérios — ver abaixo) para a porta 68 do Host solicitante com um pacote com configurações onde constará, pelo menos, um 40 endereço IP, uma máscara de rede e outros dados opcionais, como o gateway, servidores de DNS, etc... O DHCP usa um modelo cliente-servidor, no qual o servidor DHCP mantém o gerenciamento centralizado dos endereços IP usados na rede. Para dificultar as invasões e aumentar o nível de segurança pode-se vincular o IP com o endereço MAC da estação cliente que esta recebendo o IP. O protocolo SSH, é muito utilizado no ambiente corporativo para o acessa remoto a servidores, para manutenções e etc. Quando devidamente configurado, o SSH garante, o acesso seguro aos servidores para manutenção remota, com suas configurações bem feitas ele pode impedir por exemplo: que o usuário faça logim como root, tendo acesso total ao servidor, e também é possível limitar o tempo de acesso ao usuário root. O SSH, diferente dos outros protocolos têm o texto criptografado por tanto evita ataques de spoofing e snifers. O (HTTP) - Protocolo de Transferência de HyperText - é um protocolo de comunicação (na camada de aplicação segundo o Modelo OSI) utilizado para sistemas de informação de hipermídia distribuídos e colaborativos. Seu uso para a obtenção de recursos interligados levou ao estabelecimento da World Wide Web (WWW). Ex: www.google.com Normalmente, este protocolo HTTP utiliza a porta 80 e é usado para a comunicação de site web, comunicando na linguagem HTML. Contudo, para haver comunicação com o servidor do site é necessário utilizar comandos adequados, que não estão em linguagem HTML. No protocolo HTTP são usados alguns métodos que indicam algumas diferentes ações com uma finalidade específica: a ser realizadas no recurso especifico como GET e Post etc... GET: Busca certo recurso. Post: Envia certo recurso. Vulnerabilidade do protocolo HTTP. 41 Vulnerabilidades existem, pois as informações trafegadas no protocolo HTTP (métodos GET e Post) podem ser capturadas por softwares maliciosos, com isto sugerimos a utilização do protocolo HTTPs (HTTP encapsulado por SSL), ou melhorar o código da pagina acessada inibindo a execução de comandos direto pelo navegador. HTTPs (HyperText Transfer Protocol Secure) é uma implementação do protocolo HTTP sobre uma camada adicional de segurança que utiliza o protocolo SSL/TLS. Essa camada adicional permite que os dados sejam transmitidos por meio de uma conexão criptografada e que se verifique a autenticidade do servidor e do cliente por meio de certificados digitais. A porta TCP usada por norma para o protocolo HTTPS é a 443. Sistema operacional. O serviço HTTP esta na camada da aplicação, e com isto gerenciado pelo sistema operacional. Para que o serviço HTTP tenha um bom resultado com relação a segurança, as camadas transporte, internet e rede anteriores precisam estar bem configuradas. Interface de Rede: Podemos desabilitar alguns serviços como compartilhamento arquivos e impressoras, IPV6, etc. Firewall (Bloqueio de Portas e Acesso) Configuração de segurança no servidor HTTP Limitar execução de arquivos via HTTP (Arquivos: CGI) Um outro ponto critico quando se trata de segurança no ambiente corporativo, são os e-mails. Além dos trabalhos de conscientização dos usuários, uma boa configuração do servidor e-mail pode ajudar a impedir a proliferação de Spans na rede, e conseqüentemente, além de impedir a disseminação de softwares maliciosos, e a quedo do desempenho da rede por causa dos spans e e-mails indesejados. SMTP – (Simple Mail Transfer Protocol "Protocolo de transferência de correio simples") é o protocolo padrão para envio de e-mails através da Internet. É um 42 protocolo relativamente simples, baseado em texto simples, onde um ou vários destinatários de uma mensagem são especificados (e, na maioria dos casos, validados) sendo, depois, a mensagem transferida. É bastante fácil testar um servidor SMTP usando o programa telnet. Esse protocolo usa por padrão a porta 25 numa rede Transmission Control Protocol (ou 465 para conexão criptografada via SSL). A resolução DNS de um servidor SMTP de um dado domínio é possibilitada por sua entrada MX (Mail eXchange). A utilização em massa do SMTP remonta aos anos 1980. Na altura, era um complemento ao UUCP, que era mais adequado para transferências de correio eletrônico entre máquinas sem ligação permanente. Por outro lado, o desempenho do SMTP aumenta se as máquinas envolvidas, emissor e receptor, se encontrarem ligadas permanentemente. O Sendmail foi um dos primeiros (se não o primeiro) agente de transporte de email a implementar SMTP. Em 2001, havia, pelo menos, cerca de 50 programas que implementavam SMTP como cliente (emissor) ou servidor (receptor). Outros servidores SMTP muito conhecidos são: exim, Postfix, Qmail, Microsoft Exchange Server e o Mail da Apple disponível apenas para usuários do Mac OS ou do iOS para dispositivos móveis da Apple. Dada a especificação inicial, que contemplava apenas texto ASCII, este protocolo não é ideal para a transferência de arquivos (também chamados de ficheiros). Alguns Standards foram desenvolvidos para permitir a transferência de ficheiros em formato binário através de texto simples, como o caso do MIME. Hoje em dia, quase todos os servidores SMTP suportam a extensão 8BITMIME. O SMTP é um protocolo de envio apenas, o que significa que ele não permite que um usuário descarregue as mensagens de um servidor. Para isso, é necessário um cliente de e-mail com suporte ao protocolo POP3 ou IMAP, o que é o caso da maioria dos clientes atuais. 43 Sistema operacional. O serviço SMTP está na camada da aplicação, e com isto gerenciado pelo sistema operacional. Para que o serviço SMTP tenha um bom resultado com relação a segurança, as camadas transporte, internet e rede anteriores precisam estar bem configuradas. Interface de Rede (Podemos desabilitar alguns serviços como Ex: Compartilhamento arquivos etc.) Firewall (Bloqueio de Portas e Acesso) Implementar um serviço de Blacklist (BL) para filtrar é validar os endereços positivos. Mudar a porta em que o serviço SMTP irá ouvir (tradicionalmente é a 25). A escolha de uma porta alta (maior que 1024) é importante pois muitos scanners procuram somente por portas até 1024. 44 7 CONCLUSÃO Neste trabalho foi exposto o resultado do Projeto Integrador, do curso de Segurança da Informação III Período, onde foram integradas as disciplinas de Serviços IP, Banco de Dados, Noções de Direito e Legislação de Informática, Planejamento de SI e Sistemas Operacionais. O principal objetivo deste trabalho foi integrar as disciplinas supra citadas, visando a aplicação de politicas de segurança da informação. 45 REFERÊNCIAS Hardening - Texto originalmente criado por: Flavio Alexandre dos Reis Eduardo Pagani Julio Marcos Fabiano Verbena