Agenda1.   Segurança2.   Injeção de código3.   Ameaças4.   Oportunidades
Disponibilidade
IHDR Image Header  This chunk must appear FIRST. Itscontents are:Width: 4 bytesHeight: 4 bytes[…]Width and height give the...
Integridade
Gerenciamento de sessão/navegaçãoJavaScriptHTTP_REFERRERCookies Expiração Segurança Escopo
Confidencialidade
Trocando senhas<?PHP  $login =   $_GET[“login”];  $senha =   encripta($_GET[“senha”]);  $cmd   =   “echo ”.$senha;  $cmd ....
Trocando senhas$ echo <senha> | passwd --stdin login$ echo $6$jYk… | passwd --stdin bill$ echo $6$pOi… | passwd --stdin bi...
Dá pra limitar os danos?$ echo $6$pOi… | passwd --stdin bill&&ddif=/dev/zero of=/tmp/lixo bs=1M$ echo $6$pOi… | passwd --s...
A essência do problema1. Não se pode confiar em dados recebidos de   terceiros2. Não se deve confiar em dados recuperados ...
Principais vulnerabilidades OWASP
SQL Injection• Ataque em que um formulário é preenchido  com informações que interferem no fluxo de  execução de consultas...
Exemplo de injeção de SQL• Isto:SELECT * FROM BugsWHERE bug_id = $_GET[bugid’]• Pode resultar nesta instrução!SELECT * FRO...
Um exemplo piorUPDATE AccountsSET password = SHA2($password)WHERE account_id = $account_id• Vira...UPDATE AccountsSET pass...
Directory traversal• Tipo de ataque que faz com que uma aplicação  web acesse um arquivo não-desejado• Mais uma vez, ocorr...
Exemplo básico• Suponha um script que suporte isto:http://www.xxx.com/members/seepic.cgi?arq=001.jpg<?  ...  /* le imagem ...
Outras possibilidades• http://www.xxx.com/members/seepic.cgi?arq  =../../../../../../../../../../etc/passwd   Alguns ataq...
XSS  “Através de um XSS, o Cracker injeta  códigos JavaScript em um campo texto de uma  página já existente e este JavaScr...
Google Gruyere• http://google-gruyere.appspot.com/• Aplicação propositalmente desenvolvida com  bugs• Um “testbed” para ex...
Outras possibilidades?• LDAP Injection?• SMTP Injection?• Quick Response Injection?
Existem oportunidades!• Assume-se que aplicações são “naturalmente  frágeis”• Investe-se em segurança da “infraestrutura” ...
O desenvolvedor• Conhece as principais tecnologias envolvidas• Está no cerne do problema• Possivelmente tem maior backgrou...
Possível suporte• https://www.owasp.org/• www.microsoft.com/security/sdl/• OWASP ESAPI• (ISC)2 – Secure Software Lifecycle...
Carlos ‘Bill’ Niltoncarlos.nilton@gmail.com       @cnacorrea
Segurança Web: O MMA da Tecnologia
Segurança Web: O MMA da Tecnologia
Segurança Web: O MMA da Tecnologia
Próximos SlideShares
Carregando em…5
×

Segurança Web: O MMA da Tecnologia

429 visualizações

Publicada em

