SlideShare a Scribd company logo
1 of 32
29/06/2013
Sobre
- Dev PHP desde 2003
- Segurança da Informação 2007
- Foco em Desenvolvimento Seguro
- Membro PHPSP
- Motociclista
Mas, por que alguém me ‘atacaria’?
Muitos Page Views significa...
... que muita “gente” visita aqui!
(serious?)
Selia ótimo colocar um banner
maloto aqui para vender naiki!
(Chinês da galeria)
... Ou distribuir um malwarezinho!
Qualquer maldade que eu quiser
espalhar vai alcançar muita gente em
um curto espaço de tempo.
Mas, por que alguém me ‘atacaria’?
“Conteúdos 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’!”
Mas, por que alguém me ‘atacaria’?
Votações e Concursos Culturais são
ótimos para eles “desvirtuarem” os
resultados!
Já parou para pensar que alguém
pode ter raiva de você!? Ou não vai
com a sua cara?!
Ativos de interesse para Hackers
- Processamento (BotNet)
- Throughput de saída (DDoS)
- Distribuição de Trojan
- Pivoting
- Phishing
- Envio de Spam
- E se tiver algo de “valor”, levamos também!
hehe
Mas, por que alguém me ‘atacaria’?
WPScan o/
Principais focos de problemas
Plugins Temas
Infra
Má administração
Falta de processos
Negligências
Desenvolvimento
Carência de “senioridade”
RTFM
Teste (ñ deixe warnings
passar)->DEBUG
Full Path Disclosure
• Caracteriza-se por alguma merda falha de
programação 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).
Full Path Disclosure
Então é isso que
o SEO faz!
Full Path Disclosure
Dá para fazer plugin com uma linha (LOC)...
... E vulnerabilidade também!
Full Path Disclosure
Directory Listing
... Falando em infra!
.htaccess do Akismet!
-----------------------------------
Order Deny,Allow
Deny from all
<FilesMatch "^akismet.(css|js)$">
Allow from all
</FilesMatch>
#allow access to any image
<FilesMatch "^(.+).(png|gif)$">
Allow from all
</FilesMatch>
Corrigindo o plugin de uma linha
<?php
if (!function_exists(‘add_action’)) {
die(‘<!-- mahhh oeeee -->’);
}
/* comments */
add_filter( ‘xmlrpc_enabled’, ‘__return_false’);
//?>
Com essa validação, caso o script seja chamado direto pelo browser. A função
“add_action” não terá sido definida e consequentemente o script irá parar, não
exibindo o erro/warning com o path do arquivo no servidor. Rá!
Caso recente de vulnerabilidades
Caso recente de um plugin que está ganhando evidência
Referência:
http://www.osvdb.org/show/osvdb/93582
http://www.waraxe.us/advisory-104.html
http://wordpress.org/extend/plugins/spider-event-calendar/
14
Vulns
XSS – Cross-site Scripting
• Ocorre quando um atacante consegue por
meio de uma falha, inserir código malicioso
para ser executado no browser do usuário
• https://www.owasp.org/index.php/Cross-
site_Scripting_(XSS)
Nenhuma validação, “dereto” para o BD
XSS
<a title="Manage Events" class="row-title"
href="admin.php?page=SpiderCalendar&task=show_manage_event
&calendar_id=<?php echo $rows[$i]->id; ?>"><?php echo $rows[$i]-
>title; ?></a>
Título salvo como:
</td><td></td><td></td></table><h1><marquee>XSS
rá</marquee></h1>
XSS – Crossite Scripting
DOM Based XSS
Stored XSS
Reflected XSS
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))
XSS – Crossite Scripting
Blz, então 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.
Eu vou ficar te trollando via
JavaScript e vc não vai nem saber!
hehehe
http://beefproject.com/
SQL Injection
Armazenamento sem validação eficiente (somente title era input text)
Parâmetro de consulta sem escape/validação!
SQL Injection
https://www.owasp.org/index.php/Testing_for_SQL_Injection_(OWASP-DV-005)
SQL Injection
http://codex.wordpress.org/Class_Reference/wpdb#Protect_Queries_Against_SQL_Injection_Attacks
Preparated Statements
Dicas rápidas
- 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 privilégio.
Exemplo: ele invadiu por brute-force, ele pode instalar um plugin que contenha SQL Injection e
fazer dump da base.
Recomendação: Deixar o diretório /wp-content/(plugins|themes) como readonly.
- Desabilitar funções do PHP ‘perigosas’ e que de fato quase não são 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 não há “Directory
Listing (slide 12)
- Instalar um plugin “anti brute-force” que tenha política de senhas.
Sugestão: User Security Tools
- Forçar uso de SSL no login e admin do WordPRess:
http://codex.wordpress.org/Administration_Over_SSL
Dicas rápidas
- Valide dados antes de serem utilizados/processados
O WordPress possui uma série de funções prontas! Óia!
http://codex.wordpress.org/Data_Validation
- Se você ou a sua empresa “desenvolve seguro”, vocês tem um diferencial de mercado!
Referência de segurança em apps web: www.owasp.org
- Expert Mode: Utilize ferramentas para monitoração de possíveis ataques. Ex.: OSSEC-HIDS
Dicas rápidas
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 diretório 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
Vocês
Véi, 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
vulnerável...
Mas eu tenho
Vou
pesquisar
essas
paradas aí
Estou todo
atualizado
Obrigado
• Erick Belluci Tedeschi
• erick@oerick.com
• @ericktedeschi
• http://slideshare.com/erickt86

