Este documento resume um webinar sobre PHP e como evitar gambiarras na programação. O webinar discute o que são gambiarras, tipos comuns de gambiarras e como evitá-las. Também explica como um firewall de aplicação da web (WAF) pode ajudar a proteger sites contra ataques e melhorar a segurança.
6. WEBINAR
Um pouco sobre mim…
• Jean Rafael Tardem Delefrati
• 1995 – Programação
• 2001 – Webmaster
• 2003 – PHP
• 2015 - Sucuri
7. • Inicialmente chamado de “Personal Home Page”, atualmente ”PHP:
Hypertext Preprocessor”
• Gratuito e Open Source
• Comunidade ativa
• Desempenho (PHP 7)
• Fácil aprendizagem (similar a C/C++ e Perl)
• Multi-plataforma (portabilidade)
• Manipulação de Dados e Arquivos
• “Maleável” - tipagem dinâmica / quase tudo é objeto ou array
PHP
8. 0%
10%
20%
30%
40%
50%
60%
70%
80%
90%
100%
Nov-2016 Dec-2016 Jan-2017 Feb-2017 Mar-2017 Apr-2017 May-2017 Jun-2017 Jul-2017 Aug-2017 Sep-2017 Oct-2017 Nov-2017
Historical Trends in the Usage of Server-Side
Programming Languages for Websites
PHP ASP.NET Java static files ColdFusion Ruby JavaScript Perl Python Erlang
Fonte: https://w3techs.com/technologies/history_overview/programming_language
9.
10. • Improviso
• Feito sem planejamento
• Método alternativo
• Ajuste técnico
• Engenharia alternativa
• Lógica diferenciada
• […] solução inteligente por tempo
indeterminado para um problema
aparentemente sem solução ou não previsto
[fonte: http://desciclopedia.org/wiki/Gambiarra]
O que são gambiarras?
11. • DADA - Deixa Assim, Depois Arrumo
(lembrando: tudo que é temporário, pode
se tornar permanente)
• POG – Programação Orientada à
Gambiarra
• XGH – eXtreme Go Horse Process
O que são gambiarras?
12. • Código
• Configuração
• Modelo de programação
• Estrutura
• Etc.
Tipos e Motivos
• Falta de experiência
• Falhas de lógica
• Falta de metodologia
• Preguiça
• Pressa
• Código legado
• Código Frankenstein
25. • Usar a cabeça!
• Refatorar/reescrever!
• KISS principle – keep it simple, stupid!
• Usar padrões! PSR-1, PSR-2, PSR-3, PSR-4
• Usar um CDN (com cache)! Para evitar acesso direto ao seu código
• Ataques são inevitáveis, tenha backups e monitoramento!
• Usar um WAF!
Como evitar gambiarras?
27. • Age como um serviço intermediário entre o aplicativo do seu site e o
visitante que está acessando o seu site
• Intercepta e remove pedidos maliciosos antes que possam causar danos
• Evita payloads conhecidos ou o envio de inputs maliciosos por usuários
• Ajuda a proteger seu trabalho, seu servidor, seu ambiente e seus clientes
• A maioria dos ataques acontece porque os hackers estão vasculhando
grandes volumes de websites com vulnerabilidades conhecidas
Como um WAF pode te ajudar
28. • Se você não tem controle total sobre o código (usa plug-ins ou
códigos de outras fontes)
• Utiliza frameworks ou CMS conhecidos
• Prefere fazer tudo ”in-house”
• Não pode ou não quer atualizar a versão do servidor ou da linguagem
utilizada
• Usa código legado ou não conhece exatamente todo o código
• Se você tem dados sensíveis seus ou de usuários
Especialmente eficaz
29. • Não se destina a substituir os controles existentes,
mas a complementá-los
• Não vai te ajudar a escrever códigos mais simples
• Não vai te ajudar a escrever menos gambiarras
Como um WAF NÃO consegue te ajudar
30. • É um Website Application Firewall (WAF) e um Sistema de Prevenção
de Intrusão – Intrusion Prevention System (IPS) desenvolvido
especificamente para enfrentar os desafios da segurança de sites
• Emprega tecnologia de Patching e Hardening virtual que atenua os
ataques na nossa rede sem exigir que o dono do site precise tomar
quaisquer outras ações
WAF – Sucuri
31.
32. • Não configurando (não apontando o site para o WAF)
• Deixando ”pontas soltas” (configuração parcial)
• Colocando whitelist (lista-branca/permissão) em tudo
• Colocando blacklist (lista-negra/bloqueio) em tudo
• Whitelist em códigos inseguros
Bônus: Como não configurar um WAF
Boa tarde a todos. Meu nome eh Marcos Dadalt
Eu sou o gerente de parcerias aqui na Sucuri, buscando parcerias com empresas no mundo inteiro que querem oferecer os serviços da Sucuri para seus clientes.
Estas parcerias também envolvem agencias, e eu conversei com muitos executivos de agencias ai no Brasil sobre segurança de sites.
Ja estou na area vendas corporativas a quase 20 anos
Tenho um MBA pela Universidade de Redlands, aqui do Sul da California.
No lado pessoal, moro no Sul da California com minha familia ja à 16 anos, mas cresci na costa sul do belo estado de Santa Catarina
Mesmo aqui nos Estados Unidos continuo jogando meu futebol em uma liga local - Vc pode tirar o Brasileiro do Brasil mas não tira o Brasil do Brasileiro…
E quando sobra tempo eu ataco as trilhas locais com minha Mountain Bike.
Quem deve se preocupar com segurança na internet?
Sem dúvidas os donos de sites devem se preocupar em como proteger seus investimentos.
Muito dos que estão atendendo este webinar são Desenvolvedores, Programadores, agencias, empresas de hospedagem, provedores de serviços gerenciados e, enfim, qualquer pessoa responsável por administrar um site.
Quem deve se preocupar com segurança na internet?
Sem dúvidas os donos de sites devem se preocupar em como proteger seus investimentos.
Muito dos que estão atendendo este webinar são Desenvolvedores, Programadores, agencias, empresas de hospedagem, provedores de serviços gerenciados e, enfim, qualquer pessoa responsável por administrar um site.
Quem deve se preocupar com segurança na internet?
Sem dúvidas os donos de sites devem se preocupar em como proteger seus investimentos.
Muito dos que estão atendendo este webinar são Desenvolvedores, Programadores, agencias, empresas de hospedagem, provedores de serviços gerenciados e, enfim, qualquer pessoa responsável por administrar um site.
Quem deve se preocupar com segurança na internet?
Sem dúvidas os donos de sites devem se preocupar em como proteger seus investimentos.
Muito dos que estão atendendo este webinar são Desenvolvedores, Programadores, agencias, empresas de hospedagem, provedores de serviços gerenciados e, enfim, qualquer pessoa responsável por administrar um site.
Quem deve se preocupar com segurança na internet?
Sem dúvidas os donos de sites devem se preocupar em como proteger seus investimentos.
Muito dos que estão atendendo este webinar são Desenvolvedores, Programadores, agencias, empresas de hospedagem, provedores de serviços gerenciados e, enfim, qualquer pessoa responsável por administrar um site.
Quem deve se preocupar com segurança na internet?
Sem dúvidas os donos de sites devem se preocupar em como proteger seus investimentos.
Muito dos que estão atendendo este webinar são Desenvolvedores, Programadores, agencias, empresas de hospedagem, provedores de serviços gerenciados e, enfim, qualquer pessoa responsável por administrar um site.
Quem deve se preocupar com segurança na internet?
Sem dúvidas os donos de sites devem se preocupar em como proteger seus investimentos.
Muito dos que estão atendendo este webinar são Desenvolvedores, Programadores, agencias, empresas de hospedagem, provedores de serviços gerenciados e, enfim, qualquer pessoa responsável por administrar um site.
Quem deve se preocupar com segurança na internet?
Sem dúvidas os donos de sites devem se preocupar em como proteger seus investimentos.
Muito dos que estão atendendo este webinar são Desenvolvedores, Programadores, agencias, empresas de hospedagem, provedores de serviços gerenciados e, enfim, qualquer pessoa responsável por administrar um site.
Comece uma liste de perguntas para conversar com seus clientes. Como 3 a 5 perguntas baseados no que conversamos aqui que ira fazer com que seus clientes pensem e entendam a importância de segurança de sites
Muito obrigado e estanos prontos para perguntas ☺
Perguntas:
1 - A Sucuri oferece suporte ao cliente em português? Sim, como falamos durante a apresentação temos 20% de nossos funcionários falando português, incluindo vários que fazem a interação com clientes. Dependendo
2 - A Sucuri tem CNPJ pra faturar em Reais? Ainda não.
3 - Na questão de acesso como podemos restringir acesso às pessoas que são donos da empresa ou executivos mas que não estão diretamente envolvidos na administração do site? Boa pergunta. A explicação tem que ser baseada em segurança, nada pessoal. Vc tem que explicar os riscos associados com muitos usuários tendo acesso administrativo. Se estas pessoas de alto escalão se preocupam com seu investimento ou negocio, eles deveriam entender os motivos.
4 - Por que a necessidade de protejer todos os sites em meu ambiente? A principal razão é a contaminação cruzada. O seu site pode estar protegido mas no mesmo servidor tem um site infectado, é só uma questão de tempo para que todos os sites tem estejas comprometidos. Quando vc receber esta apresentação verifique a referencia à contaminação cruzada que explica em mais detalhes pra vc.
5 - Qual a necessidade de proteger um site que quase não tem trafego? Bem, os hackers não tem interesse pessoal no seu site. 90% dos ataques são ataques oportunistas. Crawlers buscando sites com vulnerabilidades. Então não importa se o site vende quentinhas ou pertence a uma das maiores lojas virtuais do pais.
6 - Como introduzir seguranca para um cliente que acabei de começar a trabalhar na criação de seu site? Foi o que falamos a pouco, todos temos a obrigação de educar os clientes no que seria melhor
7 - Como faço para proteger sites em diferentes plataformas?
8 - Como responder à clientes que dizem que seus sites nunca foram atacados e portanto não precisam de segurança?