MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da...

78
MINISTÉRIO DA DEFESA EXÉRCITO BRASILEIRO DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA INSTITUTO MILITAR DE ENGENHARIA CURSO DE GRADUAÇÃO EM ENGENHARIA DE COMPUTAÇÃO MARCOS DE AUGUSTINIS VALLE MACHADO DA SILVA MATHEUS VANZAN PIMENTEL DE OLIVEIRA ARQUITETURA DE SEGURANÇA PARA SERVIÇOS WEB DE DISPONIBILIZAÇÃO DE DADOS ESPACIAIS EM OPERAÇÕES MILITARES Rio de Janeiro 2015

Transcript of MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da...

Page 1: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

MINISTÉRIO DA DEFESA

EXÉRCITO BRASILEIRO

DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA

INSTITUTO MILITAR DE ENGENHARIA

CURSO DE GRADUAÇÃO EM ENGENHARIA DE

COMPUTAÇÃO

MARCOS DE AUGUSTINIS VALLE MACHADO DA SILVA

MATHEUS VANZAN PIMENTEL DE OLIVEIRA

ARQUITETURA DE SEGURANÇA PARA SERVIÇOS WEB DE

DISPONIBILIZAÇÃO DE DADOS ESPACIAIS EM

OPERAÇÕES MILITARES

Rio de Janeiro

2015

Page 2: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

2

INSTITUTO MILITAR DE ENGENHARIA

MARCOS DE AUGUSTINIS VALLE MACHADO DA SILVA

MATHEUS VANZAN PIMENTEL DE OLIVEIRA

ARQUITETURA DE SEGURANÇA PARA SERVIÇOS WEB DE

DISPONIBILIZAÇÃO DE DADOS ESPACIAIS EM OPERAÇÕES

MILITARES

Trabalho apresentado ao Curso de Graduação em

Engenharia de Computação do Instituto Militar de

Engenharia, como Verificação Especial do Projeto de Fim

de Curso.

Orientador: Prof. Maj. Ivanildo Barbosa, D.C.

Rio de Janeiro

2015

Page 3: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

3

c2015

INSTITUTO MILITAR DE ENGENHARIA

Praça General Tibúrcio, 80 – Praia Vermelha

Rio de Janeiro – RJ CEP: 22290-270

Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-lo em

base de dados, armazenar em computador, microfilmar ou adotar qualquer forma de

arquivamento.

É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste

trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado,

para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que seja

feita a referência bibliográfica completa.

Os conceitos expressos neste trabalho são de responsabilidade dos autores e do orientador.

Silva, M. A. V. M.;, Oliveira, M. V. P.

Arquitetura de segurança para serviços web de

disponibilização de dados espaciais em operações militares /

Marcos de Augustinis Valle Machado da Silva, Matheus Vanzan

Pimentel de Oliveira; orientados por Ivanildo Barbosa - Rio de

Janeiro: Instituto Militar de Engenharia, 2015.

77p. : il.

Projeto de Fim de Curso (Engenharia de Computação) - Instituto

Militar de Engenharia, Rio de Janeiro, 2015.

1. Segurança da informação. 2. Sistemas de detecção de intrusão.

I. Arquitetura para segurança de aplicações web de disponibilização

de dados geoespaciais em operações militares.

005.8

S586a

Page 4: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

4

INSTITUTO MILITAR DE ENGENHARIA

Ten MARCOS DE AUGUSTINIS VALLE MACHADO DA SILVA

Ten MATHEUS VANZAN PIMENTEL DE OLIVEIRA

ARQUITETURA DE SEGURANÇA PARA SERVIÇOS WEB DE DISPONIBILIZAÇÃO

DE DADOS ESPACIAIS EM OPERAÇÕES MILITARES

Trabalho apresentado ao Curso de Graduação em Engenharia de Computação do

Instituto Militar de Engenharia, como Verificação Especial do Projeto de Fim de Curso.

Orientador: Ivanildo Barbosa, D.Sc.

Aprovada em 19 de outubro de 2015 pela seguinte Banca Examinadora:

___________________________________________________________________

Prof. Maj. Ivanildo Barbosa – D.Sc, do IME

___________________________________________________________________

Prof. Cap. Humberto Henriques de Arruda – M.Sc, do IME

___________________________________________________________________

Prof. Ricardo Choren Noya – D.Sc, do IME

Rio de Janeiro

2015

Page 5: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

5

SUMÁRIO

LISTA DE ILUSTRAÇÕES .................................................................................................... 6

LISTA DE TABELAS .............................................................................................................. 7

LISTA DE SIGLAS .................................................................................................................. 8

1 ..... INTRODUÇÃO 14

1.1 Objetivo ..................................................................................................................... 16

1.2 Motivação .................................................................................................................. 16

1.3 Metodologia ............................................................................................................... 17

1.4 Organização da monografia ....................................................................................... 19

2 ..... DESCRIÇÃO DO PROBLEMA 20

2.1 Aplicação WEB .......................................................................................................... 20

2.2 Dados Geoespaciais ................................................................................................... 20

2.2.1 PostgreSQL e PostGIS 21

2.2.2 Geoserver 21

2.3 Cenários ..................................................................................................................... 22

2.4 Ambiente de testes 23

2.4.1 Configurações 23

3 SEGURANÇA ORGÂNICA DE DADOS 25

3.1 Controle de usuários ....................................................................................................... 25

3.2 Segurança no PostgreSQL/PostGIS................................................................................ 29

3.3 Segurança no Geoserver ................................................................................................. 31

3.3.1 Configurações gerais 31

3.3.2 Senhas 32

3.3.3 Autenticação, senhas, usuários, grupos e funções 33

3.3.4 Dados 34

3.3.5 Serviços 35

3.4 Criptografia do banco de dados ...................................................................................... 35

3.5 Protocolo de transferência segura de dados (HTTPS) .................................................... 37

4 SEGURANÇA DA REDE 41

4.1 Estrutura geral ................................................................................................................. 41

4.2 Firewall .......................................................................................................................... 42

4.2.1 Netfilter/iptables 43

Page 6: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

6

4.2.2 Requerimentos da política de segurança 44

4.3 Sistema de detecção de intrusão ..................................................................................... 45

4.3.1 Snort 47

4.3.2 Fwsnort 48

4.4 psad ................................................................................................................................. 49

4.5 Honeypots ....................................................................................................................... 51

4.6 Arquitetura final ............................................................................................................. 52

4.7 Dificuldades encontradas ................................................................................................ 53

5 TESTES 57

5.1 Penetração ....................................................................................................................... 57

5.1.1 Testes com a arquitetura parcial (sem honeypot) 59

5.1.2 Testes com a arquitetura completa (com honeypot) 66

5.2 Quality of Service (QoS) ................................................................................................. 73

6 CONCLUSÃO 75

7 REFERÊNCIAS BIBLIOGRÁFICAS 77

Page 7: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

7

LISTA DE ILUSTRAÇÕES

FIG. 1.1 - Representações gráficas de atividades maliciosas e origens de ataques web por país.

.................................................................................................................................................. 17

FIG. 2.1 - Resultado de uma requisição WMS ao GeoServer .................................................. 22

FIG. 3.1 - Arquitetura da segurança orgânica ....................................................................... 255

FIG. 3.2 - Esquematização do mapeamento de usuários em seus grupos ............................. 277

FIG. 3.3 - Extrato do mapeamento de usuários em seus grupos ............................................ 288

FIG. 3.4 - Painel GlassFish de controle dos mapeamentos de usuários ................................ 299

FIG. 3.5 - Configurações de segurança do GeoServer .......................................................... 311

FIG. 3.6 - URL sem funcionalidade de criptografia ............................................................ 322

FIG. 3.7 - URL com funcionalidade de criptografia ............................................................. 322

FIG. 3.8 - Interface administrativa do GeoServer ................................................................. 344

FIG. 3.9 - Regras de acesso a serviços específicos do GeoServer ........................................ 355

FIG. 3.10 - Esquema simplificado do funcionamento de um algoritmo criptográfico genérico

................................................................................................................................................ 366

FIG. 3.11 - Relação entre HTTP e HTTPS (HTTPS = HTTP + SSL) .................................. 377

FIG. 3.12 - Esquema gráfico do protocolo SSL .................................................................... 388

FIG. 3.13 – Certificado auto assinado gerado para a aplicação .............................................. 40

FIG. 4.1 - Fluxo de recebimento de pacotes na arquitetura proposta. ..................................... 41

FIG. 4.2 - Fluxo de pacotes no iptables ................................................................................... 44

FIG. 4.3 - Conversão das regras Snort para regras iptables com fwsnort (taxa de sucesso em

destaque). .................................................................................................................................. 49

FIG. 4.4 - Exemplo de regra Snort convertida com sucesso pelo fwsnort. ............................. 49

FIG. 4.5 – Diagrama detalhado do fluxo de pacotes na arquitetura proposta. ........................ 52

FIG. 4.6 – Código do daemon responsável por monitorar os IPs bloqueados. ....................... 53

FIG. 4.7 – Problemas e soluções encontrados durante a implementação do encaminhamento do

honeypot.. ................................................................................................................................. 54

Page 8: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

8

FIG. 4.8 – Mecanismo de retroalimentação com destaque para o update_daemon, ponto crítico

durante a implementação. ......................................................................................................... 56

FIG. 4.9 – Extrato das regras do firewall responsáveis por realizar o encaminhamento

bidirecional para o honeypot.. .................................................................................................. 56

FIG. 5.1 - Fases principais de um teste de penetração ............................................................ 57

FIG. 5.2 - Exemplo de varredura de portas contra o servidor sem regras de firewall ativas. . 59

FIG. 5.3 - Exemplo de varredura de portas contra o servidor com regras de firewall ativas. . 60

FIG. 5.4 – Registro de logs do firewall com pacotes descartados. ......................................... 60

FIG. 5.5 - Exemplo de tentativa de impersonação de IP. ........................................................ 61

FIG. 5.6 - Extrato do log do firewall registrando os pacotes impersonados descartados. ...... 61

FIG. 5.7 - Tráfego de entrada e saída na interface do servidor sem regras de firewall e sem estar

sob ataque de negação de serviço. ............................................................................................ 62

FIG. 5.8 - Painel de controle do LOIC em execução contra o servidor alvo .......................... 62

FIG. 5.9 - Tráfego de entrada e saída na interface do servidor sem regras de firewall e sob

ataque de negação de serviço. .................................................................................................. 63

FIG. 5.10 - Tráfego de entrada e saída na interface do servidor com regras de firewall e sob

ataque de negação de serviço. .................................................................................................. 63

FIG. 5.11 - Extrato do syslog indicando o bloqueio do atacante pelo psad e os emails enviados.

.................................................................................................................................................. 64

FIG. 5.12 - Estado do psad após o bloqueio do atacante. ....................................................... 65

FIG. 5.14 – Cenário para simulação dos ataques, envolvendo três máquinas virtuais. .......... 67

FIG. 5.13 - Visualização da página alvo antes do ataque. ...................................................... 67

FIG. 5.14 - Varredura de portas no servidor (IP ainda não bloqueado). ................................. 67

FIG. 5.16 - Varredura de portas no servidor (IP bloqueado). ................................................. 68

FIG. 5.17 - Varredura de portas no honeypot.. ...................................................................... 618

FIG. 5.18 - Visualização da página alvo após o ataque bloqueado com sucesso. ................... 69

FIG. 5.19 – Visualização dos resultados da varredura de vulnerabilidades na aplicação do

servidor, com os resultados encaminhados pelo honeypot.. ..................................................... 70

FIG. 5.20 –Visualização dos resultados do ataque de força bruta na aplicação do servidor, com

os resultados encaminhados pelo honeypot. ............................................................................. 70

Page 9: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

9

FIG. 5.21 – Resultados do fluxo de dados durante um ataque DoS com utilização do honeypot..

.................................................................................................................................................. 71

FIG. 5.22 – Interface gráfica web para exibição dos resultados coletados pelo honeypot .. ... 72

Page 10: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

10

LISTA DE SIGLAS.

AES Advanced Encryption Standard

CBC Cipher-Block Chaining

DDoS Distributed Denial of Service

DES Data Encryption Standard

DNS Domain Name System

DoS Denial of Service

GUI Graphical User Interface

HIDS Host-based Intrusion Detection System

HTTP Hyper Text Transfer Protocol

HTTPS Hyper Text Transfer Protocol Secure

IDS Intrusion Detection System

NIDS Network Intrusion Detection System

NTP Network Time Protocol

PBE Password Based Encryption

PSAD Port Scan Attack Detector

