0% acharam este documento útil (0 voto)
62 visualizações

Front Matter - API Security in Action

O documento apresenta o prefácio do livro "API Security in Action" e descreve a experiência do autor com segurança de APIs ao longo de sua carreira como desenvolvedor de software. O autor também discute os princípios que guiaram a escrita do livro, como enfatizar detalhes técnicos e abordar técnicas de segurança para diferentes ambientes.

Enviado por

Marcus Passos
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
62 visualizações

Front Matter - API Security in Action

O documento apresenta o prefácio do livro "API Security in Action" e descreve a experiência do autor com segurança de APIs ao longo de sua carreira como desenvolvedor de software. O autor também discute os princípios que guiaram a escrita do livro, como enfatizar detalhes técnicos e abordar técnicas de segurança para diferentes ambientes.

Enviado por

Marcus Passos
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 10

Tópicos Comece a aprender Pesquise mais de 50.

000 cursos, even… O que há de novo

matéria inicial

prefácio

Sou desenvolvedor de software profissional há cerca de 20 anos, e trabalhei com


uma ampla variedade de APIs ao longo desses anos. Minha juventude foi gasta
hackeando jogos de aventura em BASIC e um pouco de código de máquina Z80,
sem me preocupar que alguém jamais usaria meu código, muito menos precisaria
fazer interface com ele. Foi só quando entrei para a IBM em 1999 como funcioná-
rio pré-universitário (carinhosamente conhecido como “pooeys”) que encontrei
pela primeira vez um código escrito para ser usado por outras pessoas. Lembro-
me de um verão gasto bravamente tentando integrar uma biblioteca de rede C++
em uma estrutura de teste com apenas um e-mail conciso do autor para me orien-
tar. Naquela época, eu estava mais preocupado em decifrar as inescrutáveis ​men-
sagens de erro do compilador do que em pensar em segurança.

Com o tempo, a noção de API mudou para abranger interfaces acessadas remota-
mente, onde a segurança não é mais descartada com tanta facilidade. Com medo
de C ++, me encontrei em um mundo de Enterprise Java Beans, com seu próprio
sabor de chamadas remotas de API e enorme peso de interfaces e código clichê.
Nunca consegui me lembrar o que estava construindo naquela época, mas o que
quer que fosse deve ser extremamente importante para precisar de todo esse có-
digo. Posteriormente, adicionamos muito XML na forma de SOAP e XML-RPC. Não
ajudou. Lembro-me da chegada das APIs RESTful e depois do JSON como uma lu-
fada de ar fresco: finalmente a API era simples o suficiente para que você pudesse
parar e pensar sobre o que estava expondo ao mundo. Foi nessa época que come-
cei a me interessar seriamente por segurança.

Em 2013, entrei para a ForgeRock, então uma startup que ressurgiu das cinzas da
Sun Microsystems. Eles estavam ocupados escrevendo APIs REST modernas para
seus produtos de gerenciamento de identidade e acesso, e eu mergulhei de ca-
beça. Ao longo do caminho, fiz um curso intensivo em técnicas modernas de au-
tenticação e autorização baseadas em tokens que transformaram a segurança da
API nos últimos anos e formam um grande parte deste livro. Quando fui abordado
por Manning sobre escrever um livro, soube imediatamente que a segurança da
API seria o assunto.

O esboço do livro mudou muitas vezes durante o processo de escrevê-lo, mas


mantive-me firme no princípio de que os detalhes são importantes para a segu-
rança. Você não pode obter segurança apenas em um nível de arquitetura, adicio-
nando caixas rotuladas como “autenticação” ou “controle de acesso”. Você deve
entender exatamente o que está protegendo e as garantias que essas caixas po-
dem ou não fornecer. Por outro lado, a segurança não é o lugar para reinventar
tudo do zero. Neste livro, espero ter trilhado com sucesso um meio-termo: expli-
car por que as coisas são do jeito que são e, ao mesmo tempo, fornecer muitas di-
cas para soluções modernas e prontas para problemas comuns de segurança.

Um segundo princípio orientador foi enfatizar que as técnicas de segurança rara-


