imasters intercon dev wordpress - segurança em wordpress

Download iMasters Intercon Dev WordPress - Segurança em WordPress

Post on 11-Jun-2015

512 views

Category:

Technology

2 download

Embed Size (px)

TRANSCRIPT

  • 1. 29/06/2013

2. Sobre - Dev PHP desde 2003 - Segurana da Informao 2007 - Foco em Desenvolvimento Seguro - Membro PHPSP - Motociclista 3. Mas, por que algum me atacaria? Muitos Page Views significa... ... que muita gente visita aqui! (serious?) Selia timo colocar um banner maloto aqui para vender naiki! (Chins da galeria) ... Ou distribuir um malwarezinho! Qualquer maldade que eu quiser espalhar vai alcanar muita gente em um curto espao de tempo. 4. Mas, por que algum me atacaria? Contedos que agradam alguns e desagrada a muitos pode encorajar um troll a fazer trollices. ScriptKiddies Cumprindo ordens, ou simplesmente testando um script que hackeia as coisa tudo! 5. Mas, por que algum me atacaria? Votaes e Concursos Culturais so timos para eles desvirtuarem os resultados! J parou para pensar que algum pode ter raiva de voc!? Ou no vai com a sua cara?! 6. Ativos de interesse para Hackers - Processamento (BotNet) - Throughput de sada (DDoS) - Distribuio de Trojan - Pivoting - Phishing - Envio de Spam - E se tiver algo de valor, levamos tambm! hehe Mas, por que algum me atacaria? 7. WPScan o/ 8. Principais focos de problemas Plugins Temas Infra M administrao Falta de processos Negligncias Desenvolvimento Carncia de senioridade RTFM Teste ( deixe warnings passar)->DEBUG 9. Full Path Disclosure Caracteriza-se por alguma merda falha de programao que ocasione um Warning ou Fatal Error no PHP (mensagem de Debug). Com isso o caminho (path) inteiro (full) do arquivo de script dentro do servidor revelado (disclosure). 10. Full Path Disclosure Ento isso que o SEO faz! 11. Full Path Disclosure D para fazer plugin com uma linha (LOC)... ... E vulnerabilidade tambm! 12. Full Path Disclosure Directory Listing 13. ... Falando em infra! .htaccess do Akismet! ----------------------------------- Order Deny,Allow Deny from all Allow from all #allow access to any image Allow from all 14. Corrigindo o plugin de uma linha Com essa validao, caso o script seja chamado direto pelo browser. A funo add_action no ter sido definida e consequentemente o script ir parar, no exibindo o erro/warning com o path do arquivo no servidor. R! 15. Caso recente de vulnerabilidades Caso recente de um plugin que est ganhando evidncia Referncia: http://www.osvdb.org/show/osvdb/93582 http://www.waraxe.us/advisory-104.html http://wordpress.org/extend/plugins/spider-event-calendar/ 14 Vulns 16. XSS Cross-site Scripting Ocorre quando um atacante consegue por meio de uma falha, inserir cdigo malicioso para ser executado no browser do usurio https://www.owasp.org/index.php/Cross- site_Scripting_(XSS) 17. Nenhuma validao, dereto para o BD XSS 18. 19. Ttulo salvo como: XSS r 20. XSS Crossite Scripting DOM Based XSS Stored XSS Reflected XSS 21. XSS Crossite Scripting DOM Based XSS (https://www.owasp.org/index.php/Testing_for_DOM-based_Cross_site_scripting_(OWASP-DV-003)) Stored XSS (https://www.owasp.org/index.php/Testing_for_Stored_Cross_site_scripting_(OWASP-DV-002)) Reflected XSS (https://www.owasp.org/index.php/Testing_for_Reflected_Cross_site_scripting_(OWASP-DV-001)) 22. XSS Crossite Scripting Blz, ento d para ficar fazendo um monte de alert! Fantastic! E eu j sei que o cookie deve ser setado com as flags HTTPOnly e SecureOnly. 23. Eu vou ficar te trollando via JavaScript e vc no vai nem saber! hehehe http://beefproject.com/ 24. SQL Injection Armazenamento sem validao eficiente (somente title era input text) Parmetro de consulta sem escape/validao! 25. SQL Injection https://www.owasp.org/index.php/Testing_for_SQL_Injection_(OWASP-DV-005) 26. SQL Injection http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks Preparated Statements 27. Dicas rpidas - Primeira coisa que um invasor vai tentar: Editar um tema e/ou plugin e garantir a sua volta define(DISALLOW_FILE_EDIT, true); // wp-config.php - Depois tentaria instalar um plugin/tema malicioso para ampliar seu privilgio. Exemplo: ele invadiu por brute-force, ele pode instalar um plugin que contenha SQL Injection e fazer dump da base. Recomendao: Deixar o diretrio /wp-content/(plugins|themes) como readonly. - Desabilitar funes do PHP perigosas e que de fato quase no so utilizadas. disable_functions = system, exec, shell_exec, passthru, popen, pcntl_exec, show_source - Remover todos os arquivos readme.txt de temas e plugins e garantir que no h Directory Listing (slide 12) - Instalar um plugin anti brute-force que tenha poltica de senhas. Sugesto: User Security Tools - Forar uso de SSL no login e admin do WordPRess: http://codex.wordpress.org/Administration_Over_SSL 28. Dicas rpidas - Valide dados antes de serem utilizados/processados O WordPress possui uma srie de funes prontas! ia! http://codex.wordpress.org/Data_Validation - Se voc ou a sua empresa desenvolve seguro, vocs tem um diferencial de mercado! Referncia de segurana em apps web: www.owasp.org - Expert Mode: Utilize ferramentas para monitorao de possveis ataques. Ex.: OSSEC-HIDS 29. Dicas rpidas Bloquear User Enumeration no .htaccess RewriteEngine on RewriteCond %{REQUEST_URI} ^$ RewriteCond %{QUERY_STRING} ^/?author=([0-9]*) RewriteRule ^(.*)$ http://site.com/ [L,R=301] Proteger wp-admin com senha (.htaccess diretrio wp-admin): AuthType Basic AuthName Area Restrita AuthUserFile /path/arquivo/htpasswd #fora do DocumentRoot Require valid-user Como criar arquivo de senha: $htpasswd c htpasswdfile username Obs.: Basic pois o admin j est com SSL Ref: http://www.linux.org/article/view/-htaccess-password-protection-securing-a-folder-in-a-website 30. Vocs Vi, na boa J sabia Conte-me mais como invade as coisa tudo' Segunda o chicote vai estralar no cliente Eu falei q tinha o plugin vulnervel... Mas eu tenho Vou pesquisar essas paradas a Estou todo atualizado 31. Obrigado Erick Belluci Tedeschi erick@oerick.com @ericktedeschi http://slideshare.com/erickt86