SGBD Sistema de Gerenciamento de Banco de Dados

SSH Secure Shell

SMTP Simple Mail Transfer Protocol

SSL Secure Socket Layer

QoS Quality of Service

TCP Transmission Control Protocol

TDE Transparent Data Encryption

Page 11: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

11

TSL Transport Layer Security

URL Uniform Resource Locator

WMS Web Map Service

Page 12: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

12

RESUMO

A disponibilização de dados geoespaciais é de alta relevância para o apoio de operações

militares e, portanto, a confidencialidade, integridade e disponibilidade dos dados e serviços

deve ser garantida. Este projeto propõe uma arquitetura de segurança para uma aplicação web

que permite a disponibilização de dados geoespaciais em operações militares, bem como para

seu servidor de hospedagem. Para tanto, o desenvolvimento da arquitetura divide-se em

soluções de segurança orgânica de dados – proteção da informação no âmbito intra-servidor –

e de rede – proteção da informação no âmbito externo ao servidor. Após a implementação do

sistema foram realizados testes de penetração, de forma a garantir que as soluções sugeridas

neste trabalho tenham utilidade de fato e que aumentam o nível de segurança do serviço em

nível satisfatório.

Page 13: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

13

ABSTRACT

The availability of geospatial data is of high importance for the support of military

operations and, therefore, the confidentiality, integrity and availability of data and services must

be assured. This project proposes a security architecture for a web application that allows

geospatial data to be accessed in military operations as well as it’s hosting server. To that end,

the protocol development is divided into organic security of data solutions - information

protection on an intra-server level - and network solutions - information protection outside the

server. After the system implementation, penetration tests were be performed to ensure the

solutions suggested in this paper have, in fact, utility and increase the service level of security

at a satisfactory level.

Page 14: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

14

1 INTRODUÇÃO

A segurança é um elemento dependente do contexto, de modo que a eficácia de quaisquer

medidas de proteção depende do contexto em que as mesmas são aplicadas. A segurança

também é frequentemente não incremental e a insegurança em uma área pode levar à

insegurança em todas as áreas. Ataques a sistemas computacionais podem, portanto, assumir

diversas facetas, das mais simples às mais complexas e, por meio de apenas uma brecha

comprometerem a confidencialidade e integridade de dados sensíveis ou a disponibilidade de

serviços. Hackers podem tentar invadir a rede da casa de um funcionário e roubar senhas, contas

de e-mail ou mesmo sequestrar conexões consideradas seguras com o intuito de invadir uma

rede corporativa, o que requer a existência de mecanismos de segurança frente a ameaças

internas e externas. Hackers podem estacionar fora do prédio da organização alvo e monitorar

o tráfego da rede sem fio, de modo que a criptografia se faz necessária nas conexões e nos dados

sensíveis.

O conceito de segurança é um conjunto de políticas e procedimentos que tratam, em última

instância, da disponibilização de informações (ZWICY, COOPER e CHAPMAN, 2000). Para

que se desenvolva uma arquitetura de segurança efetiva é necessário seguir alguns princípios

adaptados do meio militar para a esfera cibernética, dos quais foram adotados para o presente

projeto:

Princípio do menor privilégio

Defesa em profundidade

Centralização de fluxo

O princípio do menor privilégio talvez seja o mais fundamental para qualquer sistema de

defesa, não somente em relação a sistemas digitais. Seu significado consiste basicamente em

qualquer objeto, seja ele um usuário, programa, sistema ou outra entidade afim, deve possuir

apenas os privilégios de que o objeto necessita para desempenhar as tarefas que lhe cabem - e

nada mais. O menor privilégio é um princípio importante para limitar a exposição a ataques e

para limitar os danos causados por ataques particulares.

Page 15: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

15

Outro princípio de segurança genérico é o de defesa em profundidade. Por mais forte que

um mecanismo de segurança possa parecer, não se deve depender apenas dele. Ao contrário,

devem ser instalados múltiplos mecanismos que cubram as falhas entre si, de modo que um

problema em um único mecanismo de segurança não comprometa a segurança como um todo.

É comum que pontos de estrangulamentos, regiões em que o atacante é forçado a utilizar um

canal estreito que pode ser monitorado e controlado, sejam utilizados em conjunto com o

princípio de defesa em profundidade, formando barreiras de defesa. Embora a vantagem de

restringir um fluxo do sistema aumente a segurança do mesmo, é preciso analisar possíveis

perdas de desempenho de forma a manter o sistema funcional.

Uma máxima fundamental na segurança é que uma corrente é tão forte quanto seu elo mais

fraco. O princípio contido nessa frase indica a metodologia do atacante, buscar o ponto mais

fraco do sistema e concentrar nele as atenções. Embora não seja impossível eliminar a

existência do elo mais fraco, é importante atentar para que não haja grandes diferenças quanto

ao nível de insegurança entre as partes, fornecendo força suficiente e proporcional aos riscos

(PROWELL, KRAUS e BORKIN, 2010).

A observação rigorosa dos princípios de segurança mais significativos proporciona um

sistema de segurança menos vulnerável a ataques. Ainda assim, o sistema puramente passivo

incorre no risco de ter seus dispositivos de segurança superados por elementos persistentes,

especialmente quando a informação armazenada possuir grau de restrição elevado. Sistemas de

defesa ativa podem ser definidos como “quaisquer medidas originadas pelo defensor contra o

atacante” e divididos em categorias de contra-ataque, ataque preemptivo e ilusão ativa

(JOHNSON, 2013). Quando corretamente implementado, o sistema ativo pode fornecer

resultados mais consistentes frente a ataques novos ou mais potentes.

O número de ataques cibernéticos a órgãos governamentais vem crescendo ao longo dos

últimos anos, especialmente no Brasil (PWC, 2015). A criação de um sistema web de

disponibilização de dados geoespaciais não pode negligenciar a ocorrência de ataques que

visam a derrubada do serviço bem como o acesso não-autorizado a certos tipos de dados. A

utilização dos princípios fundamentais da segurança guiarão, portanto, a elaboração de uma

arquitetura de defesa efetiva com o foco na defesa ativa.

Page 16: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

16

1.1 Objetivo

O presente projeto tem por objetivo elaborar, implementar e testar uma arquitetura de

segurança para uma aplicação militar web que exibe dados geoespaciais previamente coletados,

independentemente de proteções externas ao servidor. Para a garantia da segurança orgânica

dos dados e da aplicação, será entregue um sistema de controle de acesso às informações

armazenadas, de acordo com perfis de usuários e camadas de dados requisitadas. Serão

avaliados e selecionados também os recursos de segurança disponíveis no GeoServer, incluindo

algoritmos criptográficos do banco e formato das requisições. De forma a garantir a segurança

dos dados em trânsito na comunicação cliente-servidor, será implementado o protocolo HTTPS.

Para a segurança externa ao servidor, será entregue uma arquitetura de fluxo de pacotes

consistindo em um firewall, um sistema de detecção de intrusão e um honeypot baseados em

host, de modo a impedir ou mitigar, de forma ativa, ameaças web comuns e tornar a segurança

da aplicação independente da infraestrutura de hospedagem. Por meio de cenários que simulam

situações de uso real da aplicação em operações militares, serão executados testes de invasão e

performance, com o intuito de comparar os resultados com o sistema desprotegido, garantindo

a qualidade da arquitetura proposta.

1.2 Motivação

Ataques cibernéticos vêm aumentando ano após ano, sendo que em 2015 foram detectados

42.8 milhões de incidentes de segurança, 48% a mais do que em 2013 (PWC, 2015). Apenas

em 2014 cerca de 76% dos sites apresentavam vulnerabilidades e 496.657 ataques web foram

bloqueados por dia. Em 2013, 60% das organizações foram impactadas por ataques DDoS e

87% foram atingidas mais de uma vez. O setor de administração pública recebe 29% dos

ataques, envolvendo atividades de roubo de informações confidenciais, negação de serviço e

outras de cunho hacktivista (SYMANTEC, 2015).

Page 17: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

17

O Brasil é visto atualmente não apenas como um dos principais focos de origem de ataques

cibernéticos como também um dos maiores alvos, especialmente devido à ocorrência de eventos

internacionais sediados no país (TIGER SECURITY, 2015). Dessa forma, os dados

geoespaciais revelados pelo Exército Brasileiro por meio de uma aplicação web devem ter

assegurada sua disponibilidade, mas também suas confidencialidade e integridade.

O desenvolvimento de uma arquitetura de segurança consistente e apta a assegurar a

segurança de uma aplicação web é, portanto, imprescindível, especialmente no caso presente

em que informações sensíveis são disponibilizadas por meio de uma organização-alvo em um

momento em que o Brasil encontra-se em foco no cenário internacional. A FIG. 1.1 ilustra as

atividades maliciosas e origens de ataques web por país em 2014, de acordo com os dados

presentes em (SYMANTEC, 2015).

FIG. 1.1 - Representações gráficas de atividades maliciosas e origens de ataques web por país.

1.3 Metodologia

Na fase 1, foi realizado o levantamento de requisitos. O sistema deve ser capaz de impedir

ou reduzir a ação de potenciais ataques que comprometam a confidencialidade, integridade ou

disponibilidade dos dados geoespaciais contidos na aplicação. Para tanto, foi necessário analisar

Page 18: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

18

o funcionamento do GeoServer e seus dispositivos de segurança, as técnicas de ataque mais

comuns bem como suas respectivas medidas de proteção atualmente mais empregadas.

Na fase 2, foi definida a arquitetura da solução. Para garantir sua segurança, conforme o

objetivo proposto, o sistema foi analisado sob os aspectos de segurança internos, que visam à

segurança orgânica dos dados, e externos ao servidor, relacionados aos mecanismos de

segurança da rede. No âmbito intra-servidor foi desenvolvido um sistema de autenticação de

usuários de acordo com grupos e funções previamente definidas para cada perfil. A criptografia

é aplicada ostensivamente tanto sobre os dados armazenados no banco de dados bem como na

comunicação cliente-servidor por meio do uso do protocolo HTTPS. A proteção da rede é

realizada utilizando-se ferramentas de código aberto e consolidadas no mercado, contando com

barreiras de redundância frente a ataques. O firewall é o responsável pelo contato direto com a

rede externa. O IDS, convertido em regras do iptables pela ferramenta fwsnort, é aplicado para

o monitoramento da rede interna, atuando como segundo dispositivo de proteção. Todas as

atividades do firewall são registradas em um log, o qual é analisado com o uso da ferramenta

de automação psad, resultando no envio de alertas por e-mail para os administradores. Por fim,

o sistema conta com a instalação de honeypots para influenciar o atacante a atacar máquinas

que simulem o servidor, mas sem conteúdo sensível.

Na fase 3, foram analisados os recursos necessários para a implementação da arquitetura

elaborada. Todas as ferramentas selecionadas são consolidadas no mercado e de código aberto,

o que reduz os gastos do projeto e aumenta a confiabilidade em termos de segurança. O sistema

operacional adotado foi o Linux, na distribuição Ubuntu Server. O firewall empregado é o

netfilter/iptables, disponível no kernel do Linux. O IDS é o Snort, por sua estabilidade e ampla

gama de recursos. O sistema conta ainda com o fwsnort, ferramenta de tradução das regras do

Snort para regras do iptables. Os logs são analisados pelo psad e o honeypot implementado em

uma máquina virtual HoneyDrive 3. O hardware a ser utilizado deve corresponder aos recursos

mínimos para o correto funcionamento das aplicações, devendo dispor preferencialmente de

uma máquina exclusiva para rodar os serviços do honeypot. Entretanto, caso não haja

disponibilidade de máquinas físicas, o sistema pode contar com virtualização por meio de

solução gratuitas, como o VirtualBox.

Na fase 4 foi executada a implementação do sistema, dividida em módulos correspondentes

a cada um dos componentes da arquitetura.

Page 19: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

19

Na fase 5 foram executados testes de penetração e apresentados testes de Qualidade de

Serviço (Quality of Service – QoS) para serem empregados futuramente. O teste de penetração

é uma metodologia que valida a eficácia do sistema ao reduzir a efetividade de ataques e

ameaças potenciais. Já os testes de QoS avaliarão aspectos de confiabilidade, atraso, jitter e

largura de banda. A medição dessas variáveis permite confirmar e adaptar a arquitetura de

segurança proposta, sem que esta acarrete em prejuízo da atividade fim da aplicação.

Na fase 6 foi finalizada a documentação do projeto e proposta de melhorias futuras, que

servirá como principal fonte de consulta após a sua implementação.

