gpedro 47 #1 Postado 3 Maio, 2014 (editado) Opa, tranquilo!?Bom, para falar que eu não contribuo com porra nenhum, criei este tutorial até pra poder ajudar o vHp (siga essas dicas aqui no site da OTBR) e a comunidade que não entende muito de segurança. A finalidade desta lista é ajuda a vocês a proteger e incrementar um pouco a mais de segurança no seu webserver. Eu fiz este tutorial de forma genérica, serve para qualquer webserver, mas há algumas poucas referências mais voltado para OTServ. Directory ListingÉ um descuido muito grave e frequente, uma vez que se é possível obter informações relevantes para uma possível exploração de falhas, vulnerabilidades ou até roubo de informação. Para desativar o Directory Listing basta seguir os 3 passos baixo: Navegue até o diretório /etc/apache2/sites-enabled e abra o arquivo 000-defaultNo meu caso, irei utilizar o nano, um editor de texto no modo texto (terminal). Procure pela linha que diz <Directory /caminho/www>, onde /caminho/www representa sua pasta de arquivos utilizada pelo Apache. Em seguinte procure por Options Indexes e mude o Indexes para -IndexesApós isso, pressione CTRL+X para fechar, Y(ou S) para confirmar as alterações e enter para salvar. Agora apenas precisamos reiniciar o serviço do Apache2 para que a configurações começem a valer.No terminal, digite service apache2 restart Resultado (Antes e Depois): Server TokensSe repararem na imagem acima, irão ver que de fatos diminuimos os acessos as informações dos arquivos internos, mas se olharem lá em baixo, no rodapé da página de Forbidden, está escrito toda a nossa infraestrutura de webserver, ou seja, estou utilizando Apache 2.2.22 rodando em um Ubuntu. E isso não é legal aparecer, até porque uma vez que se obtém a versão de uma software é possível pesquisar exploits já encontrados desta versão específica.Para retirar-los basta seguir simples 3 passos também: Vá até o diretório /etc/apache2/conf.d/ e abra o arquivo security Logo nas primeiras linhas do arquivo, existem duas atributos que devemos mudar. O ServerTokens e ServerSignature, onde devemos alterar os valores respectivamente para Prod e Off. Após isso, dê um CTRL+X, digite Y(ou S) para confirmar as alterações e enter para salvar. Agora reinicie o apache2 utilizando o comando service apache2 restart Resultado: Expose PHPQuando fazemos requisição a algum página cujo interpretação seja feita pelo PHP, por padrão, no cabeçalho desta requisição é possível identificar a versão do PHP, então é bom desativar para que as essas informações extremamente importantes não sejam expostas. Apenas com apenas 3 passos se resolve este problema. Vá até o diretório /etc/php5/apache2/ e abra o arquivo php.ini Procure pela variável de configuração chamada expose_php e altere de On para Off Após isso, dê um CTRL+X, digite Y(ou S) para confirmar as alterações e enter para salvar. Agora reinicie o apache2 utilizando o comando service apache2 restart Resultado: Arquivos desnecessáriosQuando vamos implementar algum script que não possuimos o conhecimento ou ele tem várias dependências, nós costumamos baixar a documentação e os arquivos de exemplo para podermos ler e implementar. Mas o que acaba ocorrendo é que depois de implementado e funcionando, nós nos esquecemos dele e acaba sobrando os arquivos de documentações e exemplo. Mas não é só por parte de nós desenvolvedores não... acontecem com vocês que vivem fuçando no site. Um exemplo bem claro é no Gesior AAC, onde criamos nossa página e incluimos no index.php e repassamos o site a diante, ai o cara não tá utilizando ele e apenas retira do layout e acha que removeu o sistema... o buraco é mais fundo.Solução de prioridade alta resolvidas de forma atabalhoadaQuem lê assim até parece uma coisa foda, magnífica, mas é simplesmente uma gambiarra ou hardcoded. Esse alterações ou implementações de forma extremamente amadora ou gambiarrosa podem simplesmente abrir brechar na segurança de seu site. Por isto, quando quiserem implementar de forma correta, procurem um conhecido do assunto ou um profissional da área, leia o manual da linguagem, do framework.Mantenha tudo atualizadoSeja software ou infra, mantenha-os atualizado. É extremamente necessário. Quer um bom motivo para fazer isso? Recentemente fora descoberto uma falha de segurança em todos os Internet Explorer que permitia o invasor ter acesso a praticamente tudo. E ontem a Microsoft soltou a correção.Senha padrõesPor favor galera, troquem as senhas padrões. Mas troquem pra senhas seguras e quando eu digo seguras 12345, admin, teste, não são sejas seguras. Uma senha segura envolve números, letras(minusculas e maiusculas) e algum caracter especial com no mínimo 6 digitos.1KG de vergonha na cara""Herp Derp, meu servidor tá com Linux, vou instalar XAMPP"". Tenha o dominio completo do que está instalado ou não e não coloque essas merdas de bundle. Instale os pacotes na mão e configure bonitinho.WebDAVAno passado teve muita gente que sofreu com isso. Era uma falha do XAMP que iniciava o WebDav com senha padrão e deixava outra pessoa simplesmente vir, acessar sua máquina e fazer uma bagunça. Por isso eu recomendo o item de cima. Porque ele só vai instalar o que você mandar. Exceto Baidu, porque ele vem sempre.Sistema de Controle de VersãoÉ o que há. Quem nunca deletou uma parte de arquivo no bloco de notas, salvou e apertou um caracter em branco sem querer. E a alteração não deu certo e você foi desfazer e não tinha como?Os maiores servidores utilizam isso justamente para ter o total controle dos arquivos. A cada edição que você faz, ele cria uma revisão do arquivo. Então eu posso editar milhares de vezes e ver as alterações passadas, quem alterou, o que adicionou e o que removeu. É lindo.Leiam sobre SVN e GIT, são ótimas ferramentas.Referências http://wiki.apache.org/httpd/DirectoryListings#Directory_Listings http://httpd.apache.org/docs/current/pt-br/mod/core.html#servertokenshttp://httpd.apache.org/docs/current/pt-br/mod/core.html#serversignature http://www.php.net/manual/en/ini.core.php#ini.expose-php https://www.acunetix.com/websitesecurity/webserver-security/ http://wikipedia.org/wiki/Hard_code http://www.zdnet.com/blog/security/25-most-used-passwords-revealed-is-yours-one-of-them/12427 http://www.apachefriends.org/f/viewtopic.php?f=16&t=44140#p172246 http://svnbook.red-bean.com/en/1.7/index.htmlhttp://git-scm.com/book NÃO ESQUECE DE CURTIR!!!This post has been promoted to an article Editado 9 Maio, 2014 por gpedro 11 grilo13, Rhyon, Lordfire e 8 outros reagiu a isto Compartilhar este post Link para o post
Lordfire 110 #2 Postado 3 Maio, 2014 Eita cara, esse post é muito bom. Geralmente esses servidores vêm configurados por padrão com configurações de desenvolvimento, e não é tão trivial assim configurar pra produção. Ou até mesmo não fica indicado, como o PHP que se não me engano ainda (5.5) fala que expor a versão não traz perigos - em algo que se encontra falhas graves todo mês?! Enfim, não existe solução melhor que fuçar documentação e código fonte, mas ain't nobody got time for that. Excelentíssimo artigo. Compartilhar este post Link para o post
grilo13 60 #3 Postado 4 Maio, 2014 Poxa mas XAMPP é tão fácil de instalar :// haha vlw pelo tópico, bem formatado e MUITO útil Compartilhar este post Link para o post
Startix 9 #4 Postado 5 Maio, 2014 Muito bom! Deveria ter postado isso antes de derrubar o fórum aUAHUHEAUHEAUEH Você presta consultoria por R$? Compartilhar este post Link para o post
gpedro 47 #5 Postado 5 Maio, 2014 EHUAISEHUSAIEHSAUIEHSIAUESAUI, aqui era um deserto, agora está tipo Emirados Árabes. Sim, presto consultoria. Só me enviar um email: [email protected] Compartilhar este post Link para o post
Beeki 17 #6 Postado 6 Maio, 2014 Belo tópico, gostei de suas dicas. Parabéns. PS: Na minha opinião é relevante deixar ou não a versão/software usado a vista. Compartilhar este post Link para o post
constantine 33 #7 Postado 7 Maio, 2014 Isso aqui sim é uma tremenda mão na roda, auxiliou demais em algumas coisas que eu tava precisando! Fico muito grato por ter criado o tópico, merecido um fixo. Compartilhar este post Link para o post
gpedro 47 #8 Postado 7 Maio, 2014 também acho que merece fixo. Compartilhar este post Link para o post
vdzz 15 #9 Postado 8 Maio, 2014 Muito bom gepeto! Tu tem muito potencial, sempre lhe vi mais como um colaborador do fórum do que um membro ou membro da staff. Não só tu, mas como outras pessoas também, por exemplo o Rhys que possui um repertório gigantesco e sempre dá feedbacks fantásticos. Mas enfim, quando vai voltar com os vídeos tutoriais? Hahahaha. Compartilhar este post Link para o post
gpedro 47 #10 Postado 8 Maio, 2014 @vdzz agradeço pelo comentário. Em específico, este tutorial foi porque são coisas absurdamente simples corrigir, que fazem todo um diferencial. Sobre os vídeos tutoriais é um pouco mais foda. Ninguém vê sasporra. E quando eu pergunto sobre o que querem, nem respondem ou dizem coisas absurdamente complexas que menos de 1% vai entender o que eu disse, então é foda. Mas vontade não falta. Compartilhar este post Link para o post
vdzz 15 #11 Postado 8 Maio, 2014 Apenas uma observação. Para quem tiver dificuldade para trabalhar com terminal, por conta de inexperiência mesmo, recomendo usar o WinSCP que nada mais é do que um terminal, porém com interface gráfica, semelhante ao FTP. Compartilhar este post Link para o post
gpedro 47 #12 Postado 8 Maio, 2014 @vdzz WinSCP é o caralho. No máximo Putty. Compartilhar este post Link para o post
Lordfire 110 #13 Postado 8 Maio, 2014 Fiquei curioso pra entender como seria um "terminal com interface gráfica". Se não me engano, SCP é um protocolo de transferência sobre SSH, parecido com o SFTP, certo? Compartilhar este post Link para o post