Você está na página 1de 36

Segurança em

tudo lojas online


Rui Cruz
mail@ruicruz.pt
FB / IG: ruicruzpt
Twitter: ruicruz
Quem sou eu

• Uso a Internet há meia vida, literalmente. Trabalho com segurança da


informação a um nível profissional no meu “day Job” mas também o
faço com projetos como o Tugaleaks onde a segurança é uma chave
fundamental do processo jornalístico.
• Uso WordPress há mais de dez anos.
• Faço workshops de privacidade desde 2016.
Preocupações com segurança – porquê?
• Basta um ataque (apenas um) para que a tua loja online seja
“eternamente” conhecida como um site hackeado ficando assim com
a tua imagem manchada (exemplo: deface em sites como Zone-H,
comentários em blogs, etc.)
• Se a tua loja dá dinheiro, parte desse dinheiro deve ser (re)investido
na segurança
• 43% dos ataques informáticos são feitos aos pequenos negócios.
• Em média, há um ataque informático a cada 29 segundos.

1 - https://www.cybintsolutions.com/cyber-security-facts-stats/
Quem são os “culpados”? Themes e plugins.
• 54% das vulnerabilidades são de
plugins
• Os plugins e os temas não são
atualizados automaticamente
• Plugins e temas premium
podem não ter sequer “auto
Update” dentro do WP Admin.

Fonte: wpwhitesecurity.com
Como? Com XSS!
• O ataque XSS (Cross-site Scripting)
injeta código dentro de um URL ou
uma função no site (“payload”)
para gerar uma resposta anormal e
ganhar acesso privilegiado
• Há formas de prevenir XSS (por
exemplo, com CloudFlare Pro)
• Há ferramentas automáticas para
detetar vulnerabilidades XSS, como
a XSSSNIPER

Fonte: wpwhitesecurity.com
Já passaram 29 segundos
Vamos «brincar» aos
Certificados SSL?
securityheaders.io
Banco BIC
Caixa de Crédito Agrícola
Quem conhece estes gurus do marketing
digital?

• Frederico Carvalho
• Paulo Faustino
• Marco Gouveia
• Virgínia Coutinho
• André Novais de Paula
• André Zeferino
Marketing Digital para Empresas
PayPal
Facebook
Novo Banco
Gearbest
Rui Cruz
O que tenho que fazer?
Exemplo para site com grade A
Colocar no .htaccess ou configuração do Ajpache:

<IfModule headers_module>
RequestHeader set X-HTTPS 1
Header set Referrer-Policy "no-referrer-when-downgrade"
</IfModule>

<IfModule mod_reqtimeout.c>
RequestReadTimeout header=20-40,MinRate=500 body=20-40,MinRate=500
</IfModule>

Header set X-XSS-Protection "1; mode=block"

Header set X-Content-Type-Options nosniff


Implementar (exemplo com cPanel)
WHM > Apache Configuration > Include Editor > Pre Main Include >
selecionar all versions.
O resultado:
Securityheaders: breves notas
Passwords? 
Factos (des)interessantes sobre passwords:

• No ataque informático à Adobe em 2013, estas foram as passwords mais


usadas: “123456,” “12345678,” “Password,” “Adobe123” e “12345678.”
• Cerca de 40% das organizações e empresas guardam passwords em
documentos do Word 1
• “starwars” tem a posição n.º 58 da password mais usada 2
• Os teus clientes

1 - https://keepersecurity.com/blog/2016/10/07/20-fascinating-facts-about-passwords/
2 - https://www.passwordrandom.com/most-popular-passwords
Solução: https://passwordsgenerator.net/
Uma boa password deve ter…

Um mínimo de 8 dígitos, sem estar baseada em palavras de dicionários


e deve ter três destas quatro características:
• letras pequenas (a-z)
• Letras grandes (A-Z)
• números (0-9)
• Caracteres especiais (-=[]\;,./~!@#$%^&*()_+{}|:<>?)
Para quem usa WooCommerce: wp-
config.php seguro
• Embora o ficheiro .php não seja diretamente “visto” pelo browser, há
formas de evitar que este seja sequer detetado através de um browser.
• Desta forma, em vez de uma “página em branco”, o utilizador recebe um
erro 404 (página não encontrada)

Para aplicar:
• Abrir o .htaccess, e adicionar no fim as seguintes linhas:
<files wp-config.php>
order allow,deny
deny from all
</files>
Forçar passwords fortes em WooCommerce
• Se usas uma loja com vários utilizadores, uma password fraca de outra
pessoa pode fazer com que o teu site seja atacado.
• A culpa nem sequer é tua na teoria, mas na prática podes evitar isso.
• Este plugin força os utilizadores e escolherem uma password forte e
segura.

Para aplicar:
• Fazer download e instalar o seguinte plugin:
https://wordpress.org/plugins/force-strong-passwords/
Segundo fator de autenticação
• Plugin fácil de configurar, permite-te usares o Authenticator do Google
(para Android e também iOS) e, depois de estares logado, inserires o
código que te é mostrado no smartphone.
• Permite outras configurações mais avançadas com outro tipo de
autenticação.

Para aplicar:
• Fazer download e instalar o seguinte plugin:
https://wordpress.org/plugins/miniorange-2-factor-
authentication/
Vamos complicar?
VPN para utilizar em lojas online? Claro!
• A forma mais avançada (e onde deixa de fazer sentido usar alguns
plugins aqui apresentados) de proteger a administração do teu CMS é o
uso de uma VPN.
• Utilizadores ilimitados, corre numa VPS com 512MB de RAM (e até
menos)
• Com isto permitimos acesso ao wp-login.php pelo IP da VPN
• Além disso, garante proteção e privacidade na navegação em outros
sites (algo pessoal, não relacionado com esta temática mas aproveitado
pelas ações aqui desenvolvidas)
VPN para utilizar em lojas online? Claro!
Para implementar a VPN:
• Instalar OpenVPN manualmente no servidor e as credenciais no PC,
Smartphone;
• Instalar e executar este script https://github.com/Angristan/OpenVPN-
install:
wget https://raw.githubusercontent.com/Angristan/
OpenVPN-install/master/openvpn-install.sh
chmod +x openvpn-install.sh
./openvpn-install.sh
VPN para utilizar em lojas online? Claro!
Para implementar no WordPress:
• No .htaccess, colocar isto no final do ficheiro:
<Files wp-login.php>
order deny,allow
Deny from all

# IP da minha casa
allow from 127.0.0.1

# IP da VPN da empresa
allow from 127.0.0.2

</Files>
No servidor
No servidor…
• Mudar a porta de SSH (22 para outra qualquer, e o ano 2018 não vale,
ok)
• Se tens muito tráfego considera aderir ao programa do CloudFlare para
hosting, que oferece proteção na web:
https://www.cloudflare.com/partners/hosting-provider/
• Mantém sempre atualizado o PHP (7,x), Apache (2,x), e restante
software em uso
• Para SSH, considera utilizares chaves de autenticação em vez de
passwords
E se tudo falhar?
(se tudo isto falhar, ao menos falhaste a tentar)
Em caso de ataque de hackers…
• Notifica antes de mais a CNPD, neste link:
https://www.cnpd.pt/bin/notifica_rgpd/data_breach.htm (a falta de
notificação dá multa, se o regulamento for estritamente cumprido, o
que não está a ser, mas não é por isso que… )
• Coloca o website offline ou com uma mensagem de “brevemente
disponível” e só o voltes a colocar online quando souberes o que causou
o erro e o tiveres corrigido
• Notifica os teus utilizadores em caso de entradas em bases de dados, de
acordo com o RGPD.

Você também pode gostar