1.4 Organização da monografia

No capítulo 2 será apresentada a fundamentação teórica acerca das bases de dados

geoespaciais a serem protegidas, bem como a análise dos ataques mais comuns e suas

metodologias.

No capítulo 3 serão introduzidas as soluções de segurança orgânica dos dados,

considerando-se seu armazenamento, métodos de acesso e transferência.

No capítulo 4 serão abordados os aspectos da segurança da rede em que se encontra o

servidor de modo a reduzir a possibilidade de quebra da confidencialidade ou integridade dos

dados armazenados bem como a indisponibilização do serviço.

No capítulo 5 serão esclarecidas as metodologias dos testes de penetração e de garantia da

qualidade do serviço. Ainda neste capítulo são realizados alguns testes para ilustrar o

funcionamento da arquitetura.

No capítulo 6 será apresentada a conclusão, além de propostas para trabalhos futuros,

incluindo melhorias e novos conceitos a serem agregados ao projeto. Por fim, no capítulo 7

encontram-se as referências bibliográficas consultadas.

Page 20: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

20

2 DESCRIÇÃO DO PROBLEMA

A coleta de dados geoespaciais é realizada para a utilização em operações militares que

necessitam de apoio de geolocalização. Existem softwares e extensões específicas para o

armazenamento e a consulta desse tipo de dado, que fornecem recursos próprios para tratar não

somente para gerenciar o alto volume, mas também para fornecer soluções de segurança.

2.1 Aplicação WEB

A interface do usuário para a utilização do serviço se dará por meio de uma aplicação web

escrita em Java, atualmente desenvolvida em um projeto paralelo. As requisições são realizadas

graficamente em um mapa, gerado pela ferramenta Open Layers. As camadas de dados

sobrepõem-se, permitindo a personalização do mapa a ser visto pelo usuário. Os dados são

restritos a usuários por meio do uso de grupos e funções, de modo que o usuário passa por um

processo de autenticação antes de utilizar o sistema.

Vale notar que, embora voltada para suprir as vulnerabilidades específicas da aplicação em

pauta, a arquitetura proposta é independente da mesma. Dessa forma, os testes serão realizados

em uma aplicação de fachada, apenas a título de ilustração.

2.2 Dados Geoespaciais

Os dados geoespaciais coletados podem ser das propriedades geométricas e topológicas e

armazenados em bases de dados gerenciadas por Sistemas Gerenciadores de Bancos de Dados

(SGDBs) comuns, porém utilizando-se extensões específicas para o tratamento do conteúdo.

Os dados requisitados pelo usuário serão buscados nessas bases e disponibilizados na interface

web. Por serem dados sensíveis, é preciso garantir sua integridade e confiabilidade ainda que a

Page 21: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

21

rede seja invadida, de acordo com o princípio de defesa em profundidade. Dessa forma, faz-se

mister a análise dos sistemas criptográficos disponibilizados pelas ferramentas utilizadas de

modo a verificar se são satisfatórios.

2.2.1 PostgreSQL e PostGIS

PostgreSQL é um SGBD objeto-relacional, com ênfase na capacidade de extensão e

padrões de conformidade. Como um servidor de banco de dados, sua principal função é

armazenar dados de forma segura, conforme as boas práticas.

Já o PostGIS é uma extensão da base de dados espaciais para banco de dados objeto-

relacional PostgreSQL. Ele adiciona suporte para objetos geográficos, permitindo consultas de

localização a serem executadas em SQL. Além de reconhecimento espacial, o PostGIS oferece

muitos recursos raramente encontrados em outros bancos de dados espaciais concorrentes,

como Oracle Locator / Spatial ou SQL Server.

2.2.2 Geoserver

O GeoServer é um software livre escrito em Java que possibilita aos usuários o

compartilhamento e edição de dados geoespaciais como servidor Web Map Service (WMS). Foi

projetado com foco na interoperabilidade, ou seja, é capaz de extrair dados de qualquer fonte

de dados espaciais dos padrões abertos da atualidade. O servidor em questão conta com uma

interface de administração web, Web Administration Tool, usada para configurá-lo em diversos

aspectos desde adicionar dados aos bancos até mudanças nas configurações – inclusive

configurações de segurança, que serão exploradas mais a frente.

Existem algumas maneiras padronizadas de se integrar o GeoServer em uma aplicação

Java, uma delas é pelo uso de requisições especificas ao servidor do GeoServer para criar uma

imagem de mapa personalizado. Essa imagem é composta por diversas camadas sobrepostas

com informações adicionais ao mapa base. Por exemplo, um mapa de um bairro pode conter

uma camada para escolas e outra para pontos de ônibus.

Como exemplo, temos a seguinte requisição WMS e sua respectiva resposta:

Page 22: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

22

http://localhost:8080/geoserver/wms?bbox=-130,24,-66,50&styles=polygon&Format=

application/openlayers&request=GetMap&layers=usa:states&width=550&height=250&

srs=EPSG:4326

Essa requisição tem como resultado um mapa com uma única camada contendo os estados

dos Estados Unidos da América. O resultado da consulta será disponibilizado conforme ilustra

a FIG. 2.1

FIG. 2.1 - Resultado de uma requisição WMS ao GeoServer

2.3 Cenários

Com o intuito de verificar as soluções de segurança desta arquitetura, um cenário foi

visualizado como forma de exemplificar e testar as soluções. Considere uma operação militar

destinada a realizar a segurança de comitivas na locomoção entre hotéis e locais de jogo durante

as Olimpíadas de 2016 no Rio de Janeiro. O sistema fornecerá mapas que auxiliam a equipe de

segurança, assegurando a confidencialidade, integridade e disponibilidade dos dados,

independentemente da infraestrutura externa da rede.

As camadas de mapas existentes são:

atrações

Page 23: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

23

bairros

atrações

comitês

competições

corpo de bombeiros

delegacias

policiais

hotéis

Os grupos de usuários são:

Administrador

Estratégico

Tático

Operacional

Os dados referentes às camadas acessadas por cada grupo de usuário serão armazenados

em um arquivo xml da aplicação. Como parte do cenário, algumas situações de risco serão

implementadas, para que a arquitetura possa ser testada. Para tanto, supõe-se que o sistema

estará sob ação de usuários mal-intencionados que realizam as seguintes atividades a serem

mitigadas:

Ataques DoS

Varredura de portas

2.4 Ambiente de testes

O ambiente no qual foram realizados os testes determina parte do desempenho obtido,

especialmente a capacidade de processamento e memória disponíveis. A utilização de máquinas

virtuais foi escolhida principalmente para que não fosse necessário utilizar mais de uma

máquina física. Embora essa solução não simule as condições precisas em que o servidor de

hospedagem encontrar-se-á, é suficiente para a demonstração da funcionalidade do sistema.

2.4.1 Configurações

Todos os testes unitários foram executados utilizando-se:

Page 24: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

24

1 máquina física hospedeira Inspiron 15 7000 Series:

o processador Intel® Core i7 TM

o Placa gráfica dedicada NVIDIA® de 2GB

o 16 GB de memória RAM

o 1 TB de armazenamento

o Sistema operacional Windows 8

1 máquina virtualizada no Virtual Box simulando o servidor que hospeda a

aplicação:

o Sistema operacional Ubuntu Server 14.04 LTS (64 bits)

o 3072 MB de memória RAM

o 1 CPU

o 16 MB de memória de vídeo

o Conectada à placa de rede exclusiva de hospedeiro (host-only) em modo

promíscuo

1 máquina virtualizada no Virtual Box® simulando o atacante:

o Sistema operacional Kali 1.1.0 (64 bits)

o 2816 MB de memória RAM

o 1 CPU

o 16 MB de memória de vídeo

o Conectada à placa de rede exclusiva de hospedeiro (host-only) em modo

promíscuo

Page 25: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

25

3 SEGURANÇA ORGÂNICA DE DADOS

A segurança dos dados é mantida por meio de sistemas de autenticação e criptografia,

conforme ilustra a FIG. 3.1. A requisição é feita utilizando-se o protocolo seguro HTTPS, que

implementa criptografia. Antes de acessar os dados, o usuário deve ser autenticado pelo sistema

a ser desenvolvido, que consulta o banco de dados local de usuários. Caso o usuário seja

autorizado, a requisição é encaminhada para o servidor web, que consulta o Geoserver e seu

banco de dados geoespaciais, também criptografados. A resposta segue o caminho inverso e

retorna/ para a aplicação no lado do usuário na forma de uma imagem.

FIG 3.1 - Arquitetura da segurança orgânica

3.1 Controle de usuários

De acordo com o princípio de mínimo privilégio, o usuário deve ter acesso somente aos

recursos realmente necessários. Apesar do sistema final possuir páginas públicas – que

poderiam ser acessadas por qualquer usuário da rede - algumas delas podem conter conteúdo

sensível ou páginas de configuração que deveriam ser acessadas somente por usuários

Page 26: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

26

devidamente autorizados. Para o sistema, a informação sensível é o conteúdo dos mapas

discretizado por suas camadas. Logo o objetivo do controle de usuário é identificar um usuário

e decidir se ele possui ou não acesso à camada que está solicitando.

Para o usuário do sistema, esta autenticação consiste basicamente na inserção do par Nome

de usuário (login) e Senha. Uma vez que estes dados são inseridos e verificados, o usuário terá

acesso a páginas especificas previamente definidas pelo sistema.

Para isso, o sistema de controle é baseado em quatro conceitos: Reinos, Usuários, Grupos

e Funções (Realms, Users, Groups and Roles). Cada um desses conceitos é definido a seguir:

Reino: é um completo banco de dados de usuários e grupos que identificam usuários

válidos de uma aplicação web (ou um conjunto de aplicações web) e são controladas pela

mesma política de autenticação.

Usuário: é uma identidade individual (ou o programa aplicativo) que foi definido no

servidor de aplicações, geralmente representando pessoas. Em uma aplicação web, um usuário

pode ter um conjunto de funções associadas a essa identidade, o que lhes dá direito a acessar

todos os recursos protegidos por essas funções. Os utilizadores podem ser associados com um

grupo.

Grupo: é um conjunto de usuários autenticados, classificados por traços comuns,

definidas no servidor de aplicações.

Função: é um nome abstrato para a permissão acesso a um determinado conjunto de

recursos em um aplicativo.

O processo de mapeamento de usuários em seus grupos com respectivas funções pode ser

é ilustrado na FIG. 3.2.

Page 27: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

27

FIG. 3.2 - Esquematização do mapeamento de usuários em seus grupos

Um mapa é composto de uma ou mais Camadas sobrepostas e o Usuário tem acesso restrito

a estas. Para isso, cada Função de Usuários está relacionada a um conjunto de Camadas a que

tem acesso, o que também está ilustrado na FIG. 3.2.

Para o sistema em si, poderá ser utilizado o sistema de Autorização da Oracle para sistemas

em Java Web (ORACLE, 2015). A Autorização fornece acesso controlado a recursos

protegidos e baseia-se nos conceitos de Identificação e Autenticação:

Identificação: processo que permite o reconhecimento de uma entidade por um sistema.

O procedimento de Identificação é realizado com auxílio das funções login e logout built-in do

Java EE GlassFish Server (ORACLE, 2015). Para isso, foram criadas as classes Login, Logout

e LoggedInHttpServlet que herdam a classe HttpServlet, disponíveis em anexo. Todas as

páginas que necessitam de identificação do usuário são filhas de LoggedInHttpServlet e quando

acessadas podem ocorrer dois casos. No primeiro, se o usuário ainda não está identificado

(logado) o sistema é redirecionado à página de login (Classe Login) e após inserir seu login e

senha o sistema o redireciona novamente a página desejada anteriormente. Caso o usuário já

esteja identificado a página é acessada normalmente.

Autenticação: processo que verifica a identidade de um utilizador, dispositivo, ou outra

entidade num sistema de computador, geralmente como um pré-requisito para permitir o acesso

aos recursos num sistema. No sistema em questão, a Autenticação do Usuário se faz necessária

Page 28: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

28

no momento em que este solicita o acesso a uma determinada Camada de um mapa. Para isso,

o sistema possui um arquivo xml, config-camadas.xml, que relaciona as Funções de cada Grupo

ou Usuário as respectivas Camadas que tem acesso. Uma vez que o usuário está identificado, a

classe LoggedInHttpServlet é capaz de acessar o arquivo acima e dizer se o Usuário tem direito

ao acesso àquela camada usando o método userHasCamada.

A FIG. 3.3 ilustra a estrutura do arquivo de configuração que possibilita a autenticação no

