Protegendo o ESB: Conceitos e técnicas de segurança para empresas de serviços web críticos

As empresas estão a cada dia que passa mais dependentes dos processos automatizados e procedimentos úteis para prestação de serviços. O grande problema está na falta de preocupação com a segurança desses sistemas durante a implementação de um ESB. O artigo tem o objetivo de tratar de aspectos envolvidos na segurança de um serviço web.

[ Hits: 17.886 ]

Por: Gleudson Junior em 05/04/2010 | Blog: http://www.gleudsonjunior.blogspot.com/


Ameaças e vulnerabilidades em serviços Web críticos



Neste tópico veremos como delinear e mitigar as potenciais ameaças que rodeiam um serviço Web, com conceitos relativos à:
  • Confidencialidade do serviço Web crítico: tem como premissa garantir que as informações trafegadas em um serviço Web sejam vistas apenas pelas partes que forem autorizadas a vê-las.
  • Integridade do serviço Web crítico: tem como premissa garantir que as informações de um serviço Web não possam ser corrompidas ou adulteradas por partes mal-intencionadas.
  • Disponibilidade do serviço Web crítico: tem como premissa garantir que os serviços Web estejam disponíveis quando for preciso, fornecendo assim os níveis adequados para esses serviços.

Potenciais ameaças a confidencialidade

As ameaças a confidencialidade dos serviços Web estão ligadas a capacidade que estes serviços têm de ser usados para transmitir informações sensíveis entre os sistemas. Estas informações também podem está trafegando em redes não confiáveis, por exemplo: rede pública. A Internet! Que está sempre exposta a atividades potencialmente maliciosas. Se a informação for considerada como valiosa para pessoas mal-intencionadas, é provável que estas sejam alvo de ataques. As informações específicas a cerca da confidencialidade que despertam ataques podem ser:
  • Informações de faturamento: nos dias de hoje, onde a necessidade de comunicação é essencial, onde registros de chamadas e informações de faturamento são de grande valia para as empresas, estas informações tomam-se alvos potenciais para pessoas maliciosas.
  • Pessoais e identificação do cliente: estas informações podem ser atraentes para pessoas mal-intencionadas, que desejam promover roubo ou fraude da identificação. Estas informações são provavelmente ligadas às leis de privacidade.
  • Valiosa para empresa e de propriedade intelectual: informações como relatórios financeiros e ate mesmo o código fonte podem ser atraente para pessoas mal-intencionadas.

a. Os dados são divulgados em trânsito para partes mal-intencionadas:

As comunicações entre serviços Web e outros sistemas de informação e serviços podem está trafegando por redes publicas não confiável. Estas informações tornam-se vulneráveis a ataques como:
  • Eavesdropping: uso de portas espalhadas em equipamentos de rede, para utilização de brechas na rede, através de monitoramento de comunicações Wireless inseguras.
  • Erro humano: regras mal configuradas no Firewall, acompanhadas por fracos controles de criptografia implementadas no projeto.
  • Man-in-the-Middle Attacks (Ataques indiretos): em que os arquivos e certificados podem ser utilizados pelo atacante.

b. Os dados são divulgados pelo conector para partes mal-intencionadas:

Os conectores geralmente estão sujeitos a vulnerabilidades e fraquezas como qualquer outro aplicativo. Interfaces que fazem a ligação e lógica dos sistemas podem ser alvos potenciais de ataques como: buffer-overflow*, cross-site scripting**, injection, erro humano (problema na configuração de controles de acessos).

* Buffer-overflow: transbordamento de dados. Acontece quando o tamanho do buffer ultrapassa sua capacidade de armazenamento.
** Cross-sitescripting: é um tipo de vulnerabilidade encontrada normalmente em aplicações Web.

Mitigar os riscos da confidencialidade

Alguns controles de segurança tendem a reduzir os riscos para confidencialidade dos serviços Web:
  • Controles de acesso adequado: assegurar que os controles de segurança sejam implementados para garantir a confiabilidade dos serviços Web.
  • Isolamento do domínio/Segregação: garantir que os componentes sejam logicamente segregados e isolados em domínios de segurança distintos, com base nos níveis de confiança. Estas segregações podem ocorrer tanto no âmbito da rede com nos hosts.

    No âmbito de rede, isto pode envolver a utilização de firewalls fornecendo analise de pacotes e controles de acesso. Muitas empresas hoje em dia oferecem arquiteturas XML/SOAP baseadas em firewalls que realizam inspeção profunda de pacotes de comunicação SOAP. Em uma perspectiva mais profunda isso pode envolver o uso de virtualização para estes conectores ou hospedagem em separado para que a infra-estrutura dos sistemas possa usá-lo.

  • Fortes controles de criptografia para rede de comunicação: a utilização de controles de criptografia para garantir a confidencialidade das informações transmitidas através dos serviços Web. Isto envolve a utilização de protocolos como TSL* (HTTPS) para fornecer autenticação e encriptação de comunicações ponto a ponto. Estes serviços Web fornecem suporte para conectores que usam o protocolo HTTPS** como transporte. É importante garantir que os processos de criptografia e algoritmos sejam fortes e não vulneráveis a ataques.
  • Uso de autenticação adequada: o processo de estabelecimento de conexão e a determinação da validade de um sistema ou um serviço legado. Processos de autenticação que são usados nesses serviços, variam de usuário/senha para o cliente e certificados de autenticação implantados em nível de servidor.

