Compreendendo os fundamentos da segurança de API

Compreendendo os fundamentos da segurança de API. O abuso de API é um problema contínuo e deve aumentar nos próximos anos.

Este é o primeiro de uma série de artigos, originalmente publicado no site HelpNet Security, que apresenta e explica ameaças, desafios e soluções de segurança de interfaces de programação de aplicativos ( API ) para participantes de desenvolvimento, operações e proteção de software.

Objetivo da série de artigos

Neste anos todos de Blog Minuto da Segurança um tema que nos faltava abordar e que rotineiramente são esquecidos nos sites de segurança, e também por muitos profissionais de SI, é o tema de Segurança de APIs. Desta forma, buscamos sobre o tema encontramos diversos artigos muito bem escritos e publicados pelo HelpNet Security e outros sites de referência confiável e resolvemos trazer para os leitores do nosso blog na intenção de colaborar com nossa comunidade.

Pesquisar a ampla gama de alternativas de segurança de API pode ser confuso – até mesmo para especialistas experientes. O HelpNet Security editou a série de artigos com o objetivo de ajudar todos os tipos de leitores a entender melhor os prós e os contras das várias abordagens modernas para proteger APIs de riscos de segurança cibernética. O material destina-se a ajudar as equipes de segurança corporativa e de desenvolvimento de software a desenvolver e manter uma filosofia de proteção consistente.

O leitor de destino inclui desenvolvedores de software que dependem e usam APIs todos os dias, bem como gerentes técnicos que podem ser responsáveis ​​pela segurança de API em suas organizações. O leitor-alvo também inclui, no entanto, indivíduos de mentalidade técnica que possuem pouca experiência com APIs, mas que, no entanto, estão interessados ​​nos aspectos de segurança deste importante problema.

Introdução às APIs

O usuário típico de serviços de rede e Internet tende a pensar nas interfaces de computador em termos de telas, teclados, monitores e semelhantes. Essas interfaces são os meios visíveis pelos quais os sistemas trocam informações com usuários humanos e têm avançado rapidamente nos últimos anos. A tela sensível ao toque da Apple, por exemplo, surgiu apenas uma década atrás, e uma geração de jovens mal se lembra de como era o mundo antes de tal capacidade útil existir.

Mas existe outro tipo de interface que existe na computação, talvez mais oculta para o usuário comum. Esse outro tipo de interface é como os programas de software se comunicam entre si. Por muitos anos, esse processo foi mal especificado, com programadores inventando protocolos para algo chamado comunicação entre processos ( IPC ). Um dos primeiros sistemas operacionais da Bell Laboratories chamado Unix , que agora serve como base para o Apple iOS e Android, tornou os projetos IPC mais fáceis, mas eles não eram padronizados.

Em 2000, a indústria decidiu que essas interfaces de software para software precisavam se tornar mais abertas e padronizadas. Essa decisão técnica se tornou a gênese do que agora chamamos de interface de programação de aplicativo ou, mais comumente, API. Reconheça que uma API fornece uma interface padrão por meio da qual dois programas de software, também chamados comumente de processos, podem se comunicar, compartilhar mensagens ou memória compartilhada gerenciada.

Mais especificamente, uma API é uma interface que disponibiliza serviços de software para cargas de trabalho ou aplicativos para comunicação bidirecional e compartilhamento de mensagens. As APIs também são comumente usadas para compartilhar memória entre diferentes processos. Uma API é sem estado por natureza e geralmente inclui todas as informações necessárias para concluir uma transação, ao contrário de um formulário da web que pode exigir várias transações para processos como o registro do usuário.


IPC do sistema operacional Unix

Há cerca de meio século, os pesquisadores Ken Thomson e Dennis Ritchie, da Bell Laboratories, iniciaram um projeto para construir um sistema operacional multitarefa para uso dentro da AT&T. Apesar desses objetivos originais relativamente modestos, o chamado software Unix e a filosofia de design associada que eles produziram serviram como base técnica para praticamente todos os sistemas operacionais comerciais de sucesso desde então. Linux e Android são derivados diretos, enquanto iOS e Windows são fortemente influenciados pelo Unix.

Uma consideração importante de design para o sistema operacional Unix envolveu a necessidade de criar um mecanismo IPC que permitiria o compartilhamento de dados e a passagem de mensagens entre programas de computador. Thompson e Ritchie foram influenciados por muitos conceitos técnicos em rápida evolução que estavam sendo projetados na época na comunidade de ciência da computação. Isso incluiu o surgimento de modelos produtor-consumidor, bem como novos métodos de computação distribuída.

A abordagem IPC do Unix pode ser vista como uma tentativa inicial de resolver muitos dos problemas agora cobertos pelas APIs. Ambos estão preocupados com a necessidade de modularizar, padronizar e simplificar a maneira como os dados ou mensagens são compartilhados entre os processos de cooperação. A grande diferença, obviamente, é que as APIs modernas se beneficiam da escala massiva que vem com a Internet. Os esforços originais do Unix eram locais e específicos do sistema operacional.

Como funcionam as APIs?

