SEG. EM SISTEMAS E REDES. 02. Vulnerabilidades em sistemas. Prof. Ulisses Cotta Cavalca <ulisses.cotta@gmail.com>

Documentos relacionados
SEG. EM SISTEMAS E REDES. Vulnerabilidades

Fonte: - Illustration by Gaich Muramatsu

Ameaças, riscos e vulnerabilidades Cont. Objetivos

Nomes: Questão 1 Vulnerabilidade: SQL Injection (Injeção de SQL):

Boas Práticas de Desenvolvimento Seguro

Segurança em aplicações web: pequenas ideias, grandes resultados Prof. Alex Camargo

FIREWALL. Prof. Fabio de Jesus Souza. Professor Fabio Souza

Programação Web Prof. Wladimir

Aula 03 Malware (Parte 01) Visão Geral. Prof. Paulo A. Neukamp

Intranets. FERNANDO ALBUQUERQUE Departamento de Ciência da Computação Universidade de Brasília 1.INTRODUÇÃO

Desenvolvimento e disponibilização de Conteúdos para a Internet

Segurança em Sistemas Web. Addson A. Costa

Servidor, Proxy e Firewall. Professor Victor Sotero

Aspectos de Segurança em Programação com Java

UNIVERSIDADE FEDERAL DE PELOTAS

Firewall. Qual a utilidade em instalar um firewall pessoal?

PHP AULA1. Prof. Msc. Hélio Esperidião

Ataques e Intrusões. Invasões Trashing e Engenharia Social. Classificação de Hackers

Tecnologias WEB Web 2.0

Revisão 7 Junho de 2007

Desenvolvendo Websites com PHP

Hackers. Seus dados podem ser inúteis, mas seu computador em si pode ainda ser um recurso valioso.

Entrar neste site/arquivo e estudar esse aplicativo Prof. Ricardo César de Carvalho

Conteúdo Programático de PHP

Falha segurança Baco Cross-site scripting (XSS) e Logins por canal não seguro (http) perenboom@hmamail.com

AULA APLICAÇÕES PARA WEB SESSÕES E LOGIN E SENHA

Segurança na WEB Ambiente WEB estático

Componentes de um sistema de firewall - II. Segurança de redes

Tipos de pragas Virtuais; Como funciona os antivírus; Principais golpes virtuais; Profº Michel

CONCEITOS INICIAIS. Agenda A diferença entre páginas Web, Home Page e apresentação Web;

Segurança em Computadores. GTI SEDU


SIMEC Sistema Integrado de Planejamento, Orçamento e Finanças

Requisitos de controlo de fornecedor externo

3 SERVIÇOS IP. 3.1 Serviços IP e alguns aspectos de segurança

INE 5223 Informática para Secretariado

Firewall. Professor: João Paulo de Brito Gonçalves Disciplina: Serviços de Redes. Campus Cachoeiro Curso Técnico em Informática

Ameaças e Contramedidas de Host

Treinamento. "Contra defesa cibernética Teoria e Prática" Preparado por: Eduardo Bernuy Lopes Consultor Sênior red.safe ISO Lead Auditor

Programando em PHP. Conceitos Básicos

Curso de Aprendizado Industrial Desenvolvedor WEB

Segurança da Informação

3. Cópias de segurança de dados armazenados em um computador são importantes para se prevenir de eventuais falhas, como também das consequências de

MALWARE. Spyware. Seguem algumas funcionalidades implementadas em spywares, que podem ter relação com o uso legítimo ou malicioso:

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU

Nomes: João Lucas Baltazar, Lucas Correa, Wellintom Borges e Willian Roque. CAPITULO 4- Segurança de Aplicações.

Sistemas para Internet 06 Ataques na Internet

Superioridade do Linux sobre Windows no quesito segurança

FACULDADES INTEGRADAS PROMOVE DE BRASÍLIA PROJETO DE INICIAÇÃO CIENTÍFICA

Acesso Remoto Placas de captura

XSS - CROSS-SITE SCRIPTING

Internet - A rede Mundial

Ferramentas de Acesso Remoto

Prof.: MARCIO HOLLWEG

Características de Firewalls

Programas Maliciosos / 1 Segurança de Redes/Márcio d Ávila 182. Vírus de Computador

A segurança na utilização da Internet é um tema muito debatido nos dias atuais devido à grande quantidade de ladrões virtuais.

SEG. EM SISTEMAS E REDES. 03. Vulnerabilidades em redes. Prof. Ulisses Cotta Cavalca <ulisses.cotta@gmail.com>

Códigos Maliciosos. Prof. MSc. Edilberto Silva

