2. Felipe Perin
● AUV surveyor
● Consultor de Segurança em TI
● Desenvolvedor web
● Entusiasta em software livre
● Segurança em Redes de Computadores
● Redator do Pub & Comunic.
E-mail: perin.ng@gmail.com
Linkedin: http://br.linkedin.com/in/felipeperin
Blog: http://www.itperin.blogspot.com.br
3. Joomla! (pronuncia-se djumla)
É um Sistema de gestão de conteúdos (Content Management
System - CMS).
Desenvolvido a partir do CMS Mambo.
É desenvolvido em PHP e pode ser executado no servidor
Web Apache ou IIS e base de dados MySQL.
Lançado em 16 de setembro de 2005 (6 anos).
4. Características principais
■ Código aberto (Licença GPL);
■ Arquivamento para conteúdo não utilizados (Lixeira);
■ Gerenciamento de banners;
■ Sistema de publicação para o conteúdo;
■ Sumário de conteúdo no formato RSS;
■ Busca otimizada (qualquer palavra registrada);
■ Frontend já traduzido em várias línguas;
■ Fácil instalação para novos templates, módulos e componentes;
■ Hierarquia para grupos de usuários;
■ Editor de conteúdo WYSIWYG;
■ Sistema de enquete simples (com acompanhamento de resultado em tempo real);
5. Quem utiliza o Joomla?
● El Villarreal CF (Equipe de Futebol 1º ● Tribunal Superior da Austrália
Divisão da Liga Espanhola)
● eBay
● Cidade do México (a segunda maior
cidade do mundo.) ● Sony Pictures
● Jaguar (marca mundialmente famosa ● MacDonald's
de carros de luxo britânica.)
● Gorilla'z
● Governo da Grécia ● Groupama (empresa de seguros
segundo maior da França e uma das
● Barnes & Noble (maior varejista de maiores do mundo, com escritórios na
livros nos Estados Unidos com mais Europa e na Ásia)
de 1300 lojas)
● Mais de 2900 sites do governo
● Torre Eiffel construído com Joomla!
● Ministério da Defesa do Reino Unido ● E inúmeros sites não catalogados
pelo site oficial.
● Danone
22. Boas Práticas no Joomla
_
| Se
| (Nada funcionar)
| Então
| {
| Leia o Manual ( )
| }
|_
23. Não use o prefixo jos_ como padrão
das tabelas do Banco de Dados.
Muitos ataques de injeção SQL são baseados na suposição de
que as tabelas de seu banco de dados são denominados
"jos_".
Caso você tenha optado por usar o padrão "jos_", ele poderá
ser mudado com um simples script PHP.
24. Um usuário de banco de dados por
instalação
Não use um mesmo usuário para vários banco de dados e
nunca use root como usuário de conexão.
Geralmente o usuário de conexão ao banco e o nome do
banco, são baseados no nome de seu domínio. Mas isto vai
depender do provedor de hospedagem.
25. Considere uma senha forte para a
conexão ao banco de dados
Use uma senha longa e complicada para o acesso ao seu
banco de dados.
Hoje em dia é muito fácil de decifrar um hash MD5, base de
encriptação utilizada pelo Joomla (já foi quebrado) ou SHA1.
Inclusive existem aplicações web que ajudam nesse processo.
Se alguém começar a tentar quebrar a senha de acesso ao
banco de dados, por força bruta por exemplo, é só questão de
tempo até obter o sucesso. Uma boa forma de criar senhas
fortes é utilizar caracteres alfanuméricos e caracteres especiais
como @ # $ e etc...
26. Não instale o exemplo de conteúdo
O exemplo de conteúdo serve para que você se familiarize com
o Joomla.
Em produção, você não deve utilizá-los tendo em vista que são
fáceis de serem identificados pelos "exploits".
Além disso, você pode se esquecer de remover totalmente o
conteúdo de exemplo.
27. Desinstalar coisas que você não
precisa
Desinstale todas as extensões que você não irá utilizar em seu
projeto.
Desde os componentes do núcleo do Joomla até os templates
que estão sobrando.
Observe, por exemplo, que ao instalar o editor JCE você estará
reinstalando o editor WYSIWYG TinyMCE, pois ele funciona
encapsulado no JCE.
Joomla vem com o editor TinyMCE instalado como editor
padrão, então você terá duas instalações TinyMCE.
28. Desativar o registro / login
Se o seu website não terá conteúdo restrito ou cadastro de
usuários, desabilite o módulo Login form
Desativar XML-RPC
Desative o XML-RPC do servidor se você não precisa
dele.
29. Excluir a conta de usuário padrão
O userid 62 e o nome de usuário "admin" presentes na
tabela #__users, representa uma fraqueza e devem ser
substituídos imediatamente após a publicação do website
na Internet.
Para tal, acesse o backend e crie um novo usuário com
perfil de superadministrador.
Depois, faça o login com o novo usuário e exclua o antigo
admin.
Lembre-se que o admin é o primeiro usuário a morrer em
qualquer sistema.
30. Ativar o (.htaccess)
O htaccess.txt está na raiz do seu website joomla e deve ser
renomeado para (.htaccess). Porém, alguns fatores devem
ser observados:
a) o (.) antes de um nome de arquivo, significa que o arquivo
é um arquivo oculto do GNU/LINUX. Logo, não irá funcionar o
MS Windows®.
b) o (.htaccess) é um arquivo extremamente perigoso e
alguns provedores simplesmente não permitem o envio do
mesmo, ou durante a atualização do apache, passam a
restringir seu uso.
31. Use url's amigáveis
Muitos "exploits" funcionam baseados em sniffs de robots
através das URLs dinâmicas do Joomla!.
Por exemplo, digamos que o componente (com_algumacoisa)
foi invadido e você está usando o mesmo em seu website.
O "exploit" irá buscar por com_algumacoisa em sua url e uma
vez achado, irá explorar as vulnerabilidades do mesmo para
invadir seu website.
O uso de Url's amigáveis além de ajudar sobremaneira na
indexação de seu website pelo google é uma excelente
prática de segurança.
32. Faça Backup de seu website
regularmente
Se o provedor não faz backup para você, inclua uma rotina
em seu projeto.
Para provedores que permitem acesso via ssl você pode
agendar o backup no cron do servidor.
Não é possível? Use o Akeeba que é uma excelente
extensão para backup.
Inclusive, a versão paga possibilita o agendamento dos
mesmos.
33. Proteja o /administrador com
medidas extras
Encapsule o /administrator de seu website usando um simples
plugin de segurança como o JSecure.
70% das tentativas de ataque serão barradas pelo simples
fato de não ser encontrado o /administrator de seu website.
34. Dê as permissões corretas para
arquivos e diretórios
A permissão dos diretórios de seu website devem estar
com 0755 e os arquivos com 0644.
Nunca, jamais, em hipótese alguma use 0777.
Considere a instalação de
extensões de segurança
Existem várias extensões voltadas a implementação de
segurança em seu website Joomla. Visite o JED, identifique-
as e faça os devidos testes.
Fundamentais: Akeeba, JSecure, Jpudateman e
Configuration Ecnrypt
36. Felipe Perin
● AUV surveyor
● Consultor de Segurança em TI
● Desenvolvedor web
● Entusiasta em software livre
● Segurança em Redes de Computadores
● Redator do Pub & Comunic.
E-mail: perin.ng@gmail.com
Linkedin: http://br.linkedin.com/in/felipeperin
Blog: http://www.itperin.blogspot.com.br