A Apiki criou uma iniciativa chamada #WordPressSeguro. O pontapé inicial foi dado no Developer Week de Vitória/ES, no dia 04 de março de 2015, através da palestra “O WordPress é Seguro. Inseguro é você”. Nossa ideia é compartilhar e divulgar práticas para manter uma instalação do WordPress segura.
Será muito importante para essa iniciativa entrevistar e conhecer melhor profissionais competentes e renomados de segurança e sua relação com o WordPress.
Erick Belluci Tedeschi, Secure Development Engineer no Walmart eCommerce
Erick Belluci Tedeschi, nosso entrevistado de hoje, é Secure Development Engineer no Walmart eCommerce. Erick, muito obrigado pelo seu tempo e disponibilidade em compartilhar conhecimento conosco e contribuir para uma maior segurança para WordPress.
1. Qual seu histórico como profissional? E como você entrou nessa área de segurança?
Eu comecei a desenvolver em PHP 2003 como hobbie. Depois de um tempo comecei a trabalhar em uma indústria metalúrgica na área do CPD [risos “Minha nossa”], e lá desenvolvia um sistema de gestão empresarial Web (o que seria um mini “ERP”). Por volta de 2005/6 conheci a comunidade de PHP de SP e os figuras (Duodraco, Pascutti, Blanco, Dohms, Ivo, Ivan…), e isso ajudou muito no meu crescimento como dev. Depois de um tempo desenvolvendo e sofrendo alguns ataques, aprendendo a me defender, comecei a me interessar mais por segurança de aplicações. Nesse meio tempo, um amigo meu trabalhava em um grande banco e havia uma vaga na área de Segurança da Informação, foi quando surgiu a oportunidade de entrar de uma vez para a área. Aceitei o desafio e daí para frente comecei a focar totalmente em Application Security, porém continuei sempre andando junto e participando da comunidade do PHPSP.
2. O WordPress é seguro. Concorda?
Não, nada é 100% seguro, e isso é uma “lei” da segurança. Mas concordo que a culpa não é exclusiva do core. Quando alguém “formata” um computador com Windows, qual é o primeiro software a ser instalado antes de entrar na Internet? Seria Anti-Virus? [risos] E mais, qualquer computador “de prateleira” que você comprar virá com um instalado.
Qual é o primeiro plugin que as pessoas instalam em uma instância nova de WordPress? All In One SEO Pack? NextGen Gallery? Contact Form 7? Garanto que não é algum de segurança. Ou não precisa ser necessariamente um plugin, mas certamente pouco relacionado a segurança do WP será feito. No geral, para uma instância de WordPress ser exposta para a Internet de forma segura é preciso uma série de configurações, tanto no WP quanto no SO, WebServer e PHP.
3. Por que alguns profissionais de segurança o julgam como inseguro?
Uma grande parcela de instalações do WordPress estão inseguras e os motivos são os mais variados. Exemplos:
– O WordPress não te obriga a definir uma senha forte. Mas isso não quer dizer que você deve utilizar uma senha 123456 no usuário admin. Aliás, o admin não deve ser chamado de admin!
– WordPress desatualizado com milhares de plugins/temas inseguros com vulnerabilidades conhecidas (http://wpvulndb.com). Quanto mais antigo um software, mais falhas conhecidas são acumuladas.
– Pessoas que começam a customizar o WordPress e versionam arquivos como functions.php.old ou .bkp (ex). Isso por conta de PHP ser “fácil” de sair programando e também estar relacionado a não seguir padrões, boas práticas e não ler “the fuckin manual” até o final.
– Por ser largamente utilizado o WordPress possui uma superfície de ataque “astronômica”, e assim se torna um alvo desejado por hackers. Então há muita gente analisando o core, plugins e temas visando encontrar um 0day.
4. Você faz uso de alguma ferramenta para análise e proteção de sites, como por exemplo o WP Scan?
Cada PenTester possui uma suite de ferramentas para ajudar na análise de algum sistema.
Das ferramentas que uso posso destacar: WPScan, Metasploit, Arachni, curl+xargs+*, bash, php… não tem uma regra. O que você tiver à mão e que você conheça bem é o suficiente. Ferramentas, como dito anteriormente, são apenas para auxílio e automação. O que importa mesmo é saber como as coisas funcionam.
5. Quais os tipos de ataques mais comuns em relação ao WordPress e como se proteger?
Essa pergunta é interessante pois muitas pessoas confundem ataque com vulnerabilidade. Podemos dizer que vulnerabilidade é um “meio” pelo qual um ataque vai ser concretizado.
Vou citar dois casos de incidentes que ajudei a resolver:
- Ataque: Defacement / Pixação
- Impacto: Perda de Credibilidade da Marca. Atacante publicou uma notícia falsa em um blog com milhões de page views (ou seja, se espalhou rápido)
- O que possibilitou o ataque foi o Admin ficar exposto publicamente, user-enumeration e senha fraca.
- Como proteger: Exemplo: limitar o acesso ao Admin, bloquear acesso à chamada blog.com/?author=X e impor uma política de senha.
- Motivação: invasão para hospedagem de phishing
- Impacto: Perda de credibilidade da marca, URL na black-list do Google Safe Browsing, o que ocasiona perda significante de page-views e diminuição de receita proveniente de publicidade.
- Uma vulnerabilidade de SQL Injection permitiu um atacante criar um usuário na tabela “wp_users”, com o admin exposto publicamente, o atacante usou a funcionalidade de edição de plugins e adicionou um backdoor em PHP em um dos arquivos do tema que permitiu o controle remoto do atacante.
- Como proteger: Ex.: limitar o acesso ao admin, revisar temas e plugins para se certificar de que não há SQL Injection (e outras vulnerabilidades claro!), aplicar hardening (que irá bloquear a funcionalidade de edição de plugins, deixará os arquivos read-only e irá desabilitar funções maliciosas do PHP).
6. Você sugere um processo de segurança para o lançamento e manutenção de sites?
Sugiro. Algumas das seguintes ações talvez sejam aplicáveis apenas em ocasiões onde se tenha um controle maior sobre os servers como, por exemplo, em uma Cloud.
Não seria exatamente um processo e sim um “checklist”:
- Hardening do S.O
- Hardening do WebServer + PHP
- Desativar banner do webserver e PHP
- Desativar funções “maliciosas” do PHP (verificar se não estão em uso por algum tema ou plugin, e se tiver, mitigar possíveis ameaças)
- system, exec, passthru, shell_exec, popen, show_source, highlight_file
- Deixar log extended habilitado
- Hardening do WP
- Mudar permissão dos arquivos para 440 (levando em consideração o user e group do daemon como apache:apache por exemplo), e somente o wp-content com 640 para arquivos e 750 para diretórios). Um script com find -t {d ou f) com -exec resolve!)
- Desativar xml-rpc (se nao estiver em uso)
- Desativar edição de plugins e temas via admin
- Code review de todos os plugins e temas em uso (inclusive os que não foram feitos por você)
- Caso o blog seja administrado por um grupo seleto de pessoas, vale a pena limitar o acesso ao wp-admin/* via VPN ou no mínimo um .htaccess solicitando um digest
- Habilitar https (é possível conseguir certificados de graça)
- Fazer uma auditoria da instalação do certificado com (ssllabs.com/ssltest/analyze.html)
- Instalar o plugin sucuri-scanner
- Habilitar 2Factor authentication
Obs.: Isso de uma forma meio genérica. Lógico que cada caso é um caso e em determinada situação algo pode não se aplicar.
7. É importante dizer não ao Google, por exemplo fazendo uso da diretiva disallow no arquivo robots.txt?
Só seria importante caso houvessem alguns slugs/endpoints protegidos. Mas na maioria dos casos não aumenta significantemente o nível de segurança do WP. Afinal, quem conhece o WP, só de dar uma navegada básica sabe que o site é feito em WordPress. E dá para descobrir facilmente os principais pontos de ataque.
8. Como está o mercado de segurança para novos profissionais?
O Mercado está aquecido com tantas notícias de vazamento de informações, quebra de sigilo, pessoas tendo sua identidade digital roubadas, pessoas e empresas sendo prejudicadas por falta de cuidado com informações, etc…
O papel de um Analista de Segurança de Aplicações hoje é essencial para empresas que possuem presença digital. Ele irá trabalhar junto com equipes de desenvolvimento para auxiliá-los a entregar aplicações seguras que estão alinhadas com os pilares da Segurança da Informação (Confidencialidade, Integridade, Disponibilidade, Autenticidade e Não-Repúdio).
9. Qual a dica que você daria para quem está interessado em ingressar na área e assim dar os primeiros passos?
Assim como qualquer área, conhecimento nunca é demais. A cada dia aprendemos algo novo, seja uma vulnerabilidade nova descoberta, algum ataque novo, tecnologia, etc.
Falando especificamente de Segurança de Aplicações, é importante ter pleno conhecimento sobre a stack inteira de algo feito para a “Interwebs”, conhecer protocolos (em especial http) e ter uma boa noção de infra-estrutura.
10. Quais profissionais, além de você, e/ou empresas seguir para ficar por dentro?
A Conviso é especializada em segurança de Aplicações e a mais indicada para ajudar empresas a se proteger.
Pessoas: Ulisses Castro @uss.thebug, Roberto Soares @espreto, Wagner Elias @welias
11. Disponibilizamos um Guia Prático de implementações de segurança para WordPress atualizado com frequência com novas sugestões. Qual a sua para manter uma instalação de WordPress segura?
Crie um “processo de segurança” para manter o hardening, os controles de segurança e os updates sempre em dia.
12. Se sentir à vontade e julgar relevante, por favor, informe seus dados de contato.
Twitter: @ericktedeschi
LinkedIn: br.linkedin.com/in/ericktedeschi
As respostas do entrevistado Erick Belluti Tedeschi não refletem a opinião da empresa onde trabalha e sim sua visão pessoal sobre o assunto.