As APIs permitem que seu produto ou serviço se comunique com outros produtos e serviços sem precisar saber como eles são implementados. Isso pode simplificar o desenvolvimento de aplicativos, economizando tempo e dinheiro. Quando você está projetando novas ferramentas e produtos – ou gerenciando os existentes – as APIs oferecem flexibilidade; simplificação do design , administração e uso; e oferecem oportunidades de inovação.
Às vezes, as APIs são consideradas contratos, com documentação que representa um acordo entre as partes: Se a parte 1 enviar uma solicitação remota estruturada de uma maneira específica, é assim que o software da parte 2 responderá.
Como as APIs simplificam a forma como os desenvolvedores integram novos componentes de aplicativos em uma arquitetura existente, elas ajudam as equipes de negócios e de TI a se entenderem. As necessidades de negócios muitas vezes mudam rapidamente em resposta aos mercados digitais em constante mudança, onde novos concorrentes podem mudar toda uma indústria com um novo aplicativo. Para permanecer competitivo, é importante apoiar o rápido desenvolvimento e implantação de serviços inovadores. O desenvolvimento de aplicativos nativos da nuvem é uma maneira de aumentar a velocidade de desenvolvimento e depende da conexão de uma arquitetura de aplicativo de microsserviços por meio de APIs.
APIs são uma maneira simplificada de conectar sua própria infraestrutura por meio do desenvolvimento de aplicativos nativos da nuvem, mas também permitem que você compartilhe seus dados com clientes e outros usuários externos. As APIs públicas representam um valor comercial exclusivo porque podem simplificar e expandir a maneira como você se conecta com seus parceiros, bem como potencialmente monetizar seus dados (a API do Google Maps é um exemplo popular).
Gráfico de como as APIs funcionam: sistemas de back-end se conectam a APIs, que se conectam a um sistema de gerenciamento de APIs, que se conectam a aplicativos, dispositivos IoT e móveis.
Por exemplo, imagine uma empresa distribuidora de livros. O distribuidor de livros poderia oferecer a seus clientes um aplicativo em nuvem que permite aos funcionários da livraria verificar a disponibilidade dos livros com o distribuidor. Este aplicativo pode ser caro para desenvolver, limitado pela plataforma e exigir longos tempos de desenvolvimento e manutenção contínua.
Como alternativa, o distribuidor do livro pode fornecer um API para verificar a disponibilidade de estoque. Existem vários benefícios para esta abordagem:

  • Permitir que os clientes acessem dados por meio de uma API os ajuda a agregar informações sobre seu inventário em um único lugar.
  • O distribuidor de livros pode fazer alterações em seus sistemas internos sem impactar os clientes, desde que o comportamento da API não mude.
  • Com uma API disponível publicamente, os desenvolvedores que trabalham para a distribuidora de livros, vendedores de livros ou terceiros podem desenvolver um aplicativo para ajudar os clientes a encontrar os livros que procuram. Isso pode resultar em vendas maiores ou outras oportunidades de negócios.

Resumindo, as APIs permitem que você abra o acesso aos seus recursos enquanto mantém a segurança e o controle. Como você abre o acesso e com quem depende de você. A segurança da API tem tudo a ver com um bom gerenciamento de API, que inclui o uso de um gateway de API . A conexão com APIs e a criação de aplicativos que consomem os dados ou funcionalidades expostas pelas APIs podem ser feitas com uma plataforma de integração distribuída que conecta tudo – incluindo sistemas legados e a Internet das Coisas (IoT) .

Os riscos de segurança de API mais comuns e perigosos

O abuso de API é um problema contínuo e deve aumentar nos próximos anos, à medida que o número de implementações de API continua a crescer.

O OWASP API Security Project visa fornecer aos desenvolvedores de software e auditores de código informações sobre os riscos causados ​​por APIs inseguras.

Em 2020, eles publicaram a lista oficial dos 10 principais segurança da API OWASP, que se parece com esta:

1. Autorização de nível de objeto quebrado
2. Autenticação de usuário quebrada
3. Exposição excessiva de dados
4. Falta de recursos e limite de taxa
5. Autorização de nível de função quebrada
6. Atribuição em massa
7. Configuração incorreta de segurança
8. Injeção
9. Gerenciamento impróprio de ativos
10. Registro insuficiente & Monitoramento

Cada um dos riscos vem com uma explicação, cenários de ataque de exemplo e conselhos sobre como mitigá-lo. Ele também inclui links para recursos gratuitos úteis (material educacional, guias, folhas de dicas, etc.) para desenvolvedores e profissionais de DevSecOps.

O documento pode ser baixado do GitHub .

Existem questões que parecem simples, mas são críticas, como uma boa manutenção e documentação de APIs. Existem também questões complexas de controle de acesso que podem exigir alguma atenção na fase de design ”, disse Erez Yalon, diretor de pesquisa de segurança da Checkmarx e co-líder do Projeto de Segurança da API OWASP, à Help Net Security.

Para simplificar, siga esta lista de perto – OWASP fez o trabalho de base para as equipes de desenvolvimento e profissionais de segurança para melhorar seus conhecimentos sobre os riscos de segurança que devem ser observados ao implementar APIs. Compreender as vulnerabilidades descritas aqui ajudará as equipes a mitigar os riscos de segurança da API e a colocar os sistemas em funcionamento no futuro.

Continuação…

Fiquem de olho no nosso blog, pois estaremos publicando mais artigos sobre segurança de APIs nos proximos dias.

Fonte: HelpNet Security & Redhat

Veja também:

Sobre mindsecblog 2473 Artigos
Blog patrocinado por MindSec Segurança e Tecnologia da Informação Ltda.

2 Trackbacks / Pingbacks

  1. MPEs estão na mira dos cibercriminosos nos ataques de dupla extorsão
  2. Zero-days sob ataque: Microsoft Exchange Server e Excel

Deixe sua opinião!