A IMPORTÂNCIA DE FIREWALL S PARA AMBIENTES CORPORATIVOS

Aula Prática Roteador

Segurança exposta em Rede de Computadores. Security displayed in Computer network

World Wide Web e Aplicações

Criando scanner para FreeSSHd vulnerável ao exploit do Metasploit Inj3cti0n P4ck3t. Inj3cti0n P4ck3t

COMO FUNCIONA UM ANTIVÍRUS E QUAIS SUAS PRINCIPAIS FALHAS

Satélite. Manual de instalação e configuração. CENPECT Informática cenpect@cenpect.com.br

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

Nessus Vulnerability Scanner

Códigos Maliciosos. <Nome> <Instituição> < >

Segurança em Informática

11 - Q34826 ( FCC DPE - SP - Oficial de Defensoria Pública / Noções de Informática / Internet e intranet; )

Componentes de um sistema de firewall - I

BANCO DE DADOS CONTEÚDO INFORMÁTICA. Prof.: MARCIO HOLLWEG BANCO DE DADOS SGBD TABELA CONCEITOS BÁSICOS

Segurança na Rede Local Redes de Computadores

Prova de pré-requisito

Rede de Computadores

Projuris Enterprise Visão Geral da Arquitetura do Sistema

Sistemas Operacionais. Prof. André Y. Kusumoto

REDE DE COMPUTADORES

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

IP significa Internet Protocol. A Internet é uma rede, e assim como ocorre em qualquer tipo de rede, os seus nós (computadores, impressoras, etc.

COORDENAÇÃO DE TECNOLOGIA (COTEC) ABRIL/2011

WebZine Manager. Documento de Projeto Lógico de Rede

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini prof.andre.luis.belini@gmail.com /

As doze maiores ameaças do mercado intermediário: evitando ataques maliciosos comuns em nível de aplicativo.

Transcrição:

SEG. EM SISTEMAS E REDES 02. Vulnerabilidades em sistemas Prof. Ulisses Cotta Cavalca <ulisses.cotta@gmail.com> Belo Horizonte/MG 2015

SUMÁRIO 1) Introdução 2) Vulnerabilidades em sistemas

1. INTRODUÇÃO Introdução Principais erros Principais personagens Anatomia de um ataque Vulnerabilidades

1. INTRODUÇÃO 1.1. Principais erros Conectar sistemas na Internet sem testá-los; Conectar com contas e senhas padrão. Usuário: teste; Senha: teste123 Não atualizar erros de segurança, quando estes são encontrados e divulgados; Deixar que pessoas sem o devido treinamento cuidem da segurança; Deixar serviços desnecessários nos computadores: ftpd, telnetd, funger, RPC, mail, Rservices; Manter no servidor pacotes que possibilitam o invasor realizar a compilação de programas;

1. INTRODUÇÃO 1.1. Principais erros Manter no servidor ligado à Internet a base de arquivos da empresa, não diferenciados serviços de LAN e WAN; Conhecer a segurança física, mas desconhecer (ou inexistir) a segurança da informação; Falta de um ambiente de laboratório, ou de teste; Manter um firewall protegendo a rede, acreditando que ele é suficiente; Permitir o uso indiscriminado de protocolos específicos, como o ICMP; Implementar firewall com políticas genéricas; Não tem servidor com horário sincronizado;

1. INTRODUÇÃO 1.1. Principais erros Usar protocolos descriptografados para administrar sistemas remotos, firewalls, etc; Não idealizar perímetros para melhorar a segurança da rede; Não ter concentrados de logs e analisadores dos registros de logs; Possuir um concentrador de logs, mas com os horários dos servidores não sincronizados; Achar que esquecendo os problemas eles somem rapidamente; Falhar na implementação de antivírus ou lista de vírus; Falhas na capacitação e conscientização dos usuários.

1. INTRODUÇÃO 1.2. Principais personagens Hacker Especialista em informática, problem solver, descobre falhas e cria exploit; Possui ética hacker ; Cracker Especialista em informática, problem creator, hacker malicioso, criminoso; Script kiddies Com pouco conhecimento de informática, usam exploits criados pelos hackers e executam ataques na Internet; Possuem muito tempo ocioso

1. INTRODUÇÃO 1.2. Principais personagens Lammer Considerado o nível mais baixo, ou seja, indivíduo que não conhece o poder do computador e se auto denomina um hacker, ou pensa ser um cracker e sai invadindo hosts pela Internet; Menor conhecimento que um script kiddie; Newbie Aprendiz do hacker, pergunta muito, é ignorado e ridicularizado; Larva Indivíduo capaz de eecutar invasões a partir de receitas de bolo e exploits encontrados na Internet, mas diferente do script kiddies, já são capazes de compreender o que estão fazendo e até de melhorar técnicas e ferramentas.

