Muitas vezes me perguntam sobre APIs shadow e parâmetros de API shadow, até mesmo por pessoas com muita experiência no espaço de desenvolvimento de APIs. Isso não é muito surpreendente, pois as shadow APIs não costumam ser um risco no qual você pensaria no curso normal do desenvolvimento de uma API. De fato, algumas pessoas estão convencidas de que as shadow APIs são apenas uma tática de intimidação usada pelos fornecedores de segurança para vender suas ferramentas.
No entanto, na realidade, as shadow APIs são relativamente fáceis de criar e usar. Qual é a melhor maneira de entendê-las melhor? Observando exemplos do mundo real! Portanto, é isso que abordaremos nesta postagem.
O que são APIs shadow?
Vamos começar com este exemplo de solicitação de API que encontrei:
Esta é uma solicitação a uma API GraphQL para gerar a senha de uso único (OTP) usada na autenticação de um serviço da Web. Você pode não perceber o problema se não estiver olhando com atenção, por isso marquei-o com uma grande seta vermelha. Isso otpDigit
é de fato um grande problema.
Descobri que esse parâmetro pode ser modificado por meio da API. Ao modificá-lo, você pode ajustar o tamanho da senha de uso único exigida para autenticação. Quais são as implicações? Consegui alterar o valor para 1
. Isso fez com que o número de possibilidades para a senha passasse de um milhão para apenas 10!
É compreensível que a equipe de desenvolvimento tenha ficado alarmada quando falei sobre esse parâmetro, e eles o corrigiram imediatamente. No entanto, esse é um exemplo perfeito de APIs obscuras e seus parâmetros. Muito provavelmente, esse parâmetro foi uma conveniência inicial do desenvolvedor usada para prototipagem ou teste. Quando a API entrou em produção, o suporte para o parâmetro nunca foi removido e ele se tornou um parâmetro de API oculto.
Sem alguém sondando esse endpoint específico para saber o que poderia ser feito com um parâmetro não documentado, essa grande vulnerabilidade não teria sido descoberta. E o mais importante é que uma equipe de desenvolvimento não procurará intensamente por isso até que a vulnerabilidade seja apresentada.
Esse exemplo estabelece a base para uma diretriz de trabalho referente a endpoints e parâmetros de API obscuros: Todos os seus endpoints ou parâmetros de API que não estão diretamente sob os holofotes do foco do desenvolvedor existem nas sombras e representam um risco porque a equipe de segurança provavelmente também os ignorará.
O que posso fazer com relação às APIs shadow?
Agora que você sabe o que são endpoints e parâmetros de API obscuros, a pergunta seguinte é o que você pode fazer em relação a eles. Obviamente, você não pode simplesmente dizer à sua equipe de segurança para ser mais vigilante, especialmente em relação às coisas que os desenvolvedores nem mesmo destacam em seu trabalho ativo.
Provavelmente, você precisará de uma ferramenta ou processo para ajudá-lo a avaliar a segurança de suas APIs. O tipo de ferramenta de que você precisa depende do tamanho da sua empresa e do número de APIs implantadas. Os API Gateways ou até mesmo as ferramentas de segurança de API podem ajudá-lo bastante a ter o grau de segurança necessário, mas podem ser mais do que você precisa. Se você tiver apenas vários endpoints disponíveis para os consumidores de API, a implantação de um conjunto robusto de ferramentas que rastreiam o tráfego em toda a sua pilha e o alertam sobre atividades suspeitas é definitivamente um exagero.
Uma abordagem mais simples é certificar-se de que suas APIs estejam bem documentadas. Esse também é um ótimo ponto de partida. Comece adotando o padrão OpenAPI para documentar suas APIs. Lembre-se de que as APIs obscuras surgem quando você não presta atenção aos seus pontos de extremidade e parâmetros. O objetivo do padrão OpenAPI é fornecer um modelo para que você especifique - e, portanto, conheça - todos os pontos de extremidade e parâmetros da sua API.
A partir daí, você também pode exigir que seus desenvolvedores forneçam essa documentação da API à equipe de segurança durante a implementação. A equipe de segurança, então, testa a API em relação à documentação, para encontrar quaisquer imprecisões ou lacunas. Isso evitará qualquer ponto cego.
Conclusão
As coisas não ficarão escondidas nas sombras se você iluminar esses espaços. No final das contas, se você conhecer os detalhes das APIs que implantou, as APIs obscuras não poderão existir. Embora talvez não seja a tarefa mais empolgante do mundo, documentar suas APIs ajudará a evitar que elas sejam abertas a invasores mal-intencionados.
Esperamos que esta postagem tenha esclarecido você sobre a definição e os perigos das APIs obscuras. Go ilumine os cantos obscuros de sua infraestrutura de API para evitar violações de segurança!
Comentários