27
SEGURANÇA WEB: O MMA DA TECNOLOGIA Carlos “Bill” Nilton [email protected] @cnacorrea

Segurança Web: O MMA da Tecnologia

Embed Size (px)

DESCRIPTION

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.

Citation preview

Page 1: Segurança Web: O MMA da Tecnologia

SEGURANÇA WEB:O MMA DA TECNOLOGIA

Carlos “Bill” [email protected]

@cnacorrea

Page 2: Segurança Web: O MMA da Tecnologia

Agenda1. Segurança2. Injeção de código3. Ameaças4. Oportunidades

Page 3: Segurança Web: O MMA da Tecnologia

Disponibilidade

Page 4: Segurança Web: O MMA da Tecnologia

IHDR Image Header

This chunk must appear FIRST. Its contents are: Width: 4 bytesHeight: 4 bytes[…]

Width and height give the image dimensions in pixels. They are 4-byte integers. Zero is an invalid value. The maximum for each is (2^31)-1 in order to accommodate languages which have difficulty with unsigned 4-byte values.

Page 5: Segurança Web: O MMA da Tecnologia

Integridade

Page 6: Segurança Web: O MMA da Tecnologia

Gerenciamento de sessão/navegação

JavaScriptHTTP_REFERRERCookies

ExpiraçãoSegurançaEscopo

Page 7: Segurança Web: O MMA da Tecnologia

Confidencialidade

Page 8: Segurança Web: O MMA da Tecnologia
Page 9: Segurança Web: O MMA da Tecnologia

Trocando senhas

<?PHP $login = $_GET[“login”]; $senha = encripta($_GET[“senha”]); $cmd = “echo ”.$senha; $cmd .= “ | passwd –-stdin ”.$login;

system($cmd);?>

Page 10: Segurança Web: O MMA da Tecnologia

Trocando senhas

$ echo <senha> | passwd --stdin login

$ echo $6$jYk… | passwd --stdin bill

$ echo $6$pOi… | passwd --stdin bill;dd if=/dev/zero of=/tmp/lixo bs=1M

Page 11: Segurança Web: O MMA da Tecnologia

Dá pra limitar os danos?

$ echo $6$pOi… | passwd --stdin bill&&dd if=/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 `dd if=/dev/zero of=/tmp/lixo bs=1M`

Page 12: Segurança Web: O MMA da Tecnologia

A essência do problema1. Não se pode confiar em dados recebidos de

terceiros

2. Não se deve confiar em dados recuperados da memória secundária

3. Política e funcionalidade não devem ser fortemente acopladas

Page 13: Segurança Web: O MMA da Tecnologia

Principais vulnerabilidades OWASP

Page 14: Segurança Web: O MMA da Tecnologia

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

Page 15: Segurança Web: O MMA da Tecnologia

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

Page 16: Segurança Web: O MMA da Tecnologia

Um exemplo pior

UPDATE AccountsSET password = SHA2('$password')WHERE account_id = $account_id

• Vira...

UPDATE AccountsSET password = SHA2(...)WHERE account_id = 1234 OR TRUE

Page 17: Segurança Web: O MMA da Tecnologia

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

Page 18: Segurança Web: O MMA da Tecnologia

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);?>

Page 19: Segurança Web: O MMA da Tecnologia

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... → (..\)

Page 20: Segurança Web: O MMA da Tecnologia

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

Page 21: Segurança Web: O MMA da Tecnologia

Google Gruyere• http://google-gruyere.appspot.com/

• Aplicação propositalmente desenvolvida com bugs

• Um “testbed” para experiências em segurança

Page 22: Segurança Web: O MMA da Tecnologia

Outras possibilidades?

• LDAP Injection?

• SMTP Injection?

• Quick Response Injection?

Page 23: Segurança Web: O MMA da Tecnologia
Page 24: Segurança Web: O MMA da Tecnologia

Existem oportunidades!

• Assume-se que aplicações são “naturalmente frágeis”

• Investe-se em segurança da “infraestrutura”– Firewalls e IDS– Consultoria– $$$

Page 25: Segurança Web: O MMA da Tecnologia

O desenvolvedor

• Conhece as principais tecnologias envolvidas

• Está no cerne do problema

• Possivelmente tem maior background acadêmico

Page 26: Segurança Web: O MMA da Tecnologia

Possível suporte

• https://www.owasp.org/

• www.microsoft.com/security/sdl/

• OWASP ESAPI

• (ISC)2 – Secure Software Lifecycle Professional

Page 27: Segurança Web: O MMA da Tecnologia

OBRIGADO!!Carlos ‘Bill’ Nilton

[email protected]@cnacorrea