More Related Content

What's hot

WordCamp Porto Alegre - O WordPress é seguro. Inseguro é você.
WordCamp Porto Alegre - O WordPress é seguro. Inseguro é você.WordCamp Porto Alegre - O WordPress é seguro. Inseguro é você.
WordCamp Porto Alegre - O WordPress é seguro. Inseguro é você.Leandrinho Vieira
 
Blindando o site Joomla!
Blindando o site Joomla!Blindando o site Joomla!
Blindando o site Joomla!Júlio Coutinho
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)Zeno Rocha
 
Como Limpar Seu Site WordPress
Como Limpar Seu Site WordPressComo Limpar Seu Site WordPress
Como Limpar Seu Site WordPressSucuri
 
Desenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo StangherlinDesenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo StangherlinTchelinux
 
Segurança da informação para WordPress e WooCommerce
Segurança da informação para WordPress e WooCommerceSegurança da informação para WordPress e WooCommerce
Segurança da informação para WordPress e WooCommerceThauã Cícero Santos Silva
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFRafael Ponte
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenterPaulino Michelazzo
 
Invasão e correção em sites
Invasão e correção em sitesInvasão e correção em sites
Invasão e correção em sitesDaskonet Dasko
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensPaulino Michelazzo
 
Teste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebTeste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebMarcio Roberto de Souza Godoi
 
Ricardo bernardi word press multisite - crie e gerencie sua rede de blogs
Ricardo bernardi   word press multisite - crie e gerencie sua rede de blogsRicardo bernardi   word press multisite - crie e gerencie sua rede de blogs
Ricardo bernardi word press multisite - crie e gerencie sua rede de blogswordcamppoa
 
Seminário Drupal São Paulo
Seminário Drupal São PauloSeminário Drupal São Paulo
Seminário Drupal São Paulopedrofaria
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosAlex Camargo
 
Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2William Costa
 
SEO para WordPress - Palestra WordCamp 2017
SEO para WordPress - Palestra WordCamp 2017SEO para WordPress - Palestra WordCamp 2017
SEO para WordPress - Palestra WordCamp 2017Denis Andrade
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Bruno Rocha
 
400 Dicas Xp.Erivanildo.Thegenius.Us
400 Dicas Xp.Erivanildo.Thegenius.Us400 Dicas Xp.Erivanildo.Thegenius.Us
400 Dicas Xp.Erivanildo.Thegenius.Ussifja
 

What's hot (19)

WordCamp Porto Alegre - O WordPress é seguro. Inseguro é você.
WordCamp Porto Alegre - O WordPress é seguro. Inseguro é você.WordCamp Porto Alegre - O WordPress é seguro. Inseguro é você.
WordCamp Porto Alegre - O WordPress é seguro. Inseguro é você.
 
