PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
-
Upload
rafael-jaques -
Category
Technology
-
view
14.746 -
download
2
description
Transcript of PHP Sob Ataque - Técnicas de Programação Defensiva - FISL 12 - Rafael Jaques
PHP Sob Ataque:Técnicas de Programação
Defensiva
Rafael JaquesRafael JaquesFISL 12 – Porto Alegre – 01/07/11FISL 12 – Porto Alegre – 01/07/11
“Mas, a todos quantos o receberam, deu-lhes o poder de serem feitos filhos de Deus, aos que crêem no seu nome” (João 1.12)
Antes de começar, vou falar
sobre o Tchelinux...
Data dos eventos em 2011
Bagé 28/05
Bento Gonçalves 13/08
Rio Grande 27/08
Caxias do Sul 24/09
Porto Alegre A definir
Santana do Livramento A definir
Alegrete A definir
Pelotas A definir
Essa palestra é uma continuaçãoda realizada no ano passado...
http://www.slideshare.net/rafajaques
Então vamos lá!
PHP Sob Ataque: Técnicas de Programação Defensiva – Rafael Jaques – FISL 12 Porto Alegre
ObjetivoObjetivo
● Ao final dessa palestra, é possível que você saiba alguma dessas coisas:● Técnicas para evitar o caos● Técnicas para proteger o seu valoroso usuário● Uma base sobre engenharia social● Os riscos que estamos correndo na web● O porquê de o caos se instalar tão facilmente
PHP Sob Ataque: Técnicas de Programação Defensiva – Rafael Jaques – FISL 12 Porto Alegre
PautaPauta
I. Conceito
II. Comofas/
III. Engenharia social
IV. Inteligência coletiva x Aplicação
V. Protegendo o usuário
VI. Onde pedir ajuda
VII. Considerações finais
VIII. Dúvidas, críticas, sugestões...
CAPÍTULO I
Conceito
PHP Sob Ataque: Técnicas de Programação Defensiva – Rafael Jaques – FISL 12 Porto Alegre
O que é Programação Defensiva, O que é Programação Defensiva, manolo?manolo?
Conjunto de técnicas de projeto e programação objetivando a estabilidade e a segurança de um software
independentemente do imprevisível.
O objetivo é reduzir ou eliminar a influência exercida pelas Leis de Murphy sobre a sua aplicação.
Essas técnicas começaram a ser desenvolvidas quando sistemas de software passaram a possibilitar efeitos
catastróficos.
Adaptado da Wikipedia (http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_defensiva)
Como saber se estou programando defensivamente?
Se uma pessoa (que não você) consegue entender o código que foi
criado, já é um bom começo.
Se em algum momento você “supor” algo, já é um problema. Nunca
subestime o usuário.
Lembre-se que o seucódigo é inseguro.
● Por natureza, seu código será inseguro● Ao publicá-lo, lembre-se que ele será inseguro● Ao melhorá-lo, lembre-se que ele é inseguro● Depois que testá-lo e certificar-se de que ele é
seguro, ainda assim será inseguro
CAPÍTULO II
Comofas/
Código mais simplesé melhor!
Código complexo é oberço dos bugs!
Evite colocar arquivos na raiz.
Um erro de cálculo e seus dados estarão expostos!
Refatore e reutilize. Um código escrito do zero é muito arriscado!
Revise e audite seu código.Mas nomeie outra pessoa pra isso!
Trabalho em equipe ajuda a reduzir problemas no código final.
Estude sobre Canonicalization.
Omita as tags de fechamento.
Esteja preparado para o pior.
Tenha um plano de contingênciapara o caso de um apocalipse.
Backup!
robots.txt – muito cuidado ao usar!
● Evite usar para proteger informações vitais do sistema
● Prefira o Google Webmaster Tools para desindexar algo
Cuidado com o Havij !
Fatores que potencializam a criação de código inseguro
● Clientes chatos● Falta de vontade● Término do estoque de café● Aproximação do final de tarde● Véspera de feriado / fim de semana● Área comercial vendendo produtos imaginários● Falta de tempo / Prazos Jack Bauer
Fonte: Desciclopédia
CAPÍTULO III
Engenharia Social e aArte de Invadir Pessoas
Não adianta proteger pelo lado de fora se o ataque vem de dentro.
Seres humanos tendem a serbonzinhos com o semelhante.
Engenheiros sociais se aproveitamda ingenuidade das pessoas.
Treine seu usuário! Assim ele nãocompartilha informações.
CAPÍTULO IV
Inteligência Coletiva,Semi-celebridades e
Ameaças Reais
É mais ou menos o que eu faleino ano passado sobre o fatode dizer que a sua aplicação
é 100% segura...
Ataque de Negação de Serviço!
Desafio aceito: derrubar um site durante o Fórum de Segurança Web!
Cases de Ataque ao Usuário
Phishing!
Scam!
CAPÍTULO V
Protegendo o PreciosoAnel do Seu Usuário
Monitore o IP e o Refererdo seu usuário.
IP $_SERVER['REMOTE_ADDR']
Referer$_SERVER['HTTP_REFERER']
Alerte-o sobre os taisPhishing e Scam!
Utilize timeouts
HTTPS na veia!
Mantenha seu usuário seguro emostre que tudo é para o seu bem!
CAPÍTULO VI
OMG! TODOS SÃO INIMIGOS? ONDE VOU ME PROTEGER?
Nem todos são inimigos...Conheça alguns amiguinhos que vão
ajudar no caminho.
Tá... Respira um pouco...
CAPÍTULO VII
Considerações finais
PHP Sob Ataque: Técnicas de Programação Defensiva – Rafael Jaques – FISL 12 Porto Alegre
PHP Sob Ataque: Técnicas de Programação Defensiva – Rafael Jaques – FISL 12 Porto Alegre
ObrigadoObrigado
Rafael Jaques
phpit.com.br
@rafajaques
PHP Sob Ataque: Técnicas de Programação Defensiva – Rafael Jaques – FISL 12 Porto Alegre
Fontes ConsultadasFontes Consultadas
● http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_defensiva● http://www.slideshare.net/gscheibel/programao-defensiva● http://jmmwrite.wordpress.com/tag/programacao-defensiva/● http://www.ibm.com/developerworks/br/library/os-php-5goodhabits/● http://www.wellho.net/mouth/1694_Defensive-coding-techniques-in-PHP-.html● http://en.wikipedia.org/wiki/Defensive_programming● http://www.phpclasses.org/blog/post/65-8-defensive-programming-best-practices-to-prevent-breaking-your-sites.html● http://www.phpclasses.org/blog/post/66-More-defensive-programming-practices-to-survive-Web-site-traffic-peaks.html● http://www.slideshare.net/ergalvao/php-e-segurana-uma-unio-possvel● http://www.slideshare.net/ergalvao/implementando-segurana-em-sua-aplicao-php
PHP Sob Ataque: Técnicas de Programação Defensiva – Rafael Jaques – FISL 12 Porto Alegre
Imagens UtilizadasImagens Utilizadas
●http://www.franklinparishlibrary.org/MPj04276860000%5B1%5D.jpg
●http://3.bp.blogspot.com/-NaQ_9mCf3iY/TZJ0TmC7T3I/AAAAAAAAPBk/4Lw2Nm5OMwE/s1600/justice_league.jpg
●http://i.zdnet.com/blogs/SysCallApache.jpg
●http://www.cubefx.com/smart/4smarts.jpg
●http://i82.photobucket.com/albums/j279/shagg187/2783768632_beeb811d33_b.jpg
●http://www.ghsadvisors.com/defense.jpg
●http://usarmy.vo.llnwd.net/e2/-images/2008/01/17/12167/army.mil-2008-01-17-100832.jpg
●http://0.tqn.com/d/architecture/1/0/b/p/Building7.jpg
●http://lp1.pinkbike.org/p4pb6276309/p4pb6276309.jpg
●http://www.softsia.com/screenshots/Matrix-Mania_w42z.jpg
●http://www.flash-screen.com/free-wallpaper/uploads/201103/imgs/1300345654_1500x1147_atomic-bomb-blast-picture.jpg
●http://i239.photobucket.com/albums/ff58/fefferVT/P1000189.jpg
●http://vidadesuporte.com.br/wp-content/uploads/2011/06/Suporte_223.jpg
●http://api.ning.com/files/TNumCAL*-NlKkCiEYKnhdWLjtJUGLoc5s2gJ9fSLSVKWaLqjm56vsJK5Hof76WuEYlSYa1NxH4OLDA6zW232qpuZ*tkDHa-Z/IMG_1557.JPG
●http://www.keepeanesinformed.com/j0408985%5B1%5D.jpg
●http://blog.garagepunknyc.com/wp-content/uploads/2011/05/the-four-horsemen-of-the-apocalypse2.jpg
●http://uhaweb.hartford.edu/CASS/Marvin.jpg
●http://s47.radikal.ru/i118/1103/59/4e5b69cc8253.jpg
●http://paulsonmanagementgroup.com/media/pmg/hansel%20and%20gretel[rz].jpg
●http://crazy-frankenstein.com/free-wallpapers-files/tropical-wallpapers-files/tropical-wallpapers-beautiful-coast-palm.jpg
●http://crazy-frankenstein.com/free-wallpapers-files/tropical-wallpapers-files/tropical-wallpapers-beautiful-see-and-island.jpg
●http://www.deshow.net/d/file/travel/2009-06/us-landscape-579-2.jpg
●http://xemanhdep.com/gallery/beautiful-landscape/beautiful-landscape17.jpg
●http://images2.wikia.nocookie.net/__cb20100821003145/nonsensopedia/images/6/61/%C5%81%C4%85ka.jpg
PHP Sob Ataque: Técnicas de Programação Defensiva – Rafael Jaques – FISL 12 Porto Alegre
Imagens UtilizadasImagens Utilizadas
●http://3.bp.blogspot.com/_V6QzDsYDdYE/TK6EMYCLE5I/AAAAAAAAO_E/9B5YAhyAU4E/s1600/vader.jpg
●http://www.vecernji.ba/data/slika/39/191271.jpg
●http://aharonideas.files.wordpress.com/2009/05/team-work.jpg
●http://img.vivaolinux.com.br/imagens/artigos/comunidade/backup-plan.jpg
●http://www.portalnerd.com.br/wp-content/uploads/2010/03/godzilla-grande.jpg
●http://games.holyfile.com/upload/screenshot175-5.jpg
●http://4.bp.blogspot.com/-sbtYCenbSyU/Td3J9YXptGI/AAAAAAAAAAg/C29k4W4u8ZQ/s640/cute+babies+hugging-+photoforu.blogspot.com.jpg
●http://images.inmagine.com/img/inspirestock/ispi003/isp0803261.jpg
●http://kimartialartsusa.com/Susan%27s%20best%20kick%20pic%205-9-09.JPG
●http://96.9.22.103/wp-content/uploads/2011/02/iStock_000006411427Medium.jpg
●http://www.bbc.co.uk/kent/content/images/2008/05/11/queue_470x355.jpg
●http://groundmart.net/wp-content/uploads/2010/07/ased.jpg
●http://blogs.shave.com/azor/bigstockphoto_man_shouting_through_megaphone_2233138.jpg
●http://contigo.abril.com.br/blog/passione-novela/files/2010/06/passione-berilo-5501.jpg
●http://www.psdgraphics.com/file/https.jpg
●http://hope.lightgivesheat.org/uploads/blog/.thumbs/thumbs_up_large_a41147.jpg
●http://ianimal.ru/wp-content/uploads/2011/01/skzh-1301.jpg
●http://store.picbg.net/pubpic/A7/30/673a359a020ca730.jpg
●http://farm3.static.flickr.com/2787/4195840875_d73a99a9c5.jpg
●http://phpsec.org/images/phpsc-logo.gif
●http://www.pegadasnaareia.com/wp-content/uploads/2010/01/pope-sunday.jpg
●http://cdn2.knowyourmeme.com/i/000/100/756/original/Challenge%20Accepted.png
●http://www.turkcebilgi.com/uploads/media/resim/largada_stock125_foto_claudio_reis.jpg
●http://ibloggr.com/wp-content/uploads/2011/04/questions-answer-sites-like-yahoo-answer.jpg