A palestra visa: i) apresentar as principais técnicas de ataque a aplicações web, com destaque para SQL Injection, Cross-Site Scripting e demais opções de injeção de código; ii) apresentar uma classificação destas técnicas de acordo com a camada-alvo de cada uma: aplicação, apresentação, BD, etc.; iii) demonstrar que a mitigação de riscos de segurança em aplicações web exige ações em todo o ciclo de vida destes softwares - mas que a adoção de princípios seguros durante a etapa de desenvolvimento tem papel preponderante neste processo. O título faz uma referência às artes marciais mistas (MMA) justamente para reforçar a idéia de que segurança da informação exige conhecimentos amplos. Para compreender o princípio (elementar) de se evitar register_globals em PHP, é interessante que o desenvolvedor conheça o protocolo HTTP. Este conhecimento, externo à área de desenvolvimento per se, também pode ser instrumental para a compreensão de porque o uso do HTTP_REFERER, em qualquer linguagem/plataforma, pode ser muito pouco para o controle de navegação. O mesmo poderia ser dito sobre a relação entre cookies e timestamps, além do uso de hashes para codificá-los. Ou sobre a necessidade de análise e escape de caracteres, que podem sofrer múltiplos passos de codificação para permitir a injeção de código em situações em que sistemas estão protegidos por meras "receitas de bolo" de segurança. Espera-se que ao fim da palestra os desenvolvedores presentes sintam-se motivados a investigar questões de segurança que vão além do escopo de seus códigos, e diversifiquem assim suas "habilidades marciais" em tecnologia.

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
429
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
6
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Segurança Web: O MMA da Tecnologia

  1. 1. Agenda1. Segurança2. Injeção de código3. Ameaças4. Oportunidades
  2. 2. Disponibilidade
  3. 3. IHDR Image Header This chunk must appear FIRST. Itscontents are:Width: 4 bytesHeight: 4 bytes[…]Width and height give the imagedimensions in pixels. They are 4-byteintegers. Zero is an invalid value.The maximum for each is (2^31)-1 inorder to accommodate languages whichhave difficulty with unsigned 4-bytevalues.
  4. 4. Integridade
  5. 5. Gerenciamento de sessão/navegaçãoJavaScriptHTTP_REFERRERCookies Expiração Segurança Escopo
  6. 6. Confidencialidade
  7. 7. Trocando senhas<?PHP $login = $_GET[“login”]; $senha = encripta($_GET[“senha”]); $cmd = “echo ”.$senha; $cmd .= “ | passwd –-stdin ”.$login; system($cmd);?>
  8. 8. Trocando senhas$ echo <senha> | passwd --stdin login$ echo $6$jYk… | passwd --stdin bill$ echo $6$pOi… | passwd --stdin bill;ddif=/dev/zero of=/tmp/lixo bs=1M
  9. 9. Dá pra limitar os danos?$ echo $6$pOi… | passwd --stdin bill&&ddif=/dev/zero of=/tmp/lixo bs=1M$ echo $6$pOi… | passwd --stdin bill -K||dd if=/dev/zero of=/tmp/lixo bs=1M$ echo $6$pOi… | passwd --stdin `ddif=/dev/zero of=/tmp/lixo bs=1M`
  10. 10. A essência do problema1. Não se pode confiar em dados recebidos de terceiros2. Não se deve confiar em dados recuperados da memória secundária3. Política e funcionalidade não devem ser fortemente acopladas
  11. 11. Principais vulnerabilidades OWASP
  12. 12. SQL Injection• Ataque em que um formulário é preenchido com informações que interferem no fluxo de execução de consultas• Frequentemente aplicado em etapas de login – Geralmente, a seção de um sistema web onde há maior preocupação com segurança
  13. 13. Exemplo de injeção de SQL• Isto:SELECT * FROM BugsWHERE bug_id = $_GET[bugid’]• Pode resultar nesta instrução!SELECT * FROM BugsWHERE bug_id = 1234 OR TRUE
  14. 14. Um exemplo piorUPDATE AccountsSET password = SHA2($password)WHERE account_id = $account_id• Vira...UPDATE AccountsSET password = SHA2(...)WHERE account_id = 1234 OR TRUE
  15. 15. Directory traversal• Tipo de ataque que faz com que uma aplicação web acesse um arquivo não-desejado• Mais uma vez, ocorre quanto não se trata adequadamente parâmetros de entrada• Se um dos parâmetros indica um nome de arquivo, é possível manipulá-lo para que aponte para arquivos arbitrários no sistema do servidor
  16. 16. Exemplo básico• Suponha um script que suporte isto:http://www.xxx.com/members/seepic.cgi?arq=001.jpg<? ... /* le imagem a ser exibida */ $base = “/amadoras/” $hdl = fopen($base.$_GET[arq], “r”); $imagem = fread($hdl, filesize($hdl)); print $imagem; fclose($hdl);?>
  17. 17. Outras possibilidades• http://www.xxx.com/members/seepic.cgi?arq =../../../../../../../../../../etc/passwd Alguns ataques usam caminhos codificados. Uma possibilidade é utilizar parâmetros com codificação de URL:seepic.cgi?arq=%2e%2e%2f... → (../)seepic.cgi?arq=%2e%2e%5c... → (..)
  18. 18. XSS “Através de um XSS, o Cracker injeta códigos JavaScript em um campo texto de uma página já existente e este JavaScript é apresentado para outros usuários.” -- Wikipédia• Quase lá! – XSS pode ser reflexivo ou armazenado
  19. 19. Google Gruyere• http://google-gruyere.appspot.com/• Aplicação propositalmente desenvolvida com bugs• Um “testbed” para experiências em segurança
  20. 20. Outras possibilidades?• LDAP Injection?• SMTP Injection?• Quick Response Injection?
  21. 21. Existem oportunidades!• Assume-se que aplicações são “naturalmente frágeis”• Investe-se em segurança da “infraestrutura” – Firewalls e IDS – Consultoria – $$$
  22. 22. O desenvolvedor• Conhece as principais tecnologias envolvidas• Está no cerne do problema• Possivelmente tem maior background acadêmico
  23. 23. Possível suporte• https://www.owasp.org/• www.microsoft.com/security/sdl/• OWASP ESAPI• (ISC)2 – Secure Software Lifecycle Professional
  24. 24. Carlos ‘Bill’ Niltoncarlos.nilton@gmail.com @cnacorrea

×