1. INTRODUÇÃO 1.3. Anatomia de um ataque Teste de penetração (pen test) Também denominado teste de invasão. Consiste em apurar o quanto difícil é inadir uma rede de computadores ou um sistema; Pode revelar: Que tipo de informação pode ser obtida fora da organização, sem a necessariamente conectar À rede da empresa ao acessá-la fisicamente; Como os sistemas reagem a um ataque; Se é possível acessar o sistema com informações disponíveis ou já existentes; Informações que possam se tornar acessíveis em caso de pane no sistema

1. INTRODUÇÃO 1.3. Anatomia de um ataque Teste de penetração (pen test) Abordagens: Teste de penetração zero (black box) Grupo de teste não tem nenhuma informação sobre o sistema alvo Teste de invasão mais realístico possível Teste de penetração parcial (gray box) Organização alvo fornece informações que um atacante pode encontrar; Usado se o objetivo for testar um novo tipo de ataque, ou focar em um host específico; Informações como topologias de rede, política de segurança e inventário Teste de conhecimento (white box) Simulação do trabalho de um atacante que possui grande conhecimento da organização alvo

1. INTRODUÇÃO 1.3. Anatomia de um ataque Teste de penetração (pen test) Fases: Fase de descoberta Coleta de informações da organização Fase de enumeração Complementa da fase de descoberta, com a coleta de informações como nomes de usuários, informações de compartilhamentos, aplicativos, plataformas, infraestruturas, etc. Fase de mapeamento de vulnerabilidades Estabelecimento de relação das informações obtidas Fase de exploração Obteção de acesso para descoberta e exploração das vulnerabilidades encontradas

1. INTRODUÇÃO 1.4. Vulnerabilidades Evidência ou fragiliade que eleva o grau de exposição do ativo, aumentando a probabilidade de sucesso da investida de uma ameaça Físicas: cabeamento de baixa qualidade, ausência de fragmentadora de papel, instalação elétrica mal dimensionada; Tecnológicas: defeito de software, sistema operacional desatualizado, senha fraca; Humanas: falta de conscientização dos usuários, ausência de rotina de backup, descuido e despreparo.

1. INTRODUÇÃO 1.4. Vulnerabilidades Sob o ponto de vista tecnológico São falhas presentes em um programa, protocolo ou sistema operacional; Decorrem de erros de especificação ou de programação Prevenção para erros de programação: Aplicação de patches ou hotfix Aplicação de service pack ou maintenance level

Buffer overflow Buffer overflow baseado em pilha Buffer overflow baseado no heap Ataque por retorno da libc Erros de parâmetros SQL injection Cross-site Scripting (XSS) Poluição de parâmetros HTTP

2.1. Buffer overflow Falha amplamente conhecida, que implica em sérios impactos no funcionamento de sistemas; Buffer overflow é basicamente o resultado do armazenamento em memória maior que a sua capacidade; O princípio é estourar o buffer e sobrescrever parte da pilha de memória, alterando o valor das variáveis locais, valores dos parâmetros e/ou o endereço de retorno; Sistemas que não verificam o tamanho disponível em memória estão suscetíveis a esse ataque; Sistemas como Apache, IIS e OpenSSH já apresentaram essa vulnerabilidade.

2.1. Buffer overflow Um processo ao ser executado é divido em quatro partes na memória: Texto, onde estão armazenadas as instruções e código fontes propriamente ditos. Armazena código binário e executável, está marcada apenas como leitura. Em seguida os dados, onde são armazenados os conteúdos das variáveis globais e estáticas do processo em execução. Já pilha é um espaço contínuo de memória responsável por armazenar o conteúdo das variáveis locais do processo, além de valores de passagem e retorno de funções. Por fim, o heap é responsável pela alocação dinâmica de memória.

2.1. Buffer overflow Stack-based buffer overflow (Buffer overflow baseado em pilha): É a técnica mais trival de ataque por buffer overflow, consistindo na rescrita da pilha de memória com o conteúdo excedido. O valor excedido salvo na pilha de memória pode apontar para a execução do código malicioso, ou até mesmo para parte do programa vulnerável.

2.1. Buffer overflow Stack-based buffer overflow:

2.1. Buffer overflow Heap-base buffer overflow (Buffer overflow baseado no heap) Em geral é mais difícil de ser explorada, devido a sua função de alocação dinâmica de memória, blocos contíguos e fragmentação interna. O buffer presente no heap deve ser estourado para que o retorno à pilha aponto para o código malicoso.

