Embora custo, tempo de atividade, suporte ao cliente e escalabilidade sejam fatores críticos a serem considerados ao implantar um serviço da Web, deixar a segurança nos bastidores é uma prática ruim e pode ser desastrosa para o seu negócio. Como os invasores usam vulnerabilidades em sites e aplicativos para roubar informações confidenciais e arruinar empresas, é importante entender a importância de seus dados e as ferramentas que você pode usar para protegê-los. Proteger seu serviço ou aplicativo da Web contra hackers pode garantir que você continue avançando sem problemas com seu plano de negócios para usar seus dados com segurança para simplificar operações, melhorar o atendimento ao cliente, personalizar campanhas de marketing e aumentar receitas e lucros. Uma parte integrante da hospedagem de serviços da web é conhecer os métodos básicos de proteção. Este artigo discute os serviços da web, como eles funcionam, seus pontos fracos e como protegê-los durante o teste de penetração.
O que é um webservice ?
Um Web Service é um software que consiste em um sistema de mensagens XML padronizado que usa a Internet para facilitar a comunicação entre aplicativos da Web.
Como todas as comunicações de serviços da Web estão no formato XML, elas não estão limitadas a nenhum sistema operacional ou linguagem de programação, o que facilita a comunicação entre plataformas entre aplicativos que usam Windows, Unix, Perl, Python e Java.
Padrões abertos como TCP/IP, HTTP, Java, HTML e XML são a base dos serviços da Web.
A ampla adoção de serviços da Web em arquiteturas de nuvem, governamentais ou orientadas a serviços levou a uma ampla gama de problemas de segurança, como ataques de injeção, phishing, ataques de negação de serviço (DoS) e muito mais. Vale a pena saber que o teste de penetração é uma abordagem prática para identificar e corrigir vulnerabilidades enquanto reduz a superfície geral de ataque dos serviços da web.
Como funcionam os serviços da web?
Os serviços da Web usam XML para rotular dados, SOAP para passar mensagens e WSDL para descrever a disponibilidade do serviço. Para uma melhor compreensão, vamos examinar a anatomia de um serviço da Web baseado em SOAP. Aqui, os serviços da Web contêm vários componentes que suportam o padrão de comunicação. Quando qualquer consumidor de serviço deseja usar um serviço da Web, ele precisa solicitá-lo ao provedor de serviços.
Para dados XML no formato SOAP, o consumidor do serviço passa solicitações ao provedor de serviços para quaisquer serviços da Web especificados no arquivo WSDL.
Os provedores de serviço fornecem aos consumidores de serviço um arquivo WSDL que especifica como acessar os serviços da web.
Se o consumidor do serviço não conhecer nenhum provedor de serviços da web, ele procurará um UDDI que mantenha uma lista de provedores de serviços para um determinado serviço da web.
Componentes de serviço
Um serviço web consiste basicamente em dois componentes:
Consumidor de serviço. Um consumidor de serviço é um cliente que solicita determinados serviços da web.
Provedor de Serviços . O provedor de serviços é o servidor que recebe solicitações e responde ao cliente.
Anatomia dos serviços
As estruturas de serviços da Web são uma combinação de XML e HTTP. Sua anatomia pode consistir nos quatro elementos a seguir:
XML
Extensible Markup Language (XML) é a linguagem usada para se comunicar na forma de mensagens SOAP.
SABÃO
Simple Object Access Protocol (SOAP) é o formato usado para enviar solicitações XML. Aqui, usando o protocolo SOAP, o cliente pode enviar uma requisição de serviço para o servidor do provedor de serviços web, que responderá com o mesmo protocolo com o serviço solicitado. As mensagens SOAP consistem em um elemento Root Envelope que especifica o cabeçalho e o corpo da mensagem. O cabeçalho SOAP opcional pode conter metadados ou informações específicas do aplicativo sobre mensagens SOAP, incluindo atributos para lidar com a diretiva. O corpo SOAP contém os dados XML reais ou a mensagem SOAP armazena as operações e os parâmetros do serviço da web. A estrutura de mensagem SOAP específica é para comunicação com um serviço da web, e o Web Service Description Language (WSDL) descreve as informações de ligação.UDDI
Universal Description, Discovery, and Integration (UDDI) contém uma lista de provedores de serviços que se registraram para um determinado serviço da web, de modo que consumidores ou clientes de consulta possam encontrar todos os provedores de serviços para qualquer serviço da web em UDDI.
WSDL
Um arquivo WSDL (Web Services Description Language) consiste em seções que contêm todas as informações necessárias sobre o serviço da Web em teste.
A primeira seção descreve a interface lógica oferecida pelo provedor de serviços da web. O segundo fornece aos clientes informações de endpoint, como números de porta HTTP e instruções sobre como compor solicitações de serviços da Web, como como a mensagem SOAP deve ser apresentada e entregue
Teste de penetração
de serviços da Web Proteger os serviços da Web é essencial para evitar que invasores interceptem os dados transmitidos entre o usuário e o serviço da Web.
Esses ataques ocorrem principalmente porque os hackers podem explorar vulnerabilidades em seu serviço da Web e ignorar seus controles de aplicativos.
O teste de penetração é uma ótima solução para identificar serviços e aplicativos problemáticos com possíveis vulnerabilidades e configurações incorretas.
Aqui estão alguns dos vetores de ataque comuns que os invasores usam para obter acesso aos seus aplicativos da web:
Injeção de comando SQL/OS
problemas de autorização
enumeração WSDL
Controle de acesso quebrado
Xpath Injection
falsificação de sessão
força bruta
Passagem de diretório
Substituição de conteúdo
Divulgação de informação
Pré- requisitos
do teste de penetração de serviços da Web Antes dos serviços da Web de teste de penetração, você precisa ter um arquivo de API de amostra, como WSDL ou SOAP, solicitações e respostas de amostra para entender valores e analisar dados e pontos de entrada/URLs. Abaixo estão os requisitos específicos para testes de caneta de caixa preta e caixa cinza.
Você precisa de um arquivo WSDL (Web Service Description Language) para executar um teste de penetração de API de serviço da Web de caixa preta.
Pré-requisitos do teste de penetração de serviço da Web de caixa cinza: Penetrar em uma
API de serviço da Web de caixa cinza requer solicitações de amostra e respostas para métodos junto com um arquivo WSDL.
Nossos testes de penetração de serviço da web geralmente consistem nas seguintes etapas
Reunir
informações idiotas do Google para descobrir serviços da web para sites hospedados em uma rede
UDDI
Descobrir um serviço da web na ausência de um WSDL fornecido
Descobrir tipos de autenticação
Ferramentas para teste de penetração de serviço da web
Ferramentas executar um papel importante na realização de testes práticos de penetração
serviço da web
Ferramentas executar um papel importante na realização de testes práticos de penetração. Temos dois tipos de ferramentas de teste, automatizadas e manuais, para realizar testes de penetração de segurança de API.
Ferramentas de teste automatizadas
SoapUI Pro
OWASP ZAP
IBM AppScan
HP Webinspect
WSBang
WSMap
WSDigger
Hand Tools
Soap UI Free
Burp Suite Pro
Postman (com arroto)
Extensões
SAML Editor SAML
Codificador/Decodificador
WSDL Wizard
Wsdler
SOA Client
Casos de teste encontrados em serviços da Web
Listados abaixo estão alguns dos vetores de ataque que o teste de penetração ajuda a identificar e mitigar.
Fuzzing
XSS /SQLi/ Warped XML
File Upload
Xpath Injection
XML Bomb (DoS)
Authentication Based
Attacks Replay Attacks
Session Fixation
XML Signature Wrapping
Tempo limite de sessão
Suporte para cifras de host/certificados válidos/suporte para protocolos
Suporte para algoritmos de hash
Deixar esses casos de teste de serviço da Web sem supervisão pode aumentar a superfície de ataque de seus sites e aplicativos.
É uma prática crítica realizar verificações periódicas para eliminar e mitigar tais ameaças. SOAP UI Pro é uma ferramenta robusta que o ajudará a identificar rapidamente todas as explorações que infectam seus sistemas.
Como digitalizar com SOAP UI
A execução de uma varredura automatizada usando a interface do usuário SOAP fornece uma visualização em primeira mão da segurança dos serviços da Web envolvidos. Vamos dar uma olhada nas etapas e na abordagem que o SOAP UI Pro usa para fornecer uma varredura precisa e abrangente do seu serviço da web.
Etapa 1: Execute o aplicativo SOAP UI e crie um caso de teste funcional.
Etapa 2: crie um novo teste de segurança no menu suspenso TestSuite simples.
Etapa 3: selecione o modo "Auto" para gerar verificações de segurança padrão e asserções para as etapas de teste em seu TestCase e clique no botão "Avançar".
Etapa 4: Clique em OK para criar um teste de segurança com a configuração descrita e abra a janela Teste de segurança:
Passo 5: Agora execute o teste de segurança.
Etapa 6 : Assim que a verificação for concluída, o SOAP UI Pro fornecerá um resumo com uma visão geral detalhada de cada etapa do teste, as verificações de segurança realizadas em cada uma delas e as configurações e asserções. Com esta saída, você pode estabelecer onde está vulnerável e criar relatórios de avaliação para sua avaliação.
Você pode praticar testes de penetração de VMS (sistema operacional de memória virtual) para encontrar vulnerabilidades em serviços da Web com ferramentas como OWASP Mutillidae, OWASP WebGoat, DVWS e PenTester Lab: Axis2 Web Service e Tomcat Manager.