sistema. Vale ressaltar que o arquivo se encontra criptografado no Sistema Operacional pelo

servidor Glassfish e que a única maneira de modifica-lo é através do Sistema Web.

FIG. 3.3 - Extrato do mapeamento de usuários em seus grupos

O gerenciamento do sistema de controle de usuários é feito pelo painel de administrador

do Java EE GlassFish Server, conforme ilustra a FIG. 3.4.

Page 29: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

29

FIG. 3.4 - Painel GlassFish de controle dos mapeamentos de usuários

Através do menu lateral Configurations/server-config/Security/Realms/file pode-se criar e

alterar Usuários, Grupos e Funções do Reino file (Reino padrão do Java EE, utilizado no

projeto). Deve-se também especificar as Funções no arquivo web.xml para que o Java EE possa

identifica-las e fazer a correlação com os Usuários e Grupos.

3.2 Segurança no PostgreSQL/PostGIS

A segurança dentro do banco de dados é baseada em Funções ou Papéis. Uma Função ou

Papel é geralmente relacionada a um usuário (uma Função que podem exercer), ou a um grupo

Page 30: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

30

(uma Função composta por uma ou mais Funções). O PostgreSQL apresenta diversas

funcionalidades de segurança, as quais serão exploradas ao longo do projeto, o que facilita a

segurança do SGBD.

As permissões podem ser concedidas ou revogadas em qualquer objeto até o nível mais

baixo de abstração (uma coluna de uma tabela), e também pode permitir ou impedir a criação

de novos objetos em nível de banco de dados, esquemas ou tabelas.

Existem também outros recursos de segurança externos utilizados pelo PostgreSQL:

Senhas (utilizando MD5 ou em texto claro)

GSSAPI

SSPI

Kerberos

ident (mapeia nomes de usuário O/S conforme fornecido por um servidor de identidades

para nomes de usuário no banco de dados)

peer (mapeia nomes de usuários locais para nomes de usuário no banco de dados)

LDAP

Active Directory

RADIUS

Certificados de segurança

PAM

Estes métodos são especificados em um arquivo de configuração de autenticação

(pg_hba.conf), que determina quais conexões são permitidas. Isso permite o controle de qual

usuário pode se conectar a qual banco de dados, de onde eles podem se conectar (endereço IP

ou intervalo de endereços IP / socket de domínio), que o sistema de autenticação será aplicado,

e se a conexão deve usar TLS.

Page 31: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

31

Como o PostGIS é uma extensão do PostgreSQL, ele possui basicamente as mesmas

características quando em se tratando de segurança.

3.3 Segurança no Geoserver

O GeoServer possui um subsistema de segurança bastante robusto, com base no Spring

Security - uma estrutura que se concentra em fornecer autenticação e autorização para

aplicações Java. A maior parte dos recursos de segurança podem ser configurados diretamente

pela interface de administração web.

Como um todo, as configurações de segurança do GeoServer podem ser divididas de

acordo com o menu exibido na FIG. 3.5 (definido no próprio GeoServer):

FIG. 3.5 - Configurações de segurança do GeoServer

3.3.1 Configurações gerais

A interface de usuário do GeoServer pode, por vezes, expor parâmetros em texto simples

no interior das URLs. Como resultado, pode ser desejável a criptografia desses parâmetros.

Como exemplo, pode-se ver nas FIG. 3.6 e FIG. 3.7 duas URL sem e com a funcionalidade

de criptografia, respectivamente.

Page 32: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

32

FIG. 3.6 - URL sem funcionalidade de criptografia

FIG. 3.7 - URL com funcionalidade de criptografia

3.3.2 Senhas

De maneira análoga ao que ocorre no PostgreSQL/PostGIS, o GeoServer possui a função

de criptografar as senhas utilizadas no servidor. Como essas senhas são normalmente

armazenadas no disco é fortemente recomendado que elas sejam criptografadas e não

armazenadas em texto claro. O GeoServer fornece quatro esquemas de criptografia de senhas:

empty, plain text, Digest, e Password-based encryption (PBE). Neste caso, a criptografia não é

reversível. As senhas são codificadas como uma cadeia vazia, e, como consequência, não é

possível recuperar a senha em texto claro. Este esquema é utilizado quando outros serviços de

autenticação estão disponíveis.

Senhas de texto simples não possuem qualquer criptografia. Neste caso, as senhas são

legíveis por qualquer pessoa que tenha acesso ao sistema de arquivos. Por razões óbvias, este

esquema não é recomendado exceto em caso de simples testes do servidor. Por exemplo, a

senha mypassword é codificada simplesmente como: plain:mypassword, o prefixo é usado

apenas para descrever o algoritmo usado para codificação/decodificação.

Digest é um modo de criptografia não reversível. Aplica-se 100.000 vezes através de um

processo iterativo uma função hash usando SHA-256. Este esquema é "one-way", no sentido

de que é praticamente impossível reverter e obter a senha original a partir de sua representação

hash. Para proteger contra ataques conhecidos, um valor aleatório chamado salt é adicionado a

senha. Para cada Digest, é adicionado um salt de forma aleatória de modo que a mesma senha

criptografada duas vezes resulta em diferentes representações hash.

Page 33: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

33

A PBE, normalmente emprega uma senha fornecida pelo usuário para gerar uma chave de

criptografia. Este esquema é reversível e utiliza um salt aleatório para aumentar a segurança

contra ataques de força bruta. O GeoServer suporta duas formas de PBE:

PBE fraco (o padrão do GeoServer): utiliza um método de criptografia básica que é

relativamente fácil de quebrar. A chave de criptografia é derivada da senha usando MD5 1000

vezes de forma iterativa. O algoritmo de criptografia utilizado é o DES. O DES tem um

comprimento de chave eficaz de 56 bits, o que não é realmente um desafio para os sistemas de

computador nestes dias.

PBE forte: utiliza um método de criptografia mais forte baseado em um algoritmo AES

de 256 bits com CBC. O comprimento da chave é de 256 bits e é derivado utilizando SHA-256,

em vez de MD5. A utilização do PBE forte é altamente recomendável e será a forma utilizada

como padrão para este projeto.

3.3.3 Autenticação, senhas, usuários, grupos e funções

Por padrão, o GeoServer permite o acesso anônimo a interface de administração web. Sem

autenticação, os usuários ainda são capazes de acessar algumas funcionalidades como visualizar

camadas e detalhes básicos GeoServer.

Essa autenticação consiste basicamente em um par Usuário-Senha para permitir ou não o

acesso a determinados recursos. Usuários podem ser divididos em Grupos com características

especificas (Funções específicas) de acesso ao sistema e do próprio controle administrativo

sobre outros usuários. A interface do GeoServer é bastante intuitiva e aproveita os recursos já

existentes de usuários das próprias tabelas do postgresSQL/postGIS, ou seja, pode-se reutilizar

os Usuários e Grupos do postgresSQL/postGIS no GeoServer.

Page 34: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

34

3.3.4 Dados

Pela interface administrativa do GeoServer, é possível especificar regras de acesso a Dados

específicos para Usuários ou Grupos específicos. Para cada par Workspace-Layer definem-se o

tipo de modo de acesso (Leitura, escrita ou admin) e as Funções acessíveis. A FIG. 3.8 ilustra

a interface administrativa do GeoServer.

FIG. 3.8 - Interface administrativa do GeoServer

Page 35: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

35

3.3.5 Serviços

De maneira análoga aos Dados, podemos especificar regras de acesso a Serviços

específicos. Para cada par Service-Method definem-se as Funções acessíveis. A FIG. 3.9 ilustra

regras de acesso a serviços específicos do GeoServer.

FIG. 3.9 - Regras de acesso a serviços específicos do GeoServer

3.4 Criptografia do banco de dados

De acordo com o princípio da segurança em profundidade, se as linhas de defesa mais

externas – como por exemplo firewalls ou autenticação – forem derrubadas, é necessário que

haja outra linha de defesa que suporte a falha da primeira. Essa linha de defesa consiste em

criptografar o texto claro armazenado.

Page 36: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

36

Segundo (STALLINGS, 2006), dois tipos principais de criptografia de dados podem ser

implementados em uma aplicação – pode-se criptografar elementos de uma tabela, como linhas

ou células, ou a TDE.

Para o primeiro tipo, a aplicação deverá implementar funcionalidades tais que, cada vez

que um dado for salvo no banco de dados, este, se necessário, não seja salvo em texto claro,

mas sim criptografado. A aplicação deve se responsabilizar por criptografar e descriptografar

as informações quando necessário e de todo o controle de chaves que realizarão este sistema de

criptografia. A FIG. 3.10 ilustra o funcionamento simplificado de um algoritmo criptográfico.

FIG. 3.10 - Esquema simplificado do funcionamento de um algoritmo criptográfico genérico

Se algum usuário mal-intencionado obtiver acesso aos arquivos do sistema burlando a

segurança mais externa ou até mesmo com o acesso físico ao servidor, o acesso ao arquivo

config-camadas.xml não pode ser permitido. Por isso, seu conteúdo será criptografado e seu

acesso será através do próprio sistema, para usuários devidamente autorizados (Usuários

pertencentes ao Grupo de Administradores). Em uma página específica da aplicação é possível

alterar o conteúdo desse arquivo de maneira segura.

Existe também uma abordagem em que a aplicação web deixa a responsabilidade da

criptografia de dados para um outro módulo utilizando o método de TDE, a qual foi utilizada

no presente projeto. De acordo com (CHESWICK, BELLOVIN e RUBIN, 2003), uma TDE

permite a criptografia simples e fácil para dados sensíveis em colunas sem que os usuários ou

aplicativos gerenciem a chave de criptografia. Não há necessidade de implementar módulos

para criptografar ou descriptografar os dados, porque os dados são transparentes para a

Page 37: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

37

aplicação – uma vez que um usuário passou verificações de controle de acesso necessárias. Os

administradores de segurança têm a garantia de que os dados no disco são criptografados, mas

a manipulação de dados criptografados se torna transparente para os aplicativos. Este tipo de

criptografia é utilizado na criação e no gerenciamento de Usuários, Grupos e Funções pela

plataforma do Java EE GlassFish Server.

3.5 Protocolo de transferência segura de dados (HTTPS)

De acordo com (STALLINGS, 2006), HTTPS se refere a combinação dos protocolos

HTTP e SSL na implementação de uma comunicação segura entre o navegador e o servidor

web, conforme ilustra a FIG. 3.11. A capacidade de suportar HTTPS é nativa na maioria dos

navegadores modernos, mas seu uso depende do servidor web suportar a comunicação HTTPS.

Páginas HTTPS normalmente utilizam um dos dois protocolos de segurança para

criptografia de dados - SSL ou TLS (ORACLE, 2015), sendo o primeiro o mais comum. Tanto

o SSL quanto o TLS utilizam um sistema de criptografia assimétrica.

FIG 3.11 - Relação entre HTTP e HTTPS (HTTPS = HTTP + SSL)

Page 38: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

38

SSL é usado juntamente ao protocolo TCP para fornecer um serviço seguro de confiança

ponta-a-ponta. Na verdade, SSL não é um único protocolo, mas sim duas camadas de

protocolos, como ilustrado na FIG. 3.12 Três protocolos de camadas mais altas são definidos

como parte do SSL: o Protocolo de Handshake, o Protocolo de troca de cifras, e o Protocolo de

Alerta (Handshake Protocol, The Change Cipher Spec Protocol, e Alert Protocol).

FIG. 3.12 - Esquema gráfico do protocolo SSL

A principal diferença vista pelos usuários é que na URL endereços começam com https: //

em vez de http: //. Tem-se também que uma conexão HTTP usa a porta 80 enquanto HTTPS

usa a porta 443, utilizando-se do SSL.

Em geral, em uma conexão HTTPS, os seguintes elementos são criptografados:

URL do documento requisitado

Conteúdo do documento

Conteúdo de formulários preenchidos pelo usuário

Cookies enviados do navegador para o servidor e vice-versa

Page 39: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

39

Conteúdo do cabeçalho HTTP(S)

HTTPS é frequentemente usado para proteger transações on-line altamente confidenciais,

como serviços bancários on-line e formulários de pedidos de compras on-line. No caso deste

projeto, será utilizado para proteger o sistema contra a ataques mal-intencionados e prevenção

do roubo de informações que transitam na rede.

Para que o protocolo HTTPS seja utilizado, é necessário especificar no arquivo web.xml

quais páginas utilizarão o protocolo. Como o protocolo implica em uma perda de desempenho

na transmissão de requisições e respostas, devido ao tempo de criptografia e decriptografia, ele

