Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
CENTRO UNIVERSITÁRIO MAURÍCIO DE NASSAU
CENTRO SUPERIOR DE TECNOLOGIA
PÓS-GRADUAÇÃO EM SEGURANÇA DE REDES
ANÁLISE DAS PRIN...
CARLOS ALEXANDRE MOURA MULATINHO
ANÁLISE DAS PRINCIPAIS AMEAÇAS E ATAQUES EM
SEGURANÇA DE COMPUTADORES E COMO O LINUX
E SE...
Agradeço a Deus por ter cuidado de mim todo
este tempo, só a Ele toda a honra e a glória, amém.
Dedico este trabalho para ...
RESUMO
Nos últimos anos o crescente aumento de notícias sobre ataques digitais tem se tornado uma
rotina nos noticiários e...
ABSTRACT
In recent years the increasing number of news about digital attacks has become a routine in
media and an alarming...
LISTA DE FIGURAS
Figura 1. Estatísticas dos Incidentes Reportados ao CERT.br
Figura 2. Computer and Network Attacks
Figura...
LISTA DE TABELAS
Tabela 1. Ataques digitais recentes a organizações.
Tabela 2. Tipos de resposta aos riscos.
Tabela 3. Tab...
LISTA DE SIGLAS
SO Sistema Operacional
Linux SO desenvolvido por Linus Torvalds
Kernel Interface que faz a ponte entre o h...
Sumário
RESUMO iii
ABSTRACT iv
LISTA DE FIGURAS v
LISTA DE TABELAS vi
LISTA DE SIGLAS vii
SUMÁRIO viii
1 INTRODUÇÃO 1
1.1 ...
INTRODUÇÃO
A necessidade de proteger os dados trafegados em meio digital torna-se cada dia mais
importante para a populaçã...
cipalmente quando fala-se em servidores, appliances de rede, de backup, de storage e muitos
outros. A motivação deste docu...
1.3 METODOLOGIA DE PESQUISA
A metodologia utilizada no presente trabalho foca na pesquisa descritiva visando fornecer
ao l...
FUNDAMENTAÇÃO TEÓRICA
Neste capítulo serão apresentados de forma bem resumida os conceitos básicos sobre a
segurança da in...
Empresa Ano Descrição do Ataque
Sony Pictures 2014 Invasão em vários computadores de funcionários da Sony que
permitiu com...
informação, alguns mitos estão diretamente relacionados a esta falta de investimento e podemos
citar alguns exemplos comun...
3. Treinamento contínuo da equipe de segurança da informação
Como já foi citado antes, a segurança é um processo e não um ...
7. Monitorar os sistemas
Mesmo se utilizando das melhores ferramentas de proteção é necessário a monitoração,
apenas insta...
2.2 PRINCIPAIS AMEAÇAS E ATAQUES
Nesta seção serão apresentados os principais ataques e ameaças à segurança de computa-
do...
eles usam, que vulnerabilidades eles costumam a explorar, que tipo de atividade eles executam,
os tipos de ativos e recurs...
• Resultado Não Autorizado (Unauthorized Access) é o que o evento ocasionou, perda
e/ou corrompimento da informação, negaç...
engenheiro social pode aproveitar-se das pessoas para obter as informações com ou sem o uso
da tecnologia (MITNICK e SIMON...
computadores. Esta técnica também é descrita como Man In The Middle porque permite que o
atacante (Man) fique no meio da co...
que significa que enquanto ele tiver este Cookie e enviar pro servidor ele está autenticado, o
atacante então consegue sequ...
MALWARES
Vírus assim como na biologia humana um vírus de computador tem o objetivo de invadir o
sistema computacional e se...
2.3.1 POLÍTICA DE SEGURANÇA DA INFORMAÇÃO
A principal regra que deve ser adotada por uma organização séria é uma política ...
Ela contém ao todo 14 (quatorze) seções de controles de segurança da informação, 35
(trinta e cinco) objetivos de controle...
para estas atividades, mantém ambientes de laboratório seguro para avaliação dos siste-
mas, etc.
Relacionamento na cadeia...
Riscos estáticos e dinâmicos Existe uma importante distinção entre eles. Riscos dinâmicos
estão associados a mudanças na e...
Para todo o risco que é identificado deve haver uma resposta. Uma resposta nada mais
é do que uma técnica definida para acei...
Negação de
Serviço no
WebSite
Médio Possível Equipe de Tecno-
logia e Segurança
da Informação
Mitigar. Aplicar as técnicas...
2.3.3 CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL
A criptografia é definida como a arte e a ciência de tornar as mensagens seguras S...
pode ser utilizada para esconder informações há também pessoas que tem a capacidade de
realizar ataques contra determinada...
texto claro, conforme pode ser visto na figura 4.
CHAVES SIMÉTRICAS
A principal característica da chave simétrica é que ela...
RC4, RC5, RC6 64 a 256 Bits Tornou-se algoritmo simétrico de criptografia de fluxo
mais usado no software e utilizado nos pr...
Figura 5. Algoritmo de troca de chaves. DIFFIE e HELLMAN (1976)
CERTIFICADOS DIGITAIS
Certificado digital é um arquivo de c...
Figura 6. Estrutura da ICP-Brasil 2010. Fonte: ICP-Brasil.
Nota sobre tamanho de chaves. Hoje em dia chaves com menos de 1...
Secreto, Confidencial, Público, etc.
Biba Tem seu foco voltado para a integridade e proteção da informação, implementa as s...
não ter acesso a um diretório rotulado como muito secreto acessado apenas pelos donos do
negócio. Um exemplo de sistema qu...
HOST INTRUSION DETECTION SYSTEM
A detecção de intrusão via Host é baseada em coleta de informações dos aplicativos e
análi...
SISTEMA OPERACIONAL LINUX
O linux é um sistema operacional baseado no Minix (desenvolvido por Andrew S. Tanen-
baum) mas q...
não dá apenas celeridade ao processo de contribuição mas também mostra um dos primeiros
aspectos da segurança através da L...
para acesso local. A última medida diz respeito a injeção de malwares e roubo de informações
das organizações através de d...
conexões descriptografadas contendo senhas de acesso, arquivos transferidos via rede e muitos
outros.
Contramedidas: Utili...
FIREWALL IPTABLES
Existem várias soluções de firewall no sistema operacional Linux mas o iptables se des-
taca por sua exte...
SQUID
O SQUID é um serviço de proxy e cache que atua em protocolos como HTTP, HTTPS,
FTP e outros. O SQUID é muito utiliza...
ACESSO REMOTO - OPENVPN E OPENSSH
OpenVPN é um software de código aberto que implementa uma VPN (Virtual Private Network)
...
O SSH utiliza-se de três camadas principais:
1. A camada de transporte de protocolo via ssh, descrita no RFC 4253. Respons...
documentos com algoritmos de criptografia de chaves assimétricas. Teve um impacto imenso
no mundo digital pois antes dele n...
muitos pensam. O SNORT possui três modos de operação que estão descritos a seguir.
Sniffer É o modo mais comum e que simpl...
var HTTP_PORTS 80
var RULE_PATH /usr/local/snortrules
.......
include $RULE_PATH/local.rules
include $RULE_PATH/bad-traffi...
LINUX SECURITY MODULES
Em março de 2001 a NSA (Agência de Segurança Nacional) dos Estados Unidos fez
uma apresentação sobr...
Dentre os principais controles e operações de segurança que podem ser implementados
através da criação de módulos dentro d...
3. Já no menu selecione a opção: Security options;
4. Marque com ’*’ (modo built-in) o módulo que deseja usar;
5. Feito is...
checagem de erros, uma checagem de controle de acesso DAC e finalmente é chamada a função
gancho do LSM que simplesmente re...
499 * Save open-time permission checking state for later use upon
500 * file_permission, and recheck access if anything ha...
4.4 DISTINÇÃO E PRINCIPAIS CARACTERÍSTICAS
Nesta seção haverá uma descrição resumida dos principais módulos de segurança d...
Tabela 7. Usuários e papéis (roles) padrões no SELinux.
Usuários guest_u, root, staff_u, sysadm_u, system_u, unconfined_u, ...
ShellShock e o SELinux Uma das maiores vulnerabilidades descobertas nos últimos anos e
que afeta o Linux foi o Shellshock,...
#include <abstractions/base>
#include <abstractions/nameservice>
capability net_bind_service,
capability net_raw,
/bin/das...
Entre suas principais características pode-se citar:
• Analise do sistema, ideal para estudar o funcionamento do Linux;
• ...
novamente. Uma outra coisa que também deve ser avaliada é que é possível que com as atu-
alizações destes softwares, novos...
TCC Análise das principais ameaças e ataques em segurança de computadores e como o linux e seus módulos do kernel podem aj...
TCC Análise das principais ameaças e ataques em segurança de computadores e como o linux e seus módulos do kernel podem aj...
TCC Análise das principais ameaças e ataques em segurança de computadores e como o linux e seus módulos do kernel podem aj...
TCC Análise das principais ameaças e ataques em segurança de computadores e como o linux e seus módulos do kernel podem aj...
TCC Análise das principais ameaças e ataques em segurança de computadores e como o linux e seus módulos do kernel podem aj...
TCC Análise das principais ameaças e ataques em segurança de computadores e como o linux e seus módulos do kernel podem aj...
TCC Análise das principais ameaças e ataques em segurança de computadores e como o linux e seus módulos do kernel podem aj...
Upcoming SlideShare
Loading in …5
×

TCC Análise das principais ameaças e ataques em segurança de computadores e como o linux e seus módulos do kernel podem ajudar a mitigá-las

996 views

Published on

tcc apresentado na conclusão de especialização da uninassau

Published in: Technology
  • Be the first to comment

TCC Análise das principais ameaças e ataques em segurança de computadores e como o linux e seus módulos do kernel podem ajudar a mitigá-las

  1. 1. CENTRO UNIVERSITÁRIO MAURÍCIO DE NASSAU CENTRO SUPERIOR DE TECNOLOGIA PÓS-GRADUAÇÃO EM SEGURANÇA DE REDES ANÁLISE DAS PRINCIPAIS AMEAÇAS E ATAQUES EM SEGURANÇA DE COMPUTADORES E COMO O LINUX E SEUS MÓDULOS DE SEGURANÇA DO KERNEL PODEM AJUDAR A MITIGÁ-LAS CARLOS ALEXANDRE MOURA MULATINHO Recife - Pernambuco Novembro de 2015
  2. 2. CARLOS ALEXANDRE MOURA MULATINHO ANÁLISE DAS PRINCIPAIS AMEAÇAS E ATAQUES EM SEGURANÇA DE COMPUTADORES E COMO O LINUX E SEUS MÓDULOS DE SEGURANÇA DO KERNEL PODEM AJUDAR A MITIGÁ-LAS Trabalho de conclusão de curso apresentado ao programa de pós-graduação em Segurança de Redes no Centro Universitário da Maurício de Nassau como requisito básico para obtenção do título de Especialista em Segurança de Redes. Área de Concentração: Segurança de Computadores Orientador (a): Prof. Mestre Frederico Madeira Recife - Pernambuco Novembro de 2015
  3. 3. Agradeço a Deus por ter cuidado de mim todo este tempo, só a Ele toda a honra e a glória, amém. Dedico este trabalho para os meus pais, Letícia e Carlos, pelo amor, paciência, carinho e dedicação. E para a minha esposa, Fernanda, com amor e carinho.
  4. 4. RESUMO Nos últimos anos o crescente aumento de notícias sobre ataques digitais tem se tornado uma rotina nos noticiários e um percentual alarmante no aumento de crimes contra as organizações, negligenciar as ameaças no mundo digital não é mais uma opção para as empresas e usuários finais conectados na rede. Conhecer um pouco mais sobre como proteger os sistemas digitais e como aplicar controles de segurança da informação eficazes torna-se cada vez mais crucial. Hoje em dia pesquisas científicas, transações financeiras e sistemas do governo rodam através de computadores e geralmente precisam estar conectados a redes não confiáveis. Muito uti- lizado como servidor, o sistema operacional Linux hoje está presente entre os mais diversos dispositivos tecnológicos (TVs, celulares, roteadores wifi, usinas de energia, super computado- res, NASA) que utilizamos e assim como outros sistemas operacionais ele também está sujeito a maioria dos ataques físicos e digitais listados aqui entretanto mostra-se eficiente e um aliado robusto na prevenção e correção da maioria desses problemas. Um dos principais fatores que contribuem para isso são os módulos de segurança embutidos em seu núcleo que ajudam a im- plementar níveis de controles como o controle de acesso mandatório (MAC) e a auditoria de sistema. Este estudo é uma pesquisa descritiva e bibliográfica e tem como objetivo analisar os principais riscos e ataques em segurança de computadores e fornecer soluções através do uso do Linux e dos seus módulos de segurança para mitigar os riscos e oferecer uma maior proteção contra estas ameaças. Palavras-chave: segurança de computadores, ameaças digitais, linux, linux security modules. iii
  5. 5. ABSTRACT In recent years the increasing number of news about digital attacks has become a routine in media and an alarming increase in the percentage crimes against organizations, neglecting the threats in the digital world It is no longer an option for companies and end users connected to the network. Nowadays scientific research, financial transactions and government systems run through computers and often need to be connected to untrusted networks. Widely used as a server, the Linux operating system It is now present among the various technological devices (TVs, cell phones, wifi routers, power plants, super computers, NASA) we use and like other operating systems it is also subject to most physical and digital attacks listed here yet It proves to be efficient and a robust ally in the prevention and correction of most of these problems. One of the main factors contributing to this are the security modules embedded at its core that help implement levels of controls such as mandatory access control (MAC) and the system audit. This is a research study and descriptive literature and aims to analyze the main risks and attacks on computer security and provide solutions through the use of Linux and its security modules to mitigate risks and provide greater protection against these threats. Key words: computer security, digital threats, linux, linux security modules. iv
  6. 6. LISTA DE FIGURAS Figura 1. Estatísticas dos Incidentes Reportados ao CERT.br Figura 2. Computer and Network Attacks Figura 3. Máquina Enigma da Segunda Guerra mundial. Figura 4. Esquema de um sistema de criptografia geral. Figura 5. Algoritmo de troca de chaves. Figura 6. Estrutura da ICP-Brasil 2010. Figura 7. Conexão VPN site para site. Figura 8. Visualização de abertura de um arquivo com LSM. v
  7. 7. LISTA DE TABELAS Tabela 1. Ataques digitais recentes a organizações. Tabela 2. Tipos de resposta aos riscos. Tabela 3. Tabela de gerenciamento de riscos. Tabela 4. Tipos de algoritmos simétricos. Tabela 5. Cadeias de regras do IPTABLES. Tabela 6. Ações realizadas pelas regras do SNORT. Tabela 7. Usuários e papéis (roles) padrões no SELinux. Tabela 8. Rótulos especiais do TOMOYO. Tabela 9. Principais características dos módulos de segurança. vi
  8. 8. LISTA DE SIGLAS SO Sistema Operacional Linux SO desenvolvido por Linus Torvalds Kernel Interface que faz a ponte entre o hardware e os softwares aplicativos. LSM Linux Security Modules, framework que adiciona maior segurança ao Kernel. DAC Discretionary Access Control RBAC Role-Based Access Control Hacker Usuário que estuda sistemas digitais por diversão tornando-se especialista. Cracker Criminoso que usa seus conhecimentos para quebrar a segurança de sistemas. Phreaker Especialista em sistema de telecomunicação (telefonia, celulares, etc). Script Kiddie Usuário que utiliza scripts criado por crackers para invadir computadores. Botnet Computadores tomados por crackers que viram zumbis a seu serviço. DoS O ato de negar um serviço de um sistema digital em computadores. DDoS O mesmo que DoS mas em larga escala executado por vários computadores. Exploit Software e/ou script que explora vulnerabilidade de um programa. IP Spoofing Técnica para mascarar o IP real de um computador. Buffer Overflow Ataque a softwares com o intuito de realizar estouro da pilha de memória. Brute Force Consiste em adivinhar, por tentativa e erro, uma informação não autorizada. Keylogger Ferramenta que fica lendo os caracteres digitados pelo usuário. Malware Aplicativos que acessam informações sem autorização do usuário. Spyware Tipo de Malware utilizado para espionar atividades do usuário. Phishing Técnica onde são embutidos links maliciosos para que o usuário clique. Rootkit Tipo de malware que infecta o computador e abre portas para o atacante. Backdoor Como um Rootkit, mas geralmente implementando na construção do sistema. M.I.T.M. Técnica que permite a escuta des mensagens trocadas entre dois pontos. Criptografar Ato de tornar uma mensagem em texto claro numa mensagem secreta. Decriptografar Ato reverso de tornar uma mensagem criptografada em texto claro. SELinux Security Enhanced Linux desenvolvido pela NSA, módulo de segurança do kernel. Bridge Técnica de rede que permite conectar dois segmentos de rede diferentes. OSI Open Systems Interconnection. vii
  9. 9. Sumário RESUMO iii ABSTRACT iv LISTA DE FIGURAS v LISTA DE TABELAS vi LISTA DE SIGLAS vii SUMÁRIO viii 1 INTRODUÇÃO 1 1.1 JUSTIFICATIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 OBJETIVOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.1 GERAL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2.2 ESPECÍFICOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 METODOLOGIA DE PESQUISA . . . . . . . . . . . . . . . . . . . . . . . . 3 1.4 ORGANIZAÇÃO DO TRABALHO . . . . . . . . . . . . . . . . . . . . . . . 3 2 FUNDAMENTAÇÃO TEÓRICA 4 2.1 SEGURANÇA DA INFORMAÇÃO . . . . . . . . . . . . . . . . . . . . . . . 4 2.2 PRINCIPAIS AMEAÇAS E ATAQUES . . . . . . . . . . . . . . . . . . . . . 9 2.2.1 AMEAÇAS QUE IMPACTAM COMPUTADORES . . . . . . . . . . 11 2.2.2 ATAQUES DE REDE . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.3 ATAQUES DE SOFTWARE . . . . . . . . . . . . . . . . . . . . . . . 14 2.3 PRINCIPAIS MECANISMOS DE DEFESA . . . . . . . . . . . . . . . . . . . 15 2.3.1 POLÍTICA DE SEGURANÇA DA INFORMAÇÃO . . . . . . . . . . 16 2.3.2 ANÁLISE E GERENCIAMENTO DE RISCOS . . . . . . . . . . . . 18 2.3.3 CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL . . . . . . . . . . . . 22 2.3.4 CONTROLES DE ACESSO . . . . . . . . . . . . . . . . . . . . . . . 27 2.3.5 SISTEMAS DE DETECÇÃO DE INTRUSÃO . . . . . . . . . . . . . 29 3 SISTEMA OPERACIONAL LINUX 31 3.1 PRINCIPAIS VULNERABILIDADES . . . . . . . . . . . . . . . . . . . . . . 32 3.2 SOFTWARES E MECANISMOS DE SEGURANÇA . . . . . . . . . . . . . . 34 4 LINUX SECURITY MODULES 42 4.1 ESTRUTURA BÁSICA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 4.2 ATIVANDO UM MÓDULO DE SEGURANÇA . . . . . . . . . . . . . . . . 43 4.3 IMPLEMENTAÇÃO NO KERNEL . . . . . . . . . . . . . . . . . . . . . . . 44 4.4 DISTINÇÃO E PRINCIPAIS CARACTERÍSTICAS . . . . . . . . . . . . . . 47 4.5 AUDITORIA DE EVENTOS DE SEGURANÇA . . . . . . . . . . . . . . . . 55 5 CONCLUSÕES 56 REFERÊNCIAS 58 viii
  10. 10. INTRODUÇÃO A necessidade de proteger os dados trafegados em meio digital torna-se cada dia mais importante para a população e as empresas de pequeno a grande porte, entender como aplicar metodologias de proteção é crucial para garantir a eficácia na segurança das informações. A segurança do computador repousa sobre a confidencialidade, integridade e disponibi- lidade. As interpretações destes três aspectos variam, assim como os contextos em que elas surgem. A interpretação de um aspecto em um determinado ambiente é ditada pelas necessida- des dos indivíduos, os costumes e as leis da organização particular (BISHOP, 2003). Neste documento o leitor poderá obtêr mais detalhes sobre como esses três pilares estão ligados entre si para garantir uma eficiência na prevenção de falhas de segurança, o que cada um deles de fato significa e como eles devem ser aplicados para garantir a segurança das infor- mações. Historicamente um dos guias mais aceitos para se garantir a eficácia de um plano de segurança da informação foi descrito no livro de FITES et al. (1989) e inclui os passos abaixo: 1. Identificar o que você está tentando proteger, 2. Determinar de quê você está tentando proteger, 3. Determinar como as ameaças aparentam ser, 4. Implementar medidas que irão proteger seus ativos, 5. Revisar o processo continuamente e fazer melhorias quando uma fraqueza for encontrada. 1.1 JUSTIFICATIVA A segurança da informação ainda é muito pouco discutida nos dias atuais, em meio a quantidade de sistemas digitais que fazem parte do cotidiano como câmeras de segurança, cai- xas de banco, estações de trabalho e outros, ainda existem milhares de usuários sem o conhe- cimento de que existem diversos ataques digitais ocorrendo neste momento com foco principal em grandes corporações, empresas menores e sobretudo os próprios usuários como poderá ser visto neste documento mais a frente. O sistema operacional Linux já a alguns anos é uma realidade dentro das empresas prin- 1
  11. 11. cipalmente quando fala-se em servidores, appliances de rede, de backup, de storage e muitos outros. A motivação deste documento trata-se em identificar as principais ameaças e ataques a que os computadores estão sujeitos e mostrar como o Linux pode utilizar algumas formas eficientes para mitigar e algumas vezes até mesmo solucionar alguns desses problemas, quando todas as frentes de defesa forem derrubadas ainda assim existirá a possibilidade de que o núcleo do Linux possa ajudar a eliminar as ameaças, nesta linha de raciocínio este documento visa também uma abordagem e descrição dos principais componentes da implementação dos módu- los de segurança dentro kernel do Linux afim de fornecer ao leitor ainda mais opções para se previnir e banir estes ataques. 1.2 OBJETIVOS 1.2.1 GERAL Avaliar os principais riscos, ameaças e ataques à segurança de computadores e como através do uso das melhores práticas e do uso do sistema operacional Linux e de seus módulos de segurança estes riscos podem ser mitigados. 1.2.2 ESPECÍFICOS • Conceituar os elementos da segurança da informação; • Informar sobre a importância da proteção da informação; • Mostrar as principais ameaças e ataques a sistemas digitais; • Fornecer recomendações sobre segurança da informação e suas melhores práticas; • Mostrar as principais vulnerabilidades ao qual o Linux está exposto; • Mostrar mecanismos de segurança dentro do Linux e do Kernel;
  12. 12. 1.3 METODOLOGIA DE PESQUISA A metodologia utilizada no presente trabalho foca na pesquisa descritiva visando fornecer ao leitor um aprofundamento nos tópicos sobre a segurança da informação focada no sistema operacional linux, é também uma pesquisa bibliográfica baseada nos livros e artigos relaciona- dos na bibliografia listada no final deste documento. 1.4 ORGANIZAÇÃO DO TRABALHO O capítulo 1 (um) fornece uma introdução sobre o este trabalho além de mostrar a sua justificativa e os principais objetivos gerais e específicos desta pesquisa. O capítulo 2 (dois) fornece uma base teórica sobre os principais temas de segurança da informação aqui discutidos, nesta parte o leitor poderá entender um pouco mais sobre os conceitos básicos da segurança de computadores, as principais ameaças e ataques à informação e alguns dos principais mecanismos de defesa para previnir e gerenciar estes riscos. O capítulo 3 (três) descreve sobre o sistema operacional Linux e a sua importância nos dias atuais dentro do cenário mundial de computação, podendo-se aprofundar o conhecimento sobre ameaças e prevenções específicas a este sistema. O capítulo 4 (quatro) caracteriza os mecanismos de segurança do núcleo do Linux, o kernel, aonde todo o processamento de dados e informação precisa passar para conversa entre o homem e a máquina, onde poderá se encontrar uma abordagem mais técnica sobre o LSM e como esta solução poderá ajudar quando todas as outras falharem. Por fim, o capítulo 5 (cinco) mostra uma conclusão do autor sobre a pesquisa aqui reali- zada e propostas de trabalhos futuros para ajudar ainda mais a aumentar os níveis de segurança da informação e compreensão sobre o tema.
  13. 13. FUNDAMENTAÇÃO TEÓRICA Neste capítulo serão apresentados de forma bem resumida os conceitos básicos sobre a segurança da informação e seus processos, uma disciplina que torna-se a cada dia mais impor- tante na vida dos seres humanos que estão cada vez mais rodeados por computadores e sistemas digitais. 2.1 SEGURANÇA DA INFORMAÇÃO A segurança da informação está diretamente ligada a uma série de mecanismos bem de- finidos que ajudam a proteger as informações que possuem valor para um indivíduo ou uma empresa. Esta disciplina não está restrita apenas a computadores mas a todo o dado que tem algum valor e que o dono deste não deseja que ninguém tenha acesso senão ele próprio ou um conjunto de indivíduos de sua confiança. Todavia neste documento o foco principal é descrever esta ciência voltada aos sistemas digitais. Conforme descrito por SCHNEIER (2000) em seu artigo, falhas de segurança são ine- vitáveis e diferente do que muitos pensam a segurança é mais um processo do que apenas um produto. Recentemente ataques digitais contra organizações tornaram-se frequentes e além de causar enormes prejuízos financeiros também expõem os dados de milhares de usuários que usam seus serviços, a tabela a seguir mostra alguns destes incidentes que tiveram grande reper- cussão: Tabela 1. Ataques digitais recentes a organizações. Empresa Ano Descrição do Ataque Ashley Madison 2015 Site de relacionamentos extra conjugais foi hackeado por um grupo que solicitou semanas antes o fim de suas operações, como não foi atendido disponibilizou todos os dados dos usuá- rios (incluindo cartões de créditos, senhas, e-mails). KREBS (2015) 4
  14. 14. Empresa Ano Descrição do Ataque Sony Pictures 2014 Invasão em vários computadores de funcionários da Sony que permitiu com que os atacantes baixassem terabytes de dados da empresa revelando e-mails confidenciais e filmes que ainda não tinham saído no cinema, causando prejuízo de milhares de dolá- res. eBay 2014 O maior site eletrônico de comércio do mundo foi hackeado e teve os dados de 233 milhões de usuários copiados, entre eles estavam o login, e-mail, senha e endereço pessoal dos clientes. Samhaus 2013 Grande parte do mundo sentiu o impacto deste ataque na in- ternet, usando milhares de botnets vindo do oeste europeu e da Rússia um grupo de hackers executou um ataque DDoS de 300Gbps, um dos maiores de toda a história, deixando a internet lenta em dezenas de países. FLETCHER (2013) Como pôde ser visto acima as ameaças digitais não só existem e atacam grandes empresas mas também os usuários que acessam os seu serviços que acabam sendo tão impactados quanto as organizações. Por estes motivos conscientizar as pessoas da importância da proteção de suas máquinas e principalmente da aplicação de políticas de segurança em suas organizações é imprescíndivel. Conforme descrito no livro de BISHOP (2003) três características são de suma importância e servem de base para essa disciplina: 1. Confidencialidade: diz respeito a limitação de acesso a um dado ou informação, é o meio pelo qual se garante que apenas a pessoa ou entidade autorizada terá acesso a informação. 2. Integridade: é a garantia de que a informação seja íntegra, incorrompível, ou seja, os dados não serão modificados a não ser pelos autores. 3. Disponibilidade: faz com que a informação continue sempre disponível a quem tem acesso autorizado a ela, um site que não se mantém disponível a seus usuários perde a credibilidade entre eles. Ainda assim milhares de empresas ainda deixam de investir um mínimo em segurança da
  15. 15. informação, alguns mitos estão diretamente relacionados a esta falta de investimento e podemos citar alguns exemplos comuns abaixo: • "Isso nunca acontecerá conosco"; • "Nunca fomos atacados e ninguém vai querer nos atacar"; • "Estamos seguros com o nosso firewall de última geração"; • "Ninguém vai descobrir aquele bug que deixamos"; Segundo VACCA (2010) para se construir uma empresa que tem entre outras coisas um foco em segurança da informação são necessários 10 (dez) passos: 1. Avaliar os riscos e ameaças Um dos pontos mais importantes na disciplina de gestão em segurança da informação é a análise e avaliação dos riscos do negócio de uma organização. Muito importante para entender quais riscos estão presentes e como podemos implementar controles de prevenção e recuperação de desastres. Comprar os melhores produtos que a tecnologia pode oferecer sem saber a quais riscos está exposto e onde essas tecnologias devem ser de fato aplicadas não é mais uma opção. 2. Ter cuidado com equívocos comuns Este item tem muito em comum com os mitos citados no parágrafo acima, segundo VACCA (2010) um dos equívocos mais comuns é quando uma organização acha que devido a natureza do seu negócio ela não é um alvo de ataque, os negócios precisam entender que uma vez conectados a Internet eles já são um alvo. Os atacantes nem sempre estão motivados em apenas invadir uma máquina de um usuário ou organização para roubar seus dados mas também para guardar dados criminosos. Pornografia infantil e itens como números de cartão de crédito são armazenados como esconderijo quase de forma imperceptível. Utilizar máquinas invadidas como zumbis botnets para possíveis ataques DoS também tem se tornado uma prática comum.
  16. 16. 3. Treinamento contínuo da equipe de segurança da informação Como já foi citado antes, a segurança é um processo e não um produto SCHNEIER (2000), assim também é a dinâmica que deve ser utilizada para a equipe de segurança da in- formação, um processo contínuo. É de extrema importância que a equipe responsável esteja preparada para responder a novas ameaças e vulnerabilidades de forma eficiente e isso exige atualização e treinamento constante. 4. Pensar fora da caixa Dependendo do tipo de negócio é importante atentar a outros riscos: funcionários que as vezes falam aos corredores sobre informações privilegiadas da organização mesmo sem inten- ção de prejudicar a empresa devem ser treinados; funcionários que deixam a empresa devem ter seus equipamentos recolhidos; dispositivos USB como pendrives, câmeras, etc. devem ser evitados quando possível para evitar a disseminação de malwares e roubo de informações. 5. Desenvolver nos funcionários uma cultura por segurança Muitos usuários não conhecem os aspectos de segurança aqui listados e os ignoram achando que são apenas políticas incovenientes, é necessário treinar estes usuários e conscientizá- los de que a segurança da informação é importante. 6. Identificar e utilizar aspectos de segurança do S.O. Conhecer as ferramentas de segurança utilizadas no sistema operacional é essencial para que se possa aplicar políticas de senha, implementar diferentes níveis de segurança, acesso restrito a informações e outros.
  17. 17. 7. Monitorar os sistemas Mesmo se utilizando das melhores ferramentas de proteção é necessário a monitoração, apenas instalar ferramentas de última geração não tornará uma organização segura, é preciso monitorar seus alertas, analisar os logs gerados pelos sistemas, gerar relatórios técnicos e iden- tificar possíveis melhorias. 8. Contratar terceirizados para auditar a segurança da empresa É muito importante não subestimar a capacidade técnica de seus funcionários, mas tam- bém é necessário que um grupo de outros olhos, mãos e ouvidos possam testar a segurança implementada pela sua organização. Existem empresas especializadas neste campo para ajudar sua organização a auditar os seus processos de segurança. 9. Não esquecer do básico Não abrir portas desnecessárias; definir política de senhas fortes; modificar senhas pa- drões de ativos de redes e softwares de servidores; evitar ambientes gráficos em servidores; e muitas outras coisas de que geralmente fazem parte das melhores práticas de segurança do sistema operacional que você estiver usando. 10. Manter os sistemas atualizados Sistemas desatualizados estão sujeitos a vulnerabilidades descritas na internet e é bem possivel que já existem exploits que podem ser utilizados para explorar suas falhas de software permitindo a invasão de equipamentos da organização. É extremamente crítico que os softwares estejam sempre atualizados com os últimos patchs de segurança.
  18. 18. 2.2 PRINCIPAIS AMEAÇAS E ATAQUES Nesta seção serão apresentados os principais ataques e ameaças à segurança de computa- dores que são explorados por criminos tendo como alvo os usuários e as organizações. Ameaças podem ser classificadas como qualquer evento que quando for executado com sucesso prejudi- que de alguma forma o funcionamento do computador, isso inclui desastres naturais, furto de equipamento, coleta de informações, fraude, etc. A figura a seguir mostra a quantidade de incidentes de segurança reportados ao CERT.br (Cento de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil) até o presente ano: Figura 1. Estatísticas dos Incidentes Reportados ao CERT.br Percebe-se ao analisar os gráficos que a quantidade de incidentes só vem aumentando desde então, é importante lembrar que nestes gráficos apenas constam os incidentes relatados por usuários e organizações. Isto quer dizer que os números podem ser ainda maiores porque muitos ataques ainda ficam sem os relatos de suas vítimas. Uma classificação de incidente de segurança que é utilizada e bem aceita é a de HOWARD e LONGSTAFF (1998) que mostra de uma forma bem didática a taxonomia de um evento em segurança. Na imagem a seguir é mostrado que tipo de atacantes existem, quais ferramentas
  19. 19. eles usam, que vulnerabilidades eles costumam a explorar, que tipo de atividade eles executam, os tipos de ativos e recursos que são alvos, os resultados que eles esperam atingir e os objetivos do ataque. Figura 2. Computer and Network Attacks. HOWARD e LONGSTAFF (1998) • Atacantes (Attackers) são os responsáveis pelos ataques, geralmente crackers ou hac- kers, mas também espiões e criminosos profissionais com motivação própria, financeira ou política. • Ferramentas (Tools) são os recursos utilizados pelos atacantes, e que vão desde ataques físicos até scripts criados por outros hackers; e botnets espalhados entre vários computa- dores. • Vulnerabilidade (Vulnerability) de um sistema, aplicação ou processo, geralmente cri- ada no design do mesmo ou na implementação e configuração do ativo. • Action (Ação) é a atitude tomada durante um evento, pode ser uma tentativa de roubo, cópia de dados, tentative de acesso não autorizada, etc. • Target (Alvo) é a vítima principal do ataque, um computador, uma rede interna, um processo ou uma conta por exemplo.
  20. 20. • Resultado Não Autorizado (Unauthorized Access) é o que o evento ocasionou, perda e/ou corrompimento da informação, negação de um serviço ou o roubo de um recurso. • Objectives (Objetivos) é a motivação principal do incidente, ganho financeiro ou polí- tico, desafio fornecido pelo incidente, etc. 2.2.1 AMEAÇAS QUE IMPACTAM COMPUTADORES COLETA DE INFORMAÇÕES Muitas vezes o levantamento de informações é o primeiro passo durante um incidente de segurança. O escaneamento de portas abertas é uma prática comum para identificar os servi- ços ativos em uma máquina, dados como senhas deixadas em diretórios públicos também são extremamente apreciados por atacantes. Utilizar as melhores práticas para fornecer uma segu- rança por obscuridade aqui é uma coisa interessante a se fazer. Esconder banners de versões de software, utilizar avisos de leis aplicadas a crimes digitais e outras práticas devem ser utilizadas para diminuir estes eventos. FURTO DE EQUIPAMENTO O furto de equipamento é uma possibilidade real e deve ser estudada, um recurso furtado pode conter informações críticas sobre as organizações e porquê não segredos industriais. Aqui a aplicação de criptografia quando possível é muito importante para segurança da informação, outros mecanismos como a destruição do equipamento em caso de remoção irregular ou não autorizada também são meios bem utilizados dentro da indústria. ENGENHARIA SOCIAL Conforme descrito por um dos homens mais procurados por crimes digitais pelo FBI, a engenharia social usa a influência, a manipulação e a persuasão para enganar as pessoas e convencê-las de que o engenheiro social é alguém que na verdade ele não é. Como resultado, o
  21. 21. engenheiro social pode aproveitar-se das pessoas para obter as informações com ou sem o uso da tecnologia (MITNICK e SIMON, 2003). Apesar de muitas vezes subestimado este é um dos ataques mais eficientes à segurança da informação pois tem como principal alvo o ser humano que tem pouco ou nenhum conhecimento em segurança da informação. DESASTRES NATURAIS Desastres naturais são ameaças a computadores e por isso devem ser tratados também nesta disciplina. Se determinado território está sujeito a furacões, terremotos, inundações e ou- tros desastres eles precisam ser gerenciados e tratados como um risco para organização. Deve-se criar planos de controle para garantir a disponibilidade e segurança das informações em caso de desastre. 2.2.2 ATAQUES DE REDE PHISHING E SPAM Phishing é uma técnica muito utilizada em e-mails que geralmente contém anúncios de grandes prêmios destinados aos remetentes (dinheiro, herança, sorte) e que contém um arquivo ou link malicioso aonde espera-se que o usuário morda a isca clique no arquivo ou link permi- tindo então injetar malwares no computador da vítima. O phishing quase sempre vem acom- panhado de SPAM, uma propaganda em massa enviada a pessoas que não solicitaram a infor- mação. Hoje em dia ainda possui uma eficiência grande, sendo um dos principais meios de infecção de malwares em usuários finais. ARP/IP SPOOFING Consiste numa técnica para envenenar a tabela ARP de uma rede de computadores interna (intranet) ou o mascaramento de um IP em outro com o intuito de sequestrar e/ou rotear alguns pacotes que passam pela rede, é muito utilizado para capturar informações destinadas a outros
  22. 22. computadores. Esta técnica também é descrita como Man In The Middle porque permite que o atacante (Man) fique no meio da conversa entre dois pontos escutando o tráfego de dados. DNS SPOOFING Parecido com o ARP/IP Spoofing mas consiste em envenenar uma rede de computadores para se passar por um Host a fim de capturar informações, um exemplo de execução desta técnica geralmente é quando o atacante copia a página de login de um site muito utilizado esperando que o usuário vá digitar sua conta e senha sem observar que o campo de endereço do site está modificado, fazendo assim com que o usuário forneça de forma fácil seus dados. DENIAL OF SERVICE Técnica que permite impedir que os usuários façam acesso a um determinado serviço. Consiste em derrubar conexões e/ou serviços pelo excesso de dados enviados simultaneamente a uma determinada máquina e/ou rede. Seu principal intuito é negar o serviço de uma orga- nização, seja para abaixar uma defesa e para preparar um outro ataque ou simplesmente para impedir os usuários de acessarem o serviço causando transtorno. DISTRIBUTED DENIAL OF SERVICE É a mesma técnica do DoS acima só que aplicada em larga escala, isso quer dizer que é executada a negação de serviço através do disparo de milhares de pacotes em um conjunto de dezenas, centenas e até milhares de máquinas diferentes (muitas vezes sendo botnets), este tipo de ataque é praticamente impossível de ser evitado. SEQUESTRO DE SESSÃO Uma técnica aplicada durante o acesso de um usuário a um serviço na rede geralmente relacionado a web. Muitos sites enviam um Cookie HTTP após a autenticação de um usuário
  23. 23. que significa que enquanto ele tiver este Cookie e enviar pro servidor ele está autenticado, o atacante então consegue sequestrar esse Cookie e utilizar no host como se fosse ele próprio. 2.2.3 ATAQUES DE SOFTWARE FORÇA BRUTA Está técnica é baseada na tentativa e erro de um conjunto imenso (milhares ou bilhões de combinações) de palavras com o intuito de se descobrir a senha de acesso a um sistema ou a chave de um sistema criptografado, certificado digital, etc. Desde o início da computação exis- tem listas de senhas classificadas como as mais utilizadas pelos usuários e que estão disponíveis na internet para ataques deste tipo. BUFFER OVERFLOW Uma das formas de ataque mais brutal em computadores, o estouro de um buffer consiste em enviar uma quantidade de bytes maior que um tipo de dado pode aguentar para que ele estoure e se possa acessar a memória do programa injetando um código malicioso para ser executado na próxima instrução, este tipo de ataque tem variações como Integer Overflow e Heap Overflow. SQL INJECTION Como o próprio nome diz é uma injeção de informação dentro de uma requisição SQL, a maioria dos sistemas usam um banco de dados que trabalha com o padrão de linguagem SQL para manipular e executar suas requisições, alguns sistemas não tratam as entradas de campos corretamente e permitem através de algumas técnicas a inserção de comandos de SQL maliciosos para copiar informações ou obtêr acesso não autorizado.
  24. 24. MALWARES Vírus assim como na biologia humana um vírus de computador tem o objetivo de invadir o sistema computacional e se replicar, geralmente ele faz isso infectando outros arquivos do S.O. tornando cada vez mais difícil eliminá-lo. Worm é um pouco mais perigoso do que um simples vírus, pois além de algumas vezes se re- plicar no computador original ele também se espalha em todas as redes que possa acessar e que contenham a vulnerabilidade que ele se aproveita. Trojan assim como na história da grécia este malware vem com uma embalagem bonita ou até mesmo se passando por um programa comum como um arquivo de música ou artigo importante mas que tem no seu conteúdo um sistema malicioso que ataca o usuário e/ou organização. Screen/Key Logger são ferramentas utilizadas para capturar a entrada de tudo que for digi- tado (Key Logger) ou de imagens da tela do computador (Screen Logger) para serem capturados por um atacante. Spyware é um software espião que fica escutando informações trafegadas no computador e enviam seus dados para uma parte não autorizada. Rootkits e Backdoors são pedaços de software que abrem portas para atacantes remotos pu- lando processos de autorização e geralmente dando acesso com privilégio alto nos siste- mas operacionais. 2.3 PRINCIPAIS MECANISMOS DE DEFESA Nesta seção serão mostrados alguns dos principais mecanismos de defesa aplicados aos riscos e ameaças citadas neste documento, é importante saber que mesmo aplicando todos estes mecanismos você ainda pode ser vítima de um ataque de sucesso. Em contrapartida um usuário ou organização que utiliza-se destes conceitos diminui o risco de ameças e ataques drastica- mente.
  25. 25. 2.3.1 POLÍTICA DE SEGURANÇA DA INFORMAÇÃO A principal regra que deve ser adotada por uma organização séria é uma política básica de segurança da informação de acordo com o seu negócio. Para auxiliar nesta atividade foi criado e publicado a norma BS 7799 pela Instituição de Padrões Britânicos que define entre outras coisas as melhores práticas para o gerenciamento de segurança da informação. Será abordado aqui esta norma no formato Brasileiro e que é definada pela ABNT NBR ISO/IEC 17799:2013 que como suas parentes estrangeiras instruem sobre uma série de processos a se seguir para aplicar técnicas de segurança da informação dentro das organizações. Esta Norma é projetada para as organizações usarem como uma referência na sele- ção de controles dentro do processo de implementação de um sistema de gestão da segurança da informação (SGSI), baseado na ABNT NBR ISO/IEC 27001 ou como um documento de orientação para as organizações implementarem controles de se- gurança da informação comumente aceitos. Esta Norma é também usada no desen- volvimento de organizações e indústrias especificas de gerenciamento de segurança da informação, levando em consideração os seus ambientes de risco de segurança da informação específicos. (ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2005, p. 4) O trecho acima reitera que este guia é um padrão mundial e pode ser utilizado em qualquer negócio seja ele pequeno ou grande. Ainda neste documento existe uma definição bastante interessante sobre a segurança da informação e que pode ser vista a seguir. "A segurança da informação é importante para os negócios, tanto do setor público como do setor privado, e para proteger as infra-estruturas críticas. Em ambos os se- tores, a função da segurança da informação é viabilizar os negócios como o governo eletrônico (e-gov) ou o comércio eletrônico (e-business), e evitar ou reduzir os ris- cos relevantes. A interconexão de redes públicas e privadas e o compartilhamento de recursos de informação aumentam a dificuldade de se controlar o acesso. A ten- dência da computação distribuída reduz a eficácia da implementação de um controle de acesso centralizado."(ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS, 2005, p. X)
  26. 26. Ela contém ao todo 14 (quatorze) seções de controles de segurança da informação, 35 (trinta e cinco) objetivos de controles e 114 (cento e quatorze) controles. As quatorze seções estão descritas a seguir. Políticas de segurança da informação Tem como objetivo produzir um documento que for- neça uma orientação da equipe de segurança e um apoio da direção para a segurança da informação de acordo com os requisitos do negócio e com as leis e regulamentações relevantes, após criada deve ser publicada e comunicada para todos os funcionários. Organização da segurança da informação Estabelece uma estrutura responsável pelo geren- ciamento da segurança da informação dentro da organização, definindo suas funções. Segurança em recursos humanos Mostra uma série de preocupações e medidas que as orga- nizações devem tomar ao contratar um novo funcionário ou ao demitir um empregado. Gestão de ativos Diz respeito ao gerenciamento de todos os tipos de informações em ativos (fitas, mídias, documentos), desde sua classificação até o seu descarte. Controle de acesso Garante a aplicação de controles de acesso para uso da informação na em- presa, trata desde o uso de ferramentas na organização até os direitos e deveres dos usuá- rios ao acessar determinado recurso. Criptografia Garante a integridade e confidencialidade das informações guardadas dentro da empresa, este documento contará com uma seção específica para este tema. Segurança física e do ambiente Define perímetros de segurança, locais onde são permitidos o acesso e os controles para acesso físico a estas áreas. Segurança nas operações Documenta os procedimentos de mudanças na empresa, registra eventos e realiza monitoramento de atividades, define política de backup, sincronização de relógios e outros. Segurança nas comunicações Responsável pela segurança nas redes da organização, incentiva a segregração de redes, políticas de transferência de dados, acordos de confidencialidade e segurança dos serviços. Aquisição, desenvolvimento e manutenção de sistemas Gerencia os requisitos de segurança
  27. 27. para estas atividades, mantém ambientes de laboratório seguro para avaliação dos siste- mas, etc. Relacionamento na cadeia de suprimento Define uma série de políticas para garantir a segu- rança da informação voltada aos fornecedores, mitigando os riscos durante as operações. Gestão de incidentes de segurança da informação Associa responsabilidades e os procedi- mentos que devem ser tomados em caso de eventos de segurança. Aspectos da segurança da informação na gestão da continuidade do negócio Mostra como gerar um Plano de Continuidade de Negócio, essencial para recuperação de desastres e como aplicar controles para a continuidade do negócio quando houverem problemas que podem afetar a organização. Conformidade Define regras pra evitar a violação de quaisquer obrigações legais e regulamen- tares relacionadas á segurança da informação. Neste mesmo livro é dito que se necessário deve-se criar os próprios controles dentro das organizações. Estas seções servem apenas como base para orientar a instituição a aplicar sua política de segurança da informação, o documento deve ser lido pela equipe de segurança da informação e devem ser extraídos os controles que devem ser implementados na organização, modificando-os quando se achar necessário. O mais importante aqui é que sejam definidas as políticas que serão seguidas pela organização e que elas possam ser cumpridas sem desvios. 2.3.2 ANÁLISE E GERENCIAMENTO DE RISCOS Risco é a probabilidade da ocorrência de um ato voluntário ou involuntário acontecer apresentando a possibilidade de dano a empresa. Os riscos devem ser avaliados, organizados e classificados principalmente pelos donos do negócio e os gerentes das áreas da organização mas, após o levantamento, devem ser filtrados pelos responsáveis em conjunto com a equipe de segurança da informação. Para E. J. VAUGHAN e T. M. VAUGHAN (2008) os riscos podem ser classificados de muitas maneiras entretanto algumas são particularmente importantes e podem ser resumidas como nos paragráfos a seguir.
  28. 28. Riscos estáticos e dinâmicos Existe uma importante distinção entre eles. Riscos dinâmicos estão associados a mudanças na economia e geralmente são menos previsíveis do que os riscos estáticos que por sua vez estão associados as perdas que podem ocorrer mesmo sem mudanças na economia. Riscos fundamentais e particulares Tem relação com a origem e e as consequências das per- das. Riscos fundamentais envolvem perdas impessoais que afetam um grupo ou uma sociedade, e os particulares são os que são sentidos pelo indivíduo em vez dos grupos. Riscos especulativos e genuínos Uma das mais úteis definições de risco, o risco especulativo diz respeito a toda situação em que há possibilidade de perda mas também de ganho, já o risco genuíno diz respeito a toda situação em que há risco de perda, os riscos genuínos podem ainda ser classificados desta maneira: • Riscos pessoais. Consiste no dano ao indivíduo. • Riscos patrimoniais. Consiste em perdas referentes a destruição ou roubo. • Riscos de responsabilidade. Envolve os danos causados pela negligência. • Riscos gerados por terceiros. Envolve todos os riscos que de alguma forma são gerados por terceiros e prejudicam a organização. O gerenciamento de risco é um forma de abordar cientificamente o problema do risco e tem como principal objetivo reduzir e eliminar os riscos das organizações, este processo pode ser divido em uma série de passos que ajudam a garantir que os riscos não sejam negligenciados, ainda segundo E. J. VAUGHAN e T. M. VAUGHAN (2008) os passos a serem seguidos afim de garantir um bom gerenciamento de riscos são definidos a seguir: 1. Determinar os principais objetivos; 2. Identificar os riscos aos quais a organização está exposta; 3. Avaliar estes riscos de forma criteriosa; 4. Considerar as alternativas e selecionar dispositivos para o tratamento dos riscos; 5. Implementar as decisões tomadas; 6. Avaliar e revisar o processo continuamente;
  29. 29. Para todo o risco que é identificado deve haver uma resposta. Uma resposta nada mais é do que uma técnica definida para aceitar, mitigar, transferir ou evitar os riscos aos quais as organizações estão expostas, a tabela a seguir mostra um pouco mais sobre estas respostas: Tabela 2. Tipos de resposta aos riscos. Resposta Definição Aceitar Talvez o mais comum tipo de resposta implementado nas empresas, é o risco conhecido e aceito, nenhuma atitude é tomada. Mitigar Consiste em aplicar todas as técnicas e recursos possíveis para diminuir ao máximo a possibilidade de que o risco aconteça. Transferir É quando você transfere o risco para uma empresa terceirizada, muito usado por exemplo em equipamentos de hardware onde se contrata um se- guro e caso haja mal funcionamento do equipamento a seguradora garante um novo produto e um prazo para substituição. Evitar Quando a organização acha que o risco é inaceitável e toma todas as atitu- des cabíveis para evitar que a possibilidade do risco aconteça. Finalmente, é necessários definir os controles que devem ser aplicados a cada tipo de risco, de quem é a responsabilidade de tratamento do risco, o que deve ser feito quando acon- tecer, quais as chances de acontecer e quais os níveis de impacto que podem ser gerados se um risco for enfrentado, a tabela a seguir é apenas um exemplo desenvolvido pelo autor que mostra a estrutura de uma análise e gerenciamento de risco de uma pequena empresa de tecnologia. Tabela 3. Tabela de gerenciamento de riscos. Risco Impacto Chance Responsabilidade Resposta Perda mensal de 2% do capi- tal Baixo Alta Executivos da or- ganização Aceitar. No exemplo a orga- nização aceita que mensalmente pode haver perda de 2% do capi- tal líquido.
  30. 30. Negação de Serviço no WebSite Médio Possível Equipe de Tecno- logia e Segurança da Informação Mitigar. Aplicar as técnicas e os recursos de tecnologia para di- minuir a possibilidade da ame- aça. Furto de Equi- pamento Alto Possível Empresa de segu- rança de patrimô- nio terceirizada Transferir. A responsabilidade neste caso é transferida para a empresa contratada. Mal funciona- mento no No- Break Alto Possível Fabricante do No-Break Transferir. Geralmente é defi- nido um SLA responsabilizando a empresa de suporte pela manu- tenção e substituição do equipa- mento em caso de defeito. Terremoto Grave Médio Equipe de Tecno- logia e Segurança da Informação Evitar. É óbvio que é impossível evitar um desastre natural mas pode ser possível diminuir ao máximo o impacto deste risco, criando-se políticas de backups eficientes e servidores redundan- tes em outras cidades é possí- vel garantir que mesmo que esse desastre natural aconteça na ci- dade X, a cidade Y possa re- estabelecer os serviços em pou- cos minutos. • Risco: O risco ao qual está exposto. • Impacto: O dano que o risco poderá causar. • Chance: A possibilidade que o risco aconteça. • Responsabilidade: Os envolvidos no tratamento. • Resposta: A resposta dos envolvidos ao risco.
  31. 31. 2.3.3 CRIPTOGRAFIA E CERTIFICAÇÃO DIGITAL A criptografia é definida como a arte e a ciência de tornar as mensagens seguras SCH- NEIER (1995) e tem como principais objetivos garantir a privacidade e confidenciabilidade, integridade dos dados, autenticidade e não repúdio da informação MENEZES et al. (1996). No mundo da tecnologia da informação estes conceitos são geralmente aplicados pelos criptolo- gistas utilizando softwares de computador, hoje em dia a maioria destes sistemas utilizados no mercado tem a possibilidade de escolha de algoritmos e protocolos que serão utilizados para armazenar dados internos através de parametrização. Datada pela primeira vez no ano de 1900 a.C. no antigo Egito quando um escriba cha- mado Khnumhotep II utilizou-se o procedimento de transposição para criptografar mensagens afim de que, se fossem interceptadas por alguém, não fossem decifradas KAHN (1996), esta disciplina tem grande importância para ocultar as informações utilizando-se de um processo conhecido como cifrar textos legíveis em ilegíveis e ainda é amplamente utilizada nos tempos modernos, os grandes avanços no âmbito desta matéria foram desenvolvidos durante a segunda grande guerra mundial quando era necessário transmitir informações a tropas militares de forma secreta, para evitar que as mensagens fossem interceptadas e facilmente compreendidas o go- verno nazista desenvolveu uma máquina que fazia transposição de mensagens transformando-as numa cifra chamada Enigma. Figura 3. Máquina Enigma da Segunda Guerra mundial. Felizmente e como é de conhecimento público hoje em dia, esta cifra foi quebrada pelo matemático polonês Marian Rejewski. Isto nos leva a refletir que assim como a criptografia
  32. 32. pode ser utilizada para esconder informações há também pessoas que tem a capacidade de realizar ataques contra determinadas cifras com o intuito de descobrir a mensagem legível de um conteúdo cifrado, este ramo de estudo é fortemente praticado por criptoanalistas e também deve ser pesquisado para compreender de forma mais eficiente, segura e performática uma metodologia para aplicação em serviços de rede na internet e intranet de uma empresa e/ou cidadão. Com base nisto esta seção visa definir e informar ao leitor as melhores práticas de segurança envolvidas no âmbito da utilização de criptografia e a forma de sua aplicação em softwares que se encaixam em serviços de redes de computadores. DEFINIÇÃO BÁSICA Conforme descrito por SHANNON (1949) em seu renomado artigo sobre a teoria de sistemas de comunicações secretas, um sistema de sigilo é definido abstratamente como um conjunto de transformações de um espaço (o conjunto de mensagens possíveis) em um segundo espaço (o conjunto de possíveis criptogramas). Cada transformação particular do conjunto cor- responde a um enciframento com uma chave particular. As transformações são supostamente reversíveis, de modo que é possível a decifração original quando a chave é conhecida. Figura 4. Esquema de um sistema de criptografia geral. SHANNON (1949) Através deste artigo a base da criptografia moderna foi criada e até hoje ainda usamos esta definição da maioria dos sistemas criptográficos que utilizamos para acessar um site, um banco, etc. O primeiro esquema básico de um sistema de criptografia contém uma mensagem (M) a que se deseja proteger, uma chave (K) que através de um cifrador (Tk) seguindo uma lógica definida gera um criptograma ou mensagem cifrada (E) que só pode ser lida corretamente se a pessoa que recebeu este criptograma também saber qual é a chave (K) para transformar em
  33. 33. texto claro, conforme pode ser visto na figura 4. CHAVES SIMÉTRICAS A principal característica da chave simétrica é que ela é usada tanto para criptografar uma mensagem clara como também para decriptografar um texto cifrado em um texto puro. Desde a data de publicação do artigo citado acima até o ano de 1976 os avanços na aplicação de sis- temas criptográficos na indústria foram quase inexistentes, só então houve o primeiro marco na história da criptografia moderna, a publicação pelo governo americano de um algoritmo de criptografia aberto chamado DES (Data Encryption Standard) e baseado em um algoritmo ven- cedor de um concurso realizado pelo NIST chamado Lucifer, apesar de ter sido utilizado em larga escala houveram várias suspeitas de que tivesse um backdoor implementado pela Agên- cia Nacional de Segurança dos Estados Unidos (NSA), por ter uma chave de apenas 56 bits em 1999 a Electronic Frontier Foundation desenvolveu uma máquina chamada Deep Crack que conseguia violar chaves do DES em 22 horas. Após este evento houve ainda um novo mo- delo chamado 3DES (Triplo DES) e finalmente o surgimento do AES (Advanced Encryption Standard, DAEMEN e RIJMEN (2002)) com chaves de até 256 bits. Tabela 4. Tipos de algoritmos simétricos. Algoritmo Tamanho da Chave Descrição DES 56 Bits Desenvolvido em um concurso organizado pela NIST por Horst Feistel, foi o primeiro algoritmo de cripto- grafia moderna utilizado em escala internacional. Blowfish 32 a 448 Bits Foi desenvolvido em 1993 por Bruce Schneier como uma alternativa grátis mais rápida para os algorítmos existentes na epóca.
  34. 34. RC4, RC5, RC6 64 a 256 Bits Tornou-se algoritmo simétrico de criptografia de fluxo mais usado no software e utilizado nos protocolos mais conhecidos, como Secure Socket Layers (SSL) e WEP (Wired Equivalent Privacy). AES 128, 192 e 256 Bits Substituto do DES, o AES foi desenvolvido pelos bel- gas Vincent Rijmen e Joan Daemen, e foi escolhido com base em qualidades como segurança e bom de- sempenho em software e hardware. CHAVES ASSIMÉTRICAS O segundo marco que ocorreu no mundo da criptografia em 1976 foi a publicação do ar- tigo científico, novas direções em criptografia DIFFIE e HELLMAN (1976), que revolucionou o mercado e introduziu o novo conceito de troca de chaves de forma segura e que ficou co- nhecido como The Diffie-Hellman Key Exchange (A troca de chaves de Diffie-Hellman), além disso proporcionou o início da corrida para a utilização da criptografia moderna e de chaves públicas. Este mecanismo até hoje é utilizado para trocar chaves entre conexões, em especial o HTTPS. Um exemplo de troca de chaves é mostrada na imagem a seguir, dois usuários (Alice e Bob) combinam dois números primos num canal inseguro, o número p que é um módulo e o número g que é a raiz primitiva do módulo de p, após isso é aplicado usando o algoritmo uma chave privada a conhecida apenas por Alice e uma chave privada b conhecida apenas por Bob, usando suas chaves públicas (A e B) eles conseguem obter o mesmo número (Sa e Sb) que será utilizado para fechar um canal seguro e trocar suas chaves. Este problema também é conhecido como o problema do algoritmo discreto. Uma das formas mais utilizadas hoje em dia para o uso de chaves públicas são a assinatura digital em documentos afim de garantir o não repúdio, integridade e autenticidade do documento e também os certificados digitais, hoje dominantes na maioria das tecnologias.
  35. 35. Figura 5. Algoritmo de troca de chaves. DIFFIE e HELLMAN (1976) CERTIFICADOS DIGITAIS Certificado digital é um arquivo de computador que através do padrão X.509 consegue ligar uma entidade a uma chave pública, um dos conceitos mais utilizados hoje em dia é o de Infra-Estrutura de Chaves Públicas (ou PKI, Public Key Infrastructure) que é um conjunto de políticas tanto em hardware como em software para o gerenciamento, criação, remoção e revogação de chaves. No Brasil quem controla essa infra estrutura é o ICP-Brasil, abaixo desta instituição vem dezenas de ACs (Autoridades Certificadoras) que seguem as normas do ICP- Brasil para montar locais seguros onde armazenar certificados para usuários, servidores e até softwares. Na imagem a seguir (figura 6) pode-se ver a entidade principal, o Instituto Nacional de Tecnologia da Informação (ITI) como AC-Raiz (Autoridade Certificadora Raiz) e abaixo deles outras ACs (Autoridade Certificadoras) responsáveis por emitir e revogar os certificados para usuários e recursos computacionais. Toda vez que você acessa um site que se diz seguro (que utiliza protocolo HTTPS) utiliza- se um certificado digital para fechar o canal de segurança e permitir que a conversa entre o usuário e o servidor não seja escutada por terceiros, sem essa tecnologia seria praticamente impossível hoje em dia fazer compras pela internet, acessar bancos e muitas outras coisas.
  36. 36. Figura 6. Estrutura da ICP-Brasil 2010. Fonte: ICP-Brasil. Nota sobre tamanho de chaves. Hoje em dia chaves com menos de 1024 bits são conside- radas inseguras pois diz-se que existem clusters de computadores (dezenas e até milhares de computadores trabalhando em conjunto) com sistemas que conseguem através de um ataque de força bruta (bruteforce) descobrir a chave do criptograma transformando a mensagem secreta em texto claro. Como os computadores tem avançado suas tecnologias de forma supreendente é aconselhado pensar em chaves com no mínimo 4096 bits. 2.3.4 CONTROLES DE ACESSO Controle de acesso é um dos termos de segurança da informação utilizado para descrever a permissão dada para acesso a um ambiente físico ou lógico, em computação três tipos de con- troles de acesso se destacam: o controle de acesso discricionário, controle de acesso obrigatório e o controle de acesso baseado em papéis. Segundo FERRUCCIO (2010) as fundações dos controles de acesso se baseiam em três modelos: Bell-La Padula, Biba e Clark-Wilson. Bell-La Padula Originalmente desenvolvido para suprir as necessidades do departamento de defesa este controle de acesso relaciona o acesso a informação à rótulos: Muito Secreto,
  37. 37. Secreto, Confidencial, Público, etc. Biba Tem seu foco voltado para a integridade e proteção da informação, implementa as se- guintes regras: um sujeito não pode lêr objetos de baixo nível (propriedade de segurança simples), não pode escreve em objetos de alto nível (propriedade estrela) e nem pode enviar mensagens pra sujeitos com um nível maior. (propriedade de invocação) Clark-Wilson Uma transação envolve uma série de operações de transição de um sistema para outro. Insere uma política de integridade aborda a integridade das operações e tem como princípio da separação de tarefas com duas entidades diferentes: a certificadora de uma transação e o implementador. DISCRETIONARY ACCESS CONTROL O controle de acesso discricionário é um tipo de permissão fornecida pelo dono do re- curso, geralmente aplicado a arquivos e diretórios uma de suas premissas é que cada recurso tenha um dono reponsável por definir as permissões de acesso que outras pessoas tem para o recurso. Um dos primeiros sistemas operacionais a implementar este controle de acesso foi o UNIX, nele apenas o super usuário tem acesso completo a todos os recursos. Os demais usuá- rios definem através de permissões quem tem acesso aos recursos de suas pastas pessoais, todo recurso computacional sem proprietário é considerado um recurso inseguro. MANDATORY ACCESS CONTROL A principal diferença aqui é que os níveis de acesso são rotulados a sua criticidade, por exemplo, não classificado, confidencial, muito secreto e outros. Diferente do controle de acesso anterior o acesso mandatório não é definido pelo proprietário e sim pelo sistema, geralmente utilizado em sistemas de governos e sistemas cujo risco de espionagem industrial é real, o acesso mandatório define vários níveis de acesso aos recursos computacionais, por exemplo, um usuário só terá acesso a este recurso caso seu nível de segurança seja igual ou maior ao nível rotulado ao recurso, em sistemas com controle de acesso mandatório até o super usuário, que teoricamente tem acesso a todos os recursos computacionais do sistema operacional, pode
  38. 38. não ter acesso a um diretório rotulado como muito secreto acessado apenas pelos donos do negócio. Um exemplo de sistema que utiliza este controle é o SELinux. ROLE BASED ACCESS CONTROL Este tipo de controle de acesso define os níveis de acesso de acordo com a função exer- cida, é muitas vezes confundido com a permissão de grupo no controle de acesso discricionário e também com os níveis de segurança do controle de acesso mandatório mas na verdade coe- xiste entre os dois, conforme descrito por SANDHU et al. (1996) uma função pode representar uma tarefa específica e os administradores de sistema podem criar funções de acordo com as realizadas pela organização, assim um usuário pode executar diversas atividades de acordo com as associadas as suas funções, se o usuário faz parte do grupo de engenharia ele pode ter total acesso aos documentos de engenharia mas pode não fazer parte da função de gerente de en- genheiros que tem permissão de remover os documentos ou não ter acesso aos documentos do grupo de recursos humanos. Hoje em dia é um dos controles de acesso mais recomendados por profissionais de segurança para se ter na organização. 2.3.5 SISTEMAS DE DETECÇÃO DE INTRUSÃO Sistema de detecção de intrusão pode ser um software ou um hardware que fica escutando todas as atividades de uma rede, através de módulos ele pode tomar diversas atitudes em relação aos pacotes que trafegam sob a rede em que esta tecnologia está escutando. Em resumo um bom sistema de detecção de intrusão tem as seguintes funcionalidades: • Monitora atividades de usuários e sistemas; • Verifica a integridade dos dados de arquivos; • Audita arquivos de configuração do sistema; • Reconhece padrões de malwares e outros ataques; • Gera estatísticas de rede e compartamentos diferentes;
  39. 39. HOST INTRUSION DETECTION SYSTEM A detecção de intrusão via Host é baseada em coleta de informações dos aplicativos e análise de logs de um hospedeiro em específico, uma das funcionalidades mais importantes é a checagem de integridade, um sistema HIDS quando instalado em um ambiente realiza uma checagem completa de todos os arquivos do sistema operacional gerando hashs que são guar- dados para que ele detecte qualquer mudança em um arquivo e relate para o administrador de sistema. Além disso geralmente eles tem uma larga base de assinaturas de malwares como key- loggers, rootkits e outros que quando detectados geram alertas para o administrador. Exemplos de software são: OSSEC, Verisys, Tripwire, etc. NETWORK INTRUSION DETECTION SYSTEM De forma semelhante ao HIDS o sistema de detecção de intrusão baseado em redes mo- nitora todos os pacotes que são trafegados na rede em que ele atua, ele captura e analisa todos os cabeçalhos em busca de ameaças, tais verificações validam ataques como IP/ARP spoofing, SYN Floods e Malwares, acessos a redes não autorizadas também são logados e há possibili- dade mesmo de detectar qualquer evento não definido dentro da rede. Exemplos de software são: SNORT, fail2ban, Suricata, etc.
  40. 40. SISTEMA OPERACIONAL LINUX O linux é um sistema operacional baseado no Minix (desenvolvido por Andrew S. Tanen- baum) mas que usa em seu núcleo (Kernel) uma estrutura monolítica, isso significa dizer que todo o espaço do kernel está separado do espaço do usuário. Desenvolvido em 1991 por um estudante da Universidade de Helsinki na Finlandia chamado Linus Torvalds, no início o linux era um sistema que servia muito mais como estudo acadêmico para aprendizado na cadeira de sistemas operacionais do que para utilização no dia-a-dia como plataforma de desenvolvimento, estação de trabalho, desktop ou servidor. Em Agosto de 1991, Linus Torvalds enviou um email anunciando a primeira versão do linux para o grupo de notícias dos usuário do Minix infor- mando que tinha portado o Bash (uma das shell do linux) e o GCC (gnu c compiler, compilador de c) dentro do seu sistema que rodava em processadores 386, apartir daí muitos desenvolvedo- res começaram a baixar o linux e a implementar funções para sua biblioteca e suportes aos mais variados drivers, arquiteturas e outras tecnologias. O linux é com certeza o maior projeto colaborativo do mundo e hoje é mantido por gran- des desenvolvedores patrocinados por empresas como IBM, Intel, Samsung, Google, NVIDIA e outros CORBET et al. (2015). Nenhum outro projeto de software contou com mais desenvol- vedores do que o kernel do linux, um dos frutos desse processo colaborativo pode ser descrito da seguinte maneira, em 1991 quando o linux foi lançado ele continha 12 (doze) mil linhas de código e mal rodava em outra arquitetura diferente da x86, hoje em dia o linux tem mais de 18 (dezoito) milhões de linhas de código e roda praticamente em todos os dispositivos que você utiliza. A primeira coisa que você poderá notar no Linux é a ausência de problemas de segu- rança comuns em outros sistemas operacionais, vírus são transmitidos de forma muito menos eficaz e se tomado os devidos cuidados tem sua efetividade quase nula, usuários comuns podem se livrar da maioria dos riscos de atacantes comuns sem muito o que configurar, por outro lado as organizações precisam se empenhar um pouco mais para garantir a segurança da informação através de alguns controles extras. Devido a quantidade de código, o kernel do Linux geralmente é dividido em subsistemas e gerenciado pelos especialistas de cada área, isso não quer dizer que não existam desenvol- vedores que contribuam em vários subsistemas do kernel. Um arquivo na raiz do diretório do código do linux chamado MANTAINERS informa todos os mantenedores responsáveis pe- las áreas, como contatá-los e geralmente onde está o seu repositório para contribuições, isso 31
  41. 41. não dá apenas celeridade ao processo de contribuição mas também mostra um dos primeiros aspectos da segurança através da Lei de Linus: "Dados olhos suficientes, todos os erros são ób- vios"Raymond (1999), nesta frase um dos mais renomados engenheiros de software do mundo mostra que em um trabalho de software colaborativo quanto mais olhos estiverem atentos a erros de implmentação mais rápido serão suas correções, podemos ver isso na prática se comparando o tempo de resolução de grandes problemas de segurança relacionados ao design e implementa- ção de software entre este sistema operacional e os concorrentes, esta lei tem seus defensores e os que não a apoiam, mas devido as teorias de conspiração envolvendo governos e agências de espionagem espionando a população e até outros governos o software de código aberto tem se tornado crescente e tem sido adotado em sistema críticos como na NASA e na Bolsa de Valores de Nova York. 3.1 PRINCIPAIS VULNERABILIDADES Nas seções a seguir são mostradas algumas vulnerabilidades ao qual o Linux, como sis- tema operacional, está exposto. O objetivo aqui não é mostrar erros em serviços instalados sobre o Linux mas sim as falhas que estão contidas no sistema descrevendo algumas sugestões para mitigar e até eliminar estas ameaças. ACESSO FÍSICO E LOCAL Apesar de muito subestimado este é um dos piores vetores de ataque em computadores, este tipo de ataque pode ser aplicado executando o furto do equipamento, reboot da máquina localmente, injetando malwares através de dispositivos infectados e roubando informações da organização. Contramedidas: No caso do furto do equipamento a única prevenção é a aplicação de cripto- grafia dos dados do disco e no Linux isso pode ser feito usando o DM-crypt conforme mostrado mais a frente. Reboots locais devem ser remediados com senhas na BIOS e principalmente senhas no bootloader exigindo assim que quem efetuou o reboot precise informar os passwords
  42. 42. para acesso local. A última medida diz respeito a injeção de malwares e roubo de informações das organizações através de dispositivos plugados no computador, no Linux isso pode ser reme- diado simplesmente disabilitando o uso de disquetes, CDROMs, pendrives no Kernel do Linux ou pode ser desabilitado usando-se o PROC Filesystem e/ou o gerenciador de dispositivos dinâ- micos do Linux, o UDEV, que permite escrever regras para utilização de dispositivos baseado no nome deles, no id de vendedor ou do produto e muitos outros. ERROS DE SOFTWARE Erros de software também estão no núcleo do linux, algumas distribuições fonecem para seus usuários as últimas versões de linhas de desenvolvimento do kernel que podem conter vários erros de implementação. Mesmo usando um kernel da linha de desenvolvimento consi- derada estável ele também pode ser sujeito a erros de software conforme a história nos mostra. A maioria dos ataques que exploram estes erros visam dois objetivos: acesso a recursos impor- tantes (arquivo de senhas e de configuração, dumps de memória, etc.) ou escala de privilégios. Contramedidas: Evitar rodar serviços de rede com usuários com altos privilégios. Sempre que possível isolar o serviço numa jaula chroot. Utilizar LSM para controlar os acessos dos usuários que rodam estes serviços. Evitar rodar programas com SUID bit ativado. Manter os softwares sempre atualizados aqui é um fator crucial, caso o atacante ainda invada o sistema pelo o menos ele vai ter privilégios de usuários comuns se forem seguidos a riscos estas contra- medidas. MAN-IN-THE-MIDDLE A escuta de uma conversa pode ser devastador para uma organização. Espionagem in- dustrial é uma prática executada a muitos anos no mundo dos negócios e hoje em dia não é diferente, muitas vezes precisando estar conectados a redes não confiáveis (internet) e algumas vezes até mesmo em redes tidas como confiáveis (intranet) as empresas podem ser vítimas de atacantes sorrateiros. Uma vez que o atacante tenha conseguido acesso a rede da vítima ou organização ele pode simplesmente ficar escutando o trafégo de forma passível, procurando por
  43. 43. conexões descriptografadas contendo senhas de acesso, arquivos transferidos via rede e muitos outros. Contramedidas: Utilizar um sistema de detecção de intrusão. Monitorar estado da rede. Ter ferramentas que auxiliem na procura de key loggers, screen loggers, sniffers de rede e outros. ESCALA DE PRIVILÉGIOS Em uma rede de computadores corporativa alguns usuários tem acesso a servidores com dados sensíveis e podem usar de má fé para inserir malwares ou enviar exploits pro servidor que explore uma vulnerabilidade de algum programa específico e assim se transformar em um administrador do sistema. Este é um dos ataques mais explorados pelos crackers e é de alta criticidade se for executado com sucesso. Contramedidas: Manter os softwares atualizados. Evitar a instalação de softwares que não ajudam o negócio e só aumentam o vetor de ataque. Dar acesso aos servidores só para usuá- rios de confiança quando possível. Monitorar as ações dos usuários usando tecnologias como o HIDS. Utilizar políticas de senhas fortes. Usar os módulos de segurança do Linux conforme mostrado no último capítulo para evitar que arquivos críticos e de configuração sejam compro- metidos. 3.2 SOFTWARES E MECANISMOS DE SEGURANÇA Para entender porque este sistema operacional tem sido adotado em ambientes críticos e que necessitam de uma maior ênfase na segurança da informação é mostrado abaixo algumas funcionalidades, características e ferramentas que auxiliam no processo prevenção de ameaças e diminuição de riscos.
  44. 44. FIREWALL IPTABLES Existem várias soluções de firewall no sistema operacional Linux mas o iptables se des- taca por sua extensa capacidade de controlar os pacotes vindos do Kernel. Segundo PURDY (2004) o iptables é uma ferramenta no espaço do usuário para controlar o subsistema do Kernel do Linux chamado de NETFILTER responsável pelo controle do trafégo de rede no Kernel. O iptables trabalha usando uma tabela contendo regras para serem aplicadas aos pacotes de rede. As principais cadeias estão presentes na tabela a seguir: Tabela 5. Cadeias de regras do IPTABLES. Cadeia Definição PREROUTING gerencia os pacotes que entram no host mascarados (DNAT). INPUT gerencia todos os pacotes que entram da rede para o host. FORWARD gerencia todos os pacotes que passam pela rede do host mas que são desti- nados para outro host. POSTROUTING gerencia os pacotes que saem do host mascarados (SNAT). OUTPUT gerencia todos os pacotes que saem do host para rede. As principais atitudes tomadas quando um caso bater com uma regra de firewall são: ACCEPT que fará com que o pacote seja liberado, DROP que fará com o que o pacote seja descartado, REJECT que é semelhante a atitude anterior mas faz com que seja informado o descarte e finalmente o LOG que apenas registra no log que a regra foi atingida. A seguir pode-se ver um exemplo de um comando iptables que manipula todo o tráfego vindo pela rede eth1 na porta 80 e define que ele seja encaminhado de forma mascarada para o IP 192.168.1.3 na porta 8080 realizando o redirecionamento de portas. # iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.3:8080 Exemplo 1: Execução de comando que libera NAT no IP 192.168.1.3
  45. 45. SQUID O SQUID é um serviço de proxy e cache que atua em protocolos como HTTP, HTTPS, FTP e outros. O SQUID é muito utilizado nas organizações para controlar as URLs que os usuários podem acessar e também fazer cache dos objetos para que não haja o download dos mesmos objetos por vários usuários diferentes. Um dos principais benefícios que o SQUID fornece é o desempenho na hora de carregar páginas. Quando um usuário tenta acessar uma página permitida o SQUID carrega em cache to- dos os objetos dessa página (figuras, flashs e outros recursos que tomam tempo) para que outros usuários não precisem carregá-los novamente a não ser que a página tenha sido atualizada. O trecho a seguir mostra um exemplo de configuração do SQUID que libera apenas as portas 80 e 443 para os usuários, ativa o cache de páginas com a diretiva ’cache_dir’ e o cache de memória, e cria uma série de sites nos arquivos ’sitesbloqueados.txt’ que contém os sites que não podem ser acessos e ’sitespermitidos.txt’ contendo os sites liberados para acesso. acl all src 0.0.0.0/0.0.0.0 acl blockedsites url_regex -i "/squid/sitesbloqueados.txt" acl unblockedsites url_regex -i "/squid/sitespermitidos.txt" acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl to_localhost dst 127.0.0.0/8 acl safe_ports port 80 # http acl safe_ports port 443 # https acl CONNECT method CONNECT cache_mem 512 MB cache_dir ufs /squid/cache 100 16 256 http_access allow manager localhost http_access deny manager http_access deny !safe_ports http_access deny blockedsites !unblockedsites http_access allow all Exemplo 2: Lista de regras do SQUID para bloquear portas e sites
  46. 46. ACESSO REMOTO - OPENVPN E OPENSSH OpenVPN é um software de código aberto que implementa uma VPN (Virtual Private Network) para garantir a segurança ponto a ponto ou sítio a sítio. Desenvolvido por James Yonan em 2001 o OpenVPN permite realizar VPNs com autenticação de chaves pré compartilhadas, certifica- dos e com o metódo tradicional de usuário e senha. É muito utilizado para conectar matrizes as suas filiais de forma segura. O OpenVPN trabalha tanto na camada 2 (dois) como na camada 3 (três) do modelo OSI e utiliza dois métodos para conectar os links: roteamento e bridge. Figura 7. Conexão VPN site para site. (Fonte: www.openvpn.net) SSH é um protocolo de rede desenvolvido para fornecer um meio de autenticar-se para execu- tar e/ou transferir dados de forma segura em cima de uma rede insegura. Basicamente o usuário ao tentar logar no servidor remoto inicia uma sessão de trocas de chaves utilizando criptogra- fia simétrica, após isto ele autentica a si mesmo no servidor através de chaves públicas e/ou senha para começar a utilizar a sessão remota com total segurança utilizando dezenas de mé- todos de criptografia. O SSH provê integridade e confiabilidade nos dados e informações que trafegam utilizando este protocolo. Parte desta segurança é implementada pela utilização do metódo diffie-helman de troca de chaves, amplamente utilizado. O SSH foi criado em 1995 por Tatu Ylönen e em 1996 desenvolvedores do OpenBSD criara uma versão open source chamada OpenSSH utilizada na maioria dos sistemas hoje me dia. Em 2006 foi definido pelo IETF o protocolo SSH como um padrão na internet através do RFC 4251.
  47. 47. O SSH utiliza-se de três camadas principais: 1. A camada de transporte de protocolo via ssh, descrita no RFC 4253. Responsável pela autenticação, confiabilidade e integridade. 2. O protocolo de autenticação do usuário, descrita no RFC 4252. Responsável pela auten- ticação do lado do cliente, roda embaixo da camada de transporte. 3. O protocolo de comunicação dos dados, descrita no RFC 4254. Responsável por criar um tuneis lógicos de encriptação para trafegar os dados, ele roda embaixo da camada de autenticação do usuário. DM-CRYPT E GNUPG DM-Crypt é uma parte do subsistema de mapeamento de dispositivos (device mapper) do kernel do Linux e é utilizado para encriptar disco, arquivos e partições. Ele utiliza a API de crip- tografia do kernel conhecida como CryptoAPI que contém a maioria dos algoritmos de hashing e criptografia modernos. O espaço do usuário utiliza duas ferramentas pra manipular o DM- Crypt, o cryptsetup responsável por gerenciar o disco criptografado e os algoritmos utilizados no processo em conjunto com o LUKS (Linux Unified Key Setup), e o cryptmount responsável por fornecer um meio de montar discos criptografados de forma automática quando necessário. A seguir um exemplo de como formatar uma partição no Linux e torná-la criptografada: # dd if=/dev/urandom of=/dev/sda5 # cryptsetup luksFormat /dev/sda5 ...... # cryptsetup luksOpen /dev/sda5 cryptfs # mkfs.ext3 /dev/mapper/cryptfs # mount /dev/mapper/cryptfs /mnt Exemplo 3: Encriptação de partição do disco para uso no diretório ’/mnt’ GnuPG é a implementação de código aberto do Pretty Good Privacy, uma ferramenta desen- volvida por Phill Zimmermann em 1991 para encriptar, decriptografar e assinar digitalmente
  48. 48. documentos com algoritmos de criptografia de chaves assimétricas. Teve um impacto imenso no mundo digital pois antes dele não era possível de forma prática trocar mensagens confiden- ciais. O GnuPG ou OpenPGP tem sua especificação definida no RFC 4880 e é útil para enviar email com informações sigilosas, autenticar e validar documentos digitais através de assina- turas, criptografar, descriptografar e aplicar hashs a arquivos digitais. A seguir é mostrado a criação de uma chave no gpg e a encriptação de um arquivo. 1) $ gpg --gen-key .... pub 4096R/7F53F0A5 2015-11-12 Key fingerprint = F25D 71C0 A56B DEF2 8B50 1D93 FB17 D5DC 7F53 F0A5 uid Alexandre Mulatinho (Infinito) <alex@mxxxxx.info> sub 4096R/D6DED049 2015-11-12 2) $ gpg --send-keys 7F53F0A5 --keyserver hkp://keys.gnupg.net $ gpg --search-keys "Fernanda Mulatinho" 3) $ gpg -r fernanda@mxxxxx.info -e contratossecretos.odt $ ls -lh contratos* -rw-r--r-- 1 mlt mlt 56K Nov 12 11:06 contratossecretos.odt.gpg Exemplo 4: Encriptação de arquivo com uso de chaves públicas O item 1 mostra a criação da minha chave privada e pública através da utilização do comando gpg e depois o item 2 mostra o envio da minha chave pública para um servidor de armazenamento de chaves da GNU e o download da chave pública de outro usuário; finalmente o item 3 mostra a encriptação de um arquivo e o resultado com uma extensão .gpg que pode ser transmistida por canais inseguros sem medo pois está criptografado. SNORT O SNORT é um sistema de detecção de intrusão de código aberto que roda sobre o Linux, como já dito antes esta categoria de software serve para analisar e auditar o que está sendo trafegado na rede e não como um mecanismos que impossibilita a invasão da máquina como
  49. 49. muitos pensam. O SNORT possui três modos de operação que estão descritos a seguir. Sniffer É o modo mais comum e que simplesmente imprime pra você de forma legível os pacotes que estão passando pela rede como um tcpdump. Log de Pacotes Este modo basicamente faz o mesmo que o modo Sniffer mas também registra os pacotes capturados em um arquivo log no disco. NIDS Este modo permite a análise e e detecção de comportamentos estranhos em pacotes na rede, este é o modo mais complexo. Utilizando o SNORT o administrador do sistema pode analisar os pacotes que trafegam na sua rede, implementar políticas descrevendo todo os acessos válidos, registrar requisições que não estejam liberadas nas políticas e até negar ou dropar tais requisições. Tabela 6. Ações realizadas pelas regras do SNORT. alert gera um alerta usando o método selecionado e depois registra o pacote. log apenas registra o pacote. pass ignora um tipo de pacote. activate alerta e então ativa uma regra dinâmica. dynamic fica inativo até que seja ativado por uma regra dinâmica e depois a registra. drop bloqueia o pacote e depois o registra. reject bloqueia o pacote, registra e depois manda uma flag apropriada para fechar a conexão. sdrop bloqueia o pacote sem registrar nada em log. /etc/snort.conf É o local comum onde o arquivo de configuração contendo as regras do SNORT são armazenadas. Exemplo Algumas regras do SNORT para servidor web. var HOME_NET 192.168.3.0/24 var EXTERNAL_NET !$HOME_NET var HTTP_SERVERS [192.168.3.1,192.168.3.2,192.168.3.88]
  50. 50. var HTTP_PORTS 80 var RULE_PATH /usr/local/snortrules ....... include $RULE_PATH/local.rules include $RULE_PATH/bad-traffic.rules include $RULE_PATH/attack-responses.rules ... alert tcp any any -> any 80 (msg:"Shared Library Rule Example"; metadata:engine shared, soid 3|12345;) alert tcp any any -> any 80 (msg:"HTTP Service Rule Example"; metadata:service http;) Exemplo 5: Regras informando IPs de servidores web e dois alertas OUTRAS DICAS E APLICATIVOS • Após instalar uma nova máquina do zero tirar backup de tudo; • Utilizar um sistema de integridade de arquivos para analisar o sistema; • Usar sempre xlock, vlock quando sair do computador para travar a tela; • Utilizar o ulimit para evitar uso extremo de recursos e ataques como fork bomb; • Desinstalar os softwares desnecessários que aumentam o vetor de ataque; • Manter os sistemas atualizados e com o relógio sincronizado (NTP); • Manter as senhas fortes com caracteres alfa numéricos e maiúsculas; • Seguir criteriosamente os métodos de HARDENING do seu sistema operacional;
  51. 51. LINUX SECURITY MODULES Em março de 2001 a NSA (Agência de Segurança Nacional) dos Estados Unidos fez uma apresentação sobre o SELinux (Security-Enhanced Linux) durante o evento que reunia os desenvolvedores do Kernel 2.5, inicialmente seria um kernel paralelo ao Linux feito por eles próprios que forneceria mecanismos de controle de acesso diferentes do DAC. Em reposta a apresentação, Linus Torvalds o criador do Linux, sugeriu uma série de mudanças que deveriam ser feitas para que este grupo de patches pudessem ser adicionados ao seu kernel, o resultado disto foi a criação de uma série de abstrações de funções para unir os módulos de segurança em um conjunto de funções comuns (framework) e que estão presentes desde sua versão 2.6. 4.1 ESTRUTURA BÁSICA O trecho abaixo foi retirado e traduzido de um dos primeiros documentos descrevendo o funcionamento do LSM dentro do kernel do Linux, ele está até hoje dentro do kernel em Documentation/DocBooks/lsm.templ O patch de LSM para o kernel fornece uma estrutura geral do kernel para suportar módulos de segurança. Em particular, a estrutura LSM é focada principalmente em suportar módulos de controle de acesso, embora o futuro desenvolvimento seja sus- ceptível a abordar outras necessidades de segurança, tais como auditoria. Por si só, a estrutura não fornece qualquer segurança adicional; fornece apenas a infra-estrutura para suportar os módulos de segurança. o patch LSM para o kernel também move a maioria da lógica de capacidades para dentro de um módulo de segurança opcional, com o sistema negligenciando a lógica tradicional do superusuário. (SMALLEY et al., 2001) Fica claro então que o LSM não é o agente que torna os processos seguros dentro do Kernel mas sim um facilitador para que se criem módulos que possam atuar neste sentido. Hoje em dia existem quatro módulos de segurança do Kernel que são utilizados nas organizações: o SELinux, AppArmor (Application Armor), TOMOYO (Task Oriented Management Obviates Your Onus) e o SMACK (Simplified Mandatory Access Control Kernel). Haverá uma descrição mais detalhada de cada um deles a frente. 42
  52. 52. Dentre os principais controles e operações de segurança que podem ser implementados através da criação de módulos dentro do kernel do Linux podemos citar: • Operações de segurança de execuções de programas e tasks; • Operações de segurança de inode, arquivos e sistemas de arquivos; • Operações de segurança para mensagens usando sockets, XFRM, Netlink, Unix; • Operações de segurança em todo o gerenciamento de chaves; • Operações de segurança para semáforos, filas, memória compartilhada do System V; • Operações de segurança para auditar o sistema; 4.2 ATIVANDO UM MÓDULO DE SEGURANÇA É necessário que o administrador de sistema não confunda os conceitos aqui. Um dos conceitos de módulo no Linux é um pedaço de software que pode ser carregado ou descarregado em tempo real no seu núcleo (espaço do Kernel). Aqui todavia o termo módulo é simplesmente para distinguir um do outro. Os módulos de segurança do kernel são ativados em modo built-in, isso significa dizer que uma vez que eles estão compilados no kernel eles não podem ser descarregados (note que na tabela 9 o que é dito que é descarregado é o serviço, e não o módulo do kernel). Devido a isso quando escolhe-se quais destes módulos se quer usar existe ainda a necessidade de compilá-lo no kernel e reiniciar o host para que então o módulo possa ser carregado adequadamente e ter seus processos de inicialização executados de forma correta. Passo a passo de ativação de um módulo de segurança 1. Utilize ou baixe uma versão do kernel estável em www.kernel.org; 2. Descompresse, entre no diretório e execute: make menuconfig;
  53. 53. 3. Já no menu selecione a opção: Security options; 4. Marque com ’*’ (modo built-in) o módulo que deseja usar; 5. Feito isto, selecione-o também no item Default security module; Feito isto é necessário ainda especificar na linha de comando do kernel, durante o boot, o nome do módulo na chave ’security=’. Para ativar o módulo tomoyo por exemplo é necessário passar: security=tomoyo. 4.3 IMPLEMENTAÇÃO NO KERNEL O principal objetivo do LSM é gerenciar o acesso aos objetos do Kernel. Para atingir isto, chamadas a ganchos de funções de segurança foram colocadas em vários pontos dentro do kernel para mediar o acesso aos objetos do Kernel (QUARITSCH e WINKLER, 2004). Figura 8. Visualização de abertura de um recurso com LSM. (Alfredo de Santis) Na figura 8 podemos ver claramente o funcionamento de um gancho de função de se- gurança do LSM, no espaço do usuário um programa executa uma chamada de sistema open() que serve para abrir um recurso e após achar o objeto no sistema de arquivos é realizado uma
  54. 54. checagem de erros, uma checagem de controle de acesso DAC e finalmente é chamada a função gancho do LSM que simplesmente responde com um boolean 0 ou 1 de acordo com a política implementada pelo módulo de segurança que está sendo utilizado atualmente. A base do LSM é definido nos arquivos security.h que contém todos os protótipos de funções para os mais variados controles citados acima e o lsm_hooks.h que contém todos os ganchos de função fazendo a ponte entre um módulo específico e os controles definidos em security.h. Todo o módulo de segurança precisa executar pelo o menos dois procedimentos: registrar o nome do seu módulo usando a função security_module_enable() e implementar todos os controles de segurança através da função security_add_hooks(). O quadro 1 (um) mostrado a seguir reitera o que foi descrito na figura 8 (oito) mostrando o funcionamento de um ponteiro pra função (um gancho) de segurança aplicado a função de abertura de um arquivo no sistema. 836 int security_file_open(struct file *file, const struct cred *cred) 837 { 838 int ret; 839 840 ret = call_int_hook(file_open, 0, file, cred); 841 if (ret) 842 return ret; 843 844 return fsnotify_perm(file, MAY_OPEN); 845 } 1541 struct security_hook_heads security_hook_heads = { 1675 .file_open = LIST_HEAD_INIT(security_hook_heads.file_open), 1885 }; Quadro 1: Código fonte do Kernel localizado em ’security/security.c’ O arquivo acima (security.c) contém todas as operações de segurança que são englobadas pelos módulos de segurança no Linux, no quadro 1 é mostrado apenas uma dessas syscalls (file_open) como exemplo; No arquivo abaixo podem ser vistas as estruturas de dados do kernel que permitem o registro do ponteiro da função (o gancho da função) que realiza a abertura de arquivos no kernel, é neste arquivo também que são descritos todos os ganchos onde são feitas as associações das funções para serem posteriormente utilizadas por um módulo de segurança. 498 * @file_open
  55. 55. 499 * Save open-time permission checking state for later use upon 500 * file_permission, and recheck access if anything has changed 501 * since inode_permission. 502 * 1303 union security_list_options { 1442 int (*file_open)(struct file *file, const struct cred *cred); 1616 }; 1617 1618 struct security_hook_heads { 1705 struct list_head task_create; 1827 }; 1828 1829 /* 1830 * Security module hook list structure. 1831 * For use with generic list macros for common operations. 1832 */ 1833 struct security_hook_list { 1834 struct list_head list; 1835 struct list_head *head; 1836 union security_list_options hook; 1837 }; 1845 #define LSM_HOOK_INIT(HEAD, HOOK) 1846 { .head = &security_hook_heads.HEAD, .hook = { .HEAD = HOOK } } 1847 1848 extern struct security_hook_heads security_hook_heads; 1849 1850 static inline void security_add_hooks(struct security_hook_list *hooks, 1851 int count) 1852 { 1853 int i; 1854 1855 for (i = 0; i < count; i++) 1856 list_add_tail_rcu(&hooks[i].list, hooks[i].head); 1857 } Quadro 2: Código fonte do Kernel localizado em ’include/linux/lsm_hooks.h’
  56. 56. 4.4 DISTINÇÃO E PRINCIPAIS CARACTERÍSTICAS Nesta seção haverá uma descrição resumida dos principais módulos de segurança do Ker- nel e uma distinção das características que eles implementam dentro do sistema. SELINUX (SECURITY-ENHANCED LINUX) O SELinux é um framework de controle de acesso mandatório desenvolvido pela NSA. O framework Linux Security Modules (LSM) praticamente foi baseado nas primeiras versões deste sistema embora com ênfase a abstração comum de ganchos de função para operações den- tro do Kernel. Ele é considerado um dos módulos de segurança mais eficientes em contrapartida é considerado também o que tem a maior curva de aprendizado devido a sua complexidade. O SELinux protege o sistema contra seus próprios processos e serviços, mesmo que eles venham a ser comprometidos. Segundo WALSH (2014), o SELinux controla processos com base em seus tipos, se o processo está fazendo o que foi desenhado para ser feito o SELinux não o bloqueará. O sistema rotula os objetos com quatro características: o user_u informa o usuário do SELinux , o role_r é uma abstração para agrupar um conjunto de permissões que este papel tem acesso (é o que permite o SELinux aplicar o RBAC), o type_t mostra o domínio ao qual o objeto pertence e é a primeira validação feita no SELinux, finalmente o campo s*:c* indica o nível de segurança ao qual o objeto está associado. # ls -lZ /etc/shadow ----------. root root system_u:object_r:shadow_t:s0 /etc/shadow Exemplo 3: Listagem de um arquivo shadow com SELinux ativado Neste exemplo o usuário system_u é considerado um usuário especial no SELinux e é responsável por gerenciar os serviços e arquivos de configuração do sistema. O object_r é um papel irrenuciável padrão dos objetos no linux e que não pertencem a domínios. O tipo sha- dow_t é um domínio específico para identificar todas as permissões associadas a este arquivo.
  57. 57. Tabela 7. Usuários e papéis (roles) padrões no SELinux. Usuários guest_u, root, staff_u, sysadm_u, system_u, unconfined_u, user_u Papéis user_r, staff_r, sysadm_r, system_r, object_r Multi-level security O nível de segurança representa uma classificação de sensibilidade da informação. Por exemplo, s0 é um dado público, s1 privado, s2 confidencial e s3 muito secreto. Cabe ao administrador definir de quantas camadas de sensibilidade ele precisa. Domínio não confinados Algumas vezes não é necessário que um aplicativo esteja sujeito a regras do SELinux e é pra isso que serve este objeto: unconfined_u (usuários), unconfined_r (papéis) e unconfined_t (tipos). Exemplo Política (regra) do SELinux. # permite que usuarios no dominio ’user_t’ executem arquivos dentro dos # diretorios ’/bin’ e ’/usr/bin’, por exemplo: ’/bin/ls’ allow user_t bin_t:file { execute }; allow user_t user_bin_t:file { execute }; Exemplo 4: Trecho de política do SELinux Booleans O SELinux também possui uma característica única: uma série de regras pré- definidas criadas por administradores de sistema de todo mundo e que possui apenas dois va- lores: ligado ou desligado. Isso torna o SELinux bastante prático e fácil de usar. O exemplo a seguir mostra algumas entradas referentes ao servidor httpd. # getsebool -a | grep httpd_can_connect httpd_can_connect_ftp --> on httpd_can_connect_ldap --> off httpd_can_connect_mythtv --> off httpd_can_connect_zabiix --> off Exemplo 5: Trecho dos Booleans da política padrão do SELinux para o HTTPD
  58. 58. ShellShock e o SELinux Uma das maiores vulnerabilidades descobertas nos últimos anos e que afeta o Linux foi o Shellshock, este ataque consiste em injetar comandos shell em variáveis de ambiente e afeta quase todos os programas que rodam nessa shell. Apesar de o problema já ter sido corrigido muitas máquinas sem atualizações ainda podem estar sujeitas a esta vulnera- bilidade. O SELinux aplica uma série de políticas definidas em sua base AVC (Cache de Vetor de Acesso) que protege ameças como: • o programa vulnerável de escrever indevidamente no arquivo de senhas (/etc/passwd); • injeção de malwares como exploits e rootkits que não conseguem sobrescrever programas e nem escrever em arquivos que não tenham sido associados ao seu contexto; Segundo WALSH (2014) o módulo de segurança SELinux ajuda a reduzir muito o vetor deste tipo de ataque impedindo que, mesmo que o serviço vulnerável seja explorado, ele não tenha permissão de modificar arquivos importantes do sistema e muito menos escrever em áreas a que não lhe são permitidas. Uma máquina sem este tipo de controle estaria sujeita a coleta de informações indevidas; injeção de malwares comprometendo todo o sistema operacional; e até a execução de shells com privilégio de administrador dando acesso total ao atacante. Isto reitera que até em falhas de software graves a utilização de módulos LSM podem ser cruciais para o combate aos atacantes. APPARMOR (APPLICATION ARMOR) O AppArmor foi incluído nas distribuições Ubuntu e Debian como sistema de segurança padrão e implementa o controle de acesso mandatório (MAC) baseado em caminhos para definir seu contexto, essa categoria costuma a se chamar pathname-based security. As regras do AppArmor são baseadas em perfis. O conteúdo do perfil contém todas as regras de acesso que regem o programa, no exemplo a seguir pode-se vêr uma parte do conteúdo do perfil do comando dhclient (responsável por conectar em redes DHCP), este perfil foi gerado utilizando-se a ferramenta do espaço de usuário aa-genprof. #include <tunables/global> /sbin/dhclient {
  59. 59. #include <abstractions/base> #include <abstractions/nameservice> capability net_bind_service, capability net_raw, /bin/dash r, /etc/dhcp/* r, .... } Quadro 6: Trecho de uma regra gerada pelo aa-genprof no dhclient Nele é mostrado por exemplo, quais arquivos o dhclient pode acessar para ler (r = read) e que capacidades de rede ele tem (net_raw = trabalha nos cabeçalhos de rede) e outros. /etc/apparmor.d/ Este é o diretório onde são armazenados todos os perfis de segurança, o perfil do comando dhclient por exemplo está lá dentro em formato do arquivo sbin.dhclient. Note que os níveis de diretórios são separados com um ponto final. TOMOYO (TASK ORIENTED MANAGEMENT OBVIATES YOUR ONUS) Originalmente desenvolvido pela NTT DATA CORPORATION em 2003 uma das coisas mais interessantes neste módulo é que o sistema possui a capacidade de aprender com o soft- ware o que ele precisa fazer, é possível por exemplo executar um comando que escuta todas as chamadas de sistema que o software precisa realizar e ir gerenciando seus acessos interativa- mente ou ler posteriormente o que foi feito com a ferramenta tomoyo-editpolicy e manipular o que deve ser permitido em cada caso. Isto permite um controle incrível de segurança do sistema. O TOMOYO é um módulo de segurança focado no comportamento de um sistema. Um processo é criado para realizar algo. O TOMOYO permite a cada processo declarar comportamentos e recursos necessários para alcançar seu objetivo (como um agente de imigração) e permite somente comportamentos e recursos declarados (como um watchdog). Esta técnica possibilita aos usuários entender como um sistema Linux funciona. É possível usar o TOMOYO como ferramenta de análise de sistema e também como ferramenta de restrição de acesso. (Fonte: https://tomoyo.osdn.jp/)
  60. 60. Entre suas principais características pode-se citar: • Analise do sistema, ideal para estudar o funcionamento do Linux; • Aumenta a segurança implementando o controle de acesso MAC; • Ferramentas faceis de usar no espaço do usuário; • Sintaxe simples e fácil de usar; • Não necessita modificar os binários para incluir segurança; Caso de uso Exemplo de geração de uma política do BIND 1. Iniciar o serviço BIND (Servidor de DNS) 2. Abrir a ferramenta tomoyo-editpolicy e selecionar o executável /usr/sbin/named, após isso pressionar a tecla ’s’ e definir o modo execução para 1 (modo de aprendizado) 3. Feito isto, sair do programa interativo com ’q’ e reiniciar novamente o serviço BIND, apartir daí todas as chamadas de sistemas serão registradas. 4. Abrir novamente o tomoyo-editpolicy e verificar que todos os acessos a arquivos estão registrados, setar a modo de execução para 3 (modo forçado). Pronto! Já está valendo tudo o que foi registrado e o programa não pode fazer nada diferente daquilo que foi escolhido utilizando-se a ferramenta acima. /etc/tomoyo É o diretório que contém todas as políticas que estão sendo executadas no sis- tema. Para persistir todas as políticas modificadas é necessário salvá-las com o comando tomoyo-savepolicy. Problemas É necessário ter muita atenção aqui para checar se o software em que a política está sendo gerada já não está infectado com algum malware criando assim uma política inefi- caz. Se necessário baixe uma nova versão do software e valide todas as chamadas de sistema
  61. 61. novamente. Uma outra coisa que também deve ser avaliada é que é possível que com as atu- alizações destes softwares, novos arquivos que eles acessam possam surgir fazendo então com que seja necessário refazer toda a política novamente incluindo as chamadas de sistema a estes novos arquivos. Isso acontece tanto no TOMOYO como também no AppArmor. SMACK (SIMPLIFIED MANDATORY ACCESS CONTROL KERNEL) Uma das coisas legais no S.M.A.C.K. é que ele tem uma sintaxe simples e uma ferramenta no espaço do usuário para validar todas as chamadas do sistema de um programa conforme descrito na tabela 9. Este módulo foi criado principalmente pra ser uma alternativa ao SELinux que exige um conhecimento profundo da ferramenta e alta complexidade de configuração, o SMACK entretanto foi desenvolvido para que os usuários conseguissem configurá-lo. • rótulos: um nome qualquer sem uso de caracteres especiais; • processo: um processo que contém um rótulo; • objeto-acessado: podem ser arquivos, IPC, sockets ou processos; • permissão-de-acesso: as permissões para se acessar o objeto; Diferente do AppArmor e TOMOYO ele é baseado em rótulos (label-based) associados a sujeitos (entidade ativa/recurso computacional) e objetos (entidade passiva/recursos que com- putacionais que desejam ser acessados). O SMACK também precisa de um sistema de arquivos chamado SMACKFS para guardar informações sobre suas regras. A regra principal dos rótulos no Smack define que um processo pode acessar qualquer objeto que tenha o mesmo rótulo que ele. Entretanto existem alguns tipos de rótulos que não seguem esse padrão, são eles: Tabela 8. Rótulos especiais do TOMOYO. Rótulo Definição _ (floor) objetos que o possuam só podem ser acessados por sujeitos com o mesmo rótulo e com a permissão rx (leitura e execução).

×