2.1. Buffer overflow Return-to-libc attack (Ataque por retorno da libc): consiste no estouro de um buffer para que seja apontado a um trecho do programa em execução, geralmente uma função. Essas funções são tipicamente utilizadas pela biblioteca libc. Ataques desse tipo são comumente aplicados após a inclusão de patches em sistemas operacionais, que são impedidos de executar códigos nas regiões de memória que o processo ocupou (região de dados, pilha, ou heap).

2.2. Erros de parâmetros Principais alvos de ataques são serviços de DNS, servidor Web e servidor de email. Destes, o servidor web é o mais suscetível a ataques por erros de parâmetros, por exigir que parâmetros sejam enviados durante a sua execução; Essa estratégia consiste em inserir numa determinada aplicação parâmetros que, a priori, não são previstos ou tratados no código fonte Podemos citar os ataques por erros de parâmetros: SQL injection XSS (Cross-site Scripting) Poluição de parâmetros HTTP

2.2. Erros de parâmetros SQL injection A vulnerabilidade por SQL injection (SQLi) nasce quando a aplicação não trata o caracter '; Essa ausência de tratamento permite a inserção de código SQL para : expor dados escondidos, sobrescrever dados valiosos; ainda executar comandos de sistema perigosos no servidor; Em geral, aplicações PHP são mais suscetíveis a essa vulnerabilidade.

2.2. Erros de parâmetros SQL injection Exemplo de como SQLi funciona: Fonte: http://php.net/manual/pt_br/security.database.sql-injection.php

2.2. Erros de parâmetros SQL injection

2.2. Erros de parâmetros SQL injection Para verificar se um site tem essa vulnerabilidade, acrescente ' no final da URL; Em geral, sites que contém os seguintes arquivos, é possível aplicar SQLi: index.php?id= gallery.php?id= article.php?id= pageid=

2.2. Erros de parâmetros SQL injection Como se proteger: Nunca confie em nenhum tipo de entrada no sistemas, especialmente aquela que vem do lado do cliente, mesmo que venha de um combobox (HTML), um campo de entrada escondido (hidden) ou um cookie; Nunca conecte ao banco de dados como um superusuário ou como o dono do banco de dados. Use sempre usuários personalidados com privilégios bem limitados; Verifique se uma entrada qualquer tem o tipo de dados experado. Exemplo: espere números se o campo for numérico :)

2.2. Erros de parâmetros Cross-site Scripting (XSS) Envolve a consequência de misturar dados (código HTML por exemplo) e códigos em um objeto. Entendemos estes códigos como linguagens executadas no navegador, como o JavaScript, Active Script e o ActiveX. Em ataques por XSS, o agressor insere trechos em JavaScript (ou qualquer outra linguagem que seja interpretada no navegador do cliente) no HTML da aplicação, sendo impossível a mesma verificar o verdadeiro intuito desses códigos. A partir disso o atacante pode verificar o conteúdo de cookies (que pode conter informações de autenticação do usuário), teclas, dados de formulários, e assim por diante.

2.2. Erros de parâmetros Cross-site Scripting (XSS) Código PHP simples de um site qualquer Acesso a partir de um browser: http://localhost/html/index.php?nome=redes de computadores

2.2. Erros de parâmetros Cross-site Scripting (XSS) Acesso a partir de um browser, injetando o código Java Script: <script>alert(document.lastmodified)</script> http://localhost/html/index.php? nome=<script>alert(document.lastmodified)</script>

2.2. Erros de parâmetros Cross-site Scripting (XSS) Como se proteger: Não confie nos parâmetros passados pelos métodos GET pelo protocolo HTTML; Alguns navegadores já possuem algum implementação que trata ataques do tipo XSS No servidor Web, implemente regras que trate os metacaracteres. O exemplo a seguir verifica a existência de caracter entre barra ou tags /((\%3C) <)((\%2F) \/)*[a-z0-9\%]+((\%3e) >)/i

2.2. Erros de parâmetros Poluição de parâmetros HTTP Consiste no envio de um mesmo parâmetro mais de uma vez. Embora essa técnica seja simples, foi anunciada publicamente recentemente; http://www.loja.com.br/carrinho.php?idproduto=1&idproduto=2 O servidor web não consegue tratar os valores desse parâmetro duplicado, gerando grande instabilidade, funcionamento incorreto e algumas vezes comportamentos desconhecidos. Uma solução seria a concatenação de parâmetros duplicados e passá-los como vetor ao invés de string, diferentemente do que é comumente feito. Entretanto, não existe um consenso para esse tipo de prática e como evitar ataques por poluição de parâmetros HTTP