mente são de tamanho único. O que funciona para um aplicativo da Web pode ser
completamente inadequado para uso em uma arquitetura de microsserviços. Com
base em minha experiência direta, incluí capítulos sobre segurança de APIs para
clientes da Web e móveis, para microsserviços em ambientes Kubernetes e APIs
para a Internet das Coisas. Cada ambiente traz seus próprios desafios e soluções.

agradecimentos

Eu sabia que escrever um livro daria muito trabalho, mas não sabia que iniciá-lo
coincidiria com alguns dos momentos mais difíceis da minha vida pessoal e que o
terminaria em meio a uma pandemia global. Eu não teria conseguido passar por
tudo isso sem o apoio e o amor infinitos de minha esposa, Johanna. Também gos-
taria de agradecer a nossa filha, Eliza (a menor diretora de arte), e a todos os nos-
sos amigos e familiares.

Em seguida, gostaria de agradecer a todos na Manning que ajudaram a transfor-


mar este livro em realidade. Gostaria de agradecer especialmente ao meu editor
de desenvolvimento, Toni Arritola, que pacientemente guiou meu estilo de ensino,
corrigiu meus erros e me lembrou para quem estou escrevendo. Também gostaria
de agradecer ao meu editor técnico, Josh White, por me manter honesto com mui-
tos comentários excelentes. Um grande obrigado a todos os outros na Manning
que me ajudaram ao longo do caminho. Deirdre Hiam, minha editora de projetos;
Katie Petito, minha editora; Keri Hales, minha revisora; e Ivan Martinovic, meu
editor de resenhas. Foi um prazer trabalhar com todos vocês.

Gostaria de agradecer aos meus colegas da ForgeRock por seu apoio e encoraja-
mento. Gostaria de agradecer particularmente a Jamie Nelson e Jonathan Scudder
por me encorajarem a trabalhar no livro, e a todos que revisaram os primeiros
rascunhos, em particular Simon Moffatt, Andy Forrest, Craig McDonnell, David
Luna, Jaco Jooste e Robert Wapshott.
Por fim, gostaria de agradecer a Jean-Philippe Aumasson, Flavien Binet e Anthony
Vennard, da Teserakt, por sua revisão especializada dos capítulos 12 e 13, e aos re-
visores anônimos do livro, que forneceram muitos comentários detalhados.

A todos os revisores, Aditya Kaushik, Alexander Danilov, Andres Sacco, Arnaldo


Gabriel, Ayala Meyer, Bobby Lin, Daniel Varga, David Pardo, Gilberto Taccari, Ha-
rinath Kuntamukkala, John Guthrie, Jorge Ezequiel Bo, Marc Roulleau, Michael
Stringham, Ruben Vandeginste , Ryan Pulling, Sanjeev Kumar Jaiswal (Jassi), Satej
Sahu, Steve Atchue, Stuart Perks, Teddy Hagos, Ubaldo Pescatore, Vishal Singh,
Willhelm Lehman e Zoheb Ainapore: suas sugestões ajudaram a tornar este livro
melhor.

sobre este livro

Quem deveria ler esse livro

API Security in Action foi escrito para guiá-lo através das técnicas necessárias
para proteger APIs em uma variedade de ambientes. Ele começa cobrindo as téc-
nicas básicas de codificação segura e, em seguida, analisa as técnicas de autentica-
ção e autorização em profundidade. Ao longo do caminho, você verá como técni-
cas como limitação de taxa e criptografia podem ser usadas para proteger suas
APIs contra ataques.

Este livro foi escrito para desenvolvedores que têm alguma experiência na cria-
ção de APIs da Web e desejam aprimorar seus conhecimentos sobre técnicas de
segurança de API e práticas recomendadas. Você deve ter alguma familiaridade
com a criação de RESTful ou outras APIs remotas e estar confiante no uso de uma
linguagem de programação e ferramentas como um editor ou IDE. Nenhuma ex-
periência anterior com codificação segura ou criptografia é assumida. O livro
também será útil para arquitetos técnicos que desejam se atualizar com as abor-
dagens de segurança de API mais recentes.

Como este livro está organizado: um roteiro

Este livro tem cinco partes que cobrem 13 capítulos.

A Parte 1 explica os fundamentos da segurança da API e define a base segura para


o restante do livro.

O Capítulo 1 apresenta o tópico de segurança da API e como definir o que


torna uma API segura. Você aprenderá os mecanismos básicos envolvidos na
proteção de uma API e como pensar sobre ameaças e vulnerabilidades.
O Capítulo 2 descreve os princípios básicos envolvidos no desenvolvimento se-
guro e como eles se aplicam à segurança da API. Você aprenderá como evitar
muitas falhas comuns de segurança de software usando práticas de codifica-
ção padrão. Este capítulo também apresenta o aplicativo de exemplo, chamado
Natter, cuja API forma a base dos exemplos de código ao longo do livro.
O Capítulo 3 é um rápido tour por todos os mecanismos básicos de segurança
desenvolvidos no restante do livro. Você verá como adicionar autenticação bá-
sica, limitação de taxa, log de auditoria e mecanismos de controle de acesso à
API do Natter.

A Parte 2 analisa o mecanismo de autenticação para APIs RESTful com mais deta-
lhes. A autenticação é a base sobre a qual todos os outros controles de segurança
são construídos, por isso dedicamos algum tempo para garantir que essa base es-
teja firmemente estabelecida.
O Capítulo 4 aborda a autenticação de cookie de sessão tradicional e a atualiza
para o uso moderno da API da web, mostrando como adaptar técnicas de apli-
cativos da web tradicionais. Você também cobrirá novos desenvolvimentos,
como cookies SameSite.
O Capítulo 5 analisa abordagens alternativas para autenticação baseada em to-
ken, abrangendo tokens de portador e o cabeçalho de autorização padrão. Ele
também aborda o uso de armazenamento local para armazenar tokens em um
navegador da Web e fortalecer o armazenamento de tokens do banco de dados
no back-end.
O Capítulo 6 discute formatos de token independentes, como JSON Web Tokens
e alternativas.

A Parte 3 examina as abordagens de autorização e a decisão de quem pode fazer o


quê.

O Capítulo 7 descreve o OAuth2, que é uma abordagem padrão para autentica-


ção baseada em token e uma abordagem para autorização delegada.
O Capítulo 8 analisa em profundidade as técnicas de controle de acesso basea-
das em identidade nas quais a identidade do usuário é usada para determinar
o que ele pode fazer. Abrange listas de controle de acesso, controle de acesso
baseado em funções e controle de acesso baseado em atributos.
O Capítulo 9 analisa o controle de acesso baseado em capacidade, que é uma
alternativa às abordagens baseadas em identidade baseadas em chaves refina-
das. Ele também abrange macaroons, que são um novo formato de token inte-
ressante que permite novas abordagens empolgantes para controle de acesso.

A Parte 4 é um mergulho profundo na proteção de APIs de microsserviço em exe-


cução em um ambiente Kubernetes.
O Capítulo 10 é uma introdução detalhada à implantação de APIs no Kuberne-
tes e melhores práticas de segurança do ponto de vista do desenvolvedor.
O Capítulo 11 discute abordagens para autenticação em chamadas API de ser-
viço a serviço e como armazenar com segurança credenciais de conta de ser-
viço e outros segredos.

A Parte 5 aborda APIs na Internet das Coisas (IoT). Essas APIs podem ser particu-
larmente difíceis de proteger devido aos recursos limitados dos dispositivos e à
variedade de ameaças que podem encontrar.

O Capítulo 12 descreve como proteger as comunicações entre clientes e servi-


ços em um ambiente IoT. Você aprenderá como garantir a segurança de ponta
a ponta quando as solicitações de API precisam passar por vários protocolos de
transporte.
O Capítulo 13 detalha abordagens para autorizar solicitações de API em ambi-
entes IoT. Ele também discute a autenticação offline e o controle de acesso
quando os dispositivos são desconectados dos serviços online.

Sobre o código

Este livro contém muitos exemplos de código-fonte tanto em listagens numeradas


quanto em linha com texto normal. Em ambos os casos, o código-fonte é forma-
tado em a fixed-width font like this para separá-lo do texto comum. Às
vezes, o código também serve in bold para destacar o código que foi alterado
nas etapas anteriores do capítulo, como quando um novo recurso é adicionado a
uma linha de código existente.
Em muitos casos, o código-fonte original foi reformatado; adicionamos quebras de
linha e retrabalhamos o recuo para acomodar o espaço de página disponível no li-
vro. Em casos raros, mesmo isso não foi suficiente, e as listagens incluem marca-
dores de continuação de linha ( ➥ ). Além disso, os comentários no código-fonte
geralmente são removidos das listagens quando o código é descrito no texto. Ano-
tações de código acompanham muitas das listagens, destacando conceitos
importantes.

O código-fonte é fornecido para todos os capítulos, exceto o capítulo 1, e pode ser


baixado do repositório GitHub que acompanha o livro em
https://github.com/NeilMadden/apisecurityinaction ou de Manning. O código é es-
crito em Java, mas foi escrito para ser o mais neutro possível em estilo de codifica-
ção e expressões idiomáticas. Os exemplos devem traduzir facilmente para outras
linguagens de programação e estruturas. Detalhes completos sobre o software ne-
cessário e como configurar o Java são fornecidos no apêndice A.

fórum de discussão liveBook

A compra do API Security in Action inclui acesso gratuito a um fórum privado da


Web administrado pela Manning Publications, onde você pode fazer comentários
sobre o livro, fazer perguntas técnicas e receber ajuda do autor e de outros
usuários.Para acessar o fórum, acesse https://livebook.manning.com/#!/book/api-
security-in-action/discussion . Você também pode saber mais sobre os fóruns de
Manning e as regras de conduta em https://livebook.manning.com/#!/discussion .

O compromisso de Manning com nossos leitores é fornecer um local onde possa


ocorrer um diálogo significativo entre leitores individuais e entre leitores e o au-
tor. Não é um compromisso com qualquer quantidade específica de participação
por parte do autor, cuja contribuição ao fórum permanece voluntária (e não re-
munerada). Sugerimos que você tente fazer ao autor algumas perguntas desafia-
doras para que ele não perca o interesse! O fórum e os arquivos das discussões
anteriores estarão acessíveis no site da editora enquanto o livro estiver sendo
impresso.

Outros recursos on-line

Precisa de ajuda adicional?

O Open Web Application Security Project (OWASP) fornece vários recursos


para criar aplicativos e APIs da Web seguros. Gosto particularmente das folhas
de dicas sobre tópicos de segurança em https://cheatsheetseries.owasp.org .
https://oauth.net fornece um diretório central de todas as coisas OAuth2. É um
ótimo lugar para descobrir todos os desenvolvimentos mais recentes.

Sobre o autor

Neil Madden é diretor de segurança da ForgeRock e tem um conhecimento pro-


fundo de criptografia aplicada, segurança de aplicativos e tecnologias atuais de
segurança de API. Trabalhou como programador por 20 anos e é PhD em Ciência
da Computação.

sobre a ilustração da capa

A figura na capa da API Security in Action tem a legenda “Arabe du désert”, ou ho-
mem árabe no deserto. A ilustração é retirada de uma coleção de trajes de gala de
vários países de Jacques Grasset de Saint-Sauveur (1757-1810), intitulada Costu-
mes de Différents Pays, publicada na França em 1788. Cada ilustração é finamente
desenhada e colorida à mão. A rica variedade da coleção de Grasset de Saint-Sau-
veur nos lembra vividamente de como as cidades e regiões do mundo eram cultu-
ralmente separadas há apenas 200 anos. Isoladas umas das outras, as pessoas fa-
lavam diferentes dialetos e idiomas. Nas ruas ou no campo, era fácil identificar
onde moravam e qual era o seu ofício ou posição na vida apenas pelo vestuário. A
forma como nos vestimos mudou desde então e a diversidade por região, tão rica
na época, foi se desvanecendo. Agora é difícil distinguir os habitantes de diferen-
tes continentes, quanto mais de diferentes cidades, regiões ou países. Talvez te-
nhamos trocado a diversidade cultural por uma vida pessoal mais variada – certa-
mente por uma vida tecnológica mais variada e acelerada. Numa época em que é
difícil distinguir um livro de computador do outro, Manning celebra a inventivi-
dade e a iniciativa do setor de computadores com capas de livros baseadas na rica
diversidade da vida regional de dois séculos atrás, trazida de volta à vida por
Grasset de Saint- Imagens de Sauveur.

Você também pode gostar