Entendendo o básico da segurança da API

Views: 463
0 0
Read Time:3 Minute, 42 Second

Este é o primeiro de uma série de artigos que introduz 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.

Finalidade da série de artigos

Pesquisar a ampla gama de alternativas de segurança de API pode ser confuso – mesmo para especialistas experientes. Esta série de artigos foi escrita com o objetivo de ajudar todos os tipos de leitores a entender melhor os prós e 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 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 ter responsabilidade pela segurança da API em sua organização. O leitor alvo também inclui, no entanto, indivíduos de mente técnica que possuem pouca experiência com APIs, mas que, no entanto, estão interessados nos aspectos de segurança desta importante questão. Tentamos descrever os conceitos de segurança da API de uma maneira acessível a cada tipo de leitor.

Introdução às APIs

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

Mas há outro tipo de interface que existe na computação, talvez mais escondida 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 sistema operacional inicial da Bell Laboratories chamado Unix, que agora serve como base do Apple iOS e Android, facilitou os projetos de IPC, mas não eram padrão.

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

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. APIs também são comumente usadas para compartilhar memória entre diferentes processos. Uma API é de natureza sem estado e geralmente incluirá 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 registro de usuários.

noções básicas de segurança da API
Figura 1. Modelo geral de API

Sistema Operacional Unix IPC

Cerca de meio século atrás, 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 de 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 bem-sucedidos desde então. Linux e Android são derivados diretos, enquanto iOS e Windows são massivamente influenciados pelo Unix.

Uma importante consideração de design para o sistema operacional Unix envolveu a necessidade de criar um mecanismo IPC que permitisse 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 para computação distribuída.

A abordagem Unix IPC 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 cooperantes. A grande diferença, obviamente, é que as APIs modernas se beneficiam da enorme escala que vem com a Internet. Os esforços originais do Unix eram específicos do sistema local e operacional.

FONTE: HELPNET SECURITY

POSTS RELACIONADOS