03 Introducao Seg App Web

Embed Size (px)

DESCRIPTION

03 Introducao Seg App Web

Citation preview

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    MATC99 Segurana e Auditoria de Sistemas de Informao

    Italo Valcy

    Segurana em Aplicaes web Introduo

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Segurana em aplicaes web

    Vulnerabilidades em software tem sido amplamente utilizadas por atacantes!

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Segurana em aplicaes web

    Nenhum software est livre de vulnerabilidadesMcConnell, S. Code Complete:

    Industry Average: "about 15 - 50 errors per 1000 lines of delivered codeabout 10 - 20 defects per 1000 lines of code during in-house testing and 0.5 defects per KLOC in released products

    Objetivo: prover segurana no desenvolvimento de software

    No um objetivo fcil, dado a complexidade dos sistemas

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Segurana em aplicaes web

    Estratgia para detectar vulnerabilidades:Anlise de documentos de requisitos, projeto e arquitetura

    Anlise de cdigo-fonte

    Teste de invaso

    Ferramentas automatizadas

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Segurana em aplicaes web

    Questo: sua empresa/organizao adota um ciclo de desenvolvimento de software seguro?

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Ciclo de desenv. de software seguro

    A segurana deve fazer parte de todas as fases do desenvolvimento de software (McGraw, 2006):

    Especificao: requisitos explcitos de segurana (ex: Microsoft Bob)

    Projeto: modelo de dados em estruturas lgicas e fsicas, padres de interface, elementos de hardware e software (e.g. banco de dados em DMZ)

    Codificao: tcnicas gerais de programao segura (e.g. buffer overflow em C/C++)

    Testes de segurana, diferente de testes funcionais (e.g. fluxos no esperados)

    Implantao em ambiente de produo (e.g. aplicao de patches de correo)

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    A segurana deve fazer parte de todas as fases do desenvolvimento de software (McGraw, 2006):

    Especificao: requisitos explcitos de segurana (ex: Microsoft Bob)

    Projeto: modelo de dados em estruturas lgicas e fsicas, padres de interface, elementos de hardware e software (e.g. banco de dados em DMZ)

    Codificao: tcnicas gerais de programao segura (e.g. buffer overflow em C/C++)

    Testes de segurana, diferente de testes funcionais (e.g. fluxos no esperados)

    Implantao em ambiente de produo (e.g. aplicao de patches de correo)

    Ciclo de desenv. de software seguro

    Softwa

    re pron

    to: preo

    cupa

    o

    com seg

    urana

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Ciclo de desenv. de software seguro

    Wysopal et al (2006)

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    OWASP

    Open Web Application Security ProjectDivulgar aspectos de segurana de aplicaes web

    Trabalhos relevantes em nosso contexto:Top Ten (lista das principais vulnerabilidades em aplicaes web)

    Guia de desenvolvimento (descreve melhores prticas para dev. seguro em JEE, ASP, .NET, PHP)

    Guia de testes (metodologia e procedimentos para testes de invaso de app web caixa preta e cinza)

    WebScarab (proxy entre navegador e servidor)

    WebGoat (app de exemplo para ensino)

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Arquitetura e tecnologias

    Inicialmente os servidores web forneciam contedo esttico

    Geralmente o usurio no fornecia dados

    Vulnerabilidades apenas nas plataformas subjacentes e S.O.

    Atualmente os usurios interagem de forma dinmica:

    Envio/Modificao de dados

    Vulnerabilidades na forma como os dados so inseridos/modificados

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Arquitetura e tecnologias

    Inicialmente:Todo o fluxo de processamento da aplicao implementado de forma programtica e direta

    Sistemas modernos usam o modelo de n-camadas

    Camada de apresentao

    Lgica de negcio

    Camada de dados

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Arquitetura e tecnologiasTopologia de uma aplicao n-camadas

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Arquitetura e tecnologiasTopologia de uma aplicao n-camadas

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Reviso de criptografia

    Fundamentos de criptografiaCriptografia clssica

    Criptografia assimtrica

    Infraestrutura de chaves pblicas

    Aplicaes prticasSSL Secure Socket Layer

    Outras aplicaes

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Reviso de criptografia

    CriptografiaCriptografia (krypts, escondido, grphein, escrita)

    Oculta mensagens de terceiros (legvel apenas para o destinatrio)

    CriptoanliseDecodificar mensagem sem conhecer a chave secreta

    EsteganografiaOcultar mensagens dentro de outras

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Definies

    Texto claroTexto original, no cifrado

    Texto cifradoTexto ilegvel, no compreensvel

    CifrarTransformar texto claro em texto cifrado

    DecifrarTransformar texto cifrado em texto claro

    ChaveConjunto de dados utilizados para cifrar e decifrar

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Criptografia

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Criptografia moderna

    Conjunto de tcnicas matemticas e computacionais usadas para:

    Confidencialidade: informao legvel apenas para pessoas autorizadas

    Integridade: informao no alterada de maneira no autorizada ou desconhecida

    Irretratabilidade (no repdio): evitar que entidades neguem aes previamente executadas

    Autenticidade: corroborar a identidade da entidade ou da origem da informao

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Cifras simtricas

    Fcil computacionalmente determinar uma chave a partir de outra

    Na prtica elas so iguais

    Vantagens:Algoritmos rpidos

    Chaves relativamente pequenas

    DesvantagensNmero de chaves em uma rede tende a ser grande

    Pr-conhecimento ou compartilhamento da chave em meio inseguro (Diffie-Hellman)

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Cifras simtricas

    Cifradores de blocos: divide a mensagem em blocos de tamanho fixo (ex: 128 bits)

    Exemplo: DES, AES

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Cifras simtricas

    Cifradores de fluxo: cifra cada digito do texto plano por vez

    RC4

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Cifras simtricas

    Como distribuir as chaves de maneira segura?

    Como verificar se a mensagem no foi modificada?

    Como ter certeza que a mensagem foi realmente enviada por quem diz ter enviado?

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Criptografia Assimtrica

    Par de chaves

    Pblica e PrivadaConfidencialidade

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Criptografia Assimtrica

    Par de chaves

    Pblica e Privada Autenticidade

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Criptografia Assimtrica

    Diffie Hellman, 1976

    Principais algoritmos:RSA (Rivest, Shamir e Adleman, 1977)

    DSA (NSA)

    ECDSA

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Funes de Hash

    Procedimento ou funo matemtica para transformar um conjunto de dados em um outro conjunto de tamanho fixo (resumo criptogrfico)

    PropriedadesResistncia da pr-imagem: dado h(x), computacionalmente infactvel encontrar x

    Resistncia da segunda pr-imagem: dado h(x), computacionalmente infactvel encontrar y!=x | h(y) = h(x)

    Resistncia a coliso: x, y quaisquer | h(x) != h(y)

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Funes de Hash

    Exemplos de uso:Proteo de senhas

    Verificao de integridade de arquivos

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Assinatura digital

    Anlogo digital do conceito de assinatura de um documento.

    Permite:Integridade

    Autenticidade

    No repdio

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Assinatura digital

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Problemas vista: coliso de hash

    O hash tem tamanho fixo. Ento existe um nmero finito de hashes

    Existem infinitas mensagens...Logo:

    Mais de uma mensagem tem o mesmo hash

    =

    Coliso de hash

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Coliso de hash

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Coliso de hash

    possvel? Sim... mas uma boa funo hash tem as seguintes caractersticas:

    difcil, tendo h(m), achar m difcil, tendo m1, achar m2 tal que h(m1)=h(m2)

    Mais difcil que encontrar uma coliso, encontrar uma coliso til.

    Quanto tempo voc quer que a assinatura digital continue vlida?

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Criptografia Assimtrica

    Como distribuir as chaves de maneira segura?

    Como verificar se a mensagem no foi modificada?

    Como ter certeza que a mensagem foi realmente enviada por quem diz ter enviado?

    Como vincular uma chave informao de seu detentor?

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Certificados Digitais

    Objeto puramente digital

    Contm informaes do detentor da chave privada

    Criado por uma entidade confivel

    Possvel delimitar as suas possveis aplicaes

    Fcil determinar se foi violado

    Possvel verificar seu estado atual

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Secure Socket Layer

    HistricoCriado em 1995 pela Netscape

    Verso atualizada SSLv3

    Verso padronizada pelo IETF: TLS (RFC5246 v1.2)

    MotivaoAtender demandas por conexo mais seguras na Internet;

    ObjetivoProver servios de autenticao do servidor, comunicao secreta e integridade dos dados;

    Tornou-se um padro utilizado at hoje para prover conexes seguras;

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Secure Socket Layer

    O protocolo SSL executa sobre os protocolos TCP/IP e abaixo de procolos de alto nvel (HTTP, IMAP, LDAP).

    Prov os seguintes servios para comunicaes na Internet:

    Autenticao do servidor

    Autenticao do cliente

    Conexo encriptada

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Secure Socket Layer

    Criptografia SSL: segurana versus desempenho

    Definio da chave secreta: Cript. Assimtrica

    Criptografia dos dados: Cript. Simtrica

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Secure Socket Layer

    SSL: Record Protocol + Handshake Protocol + Alerts Protocol + Change CipherSpec Protocol

    Record Protocol: define o formato usado na transmisso dos dados

    Handshake Protocol: definio dos parmetros necessrio ao estabelecimento da conexo SSL

    Alerts Protocol: define as mensagens de erro (fatal e warning)Change CipherSpec Protocol: Sinaliza o fim do handshake e inicia a comunicao criptogafada

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Secure Socket Layer

    SSL: Record Protocol + Handshake Protocol + Alerts Protocol + Change CipherSpec Protocol

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Secure Socket Layer

    SSL Handshake Protocol

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Secure Socket Layer

    SSL Record Protocol

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Secure Socket Layer

    AplicaesQualquer comunicao de aplicao baseada em TCP (LDAP, IMAP, POP, etc.)

    Uso mais comum: HTTP + SSL == HTTPSHTTPS (Secure HTTP) porta 443 invs da porta 80

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Secure Socket Layer

    SSL no ApacheHabilitar o mod_sslObter/criar o certificado

    Configurar um VirtualHost com SSL habilitado(opcional) Verificar a confiabilidade da CA nos clientes

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Outras aplicaes

    VPN Virtual Private Network

    DNSSEC Extenso de Segurana do DNS

    Assinatura/Criptografia de e-mails

    Autenticao

    Assinatura de documentos

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Reviso HTTP

    HTTP - HyperText Transmission Protocol o protocolo usado na comunicao entre o servidor Web e o Browser.

    HTTP constitui a base sobre a qual o servidor Web realiza suas operaes.

    A idia inicial era a de que o HTTP deveria ser um protocolo bem simples.

    Mesmo aps vrias modificaes e melhorias, a idia bsica do HTTP continua sendo a mesma, simplicidade.

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Reviso HTTP

    Uma conexo HTTP feita como comandos telnet, que por sua vez so formados por mensagens texto trocadas atravs de uma conexo TCP.

    Um exemplo:

    A porta 80 a padro para conexes http

    $telnetapp.dcc.ufba.br80Trying200.17.147.9...Connectedtoapp.dcc.ufba.br.Escapecharacteris'^]'.GET/~italo/helloworld.htmlHTTP/1.0Host:app.dcc.ufba.br

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Reviso HTTP

    A resposta tambm ser em texto-limpo:

    HTTP/1.1200OKDate:Sun,03May200914:14:42GMTServer:Apache/2.2.9(Debian)mod_fastcgi/2.4.6mod_ldap_userdir/1.1.14PHP/5.2.61+lenny2withSuhosinPatchmod_python/3.3.1Python/2.5.2mod_ssl/2.2.9OpenSSL/0.9.8gmod_perl/2.0.4Perl/v5.10.0LastModified:Sun,03May200914:14:16GMTETag:"33daf3646902a92d1e00"AcceptRanges:bytesContentLength:54Connection:closeContentType:text/html

    Helloworld!

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Servidor web

    Mtodos

    GET: solicita algum recurso como um arquivo ou um script CGIHEAD: o mesmo que GET, porm retorna apenas o cabealho da resposta.

    POST: Envia dados para serem processados (ex. forms html)PUT: Envia certo recurso.DELETE: Exclui o recurso.OPTIONS: Recupera os mtodos HTTP que o servidor aceita.CONNECT: Serve para uso com um proxy que possa se tornar um tnel SSL.

    Mtodos

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Servidor web

    Resposta - Cdigos de retorno

    1xx: Informational (Informao) utilizada para enviar informaes para o cliente de que sua requisio foi recebida e est sendo processada;

    2xx: Success (Sucesso) indica que a requisio do cliente foi bem sucedida;

    3xx: Redirection (Redirecionamento) informa a ao adicional que deve ser tomada para completar a requisio;

    4xx: Client Error (Erro no cliente) avisa que o cliente fez uma requisio que no pode ser atendida;

    5xx: Server Error (Erro no servidor) ocorreu um erro no servidor ao cumprir uma requisio vlida.

    Cdigos de retorno

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Servidor web

    Host

    User-Agent

    Accept: tipo de contedo aceito pelo cliente

    Set-Cookie

    Expires

    Cabealhos

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Servidor web

    Dados enviados ao navegador pelo servidor, com objetivo de lembrar informaes de um usurio

    Expire: por quanto tempo o cookie vlido

    Domain: define para quais domnios o cookie vlido

    Path: Defini os caminhos para os quais o cookie vlido

    Secure: Enviar cookies apenas via HTTPS

    HttpOnly: quando configurado evita que cdigo no cliente acesse os cookies (nem todo browser respeita)

    Cookies

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Esquemas de codificao

    Consiste em substituir elementos de um conjunto por outro

    Segurana de aplicaes web:Proteo contra ataques (cross-site scripting)

    Testes de invaso (construo de vetores de teste)

    Contorno de filtros de entrada

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Codificao de URL

    Uma URL pode conter apenas caracteres ASCII imprimveis (RFC 3986)

    Caracteres reservados

    Exemplo: espao (ASCII 32) mapeado para %20 ou +

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Codificao de URL

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Codificao HTML

    Codifica caracteres especiais em HTML:&;

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Autenticao HTTP

    Objetivo: autenticar usurios antes de acessar recursos protegidos pelo servidor.

    O protocolo HTTP fornece mecanismos de autenticao nativos:

    Basic

    Digest

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Autenticao Basic vs Digest

    1 Cliente solicita recurso protegido do servidor

    2 Servidor responde com 401 Unauthorized e o cabealho WWW-Authenticate com o tipo de autenticao

    3 Usurio fornece login e senha, os quais so enviados no cabealho Authorization

    Basic: codificados em base64 (clear text)

    Digest: protegido pelo MD5

    4 Se as credenciais forem vlidas, o recurso solicitado disponibilizado. As credenciais so includas em toda requisio seguinte.

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Autenticao Basic vs DigestExemplo (basic auth)

    prompt$ echo -n "ZGF2MTB==" | base64 -d

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Autenticao Basic vs Digest

    Impossibilidade de travamento por erros de autenticao consecutivos

    Inexistncia de mecanismo de encerramento de sesso (apenas fechando o browser)

    Problemas

  • Italo Valcy Seg e Auditoria de SI, 2013.1

    Prtica

    Prtica: 01./download-pratica.sh 01

    Slide 1Slide 2Slide 3Slide 4Slide 5Slide 6Slide 7Slide 8Slide 9Slide 10Slide 11Slide 12Slide 13Slide 14Slide 15Slide 16Slide 17Slide 18Slide 19Slide 20Slide 21Slide 22Slide 23Slide 24Slide 25Slide 26Slide 27Slide 28Slide 29Slide 30Slide 31Slide 32Slide 33Slide 34Slide 35Slide 36Slide 37Slide 38Slide 39Slide 40Slide 41Slide 42Slide 43Slide 44Slide 45Slide 46Slide 47Slide 48Slide 49Slide 50Slide 51Slide 52Slide 53Slide 54Slide 55Slide 56Slide 57Slide 58Slide 59Slide 60