Escolar Documentos
Profissional Documentos
Cultura Documentos
web
myke hamada
mykesh <at> gmail
RejectConf
SP’07 1
whoami
ciência da computação
segurança da informação
ruby rails c# vbscript
opensource microsoft
ethical hacking
RejectConf
SP’07 2
agenda
introdução
ontem e hoje
input validation sql injection
security on ruby on rails xss
ferramentas csrf
considerações finais
conclusão
referências
RejectConf
SP’07 3
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
RejectConf
SP’07 4
ontem
páginas estáticas
poucas tecnologias
outros alvos
RejectConf
SP’07 5
hoje
sites dinâmicos
muitas ferramentas
novos vetores de
ataque
informação muito fácil
baixo conhecimento
RejectConf
SP’07 6
hoje (cont)
owasp top 10
RejectConf
SP’07 7
input validation
você valida de que lado?
números devem números
strings devem ser strings
o dado que é recebido é válido?
o formato do dado é válido?
codificação / decodificação
RejectConf
SP’07 10
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 interpretador
impacto: 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
RejectConf
SP’07 11
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 ]
RejectConf
SP’07 12
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
RejectConf
SP’07 13
xss (cont)
http://host:8987/?<script>alert('vulnerable to XSS');</script>
account hijacking
false advertising
user settings
cookie
RejectConf
SP’07 14
view: xss
http://ror/controller/action?text=<script>alert(document.cookie)</script>
RejectConf
SP’07 16
csrf
site darth vader
vítim 4
a
RejectConf
site dory
SP’07 17
controller: csrf
cuidado com “controller/:action”
use: hide_action
solução:
use o plugin csrf_killer
RejectConf
SP’07 18
ferramentas
web inspect metasploit framework
acunetix nikto / wikto
watchfire appscan paros proxy
n-stalker web scarab
hacker safe w3af
priamos
nessus
burp
RejectConf
SP’07 19
considerações finais
utilize filtros de validação
root/sys/sa/admin/dba. nunca serão!
negar acesso a s.p. e a ferramentas de admin
chroot neles!!!
cuidado com url parameter
captcha
auditar o código
ids/ips
hardening
head, put, delete, trace
RejectConf
SP’07 20
conclusão
desenvolver código seguro é fácil
priorize áreas críticas do negócio
treinamento
least privilege
web application firewall
sql proxy
faça muitos testes, mas defina um escopo
coma tecnologia com farofa
RejectConf
SP’07 21
referências
www.owasp.org
manuals.rubyonrails.com/read/chapter/40
www.quarkruby.com/2007/9/20/ruby-on-rails-security-guide
jeremiahgrossman.blogspot.com
www.rorsecurity.info
www.cgisecurity.com
railsify.com/categories/security-production
mysqlsecurity.com
www.matasano.com/log
www.webappsec.org
ha.ckers.org/xss.html
www.railslodge.com/plugins
svn.techno-weenie.net/projects/plugins
ferruh.mavituna.com/makale/sql-injection-cheatsheet
RejectConf
22
www.foundstone.com/us/resources/proddesc/hacmecasino.htm
SP’07