1RejectConf SP’07
segurança em aplicações web
myke hamada
mykesh <at> gmail
2RejectConf SP’07
whoami
ciência da computação
segurança da informaçãoruby rails c# vbscript opensource microsoftethical hacking
3RejectConf SP’07
agenda
introduçãoontem e hojeinput validationsecurity on ruby on
railsferramentasconsiderações finaisconclusãoreferências
sql injectionxsscsrf
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
5RejectConf SP’07
ontem
páginas estáticaspoucas tecnologiasoutros alvos
6RejectConf SP’07
hoje
sites dinâmicosmuitas ferramentasnovos vetores de ataqueinformação muito fácilbaixo conhecimento
7RejectConf SP’07
hoje (cont)owasp top 10
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!!!
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
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
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
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
]
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
14RejectConf SP’07
xss (cont)
http://host:8987/?<script>alert('vulnerable to XSS');</script>
account hijacking false advertisinguser settings cookie
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>
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
17RejectConf SP’07
csrf
1
2
3
4vítima
site darth vader
site dory
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
19RejectConf SP’07
ferramentas
web inspectacunetixwatchfire appscann-stalkerhacker safe
metasploit framework
nikto / wiktoparos proxyweb scarabw3afpriamosnessusburp
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
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
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
Top Related