220 likes | 287 Views
segurança em aplicações web myke hamada mykesh <at> gmail. whoami. ciência da computação segurança da informação ruby rails c# vbscript opensource microsoft ethical hacking. introdução ontem e hoje input validation security on ruby on rails ferramentas considerações finais
E N D
segurança em aplicações web myke hamada mykesh <at> gmail
whoami ciência da computação segurança da informação ruby rails c# vbscript opensource microsoft ethical hacking
introdução ontem e hoje input validation security on ruby on rails ferramentas considerações finais conclusão referências sql injection xss csrf agenda
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
ontem páginas estáticas poucas tecnologias outros alvos
hoje sites dinâmicos muitas ferramentas novos vetores de ataque informação muito fácil baixo conhecimento
hoje (cont) owasp top 10
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!!!
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
evite: strip_tags strip_links sanitize alternativas: white_list html_escape validates_email_veracity_of validates_email_format_of redcloth safe_erb csrf_killer security on ror (cont)
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
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 ]
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
xss (cont) http://host:8987/?<script>alert('vulnerable to XSS');</script> account hijacking false advertising user settings cookie
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>
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
csrf site darth vader 1 2 3 vítima 4 site dory
controller: csrf cuidado com “controller/:action” use: hide_action <img src="http://rails/order/20/delete" /> solução: use o plugin csrf_killer
web inspect acunetix watchfire appscan n-stalker hacker safe metasploit framework nikto / wikto paros proxy web scarab w3af priamos nessus burp ferramentas
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
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
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 www.foundstone.com/us/resources/proddesc/hacmecasino.htm