Segurança de ponta a ponta para APIs: do desenvolvimento à descontinuação
A Akamai adquiriu a Noname Security em junho de 2024. Esta publicação arquivada do blog foi originalmente publicada em quinta-feira, 5 de outubro de 2022.
Proteger adequadamente as APIs (interfaces de programação de aplicativos) é um processo que vai muito além da segurança. Trata-se também de questões operacionais e arquitetônicas de TI que influenciam os resultados de segurança. Para que a segurança de APIs seja eficaz, ela deve ser vista como um processo abrangente, que cobre todo o ciclo de vida do software. Isso começa no desenvolvimento, mas continua durante o tempo de execução e vai até o fim do serviço.
Desafiando alguns pressupostos antigos
A segurança de APIs nos obriga a desafiar alguns pressupostos antigos. Pode-se presumir, por exemplo, que o desenvolvimento de software termina com a implementação do código na produção. Isso não é mais verdade. O desenvolvimento de software agora ultrapassa o processo básico de escrever código.
O desenvolvimento é um processo permanente, incorporado no conceito de integração e implantação contínuas (CI/CD). Simultaneamente, o software ganha vida por meio do DevOps, que mescla as etapas anteriores de desenvolvimento de software (Dev) e a implantação do software nos produtos pelas operações de TI (Ops).
Hoje, assim que um trecho de código é implantado na produção, a equipe de DevOps já está se preparando para implantar outra iteração do aplicativo. Essa próxima implantação poderia ocorrer uma hora depois. Com o DevOps, parece que Dev é Ops. O lado operacional do processo não é mais distinguível do lado do desenvolvimento. Portanto, a segurança dos aplicativos deve abranger as etapas interconectadas de Dev e Ops.
Além disso, o software moderno é mais do que apenas código. É também um conjunto de conexões entre componentes como microsserviços, APIs, bibliotecas de código e outros semelhantes. Manter as APIs seguras significa entender como essas conexões funcionam, onde estão e como podem ser vulneráveis a agentes mal-intencionados. Esse requisito transcende as práticas regulares de segurança, incluindo tarefas operacionais como a criação de inventários de APIs e o monitoramento do tráfego dessas interfaces.
A segurança de APIs deve abranger todo o ciclo de vida do desenvolvimento de software (SDLC) e além
A segurança de APIs deve estar ativa na fase de desenvolvimento de um aplicativo, durante o tempo de execução e além — cobrindo todo o ciclo de vida do desenvolvimento de software (SDLC). Começando no desenvolvimento, os desenvolvedores podem instruir os aplicativos a invocar funcionalidades de API por meio de chamadas ou criar APIs que exponham as funcionalidades e os dados do aplicativo para outros softwares. Os dois modos de operação das APIs criam exposição a riscos.
Os riscos de segurança das APIs ocorrem por diversas razões, mas muitas vezes estão relacionados a problemas de configuração de API que afetam a autenticação e autorização de usuários. Uma API mal configurada pode permitir que um usuário desconhecido acesse dados confidenciais. Alternativamente, um erro na configuração pode permitir que um usuário obtenha dados além do permitido. Outros problemas de configuração podem permitir que um invasor sobrecarregue a API com chamadas e execute um ataque de negação de serviço (DoS).
Na fase de desenvolvimento
Os testes de segurança de APIs podem mitigar esses riscos já na fase de desenvolvimento. Esses testes precisam ser específicos para APIs, pois testes genéricos de aplicativos não detectam problemas como erros de configuração de APIs. Em vez disso, é necessário um conjunto de testes de segurança dedicado às APIs, que identifique vulnerabilidades e facilite sua correção antes que o software seja implantado.
Para funcionar, os testes de segurança de APIs devem ser realizados logo no início do processo de desenvolvimento, conforme o conceito de shift-left. O conjunto de testes também deve se integrar ao pipeline de CI/CD. Caso contrário, o processo de correção de segurança será muito complicado para os membros da equipe de DevOps.
Durante o tempo de execução
Durante o tempo de execução, a segurança de APIs significa bloquear ameaças em tempo real. Isso envolve o monitoramento contínuo das APIs. Uma solução de segurança de APIs precisa ter visibilidade do tráfego de APIs e alertar os administradores quando detectar comportamentos anômalos ou sinais de ataque. Alternativamente, a solução pode ir além e bloquear automaticamente a API ao identificar uma ameaça.
A necessidade de inventariar APIs
A segurança durante o tempo de execução das APIs é relativamente simples. No entanto, só funciona se a solução de segurança conhecer todas as APIs. Para garantir a segurança, as APIs devem ter um gerenciamento de postura por meio de uma segurança adequada, o que envolve o processo de descoberta de APIs. É impossível defender uma API invisível para a solução de segurança, por isso as APIs precisam ser inventariadas. A descoberta de APIs é necessária, pois gateways de APIs e firewalls de aplicativos da Web (WAFs) não inventariam automaticamente todas as APIs em um ambiente, ao contrário do que muitos pensam.
Não autorizadas, zumbi e sombra :
O processo de descoberta de APIs inevitavelmente surpreende os administradores de TI ao revelar que seus ambientes contêm muitas APIs não autorizadas, "zumbi" e "sombra".
- Uma API não autorizada é uma API que foi perdida com o tempo. Pode ser uma versão antiga que nunca foi desativada. Ou também uma API exposta em um software comercial que ninguém sabia que existia.
- Uma API zumbi é uma API funcional geralmente fora do radar.
- Uma API sombra é criada por alguém que decidiu construir uma API, mas não informou o departamento de TI.
Esses três tipos de APIs geram exposição a riscos. As políticas de segurança não podem ser aplicadas a elas, pois são invisíveis. Se não estiverem configuradas corretamente — e quase sempre estão mal configuradas ou sem atualizações de segurança —, elas permitirão o acesso inadequado por invasores.
Pode ser desafiador saber o que fazer com APIs descobertas inesperadamente. Se continuarem operando, elas precisam estar em conformidade com as políticas de configuração, autenticação, entre outras. Desativar uma API recém-descoberta pode ser a melhor opção, mas isso pode causar problemas.
Por exemplo, se uma versão antiga de uma API ainda estiver em uso, apesar de ter sido substituída, desativá-la poderá causar falhas nos aplicativos. Alguém poderá acabar em apuros pela decisão de desativar a API. O que é necessário é um conjunto de ferramentas que forneça aos administradores as informações necessárias para tomar a decisão certa.
Colocando as ferramentas certas em ação
Executar a segurança de APIs de ponta a ponta exige as ferramentas adequadas. Uma solução eficaz de segurança de APIs de ponta a ponta será aquela capaz de lidar com testes de segurança de APIs, a segurança durante o tempo de execução de APIs e o gerenciamento de postura e inventário de APIs. É necessário examinar criticamente as ferramentas existentes, já que a maioria dos WAFs e gateways de APIs não abrange o desenvolvimento, os testes, o monitoramento durante o tempo de execução e o inventário.
A solução de segurança de APIs também deve operar de forma ideal, sem afetar o desempenho da rede ou da API. Por exemplo, as soluções de segurança de APIs da Akamai funcionam monitorando uma cópia do tráfego de rede. Elas conseguem identificar chamadas de API nesse tráfego copiado, detectando APIs desconhecidas e ameaças de segurança no processo.
A segurança de APIs deve abranger todas as fases da vida de uma API, desde o desenvolvimento até o tempo de execução e a descontinuação. A segurança também deriva de processos que não são necessariamente focados em segurança, como inventários de APIs. Como APIs desconhecidas geram exposição a riscos, identificá-las torna os aplicativos mais seguros. Trata-se de uma proposta de ponta a ponta. Quanto mais completas forem as medidas de segurança de APIs, mais seguro será todo o ambiente.