só deve ser utilizado nas páginas do sistema em que seja realmente necessário. Para efeito deste

trabalho, quando um usuário tenta acessar uma página reservada - com acesso restrito em que

é necessário realizar o login do usuário - ele é automaticamente redirecionado para a página

inicial de login, caso não esteja logado. Logo, na página inicial de login será usado o protocolo

HTTPS enquanto que nas outras páginas será utilizado o HTTP.

O GlassFish Server utiliza um certificado auto assinado que é gerado automaticamente

mas, para este projeto, será criado um novo certificado que substituirá este. Para tal criação,

utiliza-se a ferramenta Keytool, que é instalada junto ao GlassFish. Com os comandos abaixo

pode-se criar um certificado auto assinado e adicioná-lo a biblioteca de certificados do

GlassFish Server.

Criar certificado keystore.jks

keytool -genkey -alias s1as -keyalg RSA -keypass changeit -keystore keystore.jks

Exportar certificado para um arquivo server.cer

keytool -export -alias s1as -keypass changeit -storepass changeit -keystore

keystore.jks -file pfc.cer

Deletar o certificado original

keytool -delete -alias s1as -keystore /{glassfish-

path}/glassfish/domains/domain1/config/cacerts.jks

-storepass changeit

Page 40: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

40

Adicionar o certificado criado a trustsore

keytool -import -trustcacerts -alias s1as-file pfc.cer -keystore /{glassfish-

path}/glassfish/domains/domain1/config/cacerts.jks,

em que s1as é o alias e changeit é a senha do certificado, ambos mantidos como o padrão

original.

Assim, quando a página de login do sistema é acessada, as informações do certificado

podem ser vistas por qualquer navegador, como pode ser visto na FIG. 3.13:

FIG. 3.13 – Certificado auto assinado gerado para a aplicação

Portanto, para o certificado ser completamente válido, deve ser verificado por uma

Autoridade Certificadora. Contudo, isso não afeta em nada a criptografia na transmissão de

dados do sistema.

Page 41: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

41

4 SEGURANÇA DA REDE

4.1 Estrutura geral

A FIG. 4.1 ilustra a arquitetura proposta para a segurança da rede, de modo a tornar o

sistema independente de sistemas de defesa externos. Os componentes são exibidos

independentemente para fins de ilustração, sendo que as setas indicam o sentido do fluxo de

pacotes recebidos.

FIG. 4.1 - Fluxo de recebimento de pacotes na arquitetura proposta.

O fluxo de um pacote malicioso que entra no sistema é passar pelas regras do firewall e,

caso não esteja de acordo com alguma delas, o pacote é registrado em um arquivo de logs do

Page 42: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

42

sistema. Esse mesmo arquivo é monitorado pelo psad, que, ao verificar a existência de um

abuso, gera e-mails para os administradores e bloqueia o IP do atacante. Uma ferramenta

desenvolvida durante o projeto monitora os IPs bloqueados e fornece como entrada para o

firewall. Dessa forma, os próximos pacotes vindos desse IP serão encaminhados para um

honeypot, ao invés de seguirem para a aplicação normalmente.

4.2 Firewall

O firewall é um dispositivo inserido entre a rede a ser defendida e a Internet de modo a

estabelecer um enlace controlado bem como uma barreira ou um perímetro de segurança. Na

arquitetura proposta, portanto, o firewall tem por objetivo atuar como a primeira barreira de

defesa, isolando os sistemas interno e externo, além de estabelecer um ponto de

estrangulamento onde auditorias de segurança podem ser realizadas (RASH, 2007). A ausência

do mesmo implica na abertura do sistema para qualquer tipo de ataque, incluindo negação de

serviço, varredura de portas e impersonação de IP.

Os firewalls possuem as seguintes propriedades (JOSHI, SARDANA, 2011):

1. todo tráfego de dentro para fora de uma rede, e vice-versa, deve passar pelo firewall;

2. apenas tráfego autorizado, como definido pela política de segurança local, terá

permissão de passar;

3. o próprio firewall é imune a penetrações.

Podemos afirmar, portanto, que o firewall atua sob os princípios de defesa em profundidade

e centralização de fluxo.

Embora o firewall ofereça uma importante proteção contra ameaças externas à rede,

existem alguns pontos em que o firewall não é efetivo, fazendo-se as demais ferramentas mister

para o completo funcionamento da arquitetura em pauta, a saber:

O firewall não pode proteger contra ataques que o transpassem.

O firewall é incapaz de proteger a rede contra ameaças internas.

Page 43: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

43

O firewall não oferece resistência frente à transferência de vírus instalados em arquivos

e programas.

Em certos casos altos volumes de tráfego de rede podem sobrecarregar a capacidade de

monitoramento do firewall, resultando na possiblidade de tráfego malicioso entre redes

(ANDREU, 2006).

4.2.1 Netfilter/iptables

A implementação do firewall foi feita utilizando-se o módulo netfilter do Linux e a

aplicação iptables, para a criação das regras. O netfilter é uma ferramenta nativa do kernel do

Linux que fornece funções de controle de fluxo interno em termos de firewall. O netfilter é

dividido em três tabelas padrões: Filter, Nat e Mangle, cada qual com seus objetivos

específicos. A tabela Filter guarda todas as regras aplicadas a um firewall filtro de pacotes; a

tabela Nat armazena as regras direcionadas a um firewall Nat e a tabela Mangle funções mais

complexas de tratamento de pacotes.

O iptables foi desenvolvido pelo Projeto Netfilter e tornou-se público como parte do

sistema Linux desde o lançamento do Linux 2.4 em janeiro de 2001 (Russel, 2001). Consiste

basicamente em uma interface front-end para manipular as tabelas do Netfilter e não em um

firewall especificamente. Ao longo dos anos o iptables amadureceu em uma aplicação completa

com a maior parte das funcionalidades típicas encontradas em firewalls comerciais. Dentre suas

principais funcionalidades citamos (Rash, 2007):

Rastreamento de estado de protocolo

Inspeção de pacotes de camada de aplicação

Política de filtragem

A filtragem de pacotes, um dos principais recursos a ser utilizado, é, portanto, facilitada

por meio do controle do kernel do Linux pelo iptables. Uma política pode ser construída

explicitando-se um conjunto de regras que permitem a passagem de pacotes a serem aceitos e

rejeitando os demais. Cada regra é aplicada a uma cadeia em uma das tabelas do Netfilter. Uma

Page 44: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

44

cadeia, portanto, é uma sequência ordenada de regras que são comparadas com pacotes que

compartilham uma característica em comum. As três cadeias mais importantes embutidas na

tabela Filter são INPUT, OUTPUT e FORWARD.

A cadeia INPUT contém regras que determinam o que será feito com todos os pacotes que

entram em uma interface específica (Urubatan, 2004). A cadeia FORWARD trata dos pacotes

que chegam ao host mas devem ser redirecionados a um host secundário ou outra interface de

rede, enquanto que a cadeia OUTPUT trata os pacotes que saem do host.

As tabelas Nat e Mangle contém duas cadeias adicionais denominadas PREROUTING, que

altera os pacotes quando entram na interface, e POSTROUTING, que é utilizada para alterar

pacotes quando estes estão prontos para deixar o host A FIG. 4.2 esquematiza o funcionamento

de filtragem de pacotes pelo iptables (RUSSEL, 2001).

FIG. 4.2 - Fluxo de pacotes no iptables

4.2.2 Requerimentos da política de segurança

A definição das regras de firewall deve seguir os requisitos estabelecidos na política de

segurança do sistema. É comum ser requisito do administrador liberar o acesso da máquina

servidora pelo firewall para acessar sistemas externos à rede, nos seguintes serviços:

Consultas Domain Name System (DNS)

Consultas Network Time Protocol (NTP)

Page 45: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

45

Sessões Secure SHell (SSH)

Sessões Simple Mail Transfer Protocol (SMTP)

Sessões Web via HTTP/HTTPS

Consultas whois

Exceto pelos serviços listados, todo tráfego deve ser bloqueado. Sessões iniciadas a partir

da rede interna ou diretamente do firewall devem ter estado rastreado pelo iptables, de modo

que pacotes que não estejam de acordo com um estado válido sejam registrados e descartados.

Além disso, o firewall deve implementar ainda os seguintes controles contra pacotes spoofed

provenientes da rede interna com destino para IPs externos, assim como pacotes característicos

de varreduras de portas de acordo com as flags utilizadas:

O sistema deve ser acessível via SSH somente a partir da rede interna.

O firewall deve aceitar requisições ICMP Echo tanto das redes interna quanto externa,

mas pacotes que não sejam requisições ICMP Echo devem ser descartados independente

do IP de origem.

O sistema deve ser configurado de forma a registrar e descartar quaisquer pacotes

inválidos, tentativas de varredura de porta ou outras tentativas de conexão não

explicitamente permitidas.

Considerando as restrições acima, foram elaboradas as regras do iptables, disponíveis em

arquivo anexo.

4.3 Sistema de detecção de intrusão

Tendo em vista a incapacidade do firewall em proteger a rede sob diversos aspectos, o

sistema de detecção de intrusão torna-se um componente importante dentro do arsenal de defesa

do sistema e tem como objetivo detectar atividades suspeitas, impróprias, incorretas ou

anômalas. Além de ser crucial para a segurança interna, o IDS pode detectar ataques que são

Page 46: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

46

realizados por meio de portas legítimas e que, portanto, não podem ser protegidos pelo firewall.

(STALLINGS, 2007)

Enquanto o firewall atua como a primeira linha de defesa para a rede, impedindo conexões

indesejadas, o IDS pode ser definido como um monitor de atividades na rede em tempo real,

capaz de enviar alertas quando detectar pacotes que possam fazer parte de um possível ataque.

(NAKAMURA, GEUS, 2002) A utilização em conjunto dos dois dispositivos, portanto, está de

acordo com o princípio de defesa em profundidade e oferece nível considerável de segurança

ao administrador do sistema.

Assim como o firewall, o IDS falha em diversos aspectos críticos da proteção da rede, o

que torna interessante a utilização das demais ferramentas presentes na arquitetura em pauta, a

saber:

A implementação mais comum do IDS é no próprio gateway da rede, normalmente um

switch, implicando na impossibilidade do IDS monitorar parte do tráfego na rede e na

consequente vulnerabilidade contra ataques internos.

A velocidade das redes modernas é tão alta que muitas vezes um IDS apresenta

dificuldades em manter-se ativo.

Produção de sobrecarga de dados ao gerar um volume extremamente grande de alertas,

o que consome tempo, recursos e investimentos para a analisar e revisar os alertas.

O intenso monitoramento da rede pode, portanto, exigir hardware que suporte a atividade

e o tráfego intenso da rede. Alguns IDS apresentam também dificuldade em descobrir ou

identificar ataques ou comportamentos desconhecidos, tornando a organização vulnerável a

novos ataques. Por fim, com a presença cada vez maior da criptografia em protocolos como

SSH, SSL e IPSec cegam os IDS, que se tornam incapazes de monitorar o tráfego da rede

(JOSHI, SARDANA, 2011).

Page 47: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

47

4.3.1 Snort

O Snort é um IDS leve que tem capacidade de registrar pacotes que entram na rede. Suas

regras seguem uma sintaxe específica e serão utilizadas para a conversão em regras iptables por

meio do fwsnort. O Snort pode atuar em três modos diferentes, de modo que suas regras se

adequam a uma das três situações seguintes: (KOZIOL, 2003)

Modo sniffer, que simplesmente lê os pacotes da rede e os exibe em fluxo contínuo no

console.

Modo registrador de pacotes, que registra no disco os pacotes recebidos.

Modo NIDS, que realiza detecção e análise do tráfego da rede. Esse é o modo mais

configurável e complexo.

Embora o Snort não seja o único IDS disponível, as seguintes características fizeram com

que fosse escolhido para o protocolo em pauta (SCOTT, WOLFE, HAYES, 2004), o que

confere credibilidade e disponibilidade de suas regras e sintaxe:

Código aberto: seu código fonte está disponível gratuitamente, o que lhe confere maior

adaptabilidade e maior segurança sobre seu funcionamento.

Largamente utilizado: o Snort surgiu em 1998 e hoje conta com milhões de sensores

instalados ao redor do mundo. (CISCO, 2014)

Completamente configurável: é possível configurar o Snort para atuar sob a arquitetura

do sistema, bem como estabelecer regras específicas para ataques.

Atualizações constantes: novas assinaturas são disponibilizadas regularmente,

garantindo sua funcionalidade perante novos ataques.

