A referência do arquiteto de segurança: uma visão geral das abordagens para implementar autenticação e autorização em sistemas de microsserviço

Contêinerização, CI / CD, orquestração, microsserviços e processos ágeis são uma nuvem de tags agora no vocabulário dos engenheiros de segurança. O modelo de microsserviço e as tecnologias relacionadas levaram a uma variedade de abordagens na implementação da arquitetura de segurança de soluções modernas, e uma única abordagem para sua construção ainda não foi vista. Mas existem líderes de tecnologia na área de desenvolvimento de microsserviços, existem falhas de configuração e vulnerabilidades conhecidas na implementação de diferentes abordagens arquitetônicas e há um grande número de "melhores práticas" para construir uma arquitetura confiável. Neste material, preparado com base em um artigo de pesquisa publicado em conjunto com Denis Makrushin (Makrushin) da equipe de Pesquisa de Segurança Avançada do Laboratório de Tecnologia de Software Avançada da Huawei, analisaremos abordagens arquitetônicas típicas para implementar autenticação e autorização em sistemas de microsserviço, suas vantagens e desvantagens. E faremos isso para que os arquitetos de segurança tenham a oportunidade de se concentrar na implementação do modelo exigido, e não em horas de busca das informações necessárias.



Objetivos de pesquisa



A arquitetura de microsserviços é cada vez mais usada para o design e implementação de sistemas de aplicativos na nuvem e em infraestruturas locais, aplicativos e serviços em grande escala. Basta estudar o Habr para várias práticas relacionadas ao desenvolvimento de sistemas distribuídos e tolerantes a falhas para garantir a ampla implementação do modelo de microsserviço.



. , a (Application Security Architect – , Security Engineer'a, , ) , ( , ). , . , .



:



  • ?
  • ?
  • ?


, , (, OWASP Moscow Meetup).



:



  • , ;
  • ( ).




( , – , ) ( 1): (edge-level authorization), (service-level authorization), (external entity identity propagation), (service-to-service authentication). , .

imagem

1.



.



(edge-level authorization)



( API). API , . NIST , , API.



:



  • API- ( « »);
  • API , " " (defense-in-depth);
  • , API (operations), , , (, , - ).


: API . , (reference- (self-contained) , HTTP (, "Cookie" "Authorization"), mTLS.





( 2), NIST. :



  • Policy Administration Point (PAP) , , ;
  • Policy Decision Point (PDP) , ;
  • Policy Enforcement Point (PEP) , ;
  • Policy Information Point (PIP) , , , PDP .

    imagem

    2.


. , , :



  • ;
  • ;
  • .




PDP PEP (. 3). , , , ( 1). ( 2) (, ), ( 3) , , (enforce) ( 4).

imagem

3.



. , , .



, :



  • ( « , »);
  • /, , ;
  • - ( « , »);
  • .


, , .





, ( 4). PAP ( 1) PDP , ( 2). ( 3), PDP , PDP , ( 4). PDP ( 5).



imagem

4. PDP



:



  • , , ;
  • , , , , ;
  • , , , API, .


DevOps- . Extensible Access Control Markup Language (XACML) Next Generation Access Control (NGAC), . , XACML , , , DevOps-.



- PDP; .



, PDP - . (, API), " ".





, ( 5). PAP ( 1) PDP , ( 2). ( 3), PDP, PDP , ( 4). PDP ( 5).

imagem

5 PDP



PDP «sidecar-». Sidecar , , , , .



PDP sidecar . PDP , . " " , , . .



“How Netflix Is Solving Authorization Across Their Cloud” " PDP" ( 6):



  • — , ;
  • , , ;
  • ( Policy) , ( Aggregator), PDP;
  • PDP () PEP.

    imagem

    6. PDP ()


, " PDP". , - PDP .



, :



  • , , — ;
  • (, ), " ";
  • , — " ";
  • , PAP (, PAP -);
  • , , — " " .




:



  • (mTLS);
  • , , JSON Web Tokens.


mTLS , , . / , mTLS. mTLS . mTLS , .



. (microservice id) (scopes). , , , , , HTTP . TLS, .



(, Overcoming Security Challenges in Microservice Architectures) (, A Pragmatic Approach for Internal Security Partnerships), mTLS .



, .





, : « ?». , , , .



, , « ?» : «, . -». , «best practice» — pull requests OWASP.



, , (, ), .




All Articles