PAL0103
©1998 – RNP
Web Seguro
Centro de Atendimento a Incidentes de Segurança - CAIS
Web Seguro
Configurando um servidor WWW seguro
Novembro de 1998
PAL0103
PAL0103
©1998 – RNP
Web Seguro
Índice:
• Introdução
• Técnicas recomendadas
• Recomendações Gerais
• Problemas de segurança com alguns
servidores WWW
• Referências
PAL0103
©1998 – RNP
Web Seguro
Introdução
Introdução
• Qual é o cenário?
• O que fazer?
PAL0103
©1998 – RNP
Web Seguro
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!!
PAL0103
©1998 – RNP
Web Seguro
Introdução
O que fazer?
• Pagar um “servidor seguro”;
• Aplicar técnicas recomendadas para tornar o seu servidor
mais seguro;
• Combinação de ambos.
PAL0103
©1998 – RNP
Web Seguro
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
PAL0103
©1998 – RNP
Web Seguro
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
PAL0103
©1998 – RNP
Web Seguro
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
PAL0103
©1998 – RNP
Web Seguro
Técnicas recomendadas
Estrutura de diretórios: Permissões
Esquema 1:
drwxr-xr-x 5 www www 1024 Aug 8 00:01 cgi-bin/
drwxr-x--- 2 www www 1024 Jun 11 17:21 conf/
-rwx------ 1 www www 109674 May 8 23:58 httpd
drwxrwxr-x 2 www www 1024 Aug 8 00:01 htdocs/
drwxrwxr-x 2 www www 1024 Jun 3 21:15 icons/
drwxr-x--- 2 www www 1024 Aug 8 00:01 htdocs/
PAL0103
©1998 – RNP
Web Seguro
Técnicas recomendadas
Estrutura de diretórios: Permissões (cont.)
Esquema 2:
drwx--x--x 5 root www 1024 Aug 8 00:01 cgi-bin/
drwx------ 2 root www 1024 Jun 11 17:21 conf/
-rwx------ 1 root www 109674 May 8 23:58 httpd
drwxr-xr-x 2 root www 1024 Aug 8 00:01 htdocs/
drwxr-xr-x 2 root www 1024 Jun 3 21:15 icons/
drwx------ 2 root www 1024 Aug 8 00:01 htdocs/
PAL0103
©1998 – RNP
Web Seguro
Técnicas recomendadas
Estrutura de diretórios: arquivos de configuração
• Permissões:
-rw------- 5 root wheel 954 Aug 6 00:01
access.conf
-rw------- 2 root wheel 2840 Aug 6 17:21 httpd.conf
-rw------- 1 root wheel 3290 Aug 6 23:58 myme.types
-rw------- 2 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)
PAL0103
©1998 – RNP
Web Seguro
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)
PAL0103
©1998 – RNP
Web Seguro
Técnicas recomendadas
Scripts CGI com conhecidos furos de segurança
Script Versões Afetadas Uso
Count.cgi 1.0-2.3 Contador de página
webdist.cgi 1.0-1.2 Distribui software
php.cgi Até 2.0 Ling. de scripts
nph-test.cgi Todas ?
nph-publish 1.0-1.1 ?
AnyForm 1.0 Cria formulários
FormMail 1.0 Envia dados/e-mail
phf Todas Phone Book
PAL0103
©1998 – RNP
Web Seguro
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
PAL0103
©1998 – RNP
Web Seguro
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
PAL0103
©1998 – RNP
Web Seguro
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
comuns
PAL0103
©1998 – RNP
Web Seguro
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.
PAL0103
©1998 – RNP
Web Seguro
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)
PAL0103
©1998 – RNP
Web Seguro
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
PAL0103
©1998 – RNP
Web Seguro
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
PAL0103
©1998 – RNP
Web Seguro
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
PAL0103
©1998 – RNP
Web Seguro
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