Multiplataforma: roda tanto em plataformas Unix (incluindo Linux) quanto em sistemas

Microsof Windows, permitindo migrações futuras, caso necessário.

As regras Snort não são gratuitas desde 7 de Março de 2005 (SNORT, 2015), de modo que

foram utilizadas regras provenientes da comunidade para alimentar o fwsnort. Dessa forma,

Page 48: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

48

foram utilizadas as regras disponibilizadas pela comunidade, organizadas pela Emerging

Threats (EMERGING THREATS, 2015), anteriormente denominada Bleeding Edge. Os

conjuntos de regras disponíveis são públicos, gratuitos e atualizados constantemente, servido

como fonte suficiente para as regras gerais do sistema de detecção de intrusão.

4.3.2 Fwsnort

O fwsnort é um software escrito em Perl que traduz regras Snort em regras iptables

equivalentes. O projeto fwsnort utiliza as capacidades de filtragem e inspeção de pacotes

disponíveis no iptables, incluindo uso intenso da extensão de casamento de strings, com o

intuito de encontrar regras Snort as mais próximas possível do conjunto de regras iptables.

Embora não seja possível traduzir completamente as regras Snort, cerca de 70% das regras

podem ser reescritas como regras iptables.

Ao contrário do Snort, que normalmente é empregado como uma instância passiva para

monitorar o tráfego de rede em busca de atividades suspeitas, o fwsnort é sempre empregado

em linha. Dessa forma, qualquer política do fwsnort pode ser configurada para rejeitar pacotes

maliciosos por meio do comando DROP do iptables (RASH, 2007).

Utilizando-se as regras Snort para proteção de servidores web disponibilizadas pela

comunidade, foi possível obter uma taxa de conversão de mais de 55%, conforme ilustra a FIG.

4.3. Embora este resultado exclua muitas regras, seu resultado é satisfatório, considerando-se

que o fwsnort é utilizado como complemento para o psad.

Page 49: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

49

FIG. 4.3 - Conversão das regras Snort para regras iptables com fwsnort (taxa de sucesso em destaque).

A FIG 4.4 mostra um exemplo de uma regra snort convertida pelo fwsnort em regra

iptables.

FIG. 4.4 - Exemplo de regra Snort convertida com sucesso pelo fwsnort.

4.4 psad

O psad é um IDS que atua na camada de aplicação e é baseado na análise de logs gerados

pelo iptables, incluindo aqueles provenientes das regras Snort traduzidas pelo fwsnort. Quando

utilizado em conjunto com o fwsnort e a extensão de localização de strings do Netfliter, o psad

é capaz de detectar muitos ataques descritos pelo conjunto de regras do Snort que envolvem a

Page 50: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

50

camada de aplicação de dados. Como exemplos de características do psad que justificam seu

emprego citamos sua capacidade de detectar ferramentas de DDoS (mstream, shaft), programas

de backdoor (e.g. EvilFTP, GirlFriend, SubSeven) e técnicas avançadas de varredura de portas

(FIN, NULL, XMAS), comumente executados por meio da ferramenta nmap. Por utilizar

campos dos cabeçalhos dos pacotes recebidos em conjunto com pacotes TCP SYN, o psad pode

ainda determinar passivamente sistemas operacionais remotos das máquinas de onde os ataques

se originam (RASH, 2007).

A defesa ativa do psad consiste primariamente em bloquear automaticamente os endereços

IP que representem ameaça ao sistema, adicionando regras de firewall que impedem a

comunicação do atacante com o servidor. O bloqueio por IP é uma estratégia comum para a

mitigação de ataques como DoS, porém, como toda solução, possui falhas. Ataques mais

sofisticados podem utilizar redes de anonimato ou impersonação de IPs legítimos. Dessa forma,

é possível que o bloqueio de um IP não impeça outros ataques, ou mesmo evite acessos

legítimos ao sistema. O psad pode ainda, opcionalmente, ser configurado para realizar consultas

WHOIS aos atacantes, de forma a extrair mais informações.

Para reduzir falsos-positivos ou bloqueios indevidos, o psad classifica as ameaças de

acordo com sua base de dados em 5 níveis de gravidade. Dessa forma, é possível alterar o grau

de conservadorismo do sistema, que pode bloquear IPs apenas quando um nível pré-

determinado de ameaça for detectado. Ademais, ainda que haja algum bloqueio indevido, o

psad remove os itens de sua lista negra após um timeout configurável, definido como uma hora,

por padrão. Com isso, evita-se que usuários legítimos, vítimas de impersonação de IP, sejam

impedidos de comunicarem-se com o servidor.

Além do bloqueio automático, o psad conta ainda com um módulo de envio automático de

e-mails para os administradores da rede, de forma a alertá-los sobre possíveis ameaças. Caso

configurado para tal, o psad envia também os resultados das buscas WHOIS por e-mail.

Page 51: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

51

4.5 Honeypots

Segundo (Joshi, Sardana, 2011), um honeypot é “Um programa que se parece com um

serviço atraente, um conjunto de serviços, um sistema operacional inteiro ou mesmo uma rede

inteira, mas é na verdade um compartimento fortemente isolado construído para iludir e conter

um atacante”. Dessa forma, a utilização de honeypots está de acordo com o princípio de defesa

ativa e permite a captura de informações relevantes sobre o comportamento do atacante.

O honeypot resolve parte das falhas deixadas pelo firewall e pelo IDS e permite que o

sistema seja protegido contra-ataques zero-day, ou seja, ainda não divulgados ou conhecidos

pela comunidade. Primeiramente, o honeypot apenas coleta dados quando ocorre interação com

o mesmo, de modo que o volume de alertas produzidos é consideravelmente menor, fazendo

com que os dados coletados pelo honeypot sejam muito mais fáceis de tratar e analisar.

Honeypots também reduzem dramaticamente falsos positivos, já que qualquer atividade com

honeypots é por definição não autorizada. Novos ataques podem ser facilmente identificados e

capturados por meio da análise das anomalias apresentadas nos logs. A baixa atividade dos

honeypots implica ainda em poucos requisitos de hardware. Por fim, ainda que um ataque ocorra

contra uma entidade criptografada, a atividade será registrada pelo honeypot (RASH, 2007).

Um honeypot deve ser colocado na mesma rede que o servidor, seja como um software ou

um dispositivo físico, mas devemos separar o honeypot das outras máquinas, no caso utilizando

as regras do firewall. Isso é importante para que a máquina que roda o serviço real seja

resguardada e ao mesmo tempo adicionarmos valor ao honeypot de modo a torná-lo atraente a

ataques. A virtualização, embora custosa em termos de recursos, é uma possível solução para

implementarem-se honeypots sem a disponibilidade de máquinas físicas (CHEWSICK,

BELLOVIN e RUBIN, 2003).

Com o crescimento da popularidade dos honeypots, as máquinas virtuais passaram a

desempenhar um papel importante. Como os honeypots não atendem a usuários legítimos,

apenas uma pequena parcela dos recursos do sistema é requisitada. As máquinas virtuais

proveem multiplexação de recursos, que permite que mais honeypots de alta interação rodem

no mesmo hardware. A tecnologia das máquinas virtuais torna realizável a colocação de mais

honeypots de alta interação no mesmo hardware. Além disso, as máquinas virtuais permitem

Page 52: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

52

monitoramento mais profundo de atividades maliciosas em máquinas honeypot sem que os

atacantes percebam ou desabilitem o software de monitoramento.

A utilização de máquinas virtuais para honeypots têm suas desvantagens, entretanto. Até o

presente momento a virtualização completa de hardware não é suportada por processadores

Intel ou AMD. Um programa pode determinar se está rodando em uma máquina virtual

executando a instrução x86 SIDT em um nível não privilegiado. Um exemplo de programa que

faz isso é o redpill, ao examinar o resultado para determinar se está sendo executado em uma

máquina virtual. Atacantes podem usar o ataque redpill para evitarem honeypots que rodam

nesse tipo de máquinas. Para mitigar esses ataques com os processadores atuais seria necessário

traduzir instruções de emulação para binário, o que comprometeria o desempenho. No futuro,

tanto a Intel quanto a AMD pretendem lançar processadores que suportam virtualização

completa, tornando mais fácil que os honeypots sejam detectados por atacantes, de modo que é

possível que modificações à arquitetura apresentada sejam propostas.

4.6 Arquitetura final

A arquitetura proposta é descrita detalhadamente no fluxograma representado FIG. 4.5, em

que as setas azuis indicam a resposta do sistema.

FIG. 4.5 – Diagrama detalhado do fluxo de pacotes na arquitetura proposta

Page 53: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

53

O daemon é um script desenvolvido para monitorar alterações no arquivo

auto_blocked_iptables, em que o psad armazena os endereços bloqueados. Dessa forma, cada

vez que um novo IP intrusivo é detectado pelo psad, o daemon o adiciona a um ipset, criado no

momento da instalação. A FIG. 4.6 apresenta o código do daemon.

FIG. 4.6 – Código do daemon responsável por monitorar os IPs bloqueados

4.7 Dificuldades encontradas

Como forma de contribuir para desenvolvimentos futuros, vale ressaltar aqui uma

dificuldade de implementação e a solução encontrada para que futuros usuários possam

executar a manutenção sem maiores dificuldades. Após o atacante ser redirecionado para o

honeypot, é fundamental que os pacotes de resposta sejam redirecionados para a máquina

servidora, de forma que esta encaminhe a resposta para o atacante. Caso essa etapa seja

negligenciada, ou seja, se o pacote de resposta for direcionado diretamente do honeypot para o

atacante, este o recusará, visto que não haverá coerência entre os cabeçalhos TCP.

A FIG. 4.7 ilustra o caminho correto de requisição (setas vermelhas) e resposta (setas azuis)

provenientes do atacante e do honeypot, respectivamente. O identificador FLAG X/Y simboliza

um pacote TCP com endereço de origem e destino X e Y, respectivamente, com a flag FLAG

ativada. No caso da FIG. 4.7, o atacante envia um pacote SYN para início do three-way

Page 54: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

54

handhsake de A (atacante) para B (servidor). Em uma primeira tentativa, o servidor, já tendo

identificado o ataque, modifica o endereço de destino do pacote antes da decisão de roteamento,

portanto na cadeia PREROUTING do iptables, de B para C (honeypot). O ponto crítico surge

na reposta (seta verde), já que caso o honeypot simplesmente responda com um pacote ACK

C/A, o atacante receberá enviará RST A/C (seta amarela), já que a resposta esperada era ACK

B/A.

Dessa forma, foi preciso alterar a forma do honeypot de responder às requisições

encaminhadas do servidor. O servidor então deve alterar tanto o endereço de origem do pacote

a ser encaminhado quanto preparar para receber o retorno. Dessa forma, o servidor transforma

o pacote SYN A/C em SYN A/C e logo em seguida em SYN B/C. Assim, o pacote que chega no

honeypot é encaminhado novamente para o servidor, de onde é respondido para o atacante.

FIG. 4.7 – Problemas e soluções encontrados durante a implementação do encaminhamento do honeypot.

Page 55: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

55

Outra dificuldade encontrada foi implementar o mecanismo de retroalimentação que

permite que novos IPs sejam dinamicamente adicionados à lista de IPs bloqueados pelo firewall.

A solução encontrada foi utilizar o módulo ipset e a opção - -match-set. Por meio do

daemon_update, os IPs registrados pelo psad no arquivo de texto auto_blocked_iptables são

inseridos no ipset banned_nets e novamente utilizados pelo firewall. A FIG. 4.8 ilustra o

mecanismo de retroalimentação em pauta.

.

FIG. 4.8 – Mecanismo de retroalimentação com destaque para o update_daemon, ponto crítico durante a

implementação

A FIG. 4.9 é um extrato das regras do firewall que permitem o encaminhamento

bidirecional para o honeypot. Vale notar ainda que a utilização do HTTPS não prejudica a

alteração dos cabeçalhos dos pacotes.

Page 56: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

56

FIG. 4.9 – Extrato das regras do firewall responsáveis por realizar o encaminhamento bidirecional para o

honeypot

Visando ainda a facilitar a utilização do sistema, foram desenvolvidos scripts específicos

para a instalação e execução. Os scripts utilizam os repositórios debian e assumem que os

caminhos em que os pacotes são instalados equivalem aos da versão 14.04 do Ubuntu.

Page 57: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

57

5 TESTES

A utilidade da arquitetura é validada por meio de testes que simulam possíveis cenários

reais. A comparação das situações com e sem o sistema fornecerá o grau de eficiência da

solução.

5.1 Penetração

