Características dos servidores web

Antes que possamos entrar no processo de análise e invasão de servidores web, bem como suas aplicações, temos de olhar para os servidores web. Nos termos mais simples, um servidor web é um pacote de software que é projetado para fornecer arquivos e conteúdo através do protocolo HTTP. Esses arquivos são entregues em resposta a solicitações que vêm de clientes em forma de software.

Os servidores da Web fazem parte de uma família maior de programas baseados na Internet e na intranet que fornecem conteúdo como email, arquivos, páginas da Web e outros tipos. Embora todos os servidores da Web forneçam os mesmos tipos básicos de conteúdo, como HTML, eles podem variar em seu suporte para extensões de aplicativo e outras tecnologias. Os servidores Web são diferenciados pelo suporte ao sistema operacional, tecnologias do lado do servidor, modelos de segurança, suporte ao cliente, ferramentas de desenvolvimento e muitos outros fatores.

Atualmente, existe um número impressionante de tecnologias de servidor web, mas para manter as coisas realistas e prática, nos concentraremos apenas nos líderes de mercado: o Internet Information Server (IIS) da Microsoft e o Apache no Linux e Unix.

No mundo real, as principais tecnologias de servidor web são Apache, IIS e nginx, que é executado em vários sistemas operacionais. Para ser justo, existem outras tecnologias de servidores web, como o servidor Novell NetWare, o Servidor Web do Google e os servidores Domino da IBM. Embora nenhuma lista de servidores da Web esteja completa, na maioria dos casos ela não precisa ser porque as tecnologias que você provavelmente encontrará neste espaço tendem a ser bastante limitadas. No entanto, quando você encontrar um servidor incomum você deve estar preparado para fazer sua pesquisa.

Servidor Web Apache

Servidor web Apache é a tecnologia mais popular do seu tipo no mundo com cerca de 60 por cento dos servidores web na Internet executando o software (62 por cento com servidores derivados de Apache incluso). Embora tenha sido originalmente desenvolvido para a plataforma Unix na década de 1990, há muito tempo foi portado para outros sistemas operacionais, mas ainda está muito associado e comumente executado em Unix e Linux.

O software Apache suporta um grande número de recursos por causa de sua natureza de código aberto, longevidade, tamanho da base de instalação e o fato de que é fácil de desenvolver:

  • O Apache suporta recursos novos e adicionados ao produto principal através da integração de módulos compilados. Quando esses módulos são adicionados ao produto, eles estendem a funcionalidade principal do produto de novas maneiras. Esses módulos incluem o seguinte:
    • Autenticação
    • Suporte a SSL
    • Suporte TLS
    • Suporte de proxy
    • URL rewriter
    • Filtragem de solicitação HTTP
    • Python e suporte PerlPHP
    • Suporte de compressão
    • Detecção de intruso
    • Registro avançado

Esta é uma pequena lista de módulos suportados; Muitos mais estão disponíveis ou podem ser desenvolvidos se necessário.

  • Sites virtuais ou hospedagem, que permite que vários sites sejam hospedados em um servidor. Esta é uma característica comum entre os servidores web.
  • Suporte amigável a mensagens de erro
  • Integração com sistemas de autenticação externos
  • Suporte a certificados digitais

Além disso, o software Apache é gratuito e suporta a grande maioria das tecnologias web nativamente ou através da adição de módulos.

Quando você faz a sua investigação em um alvo e procurar pistas sobre o que está presente “por trás da cortina”, uma maneira de dizer é olhar para os processos em execução. No caso do Apache, um processo que dá a presença do servidor é o Hypertext Transfer Protocol Daemon (httpd). Este processo é tipicamente executado pelo usuário root no Linux e é usado para interceptar solicitações provenientes do HTTP e retornar uma resposta ao solicitante.

Internet Information Server (IIS)

O IIS é o servidor Web da Microsoft e está disponível desde meados da década de 1990. Atualmente em sua oitava encarnação com o Windows Server 2012, o produto evoluiu tremendamente e é parte integrante de muitas das tecnologias da Microsoft. Atualmente, o IIS 7.0 e 7.5 para Windows Server 2008 e 2008r2, respectivamente, são as versões mais comumente encontradas.

Em muitos aspectos o IIS se parece com o Apache conceitualmente, mas existem algumas diferenças. Assim como a arquitetura modular do Apache, o IIS implementa módulos que estendem e aprimoram a funcionalidade principal do produto. Os módulos que podem ser adicionados ao IIS incluem:

  • Gerenciamento de processos
  • Linguagem do lado do servidor
  • Suporte para tecnologias herdadas (principalmente para usuários do IIS 6.0)
  • Protocolos ouvintes (protocol listener)
  • Suporte de segurança
  • Suporte ao certificado
  • Suporte de autenticação
  • Suporte a banco de dados

Um dos elementos desta lista, os protocolos ouvintes, precisa de atenção extra porque ele aparecerá de forma proeminente em suas investigações futuras. Protocolos ouvintes são módulos projetados para receber solicitações de protocolos específicos, entregá-los ao IIS para processamento e, em seguida, retornar a resposta para o solicitante original. Destes, o mais utilizado é o HTTP como parte do módulo HTTP.sys. Esse listener intercepta solicitações HTTP e entrega para o IIS e, em seguida, HTTP.sys entrega a resposta de volta para o navegador ou aplicativo que iniciou a solicitação.

O arquivo HTTP.sys foi introduzido no IIS 6.0 e tem estado presente em todas as versões desde então. Apesar do nome, o ouvinte suporta não apenas HTTP mas HTTPS também.

Em qualquer versão do IIS, a partir da versão 6.0, apenas um pequeno grupo de listeners e outros componentes são instalados por padrão. Isto é em resposta as alterações que surgiram até a versão 5 do produto. Antes da versão 6, o produto não era considerado modular e enviado com todos os serviços essencialmente instalados e prontos para serem usados.

Sugestões de livros:

Sou bacharel em Sistemas de Informação pela Estácio de Sá (Alagoas), especialista em Gestão Estratégica da Tecnologia da Informação pela Univ. Gama Filho (UGF) e pós-graduando em Gestão da Segurança da Informação pela Univ. do Sul de Santa Catarina (UNISUL). Certificações que possuo: EC-Council CEH, CompTIA (Security+, CySA+ e Pentest+), EXIN (EHF e ISO 27001), MCSO, MCRM, ITIL v3. Tenho interesse por todas as áreas da informática, mas em especial em Gestão e Governança de TI, Segurança da Informação e Ethical Hacking.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *