View
2
Download
0
Category
Preview:
Citation preview
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
HALLINE MICHELE ALVES
POLLYANNA CHRYSTINA MILANI ZANI
MITIGAÇÃO DE ATAQUES DE NEGAÇÃO DE SERVIÇO EM SERVIDORES WEB
LINS/SP 2° SEMESTRE /2013
CENTRO ESTADUAL DE EDUCAÇÃO TECNOLÓGICA PAULA SOUZA
FACULDADE DE TECNOLOGIA DE LINS PROF. ANTONIO SEABRA
CURSO SUPERIOR DE TECNOLOGIA EM REDES DE COMPUTADORES
HALLINE MICHELE ALVES POLLYANNA CHRYSTINA MILANI ZANI
MITIGAÇÃO DE ATAQUES DE NEGAÇÃO DE SERVIÇO EM SERVIDORES WEB
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins para obtenção
do Titulo de Tecnólogo em Redes de
Computadores.
Orientador: Prof. Me. Julio Fernando Lieira
LINS/SP 2° SEMESTRE /2013
HALLINE MICHELI ALVES
POLLYANNA CHRYSTINA MILANI ZANI
SEGURANÇA EM SERVIDORES WEB
Trabalho de Conclusão de Curso apresentado à
Faculdade de Tecnologia de Lins, como parte dos
requisitos necessários para a obtenção do título de
Tecnólogo em Redes de Computadores sob a
orientação do Prof. Me.Julio Fernando Lieira.
Data de aprovação _______/________/________
____________________________________________________
Orientador Julio Fernando Lieira ____________________________________________________
Examinador 1 ____________________________________________________
Examinador 2
“(...) E você aprende que realmente
pode suportar, que realmente é forte, e que pode ir
muito mais longe depois de pensar que não se
pode mais. E que realmente a vida tem valor e que
você tem valor diante da vida! Nossas dúvidas são
traidoras e nos fazem perder o bem que
poderíamos conquistar, se não fosse o medo de
tentar (...)" (Willian Shakespeare)
Pollyanna Chrystina Milani Zani
“Que os vossos esforços desafiem as
impossibilidades, lembrai-vos de que as
grandes coisas do homem foram
conquistadas do que parecia impossível”.
(Charles Chaplin)
Halline Michele Alves
AGRADECIMENTOS
Primeiramente agradeço a Deus por ter me dado coragem, paciência,
determinação e acima de tudo muita força para a execução deste trabalho.
É imprescindível agradecer às poucas pessoas que me apoiaram, mas que
foram mais que suficientes e essenciais para me fortalecer: In memorian, Dalvina
minha amada avó, minha mãe Márcia, minha tia Lilian, meu tio Carlos Alberto e
todas as pessoas que me apoiaram.
Agradeço em especial ao meu noivo Celso, obrigada por sua ajuda,
paciência e por você ter acreditado em mim quando eu mesma não acreditava!
Aos colegas e professores que tanto contribuíram para expansão do meu
conhecimento ao decorrer destes anos me ajudando quando eu mais precisava em
minhas dificuldades.
Agradeço à minha companheira de trabalho e amiga, Halline M. Alves, unidas
apoiamos uma à outra, suportamos todos os obstáculos e concluímos este trabalho
tão importante em nossas vidas pessoais e acadêmicas.
Agradeço as pessoas que nunca acreditaram em mim e sempre me
incentivaram a desistir dizendo que eu não tinha capacidade, pois foram estas
pessoas que mais me deram impulso para continuar e chegar até aqui!
Meus sinceros agradecimentos ao Prof. Mestre. Julio Fernando Lieira por sua
orientação feita de forma perfeita, sua imensa ajuda sanando minhas dúvidas me
explicando tudo com muita calma e principalmente sua grande paciência na
realização deste trabalho.
Muito obrigada!
Pollyanna Chrystina Milani Zani
AGRADECIMENTOS
Inicialmente agradeço a Deus por me dar forças para enfrentar minhas
dificuldades que tive durante todo o curso, me capacitando para a conquista e
conclusão deste trabalho.
Agradeço também ao meu orientador Me. Julio Fernando Lieira pela
paciência, disponibilidade para me auxiliar em minhas dúvidas e pelo
comprometimento para com o meu trabalho.
Agradeço não somente a ele, mas a todos os professores que me
acompanharam durante todos os semestres que transmitiram seus conhecimentos
de forma simples e enriquecedora para coma base deste, poder concluir esse curso.
Sou grata a minha companheira e amiga Pollyanna C. M. Zani pelo
comprometimento com o projeto, força de vontade e apoio para conclusão deste
trabalho.
Agradeço à minha família pelo incentivo para a conclusão deste curso, que
muitas vezes pensei em desistir.
Halline Michele Alves
RESUMO
Por meio do desenvolvimento deste trabalho objetivou-se o conhecimento de algumas ferramentas necessárias para a configuração do servidor Web Apache, podendo assim aumentar seu o nível de segurança perante ameaças. Além disso, foi abordado o referencial teórico que apresentou os tipos de redes, protocolos utilizados, certificados, uma visão geral sobre os servidores Web mais utilizados, um estudo aprofundado sobre o servidor Web Apache e os principais tipos de ataques em servidores. O servidor Apache instalado no sistema operacional Ubuntu 12.10 e o Backtrack 5 R3 foram instalados e testados em máquinas virtuais. Foi realizado o ataque DDoS, sendo que para este ataque utilizou-se a ferramenta Slowloris através do Backtrack 5 R3. Inicialmente o servidor Apache permaneceu apenas com suas configurações primárias, desta forma, foram testados os efeitos do ataque para a obtenção de resultados preliminares. Após o primeiro teste, o mesmo ataque foi feito, porém desta vez com o servidor configurado a diretiva de segurança mod_qos para observar o comportamento do mesmo. Finalizando, foi concluído que o servidor Web, apenas com as configurações primárias, torna-se vulnerável ao tipo de ataque aplicado; porém com a diretiva de segurança mod_qos, o resultado foi diferente, pois o módulo se mostrou eficaz na defesa do servidor ao ataque aplicado. Palavras-chave: Servidor, Segurança, Backtrack, Slowloris e DoS.
ABSTRACT
Through the development of this work, aimed to knowledge about some needed tools for configuration for the Apache server, may increase their level of security against threats. Beyond that was approached the theoretical framework presented the types of networks, protocols used, certified, an overview of the most used web servers, a detailed study on the Apache web server and the main types of threats on servers. The Apache server was installed on the operating system Ubuntu 10.12 and Backtrack 5 R3 were installed and tested in virtual machines. The DDoS attack was carried out, and for this attack we used the tool through Slowloris in Backtrack 5 R3. Initially, the web server remained with only their primary settings thus tested were the effects of the attack to obtain preliminary results. After the first test, the same attack was made, but this time with the server configured security policy mod_qos to observe the behavior of the same. Finally, it was concluded that the web server, with only the primary settings, it becomes vulnerable to attack type applied, but with mod_qos security policy, the result was different, since the module was effective in protecting the server attack applied. Keywords: Server, Security, Backtrack Slowloris and DoS.
LISTA DE ILUSTRAÇÕES
Figura 1.1 – WAN.......................................................................................................20
Figura 1.2 - MAN........................................................................................................ 21
Figura 1.3 - LAN......................................................................................................... 21
Figura 1.4 - WLAN...................................................................................................... 22
Figura 1.5 – VLAN...................................................................................................... 22
Figura 1.6 - Rede Ethernet......................................................................................... 23
Figura 1.7 – VPN........................................................................................................ 24
Figura 1.8 - Modelo OSI.............................................................................................26
Figura 1.9 - Modelo TCP/IP - OSI.............................................................................. 29
Figura 1.10 - Modelo TCP/IP - Protocolos................................................................ 29
Figura 2.1- Algumas pessoas que podem causar problemas de segurança e os
motivos para fazê-lo................................................................................................... 36
Figura 2.2 - Instalação de um Patch........................................................................ 37
Figura 2.3 – Firewall................................................................................................. 38
Figura 2.4 – Criptografia em PHP e WebServices................................................... 39
Figura 2.5 - e-CNPJ e e-CPF................................................................................... 41
Figura 2.6 - Leitor de cartões................................................................................... 41
Figura 2.7 – Token................................................................................................... 42
Figura 2.8 - Como funciona o SSL........................................................................... 43
Figura 2.9 - HTTPS.................................................................................................. 45
Figura 3.1 - Modelo Cliente Servidor........................................................................ 47
Figura 3.2 - Acesso Ao Servidor Web...................................................................... 48
Figura 3.3 - Arquitetura Web.................................................................................... 48
Figura 3.4 - Participação de mercado dos servidores Web..................................... 53
Figura 4.1 – Buffer Overflow…………………………………………………………….. 55
Figura 4.2 – Esquema de como funciona um ataque DDoS ................................... 56
Figura 5.1 - Tela inicial do Bactrack 5 R3.................................................................. 61
Figura 5.2 – Linhas de comando para executar o Slowloris no Bactrack.................. 62
Figura 5.3– Building Sockets no Slowlorisl no Bactrack.............................................62
Figura 5.4 – Envio de pacotes ao servidor atacado pelo Slowloris.......................... 63
Figura 5.5 – Servidor antes do ataque..................................................................... 63
Figura 5.6 – Servidor durante o ataque.................................................................... 64
Figura 5.7 – Conexões estabelecidas entre o Slowloris e o Apache no Servidor
durante o ataque........................................................................................................ 67
Figura 5.8 – Conexões em espera entre durante o ataque...................................... 68
LISTA DE ABREVIATURAS E SIGLAS
ASCII - American Standard Code for Information Interchange
WAN - Wide Area Network
MAN - Metropolitan Area Network
LAN - Local Área Network
WLAN - Wireless Local Área Network
VLAN - Virtual Local Area Network
VPN - Virtual Private Network
ISO/OSI - International Organization for Standardization / Open System
Interconnection
TCP/IP - Conjunto de Protocolos de Comunicação
TCP - Transmission Control Protocol
IP - Internet Protocol
HTTP - HyperText Transfer Protocol
DDoS - Distributed Denial of Service
DNS - Domain Name System
DoS - Denial of Service
FTP - File Transfer Protocol
GBPS - Gigabits por Segundo
SNMP - Simple Network Management Protocol
UDP - User Datagram Protocol
IANA - Internet Assigned Numbers Authority
ICMP - Internet Control Message Protocol
IGMP - Internet Group Management Protocol
ARP - Address Resolution Protocol
MAC - Media Access Control
MBPS - Megabits por Segundo
LLC - Controle de Link Lógico
UDP - Use Datagram Protocol
SSL - Secure Sockets Layer
HTTP - HyperText Transfer Protocol
HTTPS - HTTP Secure
HTML – HyperText Markup Language
IIS - Internet Information Services
WAS - Windows Process Activation Service
CGI - Common Gateway Interface
LISTA DE TABELAS Tabela 1.1 - Protocolo da camada de Aplicação ....................................................... 30
LISTA DE QUADROS
Quadro 2.1 – Camadas e protocolos para um usuário doméstico navegando com
SSL............................................................................................................................ 43
Quadro 5.1 Configurações do mod_qos .................................................................... 66
SUMÁRIO
INTRODUÇÃO .................................................................................. 17
1 REDES DE COMPUTADORES ...................................................... 19
1.1 TIPOS DE REDES............................................................................ 19
1.1.1 REDE DE LONGA DISTÂNCIA (WAN) ..................................................... 19
1.1.2 REDE METROPOLITANA (MAN) ............................................................ 20
1.1.3 REDE LOCAL (LAN) ......................................................................... 21
1.1.4 REDE LOCAL SEM FIO (WLAN) ........................................................... 22
1.1.5 REDE VIRTUAL LOCAL (VLAN) ............................................................ 22
1.1.6 O PADRÃO ETHERNET ...................................................................... 23
1.1.7 REDE PRIVADA VIRTUAL (VPN) ........................................................... 24
1.2 PROTOCOLOS DE COMUNICAÇÃO ................................................... 24
1.3 ARQUITETURA DE REDES ............................................................... 25
1.3.1 MODELO OSI ................................................................................. 26
1.4 MODELO TCP/IP ............................................................................. 28
1.4.1 CAMADA DE APLICAÇÃO ..................................................................... 30
1.4.2 CAMADA DE TRANSPORTE .................................................................. 31
1.4.3 CAMADA INTERNET IP ....................................................................... 32
1.4.4 CAMADA DE INTERFACE DE REDE ......................................................... 32
2 SEGURANÇA EM SERVIDOR WEB............................................... 35
2.1 AMEAÇAS À SEGURANÇA DE UMA REDE .......................................... 35
2.1.2 PATCH DE SEGURANÇA ..................................................................... 36
2.1.3 FIREWALL ...................................................................................... 37
2.1.4 CRIPTOGRAFIA................................................................................ 39
2.1.5 AUTORIDADE DE CERTIFICAÇÃO ........................................................... 40
2.1.6 CERTIFICADO DIGITAL: E-CNPJ, E-CPF E TOKEN .................................... 40
2.1.7 SECURE SOCKETS LAYER (SSL) ......................................................... 42
2.1.8 HTTPS ........................................................................................ 44
3 SERVIDORES WEB ....................................................................... 46
3.1 CONSIDERAÇÕES INICIAIS ............................................................. 46
3.2 LIGHTTPD ...................................................................................... 49
3.3 IIS ................................................................................................. 49
3.4 NGINX ........................................................................................... 50
3.5 SERVIDOR APACHE ........................................................................ 50
3.5.1 BREVE HISTÓRICO DO APACHE ........................................................... 50
3.5.2 UTILIZAÇÕES DO APACHE .................................................................. 52
4 TIPOS DE ATAQUES MAIS COMUNS EM SERVIDORES WEB .... 54
5 IMPLEMENTAÇÃO: UTILIZANDO A FERRAMENTA SLOWLORIS
NO BACKTRACK PARA REALIZAR O ATAQUE DOS EM UM
SERVIDOR APACHE ........................................................................ 59
5.1 IMPLEMENTAÇÃO .......................................................................... 61
CONCLUSÃO ................................................................................... 69
REFERÊNCIAS BIBLIOGRÁFICAS .................................................. 71
GLOSSÁRIO ..................................................................................... 77
17
INTRODUÇÃO
Com a difusão das novas tecnologias em todos os setores de atividades,
ocorreram mudanças e renovações nas organizações que buscam soluções rápidas
para se manterem competitivas e conquistarem novos mercados, assim os avanços
tecnológicos introduziram no campo empresarial sofisticações operacionais, visando
maior eficiência no fluxo de trabalho. (CINFORM, 2012)
À medida que crescem os números de empresas que confiam na Web como
ferramenta em seus ramos de atuação, aumenta-se a atenção para questões da
segurança de seus sistemas. Para um aumento significativo da produtividade, elas
adotam o uso de servidores Web, pois necessitam que as suas informações e
recursos sejam compartilhados em tempo real. Essa tecnologia vem sendo adotada
em escala crescente para atender às necessidades das empresas. (MICROSOFT,
2013)
Com um servidor Web, uma organização passa a ter presença na Internet,
caso este servidor seja configurado para aceitar requisições. Caso não haja
conexão, o mesmo pode ser utilizado para colocar em funcionamento uma Intranet,
que é uma rede privada de uso exclusivo de uma determinada empresa em que tem
seu conteúdo restrito, permitindo a comunicação de um departamento com todos os
outros colaboradores da mesma, em que só é acessado localmente, sendo assim
um meio de armazenamento, gestão e distribuição de informações, oferecendo
dados e serviços com mais eficiência, permitindo que todos os funcionários realizem
melhor suas tarefas, tornando mais ágeis os trabalhos internos da uma empresa,
proporcionando uma melhor integração entre todas as áreas. (TECMUNDO, 2009)
Um fator muito importante a ser considerado é a segurança destes servidores,
com sua exposição na Web, eles podem ser alvo de ataques e serem expostos a
uma grande variedade de ameaças, assim colocando em risco a integridade destas
organizações, obrigando-as a se preocuparem com a segurança destes sistemas.
(NOBRE, 2007)
Várias empresas são alvos de ataques, por exemplo, a GlobalSign, uma das
maiores empresas de certificação digital teve que parar de emitir certificados,
enquanto realizava uma análise em seus sistemas as evidências apontaram que
18
seu servidor Web foi comprometido devido a uma falha resultante dos ataques que a
mesma sofreu. (UNDERLINUX, 2011)
Portanto as organizações precisam ter e seguir uma política de segurança
que é um instrumento importante para sua proteção, uma vez estabelecida pode-se
iniciar uma configuração segura dos sistemas que estarão nessa rede.
Neste contexto, este trabalho de conclusão de curso apresenta mecanismos
para aumentar o nível de segurança de servidores web principalmente com relação
à ataques DDoS (Distributed Denial of Service). O estudo dá ênfase na utilização do
servidor Apache, pois segundo Netcraft (2012), é um dos servidores mais utilizados
atualmente com 65,24% de participação no mercado. O servidor Apache foi
instalado e testado em uma máquina virtual para aprofundamento do estudo e
demonstração de comandos necessários para a configuração de segurança do
mesmo.
O primeiro capítulo apresenta o referencial teórico, onde são apresentados
os tipos de redes e protocolos utilizados.
No segundo capítulo foi feita uma abordagem sobre componentes de
segurança para um melhor entendimento e os certificados de segurança.
No terceiro capítulo é apresentada uma visão geral dos servidores Web mais
utilizados e um estudo aprofundado sobre o servidor Web Apache, o qual é o foco
do trabalho.
O quarto capítulo apresenta os ataques mais comuns em um servidor Web.
O quinto capítulo apresenta um estudo de caso, onde foi montado um
ambiente de testes composto de um servidor Web Apache, instalado em uma
máquina virtual; em outra máquina virtual foi instalada a distribuição Linux
BackTrack a qual foi utilizada para gerar ataques de negação de serviço (DoS) ao
servidor Web. Foram aplicadas no servidor Web algumas configurações de
segurança específicas para mitigação dos efeitos de ataques DoS e os resultados
são relatados no final do capítulo.
Por fim, no sexto capítulo é apresentada a conclusão do trabalho.
19
1 REDES DE COMPUTADORES
Neste capítulo são identificados elementos importantes quanto às
características, formação, tipos, elementos, arquitetura e protocolos de uma rede de
computadores.
1.1 TIPOS DE REDES
Segundo Maia (2009) uma rede de computadores é um conjunto de
dispositivos interconectados com a finalidade de trocar e compartilhar recursos.
A evolução das redes de computadores deu-se da necessidade de troca,
compartilhamento de informações de forma rápida e o compartilhamento de recursos
de hardware e software.
Atualmente, as redes de computadores são o núcleo da comunicação
moderna. Este rápido crescimento nas comunicações não seria possível sem o
avanço progressivo das redes de computadores.
Elas podem ser classificadas segundo diversos critérios, alguns dos mais
comuns são:
Dimensão ou área geográfica ocupada;
Capacidade de transferência de informação;
Topologia ("a forma da rede");
Método de transferência dos dados;
Tecnologia de transmissão.
A seguir algumas designações dos tipos de rede mais comuns.
1.1.1 REDE DE LONGA DISTÂNCIA (WAN)
As redes de longa distância Wide Area Network (WAN) têm a dimensão
correspondente a vários continentes, permitem a interligação de dispositivos
geograficamente distantes, são constituídas por múltiplas redes interligadas. Dada a
sua dimensão e uma vez que englobam LANs e WANs, as tecnologias usadas para
a transmissão dos dados são as mais diversas, contudo, para que as trocas de
20
informação se processem é necessário um elo comum assente sobre essa
tecnologia heterogênea. Esse elo comum é o protocolo de rede.
A interligação de redes de diferentes tecnologias é assegurada por
dispositivos conhecidos por roteadores, o mesmo possui tipicamente ligação física a
duas ou mais redes, recebendo dados de uma rede para colocá-los na outra rede.
(TANENBAUM, 2003 e ISEP, 2012)
Figura 1.1 – WAN. Fonte: Bhportal, 2012.
1.1.2 REDE METROPOLITANA (MAN)
A necessidade de interligar redes locais dentro de uma mesma cidade
provocou o surgimento das redes metropolitanas ou uma Metropolitan Area Network
(MAN) cuja dimensão é reduzida, geralmente também assegura a interligação de
redes locais. Essas redes oferecem altas taxas de transmissão e baixos índices de
erros. (MAIA, 2009)
Essa tecnologia pode incluir redes ponto-a-ponto ou usar meios que permitem
um débito mais elevado como Fiber Distribued Data Interface (Interface de Dados
distribuída por fibra FDDI), Distributed Queue Dual Bus (Fila distribuída ou
Barramento duplo DQDB) ou até mesmo Gigabit Ehernet (transmissão a uma
velocidade de Gigabit por segundo). (ISEP, 2011)
21
Figura 1.2 – MAN. Fonte: Cyberti, 2010.
1.1.3 REDE LOCAL (LAN)
Uma Local Área Network (LAN) é caracterizada por ocupar uma área limitada,
é uma rede de caráter local, que cobre uma área geográfica reduzida em um edifício
ou às vezes limita-se a apenas um piso de um edifício, ou um conjunto de salas. São
usualmente redes de domínio privado. Existe um conjunto de serviços e protocolos
que são característicos das redes locais e que fazem parte da definição de rede
coorporativa. (ISEP, 2011)
As LANs oferecem altas taxas de transmissão, da ordem de Mbps e Gbps e
baixas taxas de erros.
Figura 1.3 – LAN. Fonte: Bhportal, 2012.
22
1.1.4 REDE LOCAL SEM FIO (WLAN)
As redes locais sem fios, conhecidas com Wireless Local Área Network
(WLAN), são adequadas a situações em que é necessária mobilidade, pois são
flexíveis e de fácil instalação. Embora os equipamentos sejam mais caros do que
para uma LAN tradicional, a redução significativa dos custos de instalação é muitas
vezes compensatória. (ISEP, 2011)
Figura 1.4 – WLAN. Fonte: MCMCSE, 2012.
1.1.5 REDE VIRTUAL LOCAL (VLAN)
Figura 1.5 – VLAN. Fonte: Ponto de Redes, 2012.
23
As redes locais virtuais Virtual Local Area Network (VLAN) são redes lógicas
onde se podem configurar determinadas máquinas de acordo com alguns critérios,
permitindo o acesso restrito a um grupo de usuários ou departamento, são definidas
sobre redes locais que estão equipadas com dispositivos apropriados, permitindo a
segmentação de uma rede sem restrições de conexões físicas. (ISEP, 2011)
1.1.6 O PADRÃO ETHERNET
As redes Ethernet dominam claramente as redes locais, e têm alguma
expressão nas redes metropolitanas. Embora atualmente as redes Ethernet ainda
utilizem "broadcast” (que é uma comunicação na qual um quadro é enviado de um
endereço para todos os outros, havendo apenas um remetente; as informações são
enviadas para todos os receptores conectados), a comutação é cada vez mais
generalizada, entre outras limitações a utilização de broadcast limita fortemente o
tamanho de uma rede Ethernet. Os meios físicos de transmissão mais usados são o
cobre e a fibra óptica. (ISEP, 2011)
Figura 1.6 - Rede Ethernet. Fonte: Projeto De Redes, 2012.
24
1.1.7 REDE PRIVADA VIRTUAL (VPN)
As redes privadas virtuais Virtual ou Private Network (VPN) utilizam uma rede
pública, por exemplo, a Internet para estabelecer uma ligação de dados entre dois
pontos, estes dados têm a particularidade de serem codificados de tal forma que
apenas os dois intervenientes os conseguem compreender.
Os dois pontos da ligação passam a funcionar como roteadores para as
respectivas redes. Esta técnica pode ser usada para interligar redes distantes
pertencentes a uma mesma organização, permitindo o compartilhamento de
arquivos, informações e aplicativos de gerenciamento como se as máquinas
estivessem conectadas na mesma rede local, com baixa velocidade, mas com
grandes vantagens econômicas. (ISEP, 2011)
Figura 1.7 – VPN. Fonte: RNP, 1998.
1.2 PROTOCOLOS DE COMUNICAÇÃO
Através da Internet tem-se um acesso a uma grande quantidade de
informações, que possibilita obter o conhecimento através de alguns segundos. Para
solicitar alguma informação através da Internet ou com um computador da mesma
rede, é preciso que os dispositivos falem a mesma linguagem, mesmo operando na
mesma rede a Internet é composta por várias tecnologias, para que essa
comunicação ocorra são utilizados os protocolos de comunicação. Segundo Maia
(2009) protocolos de comunicação são regras predefinidas que devem ser seguidos
pelos dispositivos, eles são formados pelas informações de controle contidas no
25
cabeçalho e pelo processamento dessas informações nas respectivas camadas de
origem e destino.
Os protocolos pegam os dados que serão transmitidos e os dividem em
pequenos pedaços de tamanho fixo chamado pacotes ou quadros, com essa divisão
o uso da rede é aperfeiçoado, pois desta forma os pequenos pacotes são
transferidos um a um sem congestionar a rede ou ocupar muito espaço. (TORRES,
2001)
Os protocolos utilizados em uma rede precisam ser compatíveis, caso
contrário a comunicação não se dará de forma efetiva ou não ocorrerá.
Existem vários protocolos relacionados à comunicação de dados e de redes
de computadores, e cada uma possui uma função específica. O Transmission
Control protocol (TCP) e Internet Protocol (IP) são dois dos muitos protocolos
utilizados, eles são utilizados como forma de referenciar todos os protocolos que
fazem parte do modelo Internet. (MAIA, 2009)
1.3 ARQUITETURA DE REDES
Segundo Maia (2009), uma arquitetura de redes deve especificar o número de
camadas, as respectivas interfaces, os serviços oferecidos por cada nível e seus
protocolos. A tarefa da arquitetura de redes é a definição das funções de cada
camada, pois tem grande influência no seu desempenho, simplifica o projeto e a
implementação de seus componentes.
Em um modelo de camadas, o sistema é dividido em níveis sobrepostos.
Cada camada oferece funções que podem ser utilizadas pelas camadas superiores.
Tem como vantagem isolar as funções do sistema operacional, facilitando sua
manutenção e depuração e criar uma hierarquia de níveis de modos de acesso,
protegendo as camadas mais internas. Uma desvantagem para o modelo de
camadas é o seu desempenho da rede em função do número de interfaces pelo qual
os dados terão que passar. Cada nova camada implica em uma mudança no modo
de acesso. Sendo assim entenderemos as camadas a partir do Modelo OSI.
(INFPUC, 2005)
26
1.3.1 MODELO OSI
Quando surgiram as redes de computadores determinadas tecnologias eram
suportadas somente pelos seus fabricantes, assim suas soluções tornavam-se
somente dos proprietários. Para facilitar a interconexão dos sistemas de
computadores a International Organization for Standardization (ISO), desenvolveu o
modelo de referência Open System Interconnection (OSI) para que se criasse uma
padronização em nível internacional, os dispositivos de intercomunicação de redes e
seus protocolos, de forma que permitisse que todos fossem interoperáveis a partir
desse modelo que tem sete camadas, o qual foi criado especificamente para redes
de comutação de pacotes. (TORRES, 2009)
Figura 1.8 - Modelo OSI. Fonte: LST, 2012.
Segue uma breve explicação das camadas do modelo OSI e suas funções,
segundo Torres (2009):
Camada 7 – Aplicação: Esta camada faz a interface entre a pilha de
protocolos e os aplicativos que solicitam ou recebem a informação através da rede.
Permite o acesso a diversos e diferentes serviços de aplicação, com a conversão
dos diferentes protocolos.
27
Camada 6 – Apresentação: Segundo essa camada tem como função
converter o formato do dado que é recebido pela camada de Aplicação a um formato
comum para ser usado na transmissão desse dado, também é usado para
compressão e criptografia de dados, assim transmite a informação de tal forma que
possa ser entendida e usada pelo receptor.
Camada 5 – Sessão: Esta camada permite que duas aplicações distintas
estabeleçam uma sessão de comunicação, assim as aplicações desta sessão
definem como será feita a transmissão dos dados, coloca marcações nestes dados
para se caso a rede falhar a transmissão é reiniciada a partir da última marcação
recebida pelo computador receptor.
Camada 4 – Transporte: Esta camada é responsável em pegar os dados da
camada de sessão e dividi-las em segmentos, ou seja, ela faz uma segmentação de
dados que serão repassados para a camada de Rede. No receptor essa camada é
responsável por remontar os dados recebidos pela camada de Rede para enviá-los
à camada Sessão.
Camada 3 – Rede: Esta camada é responsável pelo endereçamento lógico
dos pacotes de dados e pela tradução de endereços lógicos em endereços físicos.
Para que haja um tráfego os pacotes de dados precisam conhecer o endereço físico
da placa de rede de origem e destino, este endereçamento é gerado pela camada
de Enlace.
Camada 2 – Enlace de Dados: Esta camada pega os dados que foram
transmitidos pela camada de rede e os transforma em quadros ou células que serão
trafegados pela rede, adiciona informações como endereço de placa de rede de
origem e destino e dados de controle. O quadro criado nesta camada é enviado para
a camada Física que converte esse quadro em sinais elétricos para serem enviados
através de um cabo de rede.
Camada 1 – Física: Esta camada pega os dados enviados pela camada de
Enlace e os transforma em sinais compatíveis com o meio onde os dados serão
transmitidos. O papel desta camada é efetuado pela placa de rede dos dispositivos
conectados em rede.
Portando para que possa transmitir um dado, cada camada pega as
informações passadas pela camada superior, acrescenta informações pelo qual ela
é responsável e passa os dados na camada inferior. Essa mensagem só será
transmitida, pela camada física.
28
Para que o roteador direcione a mensagem ele abre a mensagem até a
camada de rede onde está o endereço de rede, e faz o processo novamente,
levando a mensagem até a camada física para que continue sua transferência.
Quando chega ao destino, ela faz o processo inverso iniciando então na camada
física, indo à camada de aplicação, onde o usuário interage. (FARREL, 2005)
Segundo Maia (2009), o modelo de camadas OSI, não obteve êxito comercial,
por sua complexidade, as primeiras implementações oferecidas pelos fabricantes
não ofereciam um bom desempenho e não eram compatíveis entre si, enquanto o
modelo TCP/IP, era mais simples e eficiente e estava disponível em diversas
plataformas e matinha compatibilidade entre diversas implementações.
1.4 MODELO TCP/IP
O TCP/IP é um conjunto de protocolos de comunicação entre computadores e
que seu nome é derivado de dois protocolos: o Transmission Control Protocol
(Protocolo de Controle de Transmissão TCP) e o Internet Protocol (Protocolo de
Interconexão IP). O conjunto de protocolos pode ser visto como um modelo de
camadas. (LST, 2012)
O modelo TCP/IP surgiu durante a década de 60, tendo o objetivo de conectar
redes e sistemas heterogêneos com a utilização do esquema de comutação de
pacotes. Sua principal preocupação era a disponibilidade da rede, que deveria
continuar em operação mesmo no caso de falha de alguns de seus componentes,
também deveria suportar diferentes tipos de serviços, oferecendo uma boa relação
de custo-benefício em relação à conexão de novas redes. Com a evolução da
Internet este modelo vem sendo aprimorado para atender novas demandas e
necessidades. (MAIA, 2009)
Enquanto o modelo OSI se preocupava em criar uma arquitetura de redes
com uma distinção clara entre camadas, interfaces, serviços e protocolos, no modelo
TCP/IP privilegiam os protocolos e há uma maior atenção com a arquitetura. O
modelo TCP/IP possui quatro camadas, onde cada camada é responsável por um
grupo de tarefas, fornecendo um conjunto de serviços bem definidos para o
protocolo da camada superior. (MAIA, 2009)
O modelo TCP/IP quando é comparado com o modelo OSI, tem duas
camadas que são formadas a partir da fusão de algumas camadas, como a de
29
Aplicação que é a junção da Aplicação, Apresentação e Sessão e de Interface de
Rede que é a junção de Enlace e Física. Conforme a figura a seguir:
Figura 1.9 - Modelo TCP/IP – OSI. Fonte: 2DC, 2012.
Figura 1.10 - Modelo TCP/IP – Protocolos. Fonte: 2DC, 2012.
A figura acima mostra essas camadas do modelo TCP/IP e alguns dos
principais protocolos.
Como no modelo OSI, no modelo TCP/IP os pacotes passam pelas camadas,
cada camada anexa uma informação em forma de um cabeçalho no pacote. Então o
pacote que contém o cabeçalho e os dados é reempacotado cada vez que passa
30
para uma camada inferior. Quando chega ao destino o processo é inverso, em cada
camada ele vai sendo desempacotado. Como será visto a seguir na descrição de
cada camada. (TORRES, 2009; FARREL, 2005).
1.4.1 CAMADA DE APLICAÇÃO
A camada de Aplicação do modelo TCP/IP, equivale às camadas 5, 6 e 7 do
modelo OSI. É esta camada que “conversa” com os programas instalados em seu
computador. Nela existem vários protocolos operando, como o HyperText Transfer
Protocol (HTTP), o Domain Name System (DNS), o File Transfer Protocol (FTP), o
Simple Network Manegement Protocol (SNMP), o Telnet e outros. (TORRES, 2009)
A Tabela 1 apresenta alguns protocolos utilizados na camada de Aplicação no
modelo TCP/IP.
Tabela 1.1 - Protocolo da camada de Aplicação.
Protocolo Descrição
HTTP
FTP
SMTP
Telnet
DNS
SNMP
Utilizado no serviço Web.
Utilizado no serviço de transferência de arquivos.
Utilizado no serviço de correio eletrônico.
Utilizado no serviço de terminal remoto.
Utilizado no serviço de nomes.
Utilizado no serviço de gerência remota.
Fonte: Maia 2009.
Esta camada comunica-se com a camada de Transporte através de uma
porta, estas portas são numeradas de 0 a 65.535, no lado do servidor as aplicações
padrão usam sempre uma mesma porta, essa portas são sistemas de
endereçamento para assim saber qual protocolo está transferindo os dados e com
isso saber qual protocolo de aplicação será entregue na máquina de destino. Assim,
na camada de Transporte ela sabe qual o tipo de conteúdo do dado, e no receptor,
para qual protocolo de aplicação a camada de Aplicação deve entregar o pacote de
dados. (TORRES, 2009)
31
1.4.2 CAMADA DE TRANSPORTE
A camada de transporte é responsável por pegar os dados enviados pela
camada de Aplicação e transformá-los em pacotes, para então serem repassados
para a camada de Redes. Existem dois protocolos que operam nesta camada deste
modelo, o TCP e o UDP. (TORRES, 2009)
O protocolo TCP recebe os datagramas IP e trata de colocá-los em ordem e
verifica se todos chegaram corretamente, isto é feito através de uma confirmação de
recebimento enviada pelo receptor. Portanto o protocolo TCP é orientado a conexão,
por isso é um protocolo confiável. Esta camada só envia mensagem com a certeza
que vai receber. (TORRES, 2009; MAIA, 2009)
O protocolo UDP, não é um protocolo orientado a conexão, assim não é
confiável, pois não garante a entrega e a sequência dos dados transmitidos. Quanto
um protocolo não usa um sistema de confirmação de recebimento de dados, ele é
chamado de datagrama, que significa que é um pacote não orientado a conexão. Os
programas têm como vantagem a utilização do UDP é em relação à transmissão de
dados, pois ficam mais rápidos. Primeiramente pelo seu tamanho é menor que o
TCP e segundo no protocolo UDP, como não existe um mecanismo de confirmação
de chegada de pacotes, isso acelera a entrega dos mesmos, já que o transmissor
não precisa esperar receber uma mensagem de confirmação do receptor para o
envio do próximo pacote. (TORRES, 2009)
O protocolo TCP é o mais utilizado para transmissão de dados, pois o
protocolo IP que recebe os pacotes na camada de transporte os dividiu em pacotes
menores e adicionará o endereço lógico de origem e destino. (TORRES, 2009)
Para que se identifiquem os pontos de origem e destinos dos endereços IP,
são utilizadas as portas, que na verdade é um sistema de endereçamento para
saber para qual protocolo de aplicação a camada deverá entregar um determinado
pacote, pois podemos ter vários protocolos operando simultaneamente na camada
de aplicação. (TORRES, 2009)
Essas portas usam o endereçamento de 16 bits, elas são numeradas de 0 a
65.535. Somente uma única aplicação pode escutar uma porta, pois se a aplicação
escutasse mais de uma porta, ela não seria capaz de saber a quem entregaria os
pacotes de dados. Portanto as portas precisam ser padronizadas, sendo a Internet
Assigned Numbers Authority (IANA) o órgão padronizador. A IANA dividiu em três
32
partes este número: as portas bem conhecidas ou privilegiadas de 1 a 1023 que são
atribuídas para uso de aplicações do lado do servidor que precisam ser executadas
com privilégios restritos; as portas registradas que vão de 1024 a 49151 e também
são utilizadas principalmente para aplicações de servidor, mais também podem ser
usadas pelo cliente; e as portas dinâmicas ou privadas que vão de 49152 a 65535,
estas são atribuídas pelo sistema local conforme a necessidade. (TORRES, 2009)
1.4.3 CAMADA INTERNET IP
Esta camada corresponde a camada 3 do Modelo OSI, a camada de rede, e
tem a função de encaminhamento de pacotes utilizando a rede de interconexão,
oferece um serviço do tipo de datagrama que não exige que a origem e o destino
estabeleçam uma conexão para que ocorra uma transmissão, também não oferece
garantia de que um pacote enviado será recebido e não evita o recebimento de
pacotes duplicados. Esta camada define um formato oficial de pacote e um protocolo
chamado IP. (TORRES, 2001; MAIA, 2009)
Há alguns protocolos que podem operar nesta camada: IP, Internet Control
Message Protocol (ICMP), Internet Group Management Protocol (IGMP), Address
Resolution Protocol (ARP) e outros.
O protocolo IP pega os pacotes enviados da camada de transporte e adiciona
o endereço do computador que está enviando os dados e o endereço do
computador que os receberá. Em seguida é enviado para a camada de interface de
rede. (CBH, 2002)
O protocolo ICMP, que é um protocolo utilizado para a troca de informações
de controle, monitora e transmite informações de controle, inclusive a notificação de
destinos que não possam ser alcançados entre uma rede e outra. É utilizado por
algumas ferramentas para testes de conectividade, como por exemplo, o Ping e o
Traceroute. (TANENBAUM, 2003)
1.4.4 CAMADA DE INTERFACE DE REDE
Esta camada equivale as camadas 1 e 2 do Modelo OSI, ela recebe o
datagrama da camada de Internet e envia através da rede em forma de quadros,
33
esta camada não reconhece o endereço IP, ela utiliza o endereço MAC1 para
transmissão dos quadros, que é o endereço da placa de rede. Como o endereço IP,
o endereço MAC também é único de cada host. (TORRES, 2009; TANEMBAUM,
2003)
Quando uma máquina precisa se comunicar com a outra máquina, e sabe
apenas o endereço IP, é enviada uma mensagem a toda rede solicitando que a
máquina com este IP responda a solicitação enviando seu endereço MAC, para que
possa ser enviado o quadro. Isto é feito através do protocolo ARP, este protocolo
cria uma tabela com os endereços IP da rede e seus respectivos endereços MAC,
assim sempre que precisar se comunicar consulta a tabela, não precisando solicitar
a toda a rede que responda qual seu endereço. Quando o quadro é enviado, a
máquina de destino abre o quadro e passa para a camada de Internet, para que
possa confirmar se o endereço IP é o correto. (TANENBAUM, 2003)
Uma das tecnologias utilizada nesta camada é a Ethernet, que é uma
tecnologia de rede local de comutação de pacotes. (COMER, 2006)
O Frame Ethernet, é dividido em sete partes, a transmissão de cada quadro
inicia com o envio de 8 bytes contendo uma introdução e uma sequência de
inicialização que avisa os outros micros da rede de que uma transmissão está
prestes a começar. (DENARDIN, 2007)
De acordo com Torres (2009), quando é utilizada a arquitetura Ethernet em
uma rede local baseada no protocolo TCP/IP, esta camada passa a utilizar o padrão
Ethernet, dividindo-se em três partes: Controle de Link Lógico (LLC), Controle de
Acesso ao meio (MAC) e Física.
A camada de LLC inclui informações sobre os protocolos de alto nível,
passam os pacotes para ela ser transmitida, quando os pacotes chegam ao
receptor, o mesmo deve saber para qual protocolo serão entregues estes dados; a
camada MAC gera o quadro Ethernet, pegando os dados da LLC e acrescenta um
cabeçalho aos dados, são inseridas informações da placa de rede de origem e da
placa de rede receptora do quadro, depois é enviado para a camada física que
transmitirá o quadro pelo cabeamento da rede. Quando o mesmo chega ao seu
destino, é passado à camada superior, o MAC abre o quadro e verifica se os dados
1 Media Access Control (MAC) é um endereço único de controle de acesso com 12
dígitos hexadecimais que identifica uma placa de rede na rede. (TECMUNDO, 2010)
34
estão corretos e assim para camada superior. Ao chegar à camada de Transporte,
caso o protocolo for UDP, as informações serão passadas para camada superior
conforme a ordem de chegada, se algum pacote atrasar ele será descartado, porém
se for TCP, as informações primeiramente serão colocadas em ordem antes de
passar a camada superior, e se algum pacote não chegar, os pacotes serão
solicitados novamente. (TORRES, 2009)
No segundo capítulo, a seguir, será feita uma abordagem sobre segurança de
servidores Web, focando-se no servidor Apache, o qual será utilizado no
desenvolvimento deste trabalho.
35
2 SEGURANÇA EM SERVIDOR WEB
As empresas e os usuários individuais enxergam a segurança como uma
preocupação de segundo plano, entretanto ela é essencial para evitar tentativas de
invasão. (CERT, 2012)
A segurança de um servidor Web é tão importante quanto da própria rede,
pois ele armazena dados importantes que não podem ser violados.
Neste capítulo será feita uma abordagem sobre componentes de segurança
para um melhor entendimento.
2.1 AMEAÇAS À SEGURANÇA DE UMA REDE
A segurança não é uma tecnologia, logo não é possível comprar algum
equipamento ou desenvolver um software que torne sua rede segura, o que é
possível é administrar um nível de risco aceitável. (LIEIRA, 2012)
As ameaças em uma rede dependem dos recursos que seus usuários
utilizam, assim existe uma vasta lista de possíveis ameaças, serão citadas algumas,
como por exemplo:
Vírus: são programas mal intencionados que se espalham através de
downloads, falhas na segurança de um software e e-mails, feitos para causar
transtornos com diversas ações como, por exemplo, apagar arquivos,
capturar informação, alterar ou comprometer o funcionamento do sistema.
(ALECRIM, 2011)
Dados roubados por invasão: um invasor rouba dados confidenciais, como
por exemplo, uma senha de uma conta bancária, sem dúvida as invasões são
uma das piores ameaças. (LIEIRA, 2012)
Dados modificados por invasão: assim como a situação descrita acima, além
de invadir, um invasor pode modificar dados e com isto causar graves
consequências como, por exemplo, invadir o sistema de um laboratório e
modificar a fórmula de uma medicação. (LIEIRA, 2012)
Ser usado como ponte: um invasor pode usar o servidor de uma empresa
para fazer ataques à outra empresa, isto pode trazer consequências como ter
o site da empresa bloqueado e uma publicidade negativa. (LIEIRA, 2012)
36
Ameaça interna: funcionários da própria empresa que estejam descontes ou
até mesmo hajam de forma mal intencionada podem usar a rede da empresa de
forma negligente. (CISCO, 2012)
Figura 2.1- Algumas pessoas que podem causar problemas de segurança e os motivos para fazê-lo. Fonte: Tanenbaum, 2003, p. 543.
Perante a algumas ameaças, existem algumas formas de preveni-las.
2.1.2 PATCH DE SEGURANÇA
Após a liberação de um sistema operacional podem ocorrer erros ou o mau
funcionamento em alguns softwares, como bugs2 e algumas vulnerabilidades, estes
problemas podem ser ocasionados por diversos motivos e para que sejam corrigidos
é necessário um programa de correção de softwares que são chamados de patches.
O termo patch significa “remendo”, ou seja, corrige a imperfeição que está causando
o erro, seria a substituição do arquivo original com problemas por outro, ele é uma
ferramenta barata e rápida para essas soluções e não serve só para a correção de
erros, é também utilizado para fazer alterações em um software, melhorando sua
usabilidade e desempenho. (O QUE É PATCH, 2012; CCUEC, 1999)
Um sistema precisa garantir uma operação mais segura e estável, assim o
administrador de rede tem a necessidade de ter como rotina a aplicação de patch de
segurança. Já que furos na segurança estão surgindo constantemente, é muito
importante descobrir qual patch necessita ser aplicado em cada sistema de sua
rede, para assim ser aplicado em cada necessidade encontrada. (CCUEC, 1999) 2 Do inglês “inseto”, termo usado quando um erro é encontrado em algum programa e o mesmo age
de maneira inesperada ou fora do comum. (INFOESCOLA, 2013)
37
O programa patch é distribuído em pacotes que contém vários patches, são
conhecidos como “patch clusters”, isso facilita o download e a instalação deste
programa. Ele não deve alterar o funcionamento dos pacotes, pois tem como
objetivo o reparo de objetos instalados no sistema. Um sistema de identificação de
patch é interessante obter, pois o mesmo assegura que dois patches na tentativa de
corrigir os problemas, não substitua o mesmo arquivo. Caso necessário eles também
devem ser passíveis a remoção. Devem ser instalados periodicamente e serem
aplicados sem a consideração de possíveis efeitos colaterais, para garantir e manter
o sistema atualizado e corrigido de qualquer falha ou problemas que possam ocorrer
no sua execução. (CCUEC, 1999)
A figura abaixo demonstra a instalação de um Patch de segurança:
Figura 2.2 - Instalação de um Patch. Fonte: O que é Patch, 2012.
2.1.3 FIREWALL
A utilização de um firewall em um servidor Web aumenta a segurança na
rede, já que o mesmo é um programa que tem como objetivo proteção das máquinas
contra os acessos e tráfegos indesejados, protege os serviços e os dados que estão
rodando na máquina, age interceptando e impedindo a difusão de conexões não
autorizadas e/ou nocivas em uma rede. (PEDROSO, 2006)
38
Um firewall trabalha no controle de tráfego em uma rede, usando para isso
um conjunto de regras; ele determina qual o conteúdo que poderá trafegar pela rede,
bem como as conexões que serão aceitas ou negadas. Ele verifica os endereços de
origem e destino dos pacotes, as portas para quais são destinados e o status da
conexão, porém ele não verifica o conteúdo dos pacotes, logo não pode evitar vírus,
trojans 3, phishing4 ou outros ataques, isto fica a cargo dos antivírus, que verificam o
conteúdo dos arquivos. (MORIMOTO, 2008)
Um firewall pode se apresentar sob duas formas: software e hardware. Como
software é mais comum, pois são programas instalados na máquina para o controle
das conexões, tanto as solicitadas, como as que são disponibilizadas pelo servidor.
E na forma de hardware, existem equipamentos específicos para reforçar a
segurança de uma rede. São geralmente empregados em redes de grande porte,
principalmente em empresas que necessitam de mais segurança a suas máquinas.
(TECMUNDO, 2012)
Abaixo a figura demonstra como funciona o firewall, como se fosse realmente
uma barreira de acesso, onde somente quem está autorizado consegue passar.
Figura 2.3 – Firewall. Fonte: RDS, 2010.
3 É um tipo de programa malicioso que pode entrar em um computador disfarçado como um programa
comum e legítimo para possibilitar a abertura de uma porta para invasão. (TECMUNDO, 2013) 4 “Phishing” do inglês “pescaria” tem o objetivo de “pescar” informações e dados pessoais importantes através de mensagens falsas. (TECMUNDO, 2013)
39
2.1.4 CRIPTOGRAFIA
De acordo com Monteiro e Mignoni (2007, p.22) a palavra criptografia vem do
grego: kriptos = escondido, oculto e grifo = escrita. A criptografia usa a matemática,
em forma de algoritmos, para ocultar dados, ou seja, embaralhar informações. A
criptografia escreve em cifras ou códigos não decifráveis, chamados de cifragem.
Para decifrar a mensagem original, o destinatário, aplica o processo inverso, a
decifragem, que torna a mensagem legível novamente.
O nível de segurança das informações depende do tamanho da chave, logo
quanto mais bits uma chave possuir, mais difícil será de ser descoberta.
A criptografia provê recursos para garantir os seguintes serviços:
Autenticação: Garante a origem da informação, permitindo a comprovação da
origem.
Integridade: Assegura a veracidade da informação.
Confidencialidade: Garante acesso às informações apenas por pessoas
autorizadas.
Irretratabilidade: Assegura que o emissor da mensagem não negue que foi o
autor da mesma.
A Criptografia é uma fórmula matemática, em que é gerada duas chaves, uma
pública a outra privada. A chave pública é aquela que qualquer um pode ter, ela é
utilizada para criptografar os dados e a chave privada, é uma chave que só o
destinatário dos dados conhece, essa chave é utilizada para descriptografar os
dados (CERT, 2011; CBH, 2002)
Na figura a seguir demonstra-se a utilização das chaves para criptografar e
descriptografar uma mensagem.
Figura 2.4 - Criptografia em PHP e WebServices. Fonte: RECKZIEGEL, 2013.
40
2.1.5 AUTORIDADE DE CERTIFICAÇÃO
As Autoridades Certificadoras (ACs) são entidades que emitem certificados
digitais para servidores e utilizadores que precisem se identificar e garantir as suas
operações de forma confiável no mundo digital. Cada certificado digital emitido é
certificado e garantido pela AC responsável pela sua emissão, a AC recebe e
autentica a solicitação de certificado, emite e sela digitalmente o certificado e
gerencia os certificados emitidos. (MONTEIRO; MIGNONI, 2007)
Uma das entidades certificadoras mais conhecidas é a VeriSign, seus
serviços de autenticação fazem parte da Symantec Corporation, seus serviços
incluem SSL, Certificados SSL, verificação contra malware, infraestrutura de chave
pública (PKI) e etc. Ela oferece garantias sobre os certificados emitidos pela
entidade, seu grande problema é relacionado a preço, pois é mais elevado em
comparação com as outras entidades como a Thawte, Geotrust, GlobalSign, que
também são conhecidas mais acessíveis para usuários que necessitam deste tipo
de serviço. (VERISIGN, 2012; HARDWARE, 2008)
2.1.6 CERTIFICADO DIGITAL: E-CNPJ, E-CPF E TOKEN
Certificado digital é um documento eletrônico que permite identificar um
usuário, este que pode ser uma pessoa, empresa ou um site, permitindo que o
mesmo possa realizar transações, troca de informações, troca eletrônica de
documentos, dados, mensagens pela Internet e procedimentos pela Internet de
forma mais segura, com a transmissão sigilosa dos dados trafegados, garantindo a
privacidade e inviolabilidade, assim podendo disponibilizar serviços com maior
agilidade e mais acessibilidade e redução de custo. (ACCERTICA, 2012; ITI, 2012)
A Certificação Digital se faz necessário em processos que uma entidade, seja
física ou jurídica , precisa garantir sua autenticidade. (ACCERTICA, 2012)
Os documentos eletrônicos de identificação o e-CNPJ e o e-CPF, são
utilizados para garantir autenticidade dos remetentes ou destinatários dos
documentos e informações que trafegam na Web, garantindo o sigilo e
inviolabilidades dos mesmos. Eles foram criados para a facilitação do
relacionamento dos contribuintes e a Secretaria da Receita Federal. Eles são
utilizados para assinar digitalmente um documento. (ACCERTICA, 2012)
41
O e-CNPJ é utilizado para a comunicação virtual com as instituições
governamentais garantindo a autenticidade nas transações de pessoas jurídicas, ele
pode ter três formatos: e-CNPJ com cartão smart card e leitora, este que armazena
de forma segura o Certificado Digital; o e-CNPJ com token criptográfico, este que é
conectado diretamente no dispositivo de USB, para armazenamento do certificado
digital criptografado e e-CNPJ em arquivo, o qual é inserido como um arquivo no
computador que será utilizado.(CERTDIG, 2010)
A figura abaixo mostra o que é um e-CNPJ e um e-CPF:
Figura 2.5 - e-CNPJ e e-CPF. Fonte: Infocomex, 2013.
Figura 2.6 - Leitor de cartões.
Fonte: CDILAN, 2011.
O e-CPF é um documento em forma de certificado digital que é utilizado para
a comunicação com instituições governamentais ou não, ele garante a autenticidade
nas transações de pessoas físicas, com ele é possível fazer exportações e
42
importações, assinatura de documentos eletronicamente, ele comprova a autoria de
uma pessoa física, como o e-CNPJ ele também tem três formatos: e-CPF com
cartão smart card e leitora; e-CPF com token criptográfico e o e-CPF em arquivo.
(CERTDIG, 2010)
Em relação à segurança, pode-se citar um dispositivo físico que auxilia na
segurança pessoal do usuário, conhecido como Token que funciona como uma
chave eletrônica, que gera uma senha temporária de proteção das contas utilizadas,
esse dispositivo é muito útil para a proteção de senhas bancárias. Ele gera códigos
aleatórios instantâneos, o mesmo é necessário para a utilização junto à senha
bancária, assim é impossível a descoberta do código, já que o mesmo além de ser
gerado instantaneamente dura poucos segundos, criando senhas diferentes a cada
click. Este dispositivo é parecido como um chaveiro ou um pendrive. (TECMUNDO,
2009)
O Certificado digital tem o funcionamento através da utilização de chaves
criptográficas, já mencionada nos textos anteriores. Em sua vez a Autoridade
Certificadora vem com a terceira parte que transfere a autenticidade do Certificado
Digital. Faz-se também o uso do protocolo HTTPS como descrito a seguir.
(ACCERTIFICA, 2012) A figura abaixo mostra o que é um Token:
Figura 2.7 – Token. Fonte: Certiplus, 2012.
2.1.7 SECURE SOCKETS LAYER (SSL)
Com o crescimento do comércio eletrônico, as transações feitas pela Web,
precisavam se tornar mais confiáveis, então se criou uma demanda por conexões
seguras. Em 1995, a Netscape Communication Corp, introduziu um pacote de
segurança chamado Secure Sockets Layer (SSL), para atender essa necessidade.
(TANENBAUM, 2003)
43
O SSL constrói uma conexão segura entre duas máquinas, incluindo
negociação de parâmetros entre cliente e servidor, autenticação mútua de cliente e
servidor, além da comunicação secreta e proteção da integridade dos dados.
(TANENBAUM, 2003)
A função do SSL é aceitar as solicitações do navegador e as enviar ao TCP
para a transmissão ao servidor. Na pilha de protocolos habitual, o posicionamento
do SSL, podemos observar na tabela 2 abaixo que se trata de uma nova camada
colocada entre a camada de Aplicação e a de Transporte. Ele armazena as
comunicações entre um site Web e um navegador cliente. Após a conexão
estabelecida, o SSL tem a tarefa de manipular a compactação e a criptografia.
(NEMETH; SNYDER; HEIN, 2007; TANENBAUM, 2003)
Figura 2.8 - Como funciona o SSL. Fonte: Sierti, 2013.
Quadro 2.1 – Camadas e protocolos para um usuário doméstico navegando com SSL.
Aplicação (HTTP)
Segurança (SSL)
Transporte (TCP)
Rede (IP)
Enlace de dados (PPP)
Física (modem, ADSL, TV a cabo)
Fonte: Tanenbaum, 2003.
44
O SSL admite várias opções distintas e algoritmos, isto inclui a presença ou
ausência de compactação, algoritmos de criptografia a serem usados e algumas
restrições relativas a exportações relacionadas com os algoritmos de criptografia.
(TANENBAUM, 2003)
O protocolo SSL é formado por dois subprotocolos, um para estabelecimento
de conexão segura e outro para utilização deste. (TANENBAUM, 2003)
O SSL admite vários algoritmos simétricos de criptografia, como o DES triplo
com três chaves e SHA-1 com a finalidade de manter a integridade das mensagens.
Essa combinação é mais usada em aplicações que exige mais alta segurança, como
aplicações bancárias.
Para aplicações de comércio eletrônico, é usado o RC4 com uma chave de
128 bits como uma semente e pode expandir-se até um número maior para uso
interno. Depois é utilizado esse número para gerar um fluxo de chaves que é
submetido a uma operação XOR e utiliza o MD5 para autenticação das mensagens.
(TANENBAUM, 2003)
O RC4 tem algumas chaves fracas que são facilmente analisadas com o uso
da criptografia. Os navegadores que dão ao usuário a opção de escolherem o
conjunto de números de cifras devem ser configurados para utilizarem o DES e o
SHA-1 todo o tempo, embora seja mais lento que o RC4 e o MD5. (TANENBAUM,
2003)
Para que tenha proteção da informação que está alojada em um domínio sob
o protocolo SSL, é necessária a instalação de um certificado de segurança neste
domínio, assim o mesmo permite a criptografia da informação e a certificação do
proprietário da informação. (ARSYS, 2012)
2.1.8 HTTPS
O HyperText Transfer Protocol (HTTP) é um protocolo de transferência
utilizada pela Web, ele permite a comunicação entre cliente e servidor, o cliente
HTTP faz a solicitação ou requisição por um browser, um script ou qualquer
programa que utilize este protocolo para o servidor HTTP, que responde todas as
solicitações.
Essas mensagens são em formato de texto, podem ter dois tipos: solicitações
do cliente – servidor (request), ou resposta servidor – cliente (response).
45
Cada uma das interações entre cliente/servidos consistem em uma solicitação
ASCII, seguida por uma resposta RFC 822. (MAIA, 2009; TANENBAUM, 2003;
PONTOEDU, 2009)
O HTTP, não é um protocolo confiável, pois não há nenhum tipo de
criptografia em sua transferência de dados e envio de informações, por isso sua
mensagem pode ser violada, não tendo nenhum tipo de segurança. A versão segura
desde protocolo é chamada de HTTPS. (MAIA, 2009)
Quando o HTTP é usado sobre o SSL, denomina-se HTTPS (HTTP Secure).
Mesmo ele sendo um protocolo padrão, muitas vezes disponível na porta (80), com
HTTPS, ele se disponibiliza na porta TCP (443), permitindo o sigilo de transações
bancárias ou transações do comércio eletrônico na Web.
Os dados são transmitidos por uma conexão criptografada, que assim por sua
vez verifica a autenticidade do servidor e cliente, através de certificados digitais.
O HTTPS permite a encriptação dos dados, autenticação do servidor e a
integridade das mensagens e autenticação dos clientes. (MAIA, 2009; PONTOEDU,
2008; TANENBAUM, 2003).
Quando se acessa um site e seu endereço começa com “HTTPS://” e há um
cadeado em algum lugar da página, significa que o mesmo está usando o protocolo
HTTPS, como podemos observar na figura abaixo: (LEWAVETI, 2011).
Figura 2.9 - HTTPS Fonte: Elaborado pelas autoras.
46
3 SERVIDORES WEB
Neste capítulo é abordada uma visão geral sobre os servidores Web. São
citados resumidamente quais são os mais usados atualmente no mundo além do
foco no servidor Apache, o qual foi escolhido para a implementação deste trabalho.
3.1 CONSIDERAÇÕES INICIAIS
Os servidores Web armazenam e trocam informações com outras máquinas,
para que isto ocorra são necessários no mínimo dois participantes envolvidos em
cada troca de informações: um cliente, o qual solicita as informações, e um servidor,
que atende aos pedidos. Cada lado exige também um programa especializado para
negociar a troca de dados, no caso do cliente, é necessário um browser. (MALIMA,
2005)
Quando um site é acessado, há um servidor por trás daquele endereço
responsável por disponibilizar as páginas e os demais recursos que podem ser
utilizados. Quando se envia um e-mail ou efetua-se uma compra on-line, por
exemplo, um ou mais servidores Web são responsáveis por processar todas as
informações. Logo, um servidor Web é um computador que processa solicitações
HTTP o protocolo padrão da Web. Quando um site é acessado, este faz as
solicitações ao servidor Web do site através de HTTP e então recebe o conteúdo
correspondente. (INFOWESTER, 2006)
Atualmente os sites funcionam de forma mais complexa, eles não apenas
entregam o arquivo quando recebem uma requisição, o servidor Web processa o
código-fonte solicitado e executa o que este código manda e acessa o servidor de
banco de dados para buscar informações, assim quando todos os dados foram
buscados, a linguagem de programação utilizada entrega ao servidor Web o código
HTML 5 que deverá ser enviado ao cliente. (TORRES, 2009)
Na montagem de um servidor Web é preciso otimizar ao máximo o uso do
processador do servidor, senão a carga no servidor Web ficará muito alta e,
consequentemente, o site ficará mais lento. (TORRES, 2009)
5 HyperText Markup Language é uma das linguagens utilizadas para desenvolver páginas na
Internet. (INTERNEY, 2013)
47
Segundo Torres (2009), a otimização de servidores Web envolve dois pontos
primordiais: habilitar o servidor Web e compactar o código HTML a ser enviado ao
cliente e usar o máximo de recursos de cache de código, cache de variáveis e cache
de páginas quanto for possível.
Todos os recursos de cache diminuem o uso do processador do servidor e o
tempo de processamento de um rotina, o que faz com que o site fique mais rápido e
assim os resultados sejam entregues de forma mais rápida ao cliente. (TORRES,
2009).
Figura 3.1 - Modelo Cliente Servidor. Fonte: Wikiversity, 2013.
A figura abaixo demonstra de forma simples o funcionamento do servidor
Web:
1 - Navegador da Web solicita a página estática;
2 - Servidor Web localiza a página;
3 - Servidor Web envia a página para o navegador solicitante.
48
Figura 3.2 - Acesso Ao Servidor Web. Fonte: Adobe, 2012.
A figura abaixo exibe a arquitetura do servidor Web:
Figura 3.3 - Arquitetura Web. Fonte: GURGEL, 2012.
Existem vários servidores Web, porém os principais utilizados atualmente
são: Lighttpd, o IIS, o Nginx e o Apache.
49
3.2 LIGHTTPD
Foi criado por Jan Kneschke, em março de 2003 e utiliza licença BSD. Foi
projetado para a otimização de ambientes de alto desempenho, faz a utilização de
pouca memória e oferece um bom gerenciamento de carga da CPU.
Em relação à velocidade, segurança, aderência, flexibilidade, uso do
processador e memória pode-se comparar a servidores consagrados como o
Apache. Possui uma ótima implementação dos protocolos FastCGI6, CGI7, SSL e
SCGI8. (OFICINADANET, 2010)
3.3 IIS
O servidor Internet Information Services (IIS), é um servidor flexível, seguro e
de fácil gerenciamento para a hospedagem de páginas na Web, tem arquitetura
aberta e é um servidor do Windows Server. Este servidor tem uma arquitetura
modular, que oferece os benefícios como os de componentização (gerados por
componentes independentes que se pode facilmente adicionar, remover e substituir),
extensibilidade (estender e substituir os recursos do servidor, agregando valor às
aplicações Web hospedadas no IIS) e ASP.NET Integração (recursos de ASP.NET,
incluem autenticações baseadas em filiação, formulários e etc, proporcionando a
integração em todo o aplicativo da Web). Ele fornece uma arquitetura de
processamento de solicitação quem inclui o Windows Process Activation Service
(WAS), permitindo usar os protocolos diferentes de HTTP e HTTPS. (IIS, 2012)
6 FastCGI (Fast Common Gateway Interface) define o modo como as informações são transmitidas
entre o servidor Web e uma aplicação FastCGI externa. Quando um pedido é enviado, o servidor Web inicia uma aplicação FastCGI para processar o pedido e gerar respostas dinâmicas para devolver ao cliente.
7 CGI (Common Gateway Interface), também chamado de script CGI, é um programa executado em
um servidor em resposta a um pedido de um browser.
8 SCGI é um substituto para a interface de protocolo CGI, sendo um padrão para aplicações de
interface com servidores HTTP semelhante ao FastCGI, mas projetado para ser mais fácil de implementar.
50
3.4 NGINX
Seu primeiro lançamento público foi em 2004, criado pelo programador Igor
Sysoev, é um servidor de Proxy reverso9 HTTP de alta performance, um servidor
Web de utilização de memória baixa, estável, com configuração simples, é gratuito e
de código aberto e tem como funcionalidades cache de conteúdo, compreensão,
largura de policiamento, balanceamento de carga, multiplexação de conexão e
reutilização (WIKINGINX, 2012; NGINX, 2013)
Segundo o site Netcraft (2012), o servidor Nginx teve o dobro do aumento de
quota no mercado, comparado ao ano anterior, assim aumentando sua participação
para 5,48%.
3.5 SERVIDOR APACHE
Este servidor é desenvolvido em uma plataforma de software livre, ele
processa as solicitações no protocolo padrão na Web, o HTTP, também executa
outros protocolos como o HTTPS (o protocolo HTTP combinado com a camada de
segurança SSL e o FTP10 (File Transfer Protocol). O seu funcionamento é baseado
na estrutura cliente-servidor, onde o servidor Web Apache recebe as requisições do
browser (cliente) e responde em HTML (servidor). Ele é conhecido pelo seu
excelente desempenho, segurança, seus recursos e por sua compatibilidade com
vários tipos de plataformas. (AOCUBO, 2012; ALECRIM, 2006)
3.5.1 BREVE HISTÓRICO DO APACHE
O servidor Apache (Apache Server) foi desenvolvido em 1995, a princípio,
através do trabalho de Rob McCool, mas foram Brian Behlendorf, Cliff Skolnick,
Brandon Long e Beth Frank, que continuaram com o desenvolvimento do servidor
9 O proxy reverso é um servidor entre a Internet e os servidores web internos de uma empresa. As
requisições externas são direcionadas a um servidor interno por meio de um roteamento feito pelo proxy reverso. Dessa forma, ele é a única interface para as requisições externas. 10
File Transfer Protocol (FTP) é um protocolo para a transferência de arquivos que se realiza na conexão entre um servidor Internet e um usuário.
51
pela National Center of Supercomputing Applications (NCSA) e se juntaram ao
Apache Group. (ALECRIM, 2006)
Brian Behlendorf e Cliff Skolnick passaram a controlar "patches" (adição de
recursos ou correções) atrás de uma lista de discussão e dessa lista formou-se um
grupo constituído de oito pessoas.
Aparentemente há duas razões para o nome Apache, a primeira é que o
nome vem de “patchy”, do inglês “de qualidade irregular”, que seria um trocadilho
com patches, que em inglês significa algo como “um pequeno remendo” ou
“melhoria no software”, devido ao Apache ter sido criado sobre códigos já existentes
aos quais foram adicionados diversos patches. A segunda, e confirmada pelos
autores, é que o nome do servidor faz referência à tribo de nativos americanos
Apache, a qual tinha grande resistência e estratégias superiores, logo seria uma
alusão à estabilidade do Apache e sua variedade de ferramentas que lidam com
qualquer tipo de solicitação na Web. (ALECRIM, 2006)
O servidor Apache teve sua primeira versão oficial (0.6.2) lançada em 1995.
De 1995 até hoje ocorreram várias mudanças no projeto, talvez a mais importante
tenha sido o Shambhala, uma arquitetura para o Apache desenvolvida por Robert
Thau; ele agradou, principalmente por seu melhor gerenciamento de memória, que
acabou sendo incorporado definitivamente ao servidor. Surgia então a versão 0.8.8,
que tinha, além do Shambhala, recursos da versão 0.7.x. Após uma série de
aperfeiçoamentos, testes e de uma documentação nova (feita por David Robinson),
o Apache 1.0 foi lançado em dezembro de 1995. (ALECRIM, 2006)
Apache é executado principalmente em sistemas operacionais UNIX (Linux,
Mac OS X, Solaris e BSD Unix) e Windows, ele é utilizado por muitos produtos,
incluindo o IBM WebSphere e Oracle Corporation, e também é apoiado pelo
desenvolvimento de ferramentas Borland Delphi e Kylix, e pelo Drupal CMS.
(DOMINIOHOST, 2012) O Apache é um software livre, logo seu código-fonte pode
ser estudado e alterado, além de ser utilizado gratuitamente. (ALECRIM, 2006)
Principais características do Apache:
Possui suporte a scripts cgi usando linguagens como Perl, PHP, Shell Script,
ASP, etc;
Tem suporte a autorização de acesso podendo ser especificadas restrições
de acesso separadamente para cada endereço/arquivo/diretório acessado no
servidor;
52
Autenticação requerendo um nome de usuário e senha válidos para acesso a
alguma página/subdiretório/arquivo (suportando criptografia via Crypto e
MD5);
Negociação de conteúdo, permitindo a exibição da página Web no idioma
requisitado pelo Cliente Navegador;
Suporte a tipos mime;
Personalização de logs;
Mensagens de erro;
Suporte a virtual hosting (é possível servir duas ou mais páginas com
endereços ou portas diferentes através do mesmo processo ou usar mais de
um processo para controlar mais de um endereço);
Suporte a IP virtual hosting;
Suporte a name virtual hosting;
Suporte a servidor Proxy FTP e HTTP, com limite de acesso, caching (todas
flexivelmente configuráveis);
Suporte a proxy e redirecionamentos baseados em URLs para endereços
internos;
Suporte a criptografia via SSL e Certificados digitais;
Módulos DSO (Dynamic Shared Objects) permitem adicionar/remover
funcionalidades e recursos sem necessidade de recompilação do programa.
(ALECRIM, 2006).
3.5.2 UTILIZAÇÕES DO APACHE
Neste trabalho foi utilizado o Apache HTTP Server, pois além de ser um
software público de acordo com Alecrim (2006), ele é o mais bem sucedido,
conhecido e usado devido a excelente desempenho, segurança, compatibilidade
com diversas plataformas e todos os seus recursos.
De acordo com a pesquisa da Netcraft (2012), ele é o mais utilizado, pois está
a frente da concorrência, sendo que de dois em cada três hosts é utilizado o
Apache.
Devido à sua participação no mercado e qualidades ressaltadas, foi feito o
uso do Apache na implementação deste trabalho.
53
Figura 3.4 - Participação de mercado dos servidores Web. Fonte: NETCRAFT, 2102.
No próximo capítulo é feita a abordagem dos tipos de ataques feitos à
servidores web.
54
4 TIPOS DE ATAQUES MAIS COMUNS EM SERVIDORES WEB
Atualmente os servidores Web estão enfrentando diversas tentativas de
invasões e ataques, esses ataques são técnicas usadas na tentativa de burlar a
segurança, explorando as vulnerabilidades do servidor.
Os invasores são grupos de pessoas mais conhecidos como hackers, estes
que existem desde o início da Internet, os mesmos utilizam estas tentativas de
ataques para demonstrar seus ideais e objetivos. Estes ataques podem ser feitos de
várias formas, neste capítulo serão abordadas os tipos de ataques mais comuns nos
servidores Web. (CCUEC, 1999; TECNOMUNDO, 2013)
Exploit – É um programa ou códigos utilizados para explorar as
vulnerabilidades específicas de um servidor a qual ele foi incorporado. Por
esse motivo existem diferentes tipos de Exploits, um específico para cada tipo
de aplicativo, tipo de falhas ou sistemas operacionais. Eles podem ser
programados para explorar o sistema local ou remotamente. Isso varia quanto
à forma ou seu poder de ataque. Os ataques podem provocar instabilidade no
sistema, assim diminuindo a segurança temporariamente. Uma vez infiltrado
pode resultar em uma simples negação de serviço (DOS – Denial of Service)
ou efeitos mais graves como o acesso privilegiado ao servidor hospedado,
causando grandes prejuízos dentro da rede. (INVASÃO, 2008; HARDWARE,
2008)
Buffer Overflow – Esse ataque tem como objetivo a execução de um código
por um programa que permite o acesso da memória, esse processo tenta
armazenar os dados excedendo o limite do tamanho determinado de um
buffer, assim podendo subscrever a área da memória, incluindo alguns
endereços de controle de fluxo, que não passa de ponteiros para a próxima
instrução a ser executada pelo processador, portanto provocando o desvio de
fluxo normal de um processo para que possa executar o código do atacante.
Com a injeção desse código no servidor remoto, é possível permitir execução
de várias ações como eliminação de regras de firewall, permitindo a entrada
do invasor. (DRWHITEHAT, 2008; PTKIOSKEA, 2013)
55
Como podemos ver na figura a seguir, o ataque consiste em um envio de
dado que excede o tamanho do espaço permitido do buffer11 junto com o código do
atacante, fazendo com que o endereço do retorno, seja sobreposto para apontar
para o código do atacante:
Figura 4.1 – Buffer Overflow.
Fonte: DRWHITEHAT, 2008.
Denial of Services (DoS) – Técnica de ataque mais conhecida como
“Negação de Serviço”, tem como objetivo, impedir que os usuários tenham
acesso a um serviço disponível, tornando o servidor atacado indisponível.
Para que isso aconteça é necessário que o computador atacante envie um
grande volume de requisições para um determinado serviço, o servidor, não
tendo um filtro ou regras de firewall que permitem o controle de volume de
acesso a páginas de um determinado endereço, entende que precisa
responder a todos as requisições assim consumindo todos os recursos do
servidor, permitindo um consumo excessivo destes recursos causando a falha
de comunicação entre servidor e usuário. Esse ataque também é feito pela
geração excessiva de tráfego de dados, ocupando toda a banda, causando
sua indisponibilidade de acesso ao computador ou aos serviços oferecidos
pela a rede e pela a exploração das vulnerabilidades nos programas, fazendo
com que um determinado serviço encontra-se inacessível ao usuário. Quando
11
Buffer – É uma região que armazena a memória temporária de dados que estão sendo movidos da sua origem para seu destino, utilizados para escrita e leitura de dados. (TECNOMUNDO, 2013)
56
o ataque é utilizado por vários computadores coordenados, recebe o nome de
Negação de Serviço Distribuído ou Distributed Denial of Services (DDoS) que
são milhares de hosts12 localizados em diferentes lugares, mandando
requisições simultaneamente, para um determinado serviço, assim causando
sua indisponibilidade de acesso. Para que esse ataque seja realizado é
necessário um número grande de computadores que previamente foram
comprometidos, fazendo parte de botnets13, estes hosts controlados são
chamados de computadores zumbis, que trabalham de forma normal
aparentemente, até participarem de ataques sendo controlados sem o
conhecimento dos seus donos. (CERT, 2013; HARDWARE, 2013)
Segue na figura abaixo, o funcionamento de um ataque de Negação de
Serviço Distribuído ou Distributed Denial of Services (DDoS). Para esse ataque um
hacker precisa criar uma rede zumbi (botnets), infectando vários computadores,
podendo ser milhares deles que respondem ao um computador mestre que tem
como objetivo atacar seu alvo simultaneamente deixando os seus serviços
indisponíveis.
Figura 4.2 – Esquema de como funciona um ataque DDoS. Fonte: ATS, 2012.
12
Hosts – São máquinas ou computadores conectados em uma rede que contém um número de IP e um nome definido, eles são responsáveis pelo o envio e armazenamento de dados. (TECHTUDO, 2013) 13
Botnets – É uma rede de computadores infectados por bots (abreviação de robot). Bot é um programa malicioso que realiza tarefas específicas dentro do computador infectado, explorando programas, arquivos e informações gravadas em discos e são controlados remotamente pelo invasor, que são utilizados para realizar ataques simultâneos em computadores e servidores. (TECNOMUNDO, 2013)
57
Backdoor – Em português “porta dos fundos”, consiste em falhas de
seguranças no sistema operacional, onde o invasor deixa uma porta aberta
para as invasões futuras, sem ser detectados pelo firewall. Assim o invasor
utiliza para a instalação de vírus ou aplicativos de controle, que possam obter
esse controle através de uma rede ou da Internet, fazendo uma ligação direta
onde o cliente é o atacante e o servidor é a máquina atacada. O cliente tem o
controle sobre o servidor, permitindo que o cliente, apague, crie, renomeie,
altere qualquer arquivo, execute os comandos, altere a configuração do
sistema, controle a configuração do hardware e o envio de dados coletados
para alguns destinos específicos, como e–mails e servidor FTP.
(TECNOMUNDO, 2013; CRIMES, 2013)
Sniffing - É uma técnica de ataque realizada por uma ferramenta chamada
sniffer14, que tem como objetivo interceptar e registrar o tráfego de dados de
uma rede. Essa ferramenta captura os dados que estão sendo trafegados e
os decodificam analisando o conteúdo. Essa técnica pode ser utilizada pelos
próprios administradores de redes para testar, analisar o desempenho e o
monitoramento da rede em questão. Entretanto, pode ser usada por invasores
para captura de informações mais sensíveis que estão trafegando em uma
rede, como por exemplo, senhas e cópia de arquivos importante, assim
violando a confidencialidade das informações que trafegam em uma rede, os
dados sensíveis que não são encriptados, tornam-se alvos fáceis para os
atacantes. Para dificultar esse tipo de ataque é necessário que as mensagens
sejam transmitidas criptografadas, utilizando os protocolos encriptados como,
por exemplo, o Secure Shell (SSH) e o HyperText Transfer Protocol Secure
(HTTPS), assim dificultando o acesso as informações do atacante.
(HARDWARE, 2013; CERT, 2013; PTKIOSKEA, 2013)
Port Scanning Attack – Essa técnica de ataque consiste em enviar uma
mensagem a uma porta e esperar uma resposta, caso obtenha uma resposta,
com base no dado recebido indica se a porta está disponível ou não, o tipo de
serviço que está disponibilizado e programas instalados indicando a melhor
14
Sniffer – Programa conhecido como analisador de rede, sua função é monitorar as atividades de uma rede, podendo interceptar e registrar o tráfego de dados, capturando os pacotes e os decodificando e analisando o seu conteúdo de acordo com o protocolo definido ou outras especificações. (TECNOMUNDO, 2013)
58
maneira de invasão. Essa técnica usualmente é utilizada pelos próprios
responsáveis pela segurança da rede para o descobrimento de uma possível
vulnerabilidade no servidor, entretanto, para um invasor o ataque é utilizado
para descobrir essas possíveis vulnerabilidades dos serviços disponíveis e,
assim, traçar as estratégias de ataque. (CERT, 2013; TECNOMUNDO, 2013)
Spoofing – É uma técnica de ataque que permite mascarar seu IP, DNS,
email, entre outras aplicações, ou seja, ele se passa pelo verdadeiro. Essa
técnica é possível, pois as comunicações entre as máquinas pertencentes a
uma rede são utilizadas endereços confiáveis para que a troca de
informações entre elas aconteça. Como o atacante assume a identidade de
um endereço confiável, a vítima sem perceber o perigo acaba aceitando uma
aplicação, ou um serviço oferecido pelo invasor. Este tipo de ataque permite a
propagação de códigos maliciosos, envio de spam, roubos de dados,
consumo excessivos dos recursos de um servidor entre outras ações,
dependendo de que forma e do objetivo em que ela for aplicada.
(MICROSOFT, 2013; CERT, 2013)
Perante o que foi abordado nas descrições acima, podem existir vários tipos
de ataques e ameaças a um servidor Web e um dos mais utilizados é o ataque de
negação de serviço mais conhecido como DoS.
Portanto no próximo capitulo será feita a implementação de um ataque DoS
no servidor Apache e uma ferramenta utilizada para prevenir este tipo de ataque.
59
5 IMPLEMENTAÇÃO: UTILIZANDO A FERRAMENTA SLOWLORIS
NO BACKTRACK PARA REALIZAR O ATAQUE DOS EM UM
SERVIDOR APACHE
Um servidor configurado em sua forma normal pode ser vulnerável a
inúmeros ataques de pessoas mal intencionados. Este capítulo mostra um ataque de
negação de serviço (DoS) ao servidor Web Apache, utilizando a ferramenta
Slowloris através do Backtrack 5 R3.
BackTrack é um sistema operacional Linux, baseado no WHAX, Whoppix e
Auditor, essa ferramenta é voltada para testes de penetração e testes de segurança,
promovendo formas mais rápidas de detecção e atualização do banco de dados das
ferramentas de segurança, ela é muito utilizada pelos profissionais de segurança,
auditores, analistas, hackers éticos e etc. Este sistema pode ser inicializado
diretamente pelo CD, pendrive, máquinas virtuais ou diretamente do disco rígido.
Sua primeira versão foi dada em 26 de maio de 2006, desde então foram mais
quatro versões, onde a última a BackTrack 5 R3, foi em lançada em 13 de agosto de
2012. (GIVAROTO; SANTOS, 2013; BACKTRACK, 2013)
Atualmente, encontram-se mais de 300 ferramentas no BackTrack para teste
de penetração e ainda existem algumas certificações que o utilizam como
ferramentas principais oferecidas pela Offenssive Security. (BACKTRAKLINUX,
2013)
Slowloris é uma ferramenta desenvolvida por Robert "RSnake" Hansen e é
utilizada para a execução do ataque de negação de serviço (DoS). Com seu script
escrito em Perl, não se faz necessário a utilização de várias máquinas zumbis e sim
com apenas uma máquina e com a utilização mínima de banda para a execução
desse ataque. Seu nome foi baseado em um primata do sudeste de Ásia chamado
Slow Loris, esse animal se move lentamente entre as árvores e é o único primata
venenoso. (SLOWLORIS, 2013)
Essa ferramenta ao invés de abrir uma grande quantidade de conexões maior
que um servidor suporta, a mesma envia as solicitações HTTP parciais, assim
mantendo as conexões em aberto. Em pequenos intervalos ela continua o envio de
cabeçalhos sem interrupção evitando que a conexão seja finalizada, assim o
servidor fica incapaz de responder novas solicitações HTTP. Para que esse ataque
se realize, o Slowloris precisa esperar que haja uma conexão com o servidor antes,
60
para que assim seja bem sucedido, por ele ter um alto tráfego de rede pode demorar
para que essa conexão seja liberada. Enquanto a conexão não for liberada, outros
usuários que estiverem fazendo solicitações ao servidor, não irão perceber, pois
suas solicitações serão concluídas, assim que o Slowloris estiver se comunicando
com o servidor e enviando suas solicitações, os outros usuários ao reiniciar suas
conexões, já não terão resposta de suas solicitações e ficarão aguardando a
lentidão do servidor, até que seja interrompido o ataque pelo agressor. Esse tipo de
ataque DoS só prejudica o servidor Web, não os demais serviços, quando ele é
interrompido o servidor volta a seu estado normal. O Slowloris tem uma
característica bem útil incorporada, ele tem a possibilidade de ser alterado para o
envio de diferentes cabeçalhos de host, caso seu alvo principal seja um host virtual
os logs são separadamente armazenados para cada host. Enquanto o ataque está
em andamento o arquivo de log não é registrado até se concluía a conexão, assim é
possível manter um servidor sendo atacado de cada vez sem nenhum log ser
registrado, assim o ataque não é percebido em seu momento atuação. Essa
ferramenta permite que ao interromper esse ataque, o servidor retorne em poucos
segundos o seu funcionamento. Tornando-se ideal para ataques que necessitam de
breves momentos de inatividade. (SLOWLORIS; KUHNAST, 2013)
Segue abaixo a lista de servidores Web que são possíveis a utilização o
ataque DoS com a ferramenta Slowloris:
Apache 1.x
Apache 2.x
Dhttpd
GoAhead WebServer (SLOWLORIS, 2013)
E em seguida a lista dos servidores que não são afetados por esse tipo de
ataque pela ferramenta Slowloris:
IIS6.0
IIS7.0
Lighttpd
Lula
Nginx
Cherokee
61
NetScaler
Cisco CSS (SLOWLORIS, 2013)
5.1 IMPLEMENTAÇÃO
Para o teste de ataque DoS são dados os seguintes passos:
1. Inicie o BackTrack 5 R3 normalmente e abra sua interface gráfica com o
comando
$ startx
Figura 5.1 - Tela inicial do Bactrack 5 r3. Fonte: Elaborado pelas autoras, 2013.
2. Já com o arquivo de texto do “slowloris.pl” devidamente salvo no
Desktop abra o terminal e digite as seguintes linhas de comandos:
$ cd Desktop
$ ls
$ chmod +x slowloris.pl
$ perl ./slowloris.pl –dns 192.168.56.102
62
Sendo 192.168.56.102 o IP do Servidor Apache alvo do ataque.
Figura 5.2 – Linhas de comando para executar o Slowloris no Bactrack. Fonte: Elaborado pelas autoras, 2013.
3. Após digitar essas linhas de comando e apertar “ENTER” e aparece a
seguinte tela:
Figura 5.3– Building sockets no Slowloris no Bactrack. Fonte: Elaborado pelas autoras, 2013.
63
Durante o ataque aparece o envio dos pacotes como mostrado na figura:
Figura 5.4 – Envio de pacotes ao servidor atacado pelo Slowloris.
Fonte: Elaborado pelas autoras, 2013.
O servidor alvo antes do ataque:
Figura 5.5 – Servidor antes do ataque. Fonte: Elaborado pelas autoras, 2013.
64
Figura 5.6 – Servidor durante o ataque. Fonte: Elaborado pelas autoras, 2013.
O servidor durante o ataque teve como resultado lentidão em seu acesso e
até mesmo sua “derrubada” por alguns segundos como na figura acima, logo o
ataque DoS com o Slowloris obteve resultados.
Tendo como base pesquisas de como prevenir ataques DoS, foi utilizado o
módulo extra do Apache denominado mod_qos, com o objetivo de evitar a
sobrecarga no servidor, garantindo, assim, um desempenho satisfatório do servidor
mesmo em situações de ataques Ele serve para implementar os mecanismos de
controle podendo oferecer níveis diferentes de prioridade as diferentes solicitações
HTTP. Controla o número de solicitações simultâneas, determinando quais os
serviços que serão servidos, evitando que o servidor fique sobrecarregado para
atender todos os pedidos devido à falta de processos livres. Esse módulo "coleta
diferentes atributos", como: a URL do pedido, solicitação HTTP e cabeçalhos de
resposta, o endereço IP de origem e o código de resposta HTTP, a quantidade de
solicitações simultâneas que são feitas para o servidor . (LOCAWEB, 2013;
OPENSOURCE, 2013)
Segundo o Opensource (2013) o mod_qos implementa mecanismos de
controle para o gerenciamento de:
O número máximo de solicitações simultâneas para um local / recurso (URL)
ou host virtual.
65
Limitação da largura de banda, tais como o número máximo permitido de
solicitações por segundo a uma URL ou o valor máximo / mínimo de kbytes
baixados por segundo.
Limita o número de solicitação de eventos por segundo (condições especiais
de solicitação).
Pode "detectar" pessoas muito importantes (VIP), que podem acessar o
servidor Web sem ou com menos restrições.
Linha de pedido genérico e filtro de cabeçalho para negar operações não
autorizadas.
Pedido corpo limitação de dados e filtragem (requer mod_parp).
Limitações quanto ao nível de conexão TCP, por exemplo, o número máximo
de conexões permitidas a partir de um único endereço IP de origem ou controle
dinâmico de keep-alive.
Prefere endereços IP conhecidos quando o servidor fica sem conexões TCP
livres.
Sendo assim foi utilizado o mod_qos para prevenir este tipo de ataque.
Após terminar o download do mod_qos via terminal, foi usado o Apxs2 para
compilar o módulo da seguinte forma:
$ tar xvzpf mod_qos-9.9.tar.gz
$ cd mod_qos-9.9/apache2
$ apxs2 -ci mod_qos.c
Depois, foi criado o arquivo:
$ cd /etc/apache/mods_available/
$ vi qos.load
Com o seguinte conteúdo:
$ LoadModule qos_module usr/lib/apache2/modules/mod_qos.so
E o arquivo:
$ vi qos.conf
Com as seguintes configurações:
66
Quadro 5.1 Configurações do mod_qos
<IfModule mod_qos.c>
QS_ClientEntries 1000
# Lida com conexões de até mil IPs diferentes
QS_SrvMaxConnPerIP 10
# Permite 10 ligações por IP
MaxClients 256
# Número máximo de conexões TCP ativas é limitada a 256
QS_SrvMaxConnClose 180
# Desativa keep-alive quando 70% das conexões TCP estão
ocupadas
LimitRequestFields 30
# Limite de cabeçalho do pedido e do corpo, limita uploads
e mensagens com pedidos também
QS_LimitRequestBody 102400
# Restringe o tamanho total do corpo do pedido HTTP enviado
a partir da utilização do cliente
</IfModule>
Fonte: Elaborado pelas autoras
Logo após salvar o arquivo configurado, carregou-se o módulo com o
seguinte comando:
$ a2enmod qos
Como o módulo foi carregado com sucesso a mensagem exibida foi:
$ Module qos already enabled
67
Após isto o Apache foi reiniciado:
$ /etc/init.d/apache2 restart
Fazendo o teste Slowloris sem o módulo do mod_qos carregado no Apache
as conexões estabelecidas entre as maquinas foram de grande quantidade como
mostradas na figura:
Figura 5.7 – Conexões estabelecidas entre o Slowloris e o Apache no Servidor durante o ataque. Fonte: Elaborado pelas autoras, 2013.
Com o módulo do mod_qos carregado no Apache há diferença notável no
desempenho do servidor que se mostrou praticamente inalterado sem sofrer
degradação ou lentidão ao ser acessado.
O número de conexões estabelecidas entre as máquinas em sua maioria
ficaram em espera, como mostrado na figura a seguir, ao contrário de quando o
módulo não estava carregado e o BackTrack conseguiu estabelecer diversas
conexões com o Apache.
68
Figura 5.8 – Conexões em espera entre durante o ataque. Fonte: Elaborado pelas autoras, 2013.
69
CONCLUSÃO
Os servidores web são responsáveis por armazenar e trocar informações com
outras máquinas, ou seja, há pelo menos dois participantes envolvidos em cada
troca de informações: um cliente, que solicita informações, e o servidor, que atende
a esses pedidos. Sendo assim, o fato de um servidor estar exposto às inúmeras
requisições e troca de informações faz com que sua segurança seja um fator
extremamente importante a ser considerado, pois o mesmo pode sofrer várias
ameaças e ataques, por pessoas com muita experiência, por exemplo, “hackers”,
que sempre estão pesquisando formas cada vez mais eficazes de ataques para
prejudicar e burlar a segurança de um servidor web.
Portanto, o profissional responsável pela segurança precisa estar atento,
atualizado e ser conhecedor das várias formas e ferramentas de ataque, como
também das ferramentas de segurança para assim tentar da melhor forma possível
evitar qualquer tipo de falha ou problema no servidor que sejam causados por tipos
ou técnicas de penetração em servidores, sendo assim deve-se manter o servidor
sempre protegido. Contudo, as ferramentas de segurança precisam ser
frequentemente estudadas e atualizadas, pois os ataques evoluem constantemente
para tentar corromper as novas ferramentas.
É evidente que atualmente não há servidor que seja imune a todos os tipos de
ataque, assim, o profissional responsável deve sempre estar atento a mudanças e
alterações que possam existir na rede, logo, ela deve ser monitorada
constantemente para evitar danos maiores.
Um dos ataques mais utilizados atualmente para atingir grandes servidores é
o ataque de negação de serviço, mais conhecido como DoS e devido ao fato de ser
um dos mais usados foi o alvo de estudo deste trabalho.
O servidor Web Apache, o qual foi utilizado, já vem com suas configurações
básicas de segurança, entretanto percebemos que é muito suscetível às ameaças
impostas pelos invasores. Após muitas pesquisas sobre como evitar ou minimizar
ataques DoS em servidores web constatamos que uma ferramenta eficaz e fácil de
ser implementada é o mod_qos., o qual pode ser usado para evitar a sobrecarga do
servidor, garantindo o nível de desempenho dos recursos mesmo em situações de
ataques DoS.
70
Levando em consideração os aspectos que envolvem ataques DoS e uma
alternativa de segurança no servidor Web Apache, concluímos que para uma eficaz
proteção de um servidor que é exposto a esse tipo de ataque é necessária a
utilização de inúmeras ferramentas de segurança cuja a eficácia de uma delas
demonstramos, ainda que imperfeita , pois como dito sabemos que é difícil bloquear
ataques, mas é possível minimizá-los como foi exemplificado neste trabalho.
71
REFERÊNCIAS BIBLIOGRÁFICAS
2DC. Modelo TCP/IP. 2012. Disponível em
<http://www2.dc.uel.br/~sakuray/EspecComunicacao%20de%20dados/Carlos%20Trevisan%20-%20Danilo%20Filitto/tcpip.htm> Acesso em: 08 mar. 2012.
ACCERTIFICA. Certificado Digital. 2012. Disponível em
<http://www.progerecs.com.br/home> Acesso em: 25 Abr. 2012.
ADOBE. Processamento de páginas da Web estáticas. 2012. Disponível em:
<http://help.adobe.com/pt_BR/Dreamweaver/10.0_Using/WSE282D4DA-F2A4-4ac2-91A2-823B3A8C5707.html> Acesso em: 23 mai. 2012.
ALECRIM, Emerson. Conhecendo o Servidor Apache (HTTP Server Project).
2006. Disponível em: <http://www.infowester.com/servapach.php> Acesso em: 25 mai. 2012.
ALECRIM, Emerson. Vírus de computador e outros malwares: o que são e como agem. 2011. Disponível em: <http://www.infowester.com/malwares.php> Acesso em:
10 dez. 2013.
AOCUBO. Servidor Web Apache. 2012. Disponível em: <http://aocubo.tecnologia.ws/instalando-servidor-apache/> Acesso em 27 Mai 2012.
ATS, Gustavo. Entenda o que são os ataques DoS e DDoS. 2012. Disponível em: <http://www.techtudo.com.br/artigos/noticia/2012/01/entenda-o-que-sao-os-ataques-dos-e-ddos.html> Acesso em 10 dez. 2013.
BACKTRACK. Backtrack Linux. 2013. Disponível em: < http://www.backtrack-linux.org/> Acesso em: 07 de out. 2013.
BACKTRACKLINUX. Backtrack Linux – Penetration Testing Distribution. 2013. Disponível em: <http://www.backtrack-linux.org/> Acesso em: 10 dez. 2013.
BHPORTAL. Cabeamento de redes. 2012. Disponível em
<http://www.bhportal.com.br/manutencao/lista-servicos/rede.php> Acesso em: 24 fev. 2012.
CBH. Criptografia. 2002. Disponível em <http://www.clubedohardware.com.br/artigos/667> Acesso em: 20 abr. 2012
72
CCUEC. Solaris – Aplicando Patches. 1999. Disponível em
<http://www.ccuec.unicamp.br/revista/infotec/admsis/admsis4-1.html> Acesso em: 30 mar. 2012.
CDILAN. Revenda Certificados Digitais Serasa. 2011. Disponível em <http://cdilan.com.br/forum/topics/revenda-certificados-digitais-serasa> Acesso em: 10 dez. 2013.
CERT. Centro de Estatísticas, Respostas e Tratamentos de Incidentes. 2012.
Disponível em <http://www.cert.br/docs/seg-adm-redes/seg-adm-redes.pdf>. Acesso em: 13 mai. 2012.
CERTIPLUS. O que é Token? 2012. Disponível em:
<http://certiplus.com.br/ecnpj.aspx> Acesso em: 13 mai. 2012.
CINFORM. Mundo digital: Uma sociedade sem fronteira? 2013. Disponível em:
<http://www.cinform.ufba.br> Acesso em 10 dez 2013.
CISCO. Relatório Cisco destaca ameaças globais à segurança na rede. 2012. Disponível em: <http://www.cisco.com/web/offer/em/pdfs_innovators/LATAM/seg_rede_por.pdf?sid=171699_7> Acesso em: 30 abr. 2012
COMER, D. E. Interligação de redes com TCP/IP. Vol.1. 5. ed. Rio de Janeiro: Elsevier, 2006. CRIMES. O que é um Backdoor? 2013. Disponível em: < http://www.crimespelainternet.com.br/entenda-o-que-um-backdoor/ > Acesso em: 20 ago. 2013.
CYBERTI. O que é uma rede MAN? 2010. Disponível em <http://cyberti54.blogspot.com.br/2010/09/o-que-e-uma-rede-man.html> Acesso em: 11 de mar. 2012.
DENARDIN. Frame Ethernet. 2007. Disponível em:
<http://www.hardware.com.br/termos/frame-ethernet> Acesso em: 22 mai. 2012.
DOMINIOHOST. Servidor Apache. 2012. Disponível em <http://www.dominiohost.com.br/servidor-apache.html>. Acesso em: 14 mai. 2012
DRWHITEHAT. Invadindo Matrix – Entendendo o Buffer Overflow. 2008. Disponível em: <http://drwhitehat.wordpress.com/2008/10/17/invadindo-matrix-entendendo-o-buffer-overflow/> Acesso em: 20 ago. 2013.
73
FARREL, Adrian. A internet e seus protocolos: uma análise comparativa. 1. ed.
Rio de Janeiro: Campus, 2005.
GIVAROTO, S.C.R; SANTOS, G.R. Backtrack Linux – Auditoria e testes de invasão em redes de computadores. Rio de Janeiro: Editora Ciência Moderna
Ltda., 2013.
GURGEL, Diego. Arquitetura Web, navegadores e servidores. 2012. Disponível em: < http://diegogurgel.wordpress.com/2012/08/20/arquitetura-web-nevegadores-e-servidores/> Acesso em: 10 dez. 2013.
HARDWARE– Entendendo o Mercado de certificados SSL. 2008. Disponível em
<http://www.hardware.com.br/dicas/mercado-ssl.html> Acesso em: 24 abr 2012.
IIS. Servidor IIS. 2012. Disponível em <http://www.iis.net/> Acesso em: 27 mai.
2012.
INFOCOMEX. Certificação digital. 2013. Disponível em: <http://www.infocomex.com.br> Acesso em: 15 mar. 2013.
INFOESCOLA. O que é um bug? 2013. Disponível em <http://www.infoescola.com/informatica/bug/> Acesso em: 14 abr. 2013.
INFPUC. Arquitetura de sistemas operacionais. 3ª Ed. Disponível em:
<http://www.inf.puc-rio.br/~francis/aso3ed/solexerc-v3.2-Jan-2005.pdf> Acesso em: 02 mar. 2012.
INTERNEY. O que é HTML? Para que serve? Disponível em: <http://www.interney.net/blogfaq.php?p=6541494> Acesso em 10 dez. 2013.
INVASÃO. Como funcionam os Exploits. 2008. Disponível em:
<http://www.invasao.com.br/2008/12/12/como-funcionam-os-exploits/> Acesso em: 20 jun. 2013.
ITI. O que é certificação digital? 2012. Disponível em
<http://www.iti.gov.br/twiki/pub/Certificacao/CartilhasCd/brochura01.pdf> Acesso em: 25 abr. 2012.
ISEP. Tipos De Rede De Computadores – Terminologia Corrente. 2012. Disponível em: <http://www.dei.isep.ipp.pt/~andre/documentos/redes-classificacao.html> Acesso em: 28 fev. 2012.
74
LEWAVETI. Diferença entre HTTP e HTTPS. 2011. Disponível em <
http://lewaveti.wordpress.com/2011/04/05/diferenca-entre-http-e-https/> Acesso em: 26 abr. 2012.
LIEIRA, J. F. Segurança de Redes. 2012, 87p. Apostila da disciplina de Segurança
de Redes. Faculdade de Tecnologia de Lins.
LOCAWEB. Mod qos nos servidores Linux compartilhado. 2013. Disponível em:
http://wiki.locaweb.com.br/pt-br/Mod_qos_nos_servidores_Linux_compartilhado Acesso em: 10 dez. 2013.
L.S.T. Luciano Schon Trevisan – Modelo OSI. 2012. Disponível em
<http://www.lucianoschonstrevisan.com.br/?p=58> Acesso em: em 05 Mar. 2012.
MAIA, L. P. Arquitetura de Redes de Computadores. Rio de Janeiro: LTC,
2009.
MALIMA . Artigo: Como Funciona um Servidor Web. 2005. Disponível em: <http://www.malima.com.br/article_read.asp?id=156> Acesso em: 22 Mai. 2012.
MCMCSE. Certpedia: Terms that start with a W. 2013. Disponível em:
<http://www.mcmcse.com/glossary/w.shtml> Acesso em: 02 mar. 2012.
MICROSOFT. Protegendo sua aplicação de ataques Spoofing. 2013. Disponível
em <http://www.microsoft.com/brasil/msdn/Tecnologias/aspnet/Spoofing.mspx> Acesso em: 15 set. 2013.
MICROSOFT. 8 razões para ter um servidor em sua empresa. 2013. Disponível
em <https://www.microsoft.com/brasil/security/smb/8razoes.mspx> Acesso em: 10 dez. 2013.
OPENSOURCE. Mod Qos. 2013. Disponível em <http://opensource.adnovum.ch/mod_qos/> Acesso em: 10 dez. 2013.
MONTEIRO, S, Emiliano; MIGNONI, E, Maria. Certificados Digitais. Conceitos e práticas, 2007.
MORIMOTO, Carlos. E. Servidores Linux – Guia Prático. Porto Alegre: Sulina,
2008.
NEMETH, E; SNYDER, G; HEIN, T.R. Manual completo do Linux - Guia do Administrador. São Paulo: Pearson Makron Books, 2007.
75
NETCRAFT. Internet Security and Data Mining. 2012. Disponível em: <
http://www.netcraft.com> Acesso 15 abr. 2012.
NGINX. Nginx. 2013. Disponível em <http://www.nginx.com/> Acesso em: 26 mai. 2013.
NOBRE, J. C. A. Ameaças e Ataques aos Sistemas de Informação: Prevenir e Antecipar. Cadernos UniFOA, Volta Redonda, ano 2. 2007. Disponível em:
<http://www.unifoa.edu.br/cadernos/edicao/05/11.pdf> Acesso em: 10 dez. 2013.
O QUE É PATCH. O que é patch? 2012. Disponível em: <http://www.hiperativo.com/o-que-e-patch/> Acesso em: 12 de mai. 2012.
PEDROSO, F. M. Artigo: Segurança com Iptables. 2006. Disponível em <http://www.vivaolinux.com.br/artigo/Seguranca-com-Iptables> Acesso em: 24 mai. 2012.
PONTO DE REDES. VLANS. LANS Virtuais. 2012. Disponível em: <http://pontoderedes.blogspot.com.br/2010/01/2010.html> Acesso em: 12 mar. 2012.
PONTOEDU. O que significa HTTP e HTTPS. 2009. Disponível em
<http://www.pontoedu.com/o-que-significa-http-e-https/> Acesso em: 25 abr. 2012.
PROJETO DE REDES. Quando o barramento não é barramento. 2004. Disponível
em: <http://www.projetoderedes.com.br/artigos/artigo_quando_barramento_nao_e_barramento.php> Acesso em: 13 mar. 2012.
PTKIOSKEA. Ataques por profusão de tampão (buffer overflow). 2013. Disponível em: <http://pt.kioskea.net/contents/18-ataques-por-profusao-de-tampao-buffer-overflow> Acesso em: 20 jul. 2013.
RDS. Firewall. 2010. Disponível em: < http://rdswebsolutions.blogspot.com.br>
Acesso em: 10 dez. 2013.
RECKZIEGEL, Mauricio. Criptografia em PHP e WebServices. 2006. Disponível em: < http://imasters.com.br/artigo/4802/> Acesso em: 10 dez. 2013. RNP. Rede privada virtual. VPN. 1998. Disponível em:
<http://www.rnp.br/newsgen/9811/vpn.html> Acesso em: 13 mar. 2012.
SIERTI. Certificados SSL. 2013. Disponível em: <http://www.sierti.com.br/servicos-
de-internet/certificado-ssl/funcionamento-ssl/> Acesso em: 18 jun. 2013.
76
SLOWLORIS. 15 cute animals that could kill you. 2013. Disponível em:
<http://www.mnn.com/earth-matters/animals/photos/15-cute-animals-that-could-kill-you/slow-loris> Acesso em: 10 dez. 2013.
TABENBAUM. Andrew. S. Redes de computadores. 4 ed. Rio de Janeiro: Elsevier,
2003.
TECMUNDO. O que é um Endereço MAC e como fazer para descobri-lo no seu computador ou smartphone. 2010. Disponível em: < http://www.tecmundo.com.br/5483-o-que-e-um-endereco-mac-e-como-fazer-para-descobri-lo-no-seu-computador-ou-smartphone.htm> Acesso em: 10 dez. 2013. TECMUNDO. O que é intranet e extranet? 2009. Disponível em: <http://www.tecmundo.com.br/3077-o-que-e-token-.htm> Acesso em: 26 Abr 2012.
TECMUNDO. O que é firewall? 2012. Disponível em: <
http://www.tecmundo.com.br/firewall/182-o-que-e-firewall-.htm> Acesso em 10 dez. 2013. TECMUNDO. O que é Token. 2009. Disponível em:
<http://www.tecmundo.com.br/3077-o-que-e-token-.htm> Acesso em: 26 Abr 2012.
TORRES. G. Redes de Computadores - Versão Revisada e Atualizada. Rio de
Janeiro: Novaterra, 2009. UNDERLINUX. GlobalSign Confirma Break-in em Servidor. 2011. Disponível em
<http://under-linux.org/globalsign-confirma-break-em-servidor-web-3392/> Acesso em: 20 fev. 2012.
VERISIGN. Serviços de autenticação. 2012. Disponível em
<http://www.verisign.com.br/> Acesso em: 20 abr. 2012.
WIKINGINX. Nginx. 2012. Disponível em <http://wiki.nginx.org/> Acesso em: 26 mai.
2012.
WIKIVERSITY. Introdução às Redes de Computadores/Protocolos de aplicação – princípios gerais. 2013. Disponível em: < http://pt.wikiversity.org/wiki/Introdução_às_Redes_de_Computadores/Protocolos_de_aplicação_–_princípios_gerais> Acesso em: 18 mai. 2013.
77
GLOSSÁRIO
ASCII - “American Standard Code for Information Interchange” é um código
numérico usado para representar os caracteres, entendido por quase todos os
computadores, impressoras e programas de edição de texto, que usa a escala do
decimal 0 a 127.
ALGORITMO - Um algoritmo é uma sequência lógica, finita e definida de instruções
que devem ser seguidas para resolver um problema ou executar uma tarefa.
ATAQUE – É a tentativa, bem ou mal sucedida, de acesso ou uso não autorizado a
um programa ou computador. Também são considerados ataques às tentativas de
negação de serviço (DoS).
BACKDOOR – Código malicioso que abre caminho para o acesso remoto a um
computador contaminado sem o conhecimento do usuário.
BROWSER - O browser é responsável pela comunicação com os servidores, é ele
que processa os dados recebidos pelos servidores da Internet e processa as
respostas.
BUFFER - Buffer é uma região de memória temporária utilizada para escrita e leitura
de dados.
CACHE – É uma área de armazenamento onde dados ou processos frequentemente
utilizados são guardados para um acesso futuro mais rápido, poupando tempo e uso
desnecessário do hardware.
CRIPTOGRAFIA – Método de embaralhar ou codificar dados para impedir que
usuários não autorizados os leiam ou adulterem. É usada, dentre outras finalidades,
para: autenticar a identidade de usuários; autenticar transações bancárias; proteger
a integridade de transferências eletrônicas de fundos, e proteger o sigilo de
comunicações pessoais e comerciais.
78
DES Triplo – É um algoritmo que foi criado como uma evolução do DES (Data
Encryption Standard), visto que já se nutriam dúvidas sobre a segurança deste,
devido a chave ser pequena e o seu tamanho não estar aberto a expansões.
DDOS (Distributed Denial of Service) – Ataque de negação de serviço distribuído, ou
seja, um conjunto de computadores é utilizado para tirar de operação um ou mais
serviços ou computadores conectados à Internet.
DoS (Denial of Service) - Ataque de negação de serviço, que basicamente é o DoS
feito com apenas 1 computador.
DESKTOPS – Computadores de uso pessoal ou como terminais de rede.
DNS (Domain Name System) – Serviço que traduz nomes de domínios para
endereços IP e vice-versa.
ENDEREÇO IP - Número único para cada computador conectado à Internet,
composto por uma sequencia de quatro números que variam de 0 até 255,
separados por ".". Por exemplo: 192.168.34.25.
ETHERNET - A Ethernet (também conhecida sob o nome de norma IEEE 802.3) é
um padrão de transmissão de dados para rede local baseada no princípio seguinte:
Todas as máquinas da rede Ethernet estão conectadas a uma mesma linha de
comunicação, constituída por cabos cilíndricos.
EXPLOIT – Programa que se aproveita das vulnerabilidades de um sistema
operacional para instalar um payload.
FIREWALL – Dispositivo constituído pela combinação de software e hardware,
utilizado para dividir e controlar o acesso entre redes de computadores.
HARDWARE - É a parte física de um computador, é formado pelos componentes
eletrônicos, como por exemplo, circuitos de fios e luz, placas, utensílios, correntes, e
79
qualquer outro material em estado físico, que seja necessário para fazer com o que
computador funcione.
HOST - É qualquer computador ou máquina conectado a uma rede, que conta com
número de IP e nome definidos. Essas máquinas são responsáveis por oferecer
recursos, informações e serviços aos usuários ou clientes. Por essa abrangência, a
palavra pode ser utilizada como designação para diversos casos que envolvam uma
máquina e uma rede, desde computadores pessoais a roteadores.
INTERNET - Seu nome tem origem no inglês, onde “inter” vem de internacional e
“net” significa rede, logo, “rede de computadores mundial”. É uma rede de
computadores interligadas, que possibilita o acesso a informações sobre e em
qualquer lugar do mundo.
INTRANET - É uma rede interna, fechada e exclusiva, com acesso somente para os
funcionários de uma determinada empresa e muitas vezes liberado somente no
ambiente de trabalho e em computadores registrados na rede.
INVASÃO – Ataque bem sucedido que resulte no acesso, manipulação ou
destruição de informações em um computador.
INVASOR – Pessoa responsável pela realização de uma invasão ou pelo
comprometimento do computador.
LOG – É o registro de atividades gerado por programas de computador. No caso de
logs relativos a incidentes de segurança, eles normalmente são gerados por firewalls
ou por IDSs.
MALWARE - Malware é a abreviação para “software malicioso”, é qualquer tipo de
software indesejado instalado sem o consentimento do usuário.
MD5 - É uma assinatura digital única para cada arquivo e nunca se repete para
arquivos diferentes, mesmo que possuam apenas um único caractere diferente.
80
METASPLOIT – Framework automatizada para varredura de vulnerabilidades e
computadores, bem como aplicação de Exploit.
PENDRIVE - É um dispositivo portátil de armazenamento com memória flash,
acessível através da porta USB.
PHISHING – Golpe que usa spam e mensagens instantâneas para levar pessoas a
divulgarem informações confidenciais, como senhas de banco e dados de cartão de
crédito. Normalmente, esses ataques aparentam ser de instituições financeiras
PING – O Ping funciona de forma parecida a um sonar, porém no mundo virtual,
este comando envia pacotes (ICMP) de dados de 32 bits ao computador destino e
solicita resposta. Se a resposta voltar significa que houve comunicação e que o
computador destino esta ativo, além disso, o tempo de resposta é medido, visando
conhecer a velocidade da rede naquele instante.
RC4 - é o algoritmo simétrico de criptografia de fluxo mais usado e é utilizado
nos protocolos mais conhecidos, como Secure Socket Layers (SSL), por exemplo.
RFC 822 - Descreve a sintaxe dos campos de cabeçalho de e-mail e define um
conjunto de campos de cabeçalho e a respectiva interpretação
ROOTKIT – Programa ou um conjunto de programas, usado por um atacante para
ocultar sua presença em um determinado sistema e permitir seu acesso futuro.
ROTEADOR - O roteador é um dispositivo que serve para compartilhar rapidamente
um único ponto de Internet para vários computadores, sejam eles ligados via cabo
(conexão mais rápida) ou via wi-fi (um pouco mais lenta, porém com toda mobilidade
de uma conexão sem fio).
SCRIPT – Scripts são “roteiros” seguidos por sistemas computacionais e trazem
informações que são processadas e transformadas em ações efetuadas por um
programa principal.
81
SENHA - Conjunto de caracteres, de conhecimento único do usuário, utilizado no
processo de verificação de sua identidade.
SHA-1 - Este algoritmo recebe como entrada um documento qualquer sob a forma
digital e gera como saída um hash (que é qualquer algoritmo que mapeie dados
grandes e de tamanho variável para pequenos dados de tamanho fixo) de 160 bits e
é mais difícil de ser quebrado.
SMART CARD – É um cartão que contém um chip responsável pela geração e o
armazenamento de certificados digitais.
SOFTWARE – Uma sequência de instruções a serem seguidas e/ou executadas, na
manipulação, redirecionamento ou modificação de um dado/informação ou
acontecimento, ou seja, um programa de computador.
SPAM – Termo usado para se referir aos emails não solicitados, que geralmente são
enviados para um grande número de pessoas. Quando o conteúdo é exclusivamente
comercial, este tipo de mensagem também é referenciado como UCE (do Inglês
Unsolicited Commercial E-mail).
SQL - Structured Query Language, ou Linguagem de Consulta Estruturada, é uma
linguagem de pesquisa declarativa para banco de dados relacional(base de dados
relacional).
TOKEN - são dispositivos físicos que auxiliam o usuário quanto à segurança pessoal
ao gerar uma senha temporária de proteção para as contas que ele utiliza.
TROJANS – São programas aparentemente inofensivos, úteis e com alguma
funcionalidade, porém esconde programas nocivos que põe em risco a segurança
das informações.
VÍRUS – Programa escrito para alterar a maneira como um computador opera, sem
a permissão ou conhecimento do usuário. Deve atender a dois critérios: executar a
si mesmo e auto-replicar.
82
VULNERABILIDADE – É uma falha no projeto, implementação ou configuração de
um software ou sistema operacional que, quando explorada por um atacante, resulta
na violação da segurança de um computador.
WEB – Em inglês significa teia ou rede. O significado de Web ganhou outro sentido
com o aparecimento da Internet e passou a designar a rede que conecta
computadores por todo mundo, a World Wide Web (WWW).
XOR - É uma operação lógica entre dois operandos que resulta em um valor lógico.
Recommended