Configurando um servidor

  • 1.
    PAL0103 ©1998 – RNP WebSeguro Centro de Atendimento a Incidentes de Segurança - CAIS Web Seguro Configurando um servidor WWW seguro Novembro de 1998 PAL0103
  • 2.
    PAL0103 ©1998 – RNP WebSeguro Índice: • Introdução • Técnicas recomendadas • Recomendações Gerais • Problemas de segurança com alguns servidores WWW • Referências
  • 3.
    PAL0103 ©1998 – RNP WebSeguro Introdução Introdução • Qual é o cenário? • O que fazer?
  • 4.
    PAL0103 ©1998 – RNP WebSeguro 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!!
  • 5.
    PAL0103 ©1998 – RNP WebSeguro Introdução O que fazer? • Pagar um “servidor seguro”; • Aplicar técnicas recomendadas para tornar o seu servidor mais seguro; • Combinação de ambos.
  • 6.
    PAL0103 ©1998 – RNP WebSeguro 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
  • 7.
    PAL0103 ©1998 – RNP WebSeguro 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
  • 8.
    PAL0103 ©1998 – RNP WebSeguro 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
  • 9.
    PAL0103 ©1998 – RNP WebSeguro Técnicas recomendadas Estrutura de diretórios: Permissões Esquema 1: drwxr-xr-x 5 www www 1024 Aug 8 00:01 cgi-bin/ drwxr-x--- 2 www www 1024 Jun 11 17:21 conf/ -rwx------ 1 www www 109674 May 8 23:58 httpd drwxrwxr-x 2 www www 1024 Aug 8 00:01 htdocs/ drwxrwxr-x 2 www www 1024 Jun 3 21:15 icons/ drwxr-x--- 2 www www 1024 Aug 8 00:01 htdocs/
  • 10.
    PAL0103 ©1998 – RNP WebSeguro Técnicas recomendadas Estrutura de diretórios: Permissões (cont.) Esquema 2: drwx--x--x 5 root www 1024 Aug 8 00:01 cgi-bin/ drwx------ 2 root www 1024 Jun 11 17:21 conf/ -rwx------ 1 root www 109674 May 8 23:58 httpd drwxr-xr-x 2 root www 1024 Aug 8 00:01 htdocs/ drwxr-xr-x 2 root www 1024 Jun 3 21:15 icons/ drwx------ 2 root www 1024 Aug 8 00:01 htdocs/
  • 11.
    PAL0103 ©1998 – RNP WebSeguro Técnicas recomendadas Estrutura de diretórios: arquivos de configuração • Permissões: -rw------- 5 root wheel 954 Aug 6 00:01 access.conf -rw------- 2 root wheel 2840 Aug 6 17:21 httpd.conf -rw------- 1 root wheel 3290 Aug 6 23:58 myme.types -rw------- 2 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)
  • 12.
    PAL0103 ©1998 – RNP WebSeguro 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)
  • 13.
    PAL0103 ©1998 – RNP WebSeguro Técnicas recomendadas Scripts CGI com conhecidos furos de segurança Script Versões Afetadas Uso Count.cgi 1.0-2.3 Contador de página webdist.cgi 1.0-1.2 Distribui software php.cgi Até 2.0 Ling. de scripts nph-test.cgi Todas ? nph-publish 1.0-1.1 ? AnyForm 1.0 Cria formulários FormMail 1.0 Envia dados/e-mail phf Todas Phone Book
  • 14.
    PAL0103 ©1998 – RNP WebSeguro 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
  • 15.
    PAL0103 ©1998 – RNP WebSeguro 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
  • 16.
    PAL0103 ©1998 – RNP WebSeguro 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 comuns
  • 17.
    PAL0103 ©1998 – RNP WebSeguro 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.
  • 18.
    PAL0103 ©1998 – RNP WebSeguro 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)
  • 19.
    PAL0103 ©1998 – RNP WebSeguro 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
  • 20.
    PAL0103 ©1998 – RNP WebSeguro 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
  • 21.
    PAL0103 ©1998 – RNP WebSeguro 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
  • 22.
    PAL0103 ©1998 – RNP WebSeguro 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