Blindando o site Joomla!
Blindando o site Joomla!Blindando o site Joomla!
Blindando o site Joomla!
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
Como Limpar Seu Site WordPress
Como Limpar Seu Site WordPressComo Limpar Seu Site WordPress
Como Limpar Seu Site WordPress
 
Desenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo StangherlinDesenvolvimento web seguro cookies - Rodolfo Stangherlin
Desenvolvimento web seguro cookies - Rodolfo Stangherlin
 
Segurança da informação para WordPress e WooCommerce
Segurança da informação para WordPress e WooCommerceSegurança da informação para WordPress e WooCommerce
Segurança da informação para WordPress e WooCommerce
 
Os 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSFOs 10 maus hábitos dos desenvolvedores JSF
Os 10 maus hábitos dos desenvolvedores JSF
 
Joomla! do desktop ao datacenter
Joomla! do desktop ao datacenterJoomla! do desktop ao datacenter
Joomla! do desktop ao datacenter
 
Invasão e correção em sites
Invasão e correção em sitesInvasão e correção em sites
Invasão e correção em sites
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
Teste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações WebTeste de Segurança: Vulnerabilidade de Aplicações Web
Teste de Segurança: Vulnerabilidade de Aplicações Web
 
Como fazer boas libs
Como fazer boas libs Como fazer boas libs
Como fazer boas libs
 
Ricardo bernardi word press multisite - crie e gerencie sua rede de blogs
Ricardo bernardi   word press multisite - crie e gerencie sua rede de blogsRicardo bernardi   word press multisite - crie e gerencie sua rede de blogs
Ricardo bernardi word press multisite - crie e gerencie sua rede de blogs
 
Seminário Drupal São Paulo
Seminário Drupal São PauloSeminário Drupal São Paulo
Seminário Drupal São Paulo
 
Segurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultadosSegurança em aplicações web: pequenas ideias, grandes resultados
Segurança em aplicações web: pequenas ideias, grandes resultados
 
Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2Hacking em consoles webs de security appliances, h2hc-rev-2
Hacking em consoles webs de security appliances, h2hc-rev-2
 
SEO para WordPress - Palestra WordCamp 2017
SEO para WordPress - Palestra WordCamp 2017SEO para WordPress - Palestra WordCamp 2017
SEO para WordPress - Palestra WordCamp 2017
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011
 
400 Dicas Xp.Erivanildo.Thegenius.Us
400 Dicas Xp.Erivanildo.Thegenius.Us400 Dicas Xp.Erivanildo.Thegenius.Us
400 Dicas Xp.Erivanildo.Thegenius.Us
 

Similar to Erick Belluci Tedeschi - Segurança em WordPress

Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...As Zone
 
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Thiago Dieb
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPFlavio Souza
 
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBFIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBErick Belluci Tedeschi
 
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Thiago Dieb
 
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Performance - Acelere seu site! Na web tempo é mais que dinheiro.Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Performance - Acelere seu site! Na web tempo é mais que dinheiro.Gustavo Corrêa Alves
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações WebCassio Ramos
 
Construindo sites e sistemas com WordPress
Construindo sites e sistemas com WordPressConstruindo sites e sistemas com WordPress
Construindo sites e sistemas com WordPressLeo Baiano
 
Vale Security Conference - 2011 - 6 - Thiago Bordini
Vale Security Conference - 2011 - 6 - Thiago BordiniVale Security Conference - 2011 - 6 - Thiago Bordini
Vale Security Conference - 2011 - 6 - Thiago BordiniVale Security Conference
 
Otimização Front-end para WordPress
Otimização Front-end para WordPressOtimização Front-end para WordPress
Otimização Front-end para WordPressGuga Alves
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisrafaelberlanda
 
Administração de portais
Administração de portaisAdministração de portais
Administração de portaisFelipe Perin
 
don't repeat yourself front-ender
don't repeat yourself front-enderdon't repeat yourself front-ender
don't repeat yourself front-endertdc-globalcode
 