Teste de penetração pode ser definido como uma tentativa legal e autorizada de localizar e

explorar com sucesso sistemas de computadores com o propósito de torná-los mais seguros. O

processo inclui a busca por vulnerabilidades bem como o fornecimento de provas de conceito

por meio de ataques para comprovar a existência das vulnerabilidades. Testes de penetração

sempre terminam com recomendações específicas para endereçar e resolver os problemas

encontrados durante o teste. Visto como um todo, esse processo é utilizado para ajudar a

proteger computadores e redes contra-ataques futuros (ANDREU, 2006). O teste de penetração,

portanto, será o recurso principal para que seja confirmada a validade da arquitetura quanto à

sua finalidade de proteger os recursos do servidor.

FIG. 5.1 - Fases principais de um teste de penetração

Page 58: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

58

A metodologia a ser seguida nos testes de penetração segue padrões bem estabelecidos e

pode ser esquematizada de modo a simplificá-la pelo diagrama da FIG. 5.1. O princípio básico

de um teste de penetração é pensar e agir conforme um atacante e utilizar-se de todos os recursos

legais disponíveis para comprometer o sistema alvo. A utilização de uma metodologia

consagrada reduz o risco de falhas na identificação de possíveis problemas de segurança no

sistema.

A primeira etapa em qualquer teste de penetração é o reconhecimento, em que é realizada

a coleta do máximo de informações disponíveis. Pode ser passivo, caso em que não há contato

direto com o alvo e apenas informações públicas são agrupadas, ou ativo, quando há contato

direto com a vítima como no caso da utilização de engenharia social. Um dos produtos

essenciais da primeira fase é uma lista de endereços IP alvos a serem utilizados na próxima

fase. É fundamental ainda que essa etapa seja realizada de forma extensiva e recorrente para

que se tenha conhecimento das informações disponíveis a possíveis atacantes

(ENGEBRETSON, 2013).

A segunda fase da metodologia consiste em planejar o ataque e pode ser dividida em duas

atividades de varredura distintas. A primeira ocorre com a condução da varredura de portas,

cujo resultado esperado é uma lista de portas abertas e potenciais serviços rodando em cada

um dos alvos. A segunda atividade da fase de varredura é a varredura de vulnerabilidades, na

qual são localizadas e identificadas falhas específicas nos softwares e serviços de nossos alvos.

Com os resultados da fase anterior procedemos para a fase de obtenção de acesso, na qual

as vulnerabilidades serão exploradas. Como já se sabem exatamente quais as portas estão

abertas bem como quais os serviços que nelas rodam e quais as vulnerabilidades associadas a

esses serviços, é possível iniciar efetivamente o ataque ao alvo.

A fase final é conhecida como manutenção do acesso e consiste em implantar meios de se

permitir o acesso permanente do atacante. Essa fase é necessária uma vez que a maior parte dos

procedimentos da fase de exploração de vulnerabilidades não são persistentes, permitindo

apenas acesso temporário ao sistema. Com a implementação de backdoors criam-se

mecanismos de sobrevivência do sistema mesmo após o fechamento de programas e até da

Page 59: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

59

reinicialização do sistema. Incluímos ainda na fase final a etapa de limpeza de rastros, em que

são apagadas as possíveis indicações do ataque.

5.1.1 Testes com a arquitetura parcial (sem honeypot)

Embora a arquitetura completa envolva a participação de um honeypot, sua utilização

implica em maior necessidade de recursos. Uma vez que naquele sistema todos os pacotes de

um atacante bloqueado seriam encaminhados para outra máquina, ao invés de descartados, a

arquitetura torna-se fortemente vulnerável a ataques de negação de serviço. Considerando então

a possibilidade de se necessitar de uma forma de reagir a ataques de DoS, o sistema fornece

também a possibilidade de, por meio da decisão do administrador, alternar-se entre as

arquiteturas com e sem honeypot.

5.1.1.1 Varredura de portas

A FIG. 5.2 ilustra uma tentativa de varredura de portas por um atacante com endereço IP

192.169.0.101 na mesma rede do servidor alvo, cujo IP é 192.169.0.103, sem qualquer tipo de

regras de firewall.

FIG. 5.2 - Exemplo de varredura de portas contra o servidor sem regras de firewall ativas.

Já a FIG. 5.3 representa o caso em que o firewall está ativo. O atacante recebe como

resultado apenas a porta 22 aberta, o que está de acordo com a política estabelecida, já que

apenas conexões SSH são admitidas na rede interna.

Page 60: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

60

FIG. 5.3 - Exemplo de varredura de portas contra o servidor com regras de firewall ativas.

Conforme ilustra a FIG. 5.4, que apresenta os registros do log do firewall, diversos pacotes

são identificados de acordo com as regras do firewall e automaticamente descartados. O

resultado do ataque aparece como se todas as portas estivessem filtradas, sendo apenas a porta

22 aberta, o que está de acordo com as regras implementadas, já que o sistema deve ser acessível

via SSH a partir da rede interna.

FIG. 5.4 - Exemplo de tentativa de impersonação de IP.

Page 61: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

61

Já a FIG 5.5 ilustra uma tentativa de conexão ICMP por um atacante de uma rede externa

utilizando o IP reservado 192.168.1.17, o que é negado pelas regras do firewall.

FIG. 5.5 - Exemplo de tentativa de impersonação de IP.

Conforme ilustra a FIG 5.6, os pacotes são identificados como tendo sido impersonados e

são rejeitados, de forma que o atacante não recebe resposta.

FIG 5.6 - Extrato do log do firewall registrando os pacotes impersonados descartados.

5.1.1.2 Ataque de negação de serviço (DoS)

A FIG. 5.7 ilustra o servidor em uma situação vulnerável, sem as regras de firewall ativas,

porém sem estar sendo atacado. O gráfico plotado registra o tráfego de pacotes tanto recebidos

(RX) quanto transmitidos (TX) na única interface, utilizando-se a ferramenta speedometer.

Page 62: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

62

FIG. 5.7 - Tráfego de entrada e saída na interface do servidor sem regras de firewall e sem estar sob ataque de

negação de serviço.

O LOIC é uma das ferramentas de ataque de negação de serviço mais utilizadas atualmente,

tendo ganhado força por meio da divulgação do mesmo em ataques hacktivistas colaborativos

pelo grupo Anonymous. A FIG. 5.8 ilustra a interface gráfica do LOIC em execução contra o

servidor.

FIG. 5.8 - Painel de controle do LOIC em execução contra o servidor alvo.

Com o servidor vulnerável, sem regras de firewall, o servidor sofre nítida sobrecarga, se

comparado com a situação anterior, conforme atesta a FIG 5.9.

Page 63: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

63

FIG. 5.9 - Tráfego de entrada e saída na interface do servidor sem regras de firewall e sob ataque de

negação de serviço.

Após as regras do firewall serem levantadas em conjunto com as regras de detecção do

fwsnort, o tráfego volta à situação de normalidade, conforme revela a FIG. 5.10. Após a

detecção do ataque, diversos pacotes são descartados

FIG. 5.10 - Tráfego de entrada e saída na interface do servidor com regras de firewall e sob ataque de

negação de serviço.

Page 64: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

64

Em pouco tempo o psad detecta o ataque e em aproximadamente cinco minutos ocorre o

bloqueio. A FIG. 5.11 ilustra a situação do syslog quando do bloqueio. É possível notar ainda

que os emails são disparados em sequência, alertando o administrador remoto. Vale notar,

entretanto, que dependendo do nível de sensibilidade configurado para o psad, a quantidade de

e-mails pode tornar-se muito grande, dificultando a gerência do administrador.

FIG. 5.11 - Extrato do syslog indicando o bloqueio do atacante pelo psad e os emails enviados.

É possível visualizar ainda o estado do psad, incluindo principais ameaças e atacantes

bloqueados, conforme a FIG. 5.12.

Page 65: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

65

FIG. 5.12 - Estado do psad após o bloqueio do atacante.

Page 66: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

66

5.1.2 Testes com a arquitetura completa (com honeypot)

A presente simulação envolve agora três máquinas, representando um atacante, o servidor

da aplicação e um honeypot. Os endereços IP são 192.168.56.102, 192.168.56.101 e

192.168.56.100, respectivamente.

Conforme ilustra a FIG. 5.13, O cenário envolve novamente um atacante iniciando seu

ataque com uma varredura de portas. Em seguida, o sistema identifica o ataque e agora o

redireciona para o honeypot, que hospeda uma aplicação idêntica à do servidor real, mas com

dados fictícios. Dessa forma, toda movimentação do atacante será registrada em uma máquina

a parte, estando os dados da aplicação seguros.

FIG. 5.13 – Cenário para simulação dos ataques, envolvendo três maquinas virtuais.

5.1.2.1 Varredura de portas

Em um primeiro momento, o atacante visualiza a página alvo, obtendo como resultado em

seu navegador imagem semelhante à da FIG 5.14.

Page 67: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

67

FIG. 5.14 – Visualização da página alvo antes do ataque

Em seguida, o mesmo atacante inicia uma varredura de portas, obtendo como resposta

os resultados ilustrados na FIG 5.15.

FIG. 5.15 - Varredura de portas no servidor (IP ainda não bloqueado)

Nesse momento, o servidor está com o sistema de segurança com honeypot ativo, de modo

que o atacante é identificado como ameaça. Seu endereço IP é adicionado a um ipset pelo

update_daemon e todos os seus pacotes encaminhados para 192.168.56.101 (servidor) passam

a ser redirecionados para 192.168.56.102 (honeypot).

Page 68: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

68

Uma nova varredura de portas no servidor, por exemplo, resultaria agora nos dados da FIG.

5.16.

FIG. 5.16 - Varredura de portas no servidor (IP bloqueado)

De fato, a mesma varredura executada no honeypot revela que o atacante não está mais em

contato direto com o servidor, conforme ilustra a FIG. 5.17.

FIG. 5.17 - Varredura de portas no honeypot

Caso o atacante deseje acessar a página alvo pelo navegador novamente, encontrará

imagem semelhante à da FIG. 5.18. Vale notar que o título da página difere da aplicação original

Page 69: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

69

unicamente por motivos de ilustração. Em um serviço funcional a página teria aparência

idêntica à da aplicação original, de modo a reduzir as suspeitas do atacante.

FIG. 5.18 - Visualização da página alvo após o ataque bloqueado com sucesso

5.1.2.2 Varredura de vulnerabilidades

A FIG. 5.19 ilustra o resultado da varredura de vulnerabilidades com alvo no servidor,

utilizando-se a ferramenta nikto. De acordo com os resultados exibidos, o escaneamento não

está sendo realizado na aplicação real, já que a máquina alvo utiliza o servidor Glassfish e não

Apache. Dessa forma, as vulnerabilidades coletadas pelo atacante são provenientes da aplicação

do honeypot, e não da aplicação real.

Vale notar aqui que a aplicação do honeypot deve assemelhar-se ao máximo à aplicação

real, de forma a não despertar suspeitas por parte do atacante. Assim, poder-se-ia inserir

vulnerabilidades propositais na aplicação ou mesmo uma versão diferente do mesmo servidor,

de modo a estimular a atividade do invasor.

Page 70: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

70

FIG. 5.19 - Visualização dos resultados da varredura de vulnerabilidades na aplicação do servidor, com os

resultados encaminhados do honeypot.

5.1.2.3 Ataque de força bruta

A FIG. 5.20 ilustra um ataque de força bruta simplificado como prova de conceito sobre a

aplicação teste. O ataque utiliza a ferramenta Hydra, com os seguintes parâmetros:

–s <IP DA VÍTIMA>, para indicar a porta

-S para indicar o uso do protocolo SSL

-l <LOGIN > para indicar o login

-p <SENHA> para indicar a senha

O ataque em pauta foi direcionado para o servidor, tendo sido realizado após o bloqueio

prévio do atacante. De acordo com os resultados da FIG. 5.20, a combinação de login e senha

honey e pot é determinada como válida, o que indica que a aplicação atacada na verdade é a do

honeypot, e não a original. Dessa forma, foi possível proteger o banco de dados da aplicação

real, ao mesmo tempo que se poderia registrar o dicionário do atacante.

FIG. 5.20 - Visualização dos resultados do ataque de força bruta na aplicação do servidor, com os resultados

encaminhados do honeypot.

Page 71: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

71

5.1.2.4 Ataque de negação de serviço (DoS)

A defesa contra-ataques de negação de serviço constitui o ponto fraco da arquitetura

proposta, uma vez que o encaminhamento de pacotes maliciosos para o honeypot implica no

