O documento discute como o SSL funciona para criptografar dados entre usuários e servidores, tornando sites seguros. Também fornece instruções sobre como configurar sites baseados em Joomla! para usar SSL, incluindo ajustes necessários em módulos de login e componentes como VirtueMart. A segurança da rede também é abordada, com explicações sobre ARP spoofing e formas de bloquear spam.
2. Joomla!, SSL e um pouco sobre segurança
SSL (Secure Sockets Layer)
uma pequena definição para uma grande solução
➢
É uma tecnologia de segurança utilizada para criptografar os dados
trafegados entre o computador do usuário e um servidor(onde está o seu site).
➢ O protocolo SSL previne que os dados trafegados possam ser capturados ou
mesmo modificados no trajeto entre o navegador do usuário e o servidor.
3. Joomla!, SSL e um pouco sobre segurança
Como funciona o SSL
➔Um navegador solicita uma página segura, com
https://
➔O servidor web envia sua chave pública junto com
o seu certificado
➔O navegador garante que o certificado não esteja
expirado ou revogado, que foi emitido por uma
entidade confiável e que o nome nele confere com
o website ao qual está conectando
➔O navegador cria uma chave simétrica e a envia
para o servidor
➔O servidor decripta a chave simétrica recebida do
navegador usando sua chave privada
➔O servidor então envia a página encriptada com a
chave simétrica
➔O navegador decripta a página usando a chave
simétrica e exibe as informações
4. Joomla!, SSL e um pouco sobre segurança
Pense nisso!
“Enviar informações sensíveis sem SSL é como
escrevê-las na parte traseira de um cartão postal
e deixar cada carteiro ou atacante no caminho
para seu destino fazer uma fotocópia do mesmo.
http://www.sslshopper.com/article-ssl-for-newbs.html
5. Joomla!, SSL e um pouco sobre segurança
Acessando um site com SSL
➢
Nota-se o “https” na barra de endereços do navegador;
➢
A indicação do “Certificado SSL”, podendo a barra tornar-se verde;
➢ Nem todos os navegadores mostram o cadeado na barra.
6. Joomla!, SSL e um pouco sobre segurança
Certificados SSL, escolhendo corretamente...
Antes que uma autoridade de certificação emita um Certificado SSL, ela precisa
validar as informações fornecidas no pedido do certificado, logo quanto mais
completa a validação, maior a confiabilidade do certificado.
Validação de Domínio Validação da Validação Extendida Validação da
Organização (EV) Organização
(Domain Validation) (Organization Validation) (Extended Validation) “Coringa” (Wildcard)
Valida que o domínio está Valida a propriedade do Valida a propriedade do Mesmo que a "Validação da
registrado e que alguém com domínio, além das domínio e informações da Organização"
direitos de administrador informações sobre a organização, além da Certifica todos os
está ciente e aprova o organização incluídas no existência legal da subdomínios.
pedido do certificado. certificado (nome, cidade, organização e que a
estado, país). organização está ciente e
aprova o pedido do
certificado.
Encriptação SSL de até 256 bits
Subdomínio único* Subdomínios Ilimitados
7. Joomla!, SSL e um pouco sobre segurança
O que você precisa saber para solicitar
➢ Verifique a viabilidade e custos de instalação com seu provedor de hospedagem;
➢ Cada certificado SSL precisa de um endereço IP dedicado, consulte custos;
➢ Antes da aquisição é preciso solicitar o CSR (Certificate Signing Request), ou
Pedido de Assinatura de Certificado, ao seu provedor de hospedagem;
➢
O CSR é enviado para a empresa certificadora;
➢ Empresa certificadora faz todas as verificações e envia o Certificado SSL;
➢ Seu provedor faz a instalação do Certificado SSL no servidor.
8. Joomla!, SSL e um pouco sobre segurança
Qual a aparência de um CSR?
O CSR normalmente é composto por três partes igualmente importantes, confira...
✔Certificate Request
(requisição de certificado)
✔Certificate ✔ Private Key
(certificado) (chave privada)
9. Joomla!, SSL e um pouco sobre segurança
Finalmente o Certificado SSL
10. Joomla!, SSL e um pouco sobre segurança
Compatibilizando o site para o SSL...
✔ Usar links relativos em módulos, plugins e componentes;
Lembrando:
✔ Link relativo: “/arquivo.html”
✔ Link absoluto: “http://www.seusite.com.br/arquivo.html”
✔ Quando necessário force o redirecionamento de todo o site para “https”;
✔
Links para arquivos ou imagens externas a serem carregados pelo site
precisam usar o protocolo “https”;
✔ Sempre que possível carregue imagens localmente;
✔ Formulários precisam postar os dados para a URL segura (https);
✔ Módulos de login precisam ser revisados com muita atenção.
11. Joomla!, SSL e um pouco sobre segurança
Site compatibilizado: Conexão 100% Criptografada
12. Joomla!, SSL e um pouco sobre segurança
Site não compatibilizado: Conexão Parcialmente
Criptografada
13. Joomla!, SSL e um pouco sobre segurança
Administração do Joomla! com SSL
O Joomla! já está preparado para trabalhar com SSL e isso facilita tudo na hora
de tornar o acesso a administração segura.
Lembrem-se de
remover o valor da
variável “$live_site”
no arquivo
“configuration.php”
do Joomla! antes de
habilitar esta opção.
14. Joomla!, SSL e um pouco sobre segurança
Módulo de Login Nativo do Joomla! Seguro
O módulo de login nativo do Joomla! também já vem preparado!
15. Joomla!, SSL e um pouco sobre segurança
Tornando o Login do Kunena 1.6 Seguro
Uma pequena alteração garante um login seguro no fórum Kunena.
➢
No arquivo “login.php” faça uma pequena mudança..
(pasta “/components/com_kunena/template/default/loginbox/”)
16. Joomla!, SSL e um pouco sobre segurança
Com JRoute() fica fácil!
➢ No arquivo “route.php” do Kunena verificamos que ele usa o JRoute() do Joomla!
(pasta “/administrator/components/com_kunena/libraries/”)
17. Joomla!, SSL e um pouco sobre segurança
Usando o VirtueMart com SSL
Na configuração do VirtueMart é necessário setar a “URL Segura” e selecionar as
áreas que usarão SSL
Normalmente usa-se SSL para:
Normalmente usa-se SSL para:
➢ Account
Account
➢
➢ Admin
➢ Admin
➢ Checkout
➢ Checkout
18. Joomla!, SSL e um pouco sobre segurança
Ajustes no login do VirtueMart
O VirtueMart não usa o JRoute() nos módulos atuais mas o acréscimo de uma
linha de código nos locais indicados resolve a questão do login seguro.
19. Joomla!, SSL e um pouco sobre segurança
Ajustes no módulo de login do VirtueMart
O módulo de login do VirtueMart (mod_virtuemart_login) também necessita do
acréscimo de linhas de código nos locais indicados para tornar o login seguro.
20. Joomla!, SSL e um pouco sobre segurança
Segurança em Outros Códigos
“De modo geral, é preciso garantir que os dados de formulários de login sejam
postados para uma URL segura (https)”
Para aplicações críticas:
✔ Uma página de login totalmente HTTPS é fundamental;
✔ A presença de qualquer mensagem de alerta SSL é uma falha;
✔ Conexões HTTP à página de login devem ser descartadas.
21. Joomla!, SSL e um pouco sobre segurança
ARP Spoofing - O que é ARP spoofing?
ARP spoofing, também conhecido como ARP poisoning(envenenamento
de ARP) ou ARP attack(ataque ARP), é uma técnica na qual um host em
uma LAN pode "envenenar" a tabela ARP do outro host fazendo-o enviar
os pacotes para o destino errado. O atacante pode modificar o tráfego na
rede de tal maneira que ele será capaz de redirecionar todo o tráfego
através dele. O atacante pode então encaminhar o tráfego para o destino
certo ou bloqueá-lo causando um ataque DoS à vítima.
22. Joomla!, SSL e um pouco sobre segurança
Simulação de um ataque ARP
23. Joomla!, SSL e um pouco sobre segurança
Segurança nunca é demais!
O roubo de dados e senhas em redes abertas, via sniffers, é um dos problemas
considerados ao se decidir pelo SSL em um site!
Quando falamos de e-commerce a preocupação com segurança é ainda maior
pois envolve <dinheiro>.
A presença do “cadeado” no
navegador já faz com que o
usuário sinta-se mais seguro!
“Site seguro significa
usuário/cliente seguro!!!”
24. Joomla!, SSL e um pouco sobre segurança
Opa, aqui a segurança tinha uma brecha...
25. Joomla!, SSL e um pouco sobre segurança
Vamos tratar da segurança do Joomla!...
➢Bloqueie o acesso aos arquivos .XML via “.htaccess”;
## Deny access to extension xml files (uncomment out to activate)
<Files ~ ".xml$">
Order allow,deny
Deny from all
Satisfy all
</Files>
## End of deny access to extension xml files
➢Use bons provedores de hospedagem (“você tem aquilo pelo qual paga”);
➢Defina corretamente as permissões dos arquivos e pastas;
➢ Arquivos: 644
➢ Pastas: 755
26. Joomla!, SSL e um pouco sobre segurança
O sh404SEF também atua na segurança
Mesmo sem usar URL´s amigáveis
você é protegido pelos recursos do
sh404SEF!
27. Joomla!, SSL e um pouco sobre segurança
Configuração da Segurança no sh404SEF
O campo “Check also
forms data (POST)”
marcado na imagem
ao lado está como
“não” pois pode causar
o erro “Forbidden
access (<script> tag in
POST)” ao se usar
exemplos de código
nas postagens, como
em fóruns(Kunena).
28. Joomla!, SSL e um pouco sobre segurança
Parando os Spambots
➢ Formas de barrar estes scripts que costumam se registrar em sites e postar em
formulários e fóruns:
➢ Usar um sistema de verificação de palavras como o “akismet”;
➢ Uso de serviços de listas negras como Spamhaus e outros;
➢ Bloqueio por IP, nome de usuário e/ou e-mail;
➢ Instalação de um sistema de Captcha.
29. Joomla!, SSL e um pouco sobre segurança
Parando os Spambots: Registration Validator
Um plugin que reduziu em mais 95% os meus problemas!
Este pequeno notável, o Registration Validator, faz a verificação de todos que
tentam se registrar ou postar dados no site, via Botscout, Undisposable.net,
StopForumSpam e Spamhaus, além de verificar o DNS.
Mantém um arquivo de registro de atividades. Ex.:
30. Joomla!, SSL e um pouco sobre segurança
Referências
...tão importante quanto a palestra
- RapidSSL - http://www.rapidssl.com
- GeoTrust - http://www.geotrust.com
- POST from http to https: The hidden security
http://kartones.net/blogs/kartones/archive/2010/01/20/post-from-http-to-https-the-hidden-security.aspx
- HTTP POST -> HTTPS = Bad Idea® - http://paulmakowski.wordpress.com/2009/07/20/http-post-https-bad-idea/
- HTTPS best practices in general - https://www.owasp.org/index.php/SSL_Best_Practices
- SSL For Newbs - http://www.sslshopper.com/article-ssl-for-newbs.html
- Kunena Fórum - http://www.kunena.org
- Brian Teeman - http://brian.teeman.net
- Anything Digital - http://anything-digital.com/sh404sef/seo-analytics-and-security-for-joomla.html
- CEDIT - http://www.cedit.biz/joomla-extensions/18-registration-validator/22-block-disposable-email-addresses
- VirtueMart – http://virtuemart.net - ARP Spoofing - http://www.osischool.com/protocol/arp/arp-spoofing
31. Joomla!, SSL e um pouco sobre segurança
● http://www.fernandosoares.com.br
● Especialista em Joomla! e VirtueMart
● Twitter: @fernando_soares
● Skype: fsoarestec
● E-mail: fsoares@fsoares.com.br
● Palestras: http://www.slideshare.net/fernandosoares
Sucesso a Todos!!!