22
1 RejectCo nf SP’07 segurança em aplicações web myke hamada mykesh <at> gmail

ppt - Slide 1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: ppt - Slide 1

1RejectConf SP’07

segurança em aplicações web

myke hamada

mykesh <at> gmail

Page 2: ppt - Slide 1

2RejectConf SP’07

whoami

ciência da computação

segurança da informaçãoruby rails c# vbscript opensource microsoftethical hacking

Page 3: ppt - Slide 1

3RejectConf SP’07

agenda

introduçãoontem e hojeinput validationsecurity on ruby on

railsferramentasconsiderações finaisconclusãoreferências

sql injectionxsscsrf

Page 4: ppt - Slide 1

4RejectConf SP’07

introdução

• web application é um alvo fácil • sql injection é uma tecnica bem

documentada• muitos desenvolvedores de software

não tem uma real definição do que é sql injection ou xss

• não é objetivo desta apresentação mostrar técnicas de invasão, mas sim como previnir ataques

Page 5: ppt - Slide 1

5RejectConf SP’07

ontem

páginas estáticaspoucas tecnologiasoutros alvos

Page 6: ppt - Slide 1

6RejectConf SP’07

hoje

sites dinâmicosmuitas ferramentasnovos vetores de ataqueinformação muito fácilbaixo conhecimento

Page 7: ppt - Slide 1

7RejectConf SP’07

hoje (cont)owasp top 10

Page 8: ppt - Slide 1

8RejectConf SP’07

input validation

você valida de que lado?números devem númerosstrings devem ser stringso dado que é recebido é válido?o formato do dado é válido?codificação / decodificação

não esqueça de validar os dados de saída!!!

Page 9: ppt - Slide 1

9RejectConf SP’07

security on ror

“convenção sobre configuração”rails 1.2.5 (novembro/2007)componentes de validação

model: sql injectionview: xsscontroller: métodos (insecure object

reference) e csrf

Page 10: ppt - Slide 1

10RejectConf SP’07

security on ror (cont)

evite:strip_tags strip_linkssanitize

alternativas:white_listhtml_escapevalidates_email_veracity_

of validates_email_format_o

f redclothsafe_erbcsrf_killer

Page 11: ppt - Slide 1

11RejectConf SP’07

sql injection

o comando inserido na entrada é interpretado como parte do código

o interpretador entende o código de entrada como um comando

comando é executado pelo interpretadorimpacto: criar, ler, atualizar e excluir dados é possível alterar a aplicação/s.o. e fazer o

bypass de todos os controles de firewall/ips

Page 12: ppt - Slide 1

12RejectConf SP’07

model: sql injection

Email.find_all "owner_id = 123 AND subject = '#{@params['subject']}'" "owner_id = 123 AND subject = '' OR 1 --''“

subject = @params['subject']Email.find_all [ "owner_id = 123 AND subject = ?", subject

]

Page 13: ppt - Slide 1

13RejectConf SP’07

cross site scripting? xss? css?

activex / javascript / vbscript / html / flash / pdf

web application recebe a informação (link)

codifica a parte maliciosa do link o link altera a “cara” do site

forum e guesbooks

Page 14: ppt - Slide 1

14RejectConf SP’07

xss (cont)

http://host:8987/?<script>alert('vulnerable to XSS');</script>

account hijacking false advertisinguser settings cookie

Page 15: ppt - Slide 1

15RejectConf SP’07

view: xss

<%= @params['text_xss'] %> <script>alert(‘document.cookie

’)</script>

<%=h post.subject %><%=h post.text %>

http://ror/controller/action?text=<script>alert(document.cookie)</script>

Page 16: ppt - Slide 1

16RejectConf SP’07

csrf

web browser carrega um site maliciosoweb browser envia solicitações http

para um outro sitetag IMG ou FORM / javascript impacto: acesso a conta bancária, envio de

comentários, acesso a lista de e-mails, compras online

Page 17: ppt - Slide 1

17RejectConf SP’07

csrf

1

2

3

4vítima

site darth vader

site dory

Page 18: ppt - Slide 1

18RejectConf SP’07

controller: csrf

cuidado com “controller/:action”use: hide_action

<img  src="http://rails/order/20/delete" />

solução:use o plugin csrf_killer

Page 19: ppt - Slide 1

19RejectConf SP’07

ferramentas

web inspectacunetixwatchfire appscann-stalkerhacker safe

metasploit framework

nikto / wiktoparos proxyweb scarabw3afpriamosnessusburp

Page 20: ppt - Slide 1

20RejectConf SP’07

considerações finais

utilize filtros de validaçãoroot/sys/sa/admin/dba. nunca serão!negar acesso a s.p. e a ferramentas de

adminchroot neles!!!cuidado com url parametercaptchaauditar o códigoids/ipshardeninghead, put, delete, trace

Page 21: ppt - Slide 1

21RejectConf SP’07

conclusão

desenvolver código seguro é fácilpriorize áreas críticas do negóciotreinamentoleast privilegeweb application firewallsql proxyfaça muitos testes, mas defina um

escopocoma tecnologia com farofa

Page 22: ppt - Slide 1

22RejectConf SP’07

referênciaswww.owasp.orgmanuals.rubyonrails.com/read/chapter/40www.quarkruby.com/2007/9/20/ruby-on-rails-security-guidejeremiahgrossman.blogspot.comwww.rorsecurity.infowww.cgisecurity.comrailsify.com/categories/security-productionmysqlsecurity.comwww.matasano.com/logwww.webappsec.orgha.ckers.org/xss.htmlwww.railslodge.com/pluginssvn.techno-weenie.net/projects/pluginsferruh.mavituna.com/makale/sql-injection-cheatsheetwww.foundstone.com/us/resources/proddesc/hacmecasino.htm