Front-end ENGINEER
Front-end ENGINEERFront-end ENGINEER
Front-end ENGINEERIvan Banov
 
Seminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL InjectionSeminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL InjectionDavi Rodrigues
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php segurosDouglas V. Pasqua
 
Offline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesOffline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesCaelum
 

Similar to Erick Belluci Tedeschi - Segurança em WordPress (20)

Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
Fisl 16 - Nem tudo o que reluz é ouro. hackeando as principais dicas de dese...
 
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
Fisl 16 – Nem tudo o que reluz é ouro. hackeando as principais dicas de desen...
 
Desenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHPDesenvolvendo sistemas seguros com PHP
Desenvolvendo sistemas seguros com PHP
 
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEBFIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
FIEB - WebVibe - Desenvolvimento Seguro de Aplicações WEB
 
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
Palestra - PHPESTE 2015 - Hacker do bem, quebrando as principais dicas de des...
 
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Performance - Acelere seu site! Na web tempo é mais que dinheiro.Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
 
Segurança em Aplicações Web
Segurança em Aplicações WebSegurança em Aplicações Web
Segurança em Aplicações Web
 
Construindo sites e sistemas com WordPress
Construindo sites e sistemas com WordPressConstruindo sites e sistemas com WordPress
Construindo sites e sistemas com WordPress
 
Vale Security Conference - 2011 - 6 - Thiago Bordini
Vale Security Conference - 2011 - 6 - Thiago BordiniVale Security Conference - 2011 - 6 - Thiago Bordini
Vale Security Conference - 2011 - 6 - Thiago Bordini
 
Otimização Front-end para WordPress
Otimização Front-end para WordPressOtimização Front-end para WordPress
Otimização Front-end para WordPress
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portais
 
Administração de portais
Administração de portaisAdministração de portais
Administração de portais
 
Minicurso Web. Front-end e HTML5 (parte 2)
Minicurso Web. Front-end e HTML5 (parte 2)Minicurso Web. Front-end e HTML5 (parte 2)
Minicurso Web. Front-end e HTML5 (parte 2)
 
don't repeat yourself front-ender
don't repeat yourself front-enderdon't repeat yourself front-ender
don't repeat yourself front-ender
 
Front-end ENGINEER
Front-end ENGINEERFront-end ENGINEER
Front-end ENGINEER
 
Seminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL InjectionSeminário PHP Injection/ SQL Injection
Seminário PHP Injection/ SQL Injection
 
Escrevendo códigos php seguros
Escrevendo códigos php segurosEscrevendo códigos php seguros
Escrevendo códigos php seguros
 
Offline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio LopesOffline Web com Service Workers - Sérgio Lopes
Offline Web com Service Workers - Sérgio Lopes
 
Segurança Web com PHP5
Segurança Web com PHP5Segurança Web com PHP5
Segurança Web com PHP5
 
jQuery
jQueryjQuery
jQuery
 

More from iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesiMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsiMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudiMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza LeiteiMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesiMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeiMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle MonteiroiMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujoriMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaiMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiiMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisiMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoiMasters
 

More from iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

