Você está na página 1de 22

segurança em aplicações

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

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


RejectConf
SP’07 8
security on ror
“convenção sobre configuração”
rails 1.2.5 (novembro/2007)
componentes de validação

model: sql injection


view: xss
controller: métodos (insecure object reference)
e csrf
RejectConf
SP’07 9
security on ror (cont)
evite: alternativas:
strip_tags white_list
strip_links html_escape
sanitize validates_email_veracity_of
validates_email_format_of
redcloth
safe_erb
csrf_killer

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>

<%= @params['text_xss'] %>


<script>alert(‘document.cookie ’)</script>

<%=h post.subject %>


<%=h post.text %>
RejectConf
SP’07 15
csrf
web browser carrega um site malicioso
web browser envia solicitações http para um
outro site
tag IMG ou FORM / javascript
impacto:
acesso a conta bancária, envio de comentários,
acesso a lista de e-mails, compras online

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

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

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

Você também pode gostar