* TLS: acrônimo de Transport Layer Security - Segurança na camada de transporte.
** HTTPS: acrônimo de Hiper Text Transfer Protocol Secure.

Potenciais ameaças a integridade

Os serviços Web podem se usados para transmitir informações entre os sistemas e serviços em torno de alguns dos principais processos de negócios ou atividades em que a empresa possui alta dependência, podendo haver um impacto considerável para o negocio, se tal informação for corrompida ou adulterada. As informações específicas e potencialmente vulneráveis para este caso podem ser:
  • Informações sobre classificação e gerencia de faturamento: serviços Web podem ser destinados para ocultar ou fraudar outras atividades ilegais.
  • Informações-chave usadas para autenticação: as informações utilizadas para federar identidade em sistemas de gestão podem ser destinadas para implantação de Backdoors* nesses sistemas.

a. A informação é alterada ou danificada em transito por partes mal-intencionadas:

As comunicações entre serviços Web e outros conectores de sistemas de informação tendem a transmitir informações através de redes publicas e, ou, não confiáveis. Estas comunicações podem ser tornar vulneráveis e interessantes para pessoas mal-intencionadas que pretendem interceptar e modificar as informações contidas no serviço, por exemplo: utilizando de um ataque Man-in-the-Middle com forma de interceptar a comunicação.

b. A informação é alterada ou danificada por um ataque ao conector por partes mal-intencionadas:

Conectores estão sujeitos a vulnerabilidades e fraquezas como qualquer outro aplicativo. Interfaces de conexão e lógica podem se tornar vulneráveis e passíveis de ataques de injeção e, ou, erro humano causados por problemas na configuração dos controles de acessos.

* Backdoors: também conhecida como porta dos fundos. É uma falha de segurança que pode existir em um programa de computador ou sistema operacional.

Mitigar os riscos da integridade

Alguns controles de seguranças podem ser adotados para mitigar os riscos para integridade dos serviços Web:
  • Controles de não - repudio: garantir que uma parte não poça repudiar, ou refutar sua participação em um processo de comunicação ou transação. Controles não - repudio que possam ser utilizados para serviços Web podendo ser utilizados através de assinaturas digitais para informações sensíveis ou garantindo registro de eventos.
  • Processos de autorização robusta: é o processo de permitir ou negar o acesso a determinada pessoa, antes mesmo que algo possa ser modificado. Este controle é diferente de controles de acesso que envolve o processo de determinar se uma pessoa pode ter acesso a determinados níveis do sistema.

    Serviços Web podem fornecer uma serie de flexibilidade em torno do processo de autorização. Algumas implementações de serviços Web nos proporcionam a capacidade de gerenciar e automatizar o processo de autorização, baseado geralmente por atributos, parâmetros e contextos específicos.

    Esses atributos descrevem detalhadamente o processo da solicitação de acesso, os parâmetros são condições de base para este ambiente web, onde deve ser "true" antes que o acesso seja autorizado e o contexto é o estado real do ambiente no momento da solicitação de acesso. Este tipo de controle pode ser uma boa ferramenta para garantia da integridade das informações e flexibilidade do serviço.

  • Validação de entrada: garantir que as informações processadas, armazenadas ou transmitidas por um conector estejam limpas, corretas e úteis. Normalmente, isso envolve a validação dos dados de entrada com informações já definidas, por exemplo: tipo esperado, tamanho, formato, intervalo. A validação na entrada pode reduzir os riscos com informações que tenham sido deliberadamente corrompidas.

Potenciais ameaças a disponibilidade

A disponibilidade dos serviços Web é crucial para o processo principal que envolve as atividades do negocio. Disponibilidade é geralmente a grande preocupação das empresas que adotam esse termo como principal diferencial para manter uma segurança financeira considerável.

O impacto real em que os serviços Web tentam garantir disponibilidade, atingem diretamente às receitas da empresa. Ataques a disponibilidade também são mais suscetíveis em causar danos à imagem das organizações, devido ao fato deles serem públicos por natureza.

É extremamente difícil para uma empresa esconder o fato de que um serviço básico ou um sistema não se encontra disponível. Os principais pontos de um serviço Web que tendem a serem alvos de ataques são:
  • Faturamento, pagamento ou serviços de classificação: pessoas maliciosas podem querer dificultar ou impedir a conclusão de algum processo que gire em torno do faturamento da empresa.
  • Serviços de apoio ao cliente: pessoas maliciosas podem querer dificultar ou impedir a capacidade que o negocio tem de ser capaz de sustentar a sua base de clientes.

a. Objetivos maliciosos partindo da rede de um serviço Web:

As comunicações entre serviços Web e outros conectores e sistemas de informação podem ser transportadas através de redes publicas e, ou, não confiáveis. Estas redes são geralmente suscetíveis de compartilhamento por certo numero de usuários. Estas comunicações podem ser vulneráveis a:
  • Ataques de negação de serviço (incluindo DDoS*): ataques maliciosos tendo como alvo os serviços essenciais aos serviços de rede, exemplo: inundações na largura de banda e segmentos de rede, ou ataques que oprimem um roteador que oferecem a rede serviços necessários, com uma negação deliberada de ataque de serviço.
  • Negação de serviço em outras atividades maliciosas: upstream nos serviços de internet, onde o provedor tem a largura de sua banda limitada devido a um surto de vírus, ou através de outras partes que tem como alvo um ataque de negação de serviço, em determinados serviços que compartilham os mesmo serviços de rede que o serviço Web depende.

b. Objetivos maliciosos tendo como meta o conector de um serviço Web:

Conectores estão sujeitos a vulnerabilidade e fraquezas como qualquer outro aplicativo. Os conectores são alvos atrativos que proporcionam o acesso potencial para informações do sistema, onde o mesmo se conecta, ou no roteamento / ESB. O conector pode ser vulnerável a:
  • Ataques direto de negação de serviço para sobrepujar o próprio conector: um ataque no estilo Syn Flood**, onde o conector torna-se incapaz de gerir o numero de conexões ou sessões abertas, ou um ataque sobre a aplicação do conector visando explorar uma vulnerabilidade na forma de processos de entrada.
  • Ataques de negação de serviço no sistema de informação por trás do conector: este ocorre quando os processos do conector transmitem dados através do sistema com taxas bem mais elevadas do que ele pode suportar.
  • Ataques de negação de serviço sobre o mecanismo de roteamento / ESB: pessoas maliciosas tentam esmagar o motor de roteamento, na tentativa de atacá-lo através de outros sistemas.

* DDoS: acrônimo de Distributed Denial of Service. É um ataque de negação de serviço.
** Syn Flood: É uma técnica de ataque para negação de serviço, no qual o atacante envia uma seqüência de requisições SYN.

Mitigar os riscos para disponibilidade

Alguns controles de segurança podem reduzir os riscos à disponibilidade dos serviços Web:
  • Definir limitação de rede: colocar limites de processamento nos serviços essenciais da rede, para garantir que os serviços da Web não sejam vulneráveis a um ataque de negação de serviço ou um evento malicioso. Áreas onde podemos limitar efetivamente as taxas são: Firewalls, roteadores, e até mesmo conectores. Muitos desses conectores têm a capacidade de prever limites no numero de sessões que poderá gerenciar.
  • Limitação na taxa de aplicação: colocar limites de processamento no tratamento de pedidos, para garantir que os serviços não sejam vulneráveis a um ataque de negação de serviço ou um evento. Muitos conectores fornecem a capacidade de limitar e controlar a quantidade de tratamento de aplicação que será feito para uma sessão particular ou uma conexão. Embora isso não incentive implementação de controles de segurança dentro do roteamento / ESB, os limites efetivos de taxa podem ser aplicados de forma bastante eficazes para o tratamento no âmbito do mecanismo de roteamento / ESB.
  • Planejamento de capacidade: projetar os serviços Web, os sistemas, as redes e os serviços como o objetivo de comportar capacidade suficiente para processar transações mesmo durante períodos de excesso de carga. Tendo essa capacidade extra, ocorrerá um ganho de tempo para reagir a um ataque de negação de serviço.
  • Segurança no monitoramento de processos de serviços: as áreas que são vulneráveis a um ataque de negação de serviço são normalmente os pontos de estrangulamento da rede. Elementos tais como firewall e roteadores são importantes para monitoramento, na outra ponta como a mesma importância encontra-se os conectores do serviço Web, os motores de roteamento / ESB, e processos de Back-End* em sistemas ligados aos conectores.

    É uma boa ideia definir limites com base no planejamento de capacidade durante a criação do serviço Web. Embora o monitoramento seja relativo, ele pode ser uma ferramenta muito eficaz para limitar danos de um ataque de negação de serviço.

* Back-End: é um termo generalizado que se refere a etapa final do processo.

Página anterior     Próxima página

Páginas do artigo
   1. Resumo / Abstract
   2. Ameaças e vulnerabilidades em serviços Web críticos
   3. Outros controles de segurança de serviços Web críticos
Outros artigos deste autor

Proxy Squid com autenticação + Sarg + Webmin

Criando dispositivos RAID via software no Linux

GIT: Controle de versões distribuído para projetos de software

Transformando seu Ubuntu Hardy em OSX Leopard

Leitura recomendada

Monitorando as conversas do MSN

Ajustes finos no Bind (servidor DNS)

Apache2 + PHP5 com ModSecurity no Debian Squeeze

Traduzindo plugins do OpenVAS/Nessus para português

Distribuição CAINE Linux para forense digital: em Live-CD, pendrive, máquina virtual ou direto em seu Ubuntu 10.04

  
Comentários
[1] Comentário enviado por elvanineto em 06/04/2010 - 14:59h

O certo para o nome do artigo seria "Protegendo o ESB: Técnicas conceituais de segurança para empresas de serviços web críticos".

Bom artigo!


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts