Web Seguro Configurando um servidor WWW seguro Novembro de 1998
Centro de Atendimento a Incidentes de Segurança - CAIS
WebPAL0103 Seguro PAL0103 ©1998 – RNP
Índice: • Introdução • Técnicas recomendadas • Recomendações Gerais • Problemas de segurança com alguns servidores WWW • Referências Web Seguro PAL0103 ©1998 – RNP
Introdução
Introdução •
Qual é o cenário?
•
O que fazer?
Web Seguro PAL0103 ©1998 – RNP
Introdução
Qual é o cenário? •
Pedidos anônimos;
•
Usuários não autenticados;
•
Código fonte complexo;
•
Em muitos casos, código amplamente divulgado;
•
Não são poucos os usuários inexperientes em programação CGI. Seu servidor Web se torna um fácil ponto de ataque!! Web Seguro PAL0103 ©1998 – RNP
Introdução
O que fazer? •
Pagar um “servidor seguro”;
•
Aplicar técnicas recomendadas para tornar o seu servidor mais seguro;
•
Combinação de ambos.
Web Seguro PAL0103 ©1998 – RNP
Técnicas recomendadas
Técnicas recomendadas
•
Configurando o User ID / Group ID do servidor
•
Entendendo a estrutura de diretórios −Permissões −Arquivos de configuração
•
Escrevendo scripts CGI de maneira segura −Scripts CGI com conhecidos furos de segurança −Scripts CGI: Recomendações Web Seguro PAL0103 ©1998 – RNP
Técnicas recomendadas
Configurando UID/GID do servidor •
Servidor (processo pai) precisa ser inicializado como root, para “ouvir” na porta 80 (padrão)
•
Já os processos filhos NÃO devem, de maneira alguma, rodar como root (configurável através do arquivo conf/httpd.conf) User http Group http Web Seguro PAL0103 ©1998 – RNP
Técnicas recomendadas
Entendendo a estrutura de diretórios Especial cuidado, no que diz respeito a: •
Permissões de diretórios e arquivos −cgi-bin −conf −htdocs −logs
•
Arquivos de configuração −access.conf −httpd.conf −srm.conf Web Seguro PAL0103 ©1998 – RNP
Técnicas recomendadas
Estrutura de diretórios: Permissões Esquema 1: drwxr-xr-x drwxr-x---rwx-----drwxrwxr-x drwxrwxr-x drwxr-x---
5 2 1 2 2 2
www www www www www www
www www www www www www
1024 1024 109674 1024 1024 1024
Aug 8 00:01 cgi-bin/ Jun 11 17:21 conf/ May 8 23:58 httpd Aug 8 00:01 htdocs/ Jun 3 21:15 icons/ Aug 8 00:01 htdocs/
Web Seguro PAL0103 ©1998 – RNP
Técnicas recomendadas
Estrutura de diretórios: Permissões (cont.) Esquema 2: drwx--x--x drwx------rwx-----drwxr-xr-x drwxr-xr-x drwx------
5 2 1 2 2 2
root root root root root root
www 1024 Aug 8 00:01 cgi-bin/ www 1024 Jun 11 17:21 conf/ www 109674 May 8 23:58 httpd www 1024 Aug 8 00:01 htdocs/ www 1024 Jun 3 21:15 icons/ www 1024 Aug 8 00:01 htdocs/
Web Seguro PAL0103 ©1998 – RNP
Técnicas recomendadas
Estrutura de diretórios: arquivos de configuração • Permissões: -rw------- 5 access.conf -rw------- 2 -rw------- 1 -rw------- 2
root wheel
954 Aug 6 00:01
root wheel 2840 Aug 6 17:21 httpd.conf root wheel 3290 Aug 6 23:58 myme.types root wheel 4106 Aug 6 00:01 srm.conf
• Especial atenção no que diz respeito a: - Listagem automática de diretórios - Links simbólicos - Server Side Includes (SSI) Web Seguro PAL0103 ©1998 – RNP
Técnicas recomendadas
Escrevendo scripts CGI seguros • O maior problema dos scripts CGI: - podem incluir erros de codificação sutis • Estes erros podem permitir: - vazamento de informações do servidor/sistema - executar comandos arbitrários (INPUT DATA) Web Seguro PAL0103 ©1998 – RNP
Técnicas recomendadas
Scripts CGI com conhecidos furos de segurança Script Count.cgi webdist.cgi php.cgi nph-test.cgi nph-publish AnyForm FormMail phf
Versões Afetadas
Uso
1.0-2.3 1.0-1.2 Até 2.0 Todas 1.0-1.1 1.0 1.0 Todas
Contador de página Distribui software Ling. de scripts ? ? Cria formulários Envia dados/e-mail Phone BookWeb Seguro PAL0103 ©1998 – RNP
Técnicas recomendadas
Scripts CGI: recomendações • Colocar todos os scripts num único diretório - configurar no arquivo conf/srm.conf • Usar Tripwire para monitorar mudanças nos scripts • Permissões dos scripts: 755 • Permissão do diretório: 711 • Desativar todos os scripts não usados Web Seguro PAL0103 ©1998 – RNP
Técnicas recomendadas
Scripts CGI: recomendações (cont.) • No que diz respeito à codificação: - Evite dar maiores informações - Não assuma nenhum tamanho de dados de entrada - Analise sempre dados de entrada do usuário (executados por algum comando shell) Ex.: Tem algum “;” no meio? • Invocar programas usando caminhos absolutos Ex.: Em vez de ls -l, utilize: /bin/ls -l Web Seguro PAL0103 ©1998 – RNP
Recomendações gerais
Recomendações gerais • Isolar o servidor Web (firewalls); • Monitorar freqüentemente: • Arquivos de log Ex.: Pedidos de URL muito longas • Usando Tripwire Ex.: Alterações não autorizadas
• Para quem usa autenticação via Web, garanta que o arquivo de senhas não esteja acessível a usuários Web Seguro comuns PAL0103
©1998 – RNP
Recomendações gerais
Recomendações gerais (cont.) • Seja ciente dos possíveis problemas de integrar serviços Web e Ftp: nada de uploads! • Acompanhe os alertas de segurança.
Web Seguro PAL0103 ©1998 – RNP
Problemas de segurança com alguns servidores WWW
Problemas de segurança com alguns servidores WWW • Netscape Communicator para NT (versão 1.12) Netscape Commerce para NT (versão 1.12) • Microsoft IIS (versões anteriores a 05/03/96) - É possível fazer download de scripts e lê-los
Microsoft IIS (versão 3.0) - Vulnerável a ataque DoS (URL longa)
Web Seguro PAL0103 ©1998 – RNP
Problemas de segurança com alguns servidores WWW
Problemas de segurança com alguns servidores WWW (cont.) • Servidor NCSA - Buffer overflow em versões anteriores a 1.4 - cgi_src/util.c e src/util.c nas versões 1.5a e anteriores permitem executar comandos remotos
• Servidor Apache - Módulo “mod_cookies” na versão 1.1.1 (Buffer overflow) - cgi_src/util.c e src/util.c nas versões 1.02 e anteriores permitem executar comandos remotos Web Seguro PAL0103 ©1998 – RNP
Problemas de segurança com alguns servidores WWW
Problemas de segurança com alguns servidores WWW (cont.) - Vulnerabilidade na versão 1.1.1 que permite a listagem automática de diretórios, mesmo com o arquivo index.html presente!
• Servidor Netscape para Unix - Sistema de criptografia no NS Commerce foi “crackeado” - Sistema de geração de chaves é quase previsível
Web Seguro PAL0103 ©1998 – RNP
Referências
Referências • Links: - http://www.go2net.com/people/paulp/cgi-security - http://hoohoo.ncsa.uiuc.edu/cgi/security.html - http://www.cs.purdue.edu/coast/hotlist.html#securi01
• FAQs: - http://www.w3.org/Security/Faq
Web Seguro PAL0103 ©1998 – RNP
Referências
Referências (cont.) • Listas: - www-security: Enviar e-mail para www-security-request@nsmx.rutgers.edu colocando na mensagem o seguinte: subscribe www-security < seu e-mail >
• Livros: - Practical Unix & Internet Security - 2nd. Edition Simsom Garfunkel and Gene Spafford O’Reilly & Associates Web Seguro PAL0103 ©1998 – RNP