aumento do fluxo de dados. Considerando, portanto, um ataque de negação de serviço, espera-

se que o desempenho do sistema piore com o sistema de defesa em funcionamento,

especialmente se for utilizada a opção de virtualização.

A FIG. 5.21 ilustra o resultado de um ataque DoS após o bloqueio prévio do atacante. Para

a realização do ataque foi utilizada a ferramenta hping3 com os seguintes parâmetros:

-c <REQS> para indicar a quantidade de requisições

-d <TAMANHO> para indicar o tamanho de cada requisição

-p <PORTA> para indicar a porta alvo

--flood para indicar que deseja-se executar uma enchente de requisições no alvo

-S para indicar a utilização do protocolo SSL

FIG. 5.21 – Resultados do fluxo de dados durante um ataque DoS com utilização do honeypot.

Page 72: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

72

Embora não exista solução definitiva para ataques DoS, recomenda-se o estudo de melhoria

de soluções para o problema em pauta em trabalhos futuros. Como atual alternativa, recomenda-

se a utilização da solução parcial da arquitetura, com o descarte de pacotes. Embora essa

transição deva ocorrer de forma manual pelo administrador, sua aplicação evita o aumento do

tráfego malicioso na rede.

5.1.2.5 Visualização dos resultados

Para facilitar a visualização dos resultados coletados no honeypot pelo administrador,

utilizou-se a ferramenta DionaeaFR, já disponível no HoneyDrive 3. Com esta ferramenta pode-

se facilmente demonstrar os dados coletados na forma pcap em uma interface web, destacando-

se informações relevantes como conexões por país ou portas mais atacadas. A FIG. 5.22 ilustra

resultados dos ataques realizados na aplicação teste.

FIG. 5.22 – Interface gráfica web para exibição dos resultados coletados pelo honeypot.

Page 73: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

73

5.2 Quality of Service (QoS)

A disponibilidade de um serviço é um dos pilares da segurança da informação (JOHNSON,

2013). A inserção de camadas de segurança, embora de acordo com o princípio da defesa em

profundidade, implica no aumento do consumo de recursos como capacidade de processamento

do servidor, podendo reduzir sua disponibilidade. A qualidade do serviço deve portanto ser

testada após a implementação da arquitetura e de cada um de seus módulos.

São atribuídos quatro tipos de características a um fluxo, tradicionalmente: confiabilidade,

atraso, jitter e largura de banda. A confiabilidade está relacionada à entrega de um pacote e o

recebimento de sua respectiva confirmação. A perda de um pacote ou de sua confirmação

implica em consequente retransmissão. O serviço de consulta a dados geoespaciais requer alto

grau de confiabilidade, uma vez que a falta de um dado no lado do cliente compromete a

aplicação como um todo.

O sistema em pauta possui baixa tolerância a atrasos origem-destino, já que a aplicação

web de renderização das informações requisitadas pelo cliente é dinâmica. O usuário pode, por

exemplo, alterar seguidamente a aproximação de uma região do mapa ou adicionar uma nova

camada de dados sobreposta. O atraso nessas atividades pode significar o comprometimento da

aplicação em tempo real.

Jitter é a variação no atraso entre pacotes pertencentes ao mesmo fluxo. Por não se tratar

de uma transmissão de áudio ou vídeo em tempo real, é aceitável certa diferença entre os

pacotes, embora o ideal é que todos cheguem com o mesmo intervalo de tempo. No caso de um

jitter extremamente alto é possível que o usuário renderize uma camada e em seguida execute

outra atividade no mapa sem que as informações da camada adicionada tenham sido

renderizadas, causando inconsistência entre os dados geográficos.

A largura de banda é essencial para o correto funcionamento da aplicação, especialmente

se a transmissão de dados for exigir alta taxa de bits. A passagem de poucos parâmetros

geográficos não implica, porém, em uma sobrecarga da largura de banda. Seu correto

dimensionamento deve ser testado considerando-se o tipo de requisição efetuada em serviços

de dados geoespaciais (FOROUZAN, 2006).

Page 74: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

74

Em função da dependência de uma aplicação completa e funcional, bem como de uma

máquina servidora definitiva, os testes de QoS não puderam ser realizados. O teste em ambiente

local, com aplicações de fachada, não seria coerente, já que os diversos serviços de uma

aplicação afetam o desempenho. Da mesma forma, as configurações específicas da máquina

afetam diretamente o desempenho do sistema na visão do cliente. Assim, os testes de QoS

poderão ser realizados a partir dos conceitos aqui apresentados em um desenvolvimento futuro.

Page 75: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

75

6 CONCLUSÃO

O presente projeto teve por objetivo desenvolver uma arquitetura de segurança para uma

aplicação web que disponibilizasse dados geoespaciais. A arquitetura conta primeiramente em

uma camada de segurança de dados, em que foram aplicados algoritmos criptográficos, um

sistema de autenticação e o protocolo de segurança HTTPS. Ademais, a arquitetura possui

mecanismos de proteção do servidor e da rede, contanto com um sistema de detecção

automática de intrusão, baseado em análise de logs do firewall.

Como parte do sistema integral, os atacantes identificados são encaminhados para uma

máquina honeypot isolada ou virtualizada, o que permite que sejam extraídas informações sobre

o atacante. É possível ainda executar uma versão mais simples que não conta com o recurso do

honeypot, apenas descartando os pacotes. Esse recurso, embora menos sofisticado, foi mantido

em função de atender melhor a ataques de negação de serviço do que a versão completa.

Houve preocupação com a utilização prática por usuários com menos conhecimento

técnico ou sem conhecimento do sistema. Portanto, foram desenvolvidos scripts que

automatizam toda a parte da instalação e execução do sistema.

Embora o projeto tenha sido concluído com sucesso, tendo o produto final alcançado os

objetivos desejados, existem diversas melhorias que podem ser implementadas futuramente. A

integração do sistema de segurança com uma aplicação real que disponibilize dados geográficos

é fundamental para que o sistema seja completamente validado. Ademais, a instalação do

sistema e da aplicação em uma máquina servidora é interessante para que o serviço fique

disponível para uso em situação real, bem como para as medições de qualidade de serviço.

Os scripts de execução também podem receber melhorias, como a implementação de

opções de linha de comando. Dessa forma, torna-se possível automatizar dados de configuração

como endereço de IP do honeypot e email do administrador, a serem inseridos diretamente nos

arquivos por enquanto. A utilização de argumentos via linha de comando torna-se ainda

indispensável caso sejam adicionadas mais funcionalidades que exijam parâmetros.

Nem todos os ataques podem ser detectados ou prevenidos pela arquitetura proposta.

Dentre os principais pontos de vulnerabilidade no sistema completo com honeypot, ataques de

negação de serviço permanecem críticos. O encaminhamento dos pacotes do servidor para o

Page 76: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

76

honeypot não somente não reduz o fluxo como ainda o amplia, no caso de o honeypot estar

virtualizado no servidor. Dessa forma, pode-se alternar entre os módulos de segurança com e

sem honeypot, uma vez que este, por descartar pacotes provenientes do atacante, não

sobrecarrega a rede. Algoritmos de inteligência artificial poderiam ser utilizados nesse caso

para automatizar a transição entre as duas aplicações em tempo real, de modo a oferecer o

máximo de segurança em todos os casos.

Por fim, a implementação de uma interface gráfica que facilite a configuração da

ferramenta é interessante para que usuários leigos possam usufruir do sistema de proteção.

Além disso, a existência de meios visuais permite o melhor entendimento e a divulgação mais

eficiente do sistema.

Embora não tenha sido possível executar a arquitetura diretamente sobre uma aplicação

web completa que disponibilizasse dados geoespaciais, toda a aplicação foi testada em

máquinas locais com aplicações de fachada. Isso foi suficiente para atestar a validade do

sistema, garantindo que o mesmo atende com sucesso aos requisitos solicitados.

Page 77: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

77

7 REFERÊNCIAS BIBLIOGRÁFICAS

PROWELL, Stacy; KRAUS, Rob; BORKIN, Mike. Seven Deadliest Network Attacks. Elsevier,

2010.

ZWICKY, Elizabeth D.; COOPER, Simon; CHAPMAN, D. Brent. Building internet firewalls. "

O'Reilly Media, Inc.", 2000.

JOHNSON, John. Implementing Active Defense Systems on Private Networks. 2013. Disponível

em: <http://www.sans.org/reading-room/whitepapers/detection/implementing-active-defense-

systems-private-networks-34312>. Acesso em 05/05/2015.

PWC. Managing cyber risks in an interconnected world: Key findings from The Global State

of Information Security® Survey 2015. Disponível em:

<http://www.pwc.com/gx/en/consulting-services/information-security-survey/assets/the-

global-state-of-information-security-survey-2015.pdf>. Acesso em: 05/05/2015

SYMANTEC. Internet Security Threat Report. v. 20, Abr. 2015. Disponível em:

<https://www4.symantec.com/mktginfo/whitepaper/ISTR/21347932_GA-internet-security-

threat-report-volume-20-2015-social_v2.pdf>. Acesso em: 05/05/2015.

TIGER SECURITY. Analysis Report: The State of the art of digital guerrilla during the 2014

Brazilian World Cup. Disponível em:

<https://www.tigersecurity.pro/free_reports/AR_EN20140615_BR_v1.pdf>. Acesso em:

05/05/2015.

VARA, Edison. Hackers target Brazil's World Cup for cyber attacks. Reuters, São Paulo, 26

fev. 2014. Disponível em: <http://www.reuters.com/article/2014/02/26/us-worldcup-brazil-

hackers-idUSBREA1P1DE20140226>. Acesso em: 05/05/2015.

STALLINGS, William. Network security essentials: applications and standards. Pearson

Education India, 2007.

STALLINGS, William. Cryptography and Network Security, 4/E. Pearson Education India, 2006.

ORACLE. The Java EE 5 Tutorial. Disponível em:

<http://docs.oracle.com/javaee/5/tutorial/doc/bnbxw.html>. Acesso em: 03/05/2015.

CHESWICK, William R.; BELLOVIN, Steven M.; RUBIN, Aviel D. Firewalls and Internet

security: repelling the wily hacker. Addison-Wesley Longman Publishing Co., Inc., 2003.

RASH, Michael. Linux Firewalls: Attack Detection and Response with iptables, psad, and

fwsnort. No Starch Press, 2007.

JOSHI, R. C.; SARDANA, Anjali (Ed.). Honeypots: A New Paradigm to Information Security.

CRC Press, 2011.

Page 78: MINISTÉRIO DA DEFESA...4.2 Firewall..... 42 4.2.1 Netfilter/iptables 43 6 4.2.2 Requerimentos da política de segurança 44 4.3 Sistema de detecção de 4.3.1 Snort 47 4.3.2 Fwsnort

78

URUBATAN, N. E. T. O. Dominando Linux Firewall Iptables. Rio de Janeiro: Ed. Ciência

Moderna, 2004.

ANDREU, Andres. Professional pen testing for Web applications. John Wiley & Sons, 2006.

RUSSEL, Rusty. Linux 2.4 Packet Filtering HOWTO. 2001. Disponível em:

<http://www.netfilter.org/documentation/HOWTO/pt/packet-filtering-HOWTO.html>.

Acesso em: 23/04/2015

NAKAMURA, Emilio Tissato; GEUS, Paulo Lício. Segurança de redes. Berkeley, 2002.

KOZIOL, Jack. Intrusion detection with SNORT. Sams Publishing, 2003.

SCOTT, Charlie; WOLFE, Paul; HAYES, Bert. SNORT for Dummies. John Wiley & Sons, 2004.

CISCO. Snort Users Manual 2.9.6. 2014. Disponível em: <https://s3.amazonaws.com/snort-

org/www/assets/166/snort_manual.pdf>. Acesso em: 12/04/2015.

ENGEBRETSON, Patrick. The basics of hacking and penetration testing: ethical hacking and

penetration testing made easy. Elsevier, 2013.

FOROUZAN, Behrouz A. Comunicação de dados e redes de computadores. Mcgraw Hill Brasil,

2006.

SNORT. Snort License. Disponível em: <https://www.snort.org/snort_license>. Acesso em:

25/07/2015.

EMERGIN THREATES. Ruleset Downloads. Disponível em:

<http://doc.emergingthreats.net/bin/view/Main/AllRulesets>. Acesso em: 12/06/2015.

ORACLE. Oracle GlassFish Server 3.1 Application Development Guide. Disponível em:

<http://docs.oracle.com/cd/E18930_01/html/821-2418/beacm.html>. Acesso em: 22/07/2015.