Erick Belluci Tedeschi - Segurança em WordPress

  • 2. Sobre - Dev PHP desde 2003 - Segurança da Informação 2007 - Foco em Desenvolvimento Seguro - Membro PHPSP - Motociclista
  • 3. Mas, por que alguém me ‘atacaria’? Muitos Page Views significa... ... que muita “gente” visita aqui! (serious?) Selia ótimo colocar um banner maloto aqui para vender naiki! (Chinês da galeria) ... Ou distribuir um malwarezinho! Qualquer maldade que eu quiser espalhar vai alcançar muita gente em um curto espaço de tempo.
  • 4. Mas, por que alguém me ‘atacaria’? “Conteúdos 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 alguém me ‘atacaria’? Votações e Concursos Culturais são ótimos para eles “desvirtuarem” os resultados! Já parou para pensar que alguém pode ter raiva de você!? Ou não vai com a sua cara?!
  • 6. Ativos de interesse para Hackers - Processamento (BotNet) - Throughput de saída (DDoS) - Distribuição de Trojan - Pivoting - Phishing - Envio de Spam - E se tiver algo de “valor”, levamos também! hehe Mas, por que alguém me ‘atacaria’?
  • 8. Principais focos de problemas Plugins Temas Infra Má administração Falta de processos Negligências Desenvolvimento Carência de “senioridade” RTFM Teste (ñ deixe warnings passar)->DEBUG
  • 9.
  • 10. Full Path Disclosure • Caracteriza-se por alguma merda falha de programação 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).
  • 11. Full Path Disclosure Então é isso que o SEO faz!
  • 12. Full Path Disclosure Dá para fazer plugin com uma linha (LOC)... ... E vulnerabilidade também!
  • 14. ... Falando em infra! .htaccess do Akismet! ----------------------------------- Order Deny,Allow Deny from all <FilesMatch "^akismet.(css|js)$"> Allow from all </FilesMatch> #allow access to any image <FilesMatch "^(.+).(png|gif)$"> Allow from all </FilesMatch>
  • 15. Corrigindo o plugin de uma linha <?php if (!function_exists(‘add_action’)) { die(‘<!-- mahhh oeeee -->’); } /* comments */ add_filter( ‘xmlrpc_enabled’, ‘__return_false’); //?> Com essa validação, caso o script seja chamado direto pelo browser. A função “add_action” não terá sido definida e consequentemente o script irá parar, não exibindo o erro/warning com o path do arquivo no servidor. Rá!
  • 16. Caso recente de vulnerabilidades Caso recente de um plugin que está ganhando evidência Referência: http://www.osvdb.org/show/osvdb/93582 http://www.waraxe.us/advisory-104.html http://wordpress.org/extend/plugins/spider-event-calendar/ 14 Vulns
  • 17. XSS – Cross-site Scripting • Ocorre quando um atacante consegue por meio de uma falha, inserir código malicioso para ser executado no browser do usuário • https://www.owasp.org/index.php/Cross- site_Scripting_(XSS)
  • 19. <a title="Manage Events" class="row-title" href="admin.php?page=SpiderCalendar&task=show_manage_event &calendar_id=<?php echo $rows[$i]->id; ?>"><?php echo $rows[$i]- >title; ?></a>
  • 21. XSS – Crossite Scripting DOM Based XSS Stored XSS Reflected XSS
  • 22. 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))
  • 23. XSS – Crossite Scripting Blz, então 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.
  • 24. Eu vou ficar te trollando via JavaScript e vc não vai nem saber! hehehe http://beefproject.com/
  • 25. SQL Injection Armazenamento sem validação eficiente (somente title era input text) Parâmetro de consulta sem escape/validação!
  • 28. Dicas rápidas - 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 privilégio. Exemplo: ele invadiu por brute-force, ele pode instalar um plugin que contenha SQL Injection e fazer dump da base. Recomendação: Deixar o diretório /wp-content/(plugins|themes) como readonly. - Desabilitar funções do PHP ‘perigosas’ e que de fato quase não são 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 não há “Directory Listing (slide 12) - Instalar um plugin “anti brute-force” que tenha política de senhas. Sugestão: User Security Tools - Forçar uso de SSL no login e admin do WordPRess: http://codex.wordpress.org/Administration_Over_SSL
  • 29. Dicas rápidas - Valide dados antes de serem utilizados/processados O WordPress possui uma série de funções prontas! Óia! http://codex.wordpress.org/Data_Validation - Se você ou a sua empresa “desenvolve seguro”, vocês tem um diferencial de mercado! Referência de segurança em apps web: www.owasp.org - Expert Mode: Utilize ferramentas para monitoração de possíveis ataques. Ex.: OSSEC-HIDS
  • 30. Dicas rápidas 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 diretório 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
  • 31. Vocês Véi, 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 vulnerável... Mas eu tenho Vou pesquisar essas paradas aí Estou todo atualizado
  • 32. Obrigado • Erick Belluci Tedeschi • erick@oerick.com • @ericktedeschi • http://slideshare.com/erickt86