Aprenda SAML: o idioma que você não conhece e já fala

Views: 631
1 0
Read Time:11 Minute, 41 Second

Security Assertion Markup Language, um protocolo que a maioria das pessoas usa diariamente para fazer login em aplicativos, torna a autenticação mais fácil para administradores e usuários. Aqui está o que você precisa saber sobre SAML (e o que isso tem a ver com “GoldenSAML”).

Security Assertion Markup Language (SAML): você pode ter ouvido falar dela. Provavelmente, você o usou pelo menos uma vez hoje para fazer login em um portal de site ou aplicativo corporativo. Mas o que é SAML? Como funciona? E por que você precisa saber sobre isso?

O que é SAML? 

SAML é um padrão baseado em XML usado para autenticação em aplicativos da Web como Box, Microsoft 365, Salesforce e Gmail for Business. O protocolo lida com federação, gerenciamento de identidade e logon único (SSO). A federação de identidade permite que as identidades dos usuários sejam armazenadas em aplicativos e empresas; com SAML, esses aplicativos e empresas podem confiar nos usuários uns dos outros.

Qual problema isso resolve? 

A maioria dos aplicativos tem um banco de dados ou protocolo LDAP (Lightweight Directory Access Protocol) para manter os dados e credenciais do perfil dos usuários, junto com quaisquer dados adicionais necessários para verificar um usuário. Quando alguém faz login, este armazenamento de dados valida as credenciais e as faz. No entanto, quando uma pessoa precisa fazer login em vários aplicativos e cada um requer credenciais diferentes, isso se torna um problema – para usuários que precisam lembrar de todas as suas credenciais e para os administradores que os mantêm e revogam. Digite SAML.

O SAML agiliza o processo de autenticação para entrar em sites e aplicativos com suporte SAML e é o protocolo subjacente mais popular para SSO baseado na web. Uma organização tem uma página de login e pode configurar qualquer aplicativo da Web, ou provedor de serviços (SP), com suporte para SAML, de forma que seus usuários só precisem se autenticar uma vez para fazer login em todos os aplicativos da Web (mais sobre esse processo posteriormente).

O protocolo ganhou as manchetes recentemente devido ao vetor de ataque “Golden SAML”, que foi aproveitado no incidente de segurança do SolarWinds. Essa técnica permite que o invasor obtenha acesso a qualquer serviço ou ativo que use o padrão de autenticação SAML. Seu uso na natureza ressalta a importância de seguir as melhores práticas para gerenciamento de acesso privilegiado.

A necessidade de um padrão como o SAML surgiu no final da década de 1990 com a proliferação de sites comerciais, diz Thomas Hardjono, CTO de Ciência e Engenharia de Conexão do Instituto de Tecnologia de Massachusetts e presidente dos Serviços de Segurança OASIS, onde o protocolo SAML foi desenvolvido. Cada comerciante queria possuir a autenticação de cada cliente, o que levava ao problema de pessoas que mantinham nomes de usuário e senhas para dezenas de contas. 

“Todo o problema de senha é um problema de 30 anos”, diz Hardjono. “A ideia do SAML era: poderíamos criar uma entidade especial, chamada de provedor de identidade, que seria essencialmente a entidade de autenticação?” 

Quem são esses provedores de identidade? 

Um provedor de identidade (IdP) tem a tarefa de verificar as identidades dos usuários e se comunicar com o SP para fazer o login, para que possam acessar mais recursos com menos logins. Existem vários IdPs no mercado atual: Okta, OneLogin, Microsoft Active Directory Federation Services, Duo Access Gateway e Ping Identity são alguns dos mais populares. O SAML era necessário para expressar que o IdP autenticou um usuário.

Hardjono chama a interação entre SP, IdP e usuário de “um fluxo triangular ou relacionamento”. Continue lendo para obter mais detalhes sobre como esse relacionamento funciona.

Como o SAML funciona? 

O SAML funciona permitindo que os SPs, ou aplicativos, deleguem sua autenticação a um serviço dedicado separado ou IdP.

Os SPs são configurados para confiar em IdPs específicos no processo de federação. Não importa para o AP como o IdP verifica a identidade do usuário; ele só se importa que o usuário seja verificado. O usuário só precisa de um nome de usuário e senha, que é gerenciado pelo provedor de identidade.

John Maguire, engenheiro de software sênior da Duo Security, coloca isso no contexto de login em uma teleconferência. Um funcionário clica no link para fazer login em uma reunião Webex. Quando eles acessam a página Webex, eles procuram qual IdP é usado para autenticar – algo que a empresa pré-configurou, ele acrescenta.

O Webex então redireciona o usuário ao seu IdP, junto com uma mensagem pedindo para autenticá-lo. O IdP possui vários métodos para fazer isso: ele pode verificar as credenciais de um usuário e o status da conta, o dispositivo usado para acessar o aplicativo ou a rede em que o usuário está. Ele pode invocar a autenticação multifator. O empregador do usuário configura as etapas executadas para verificar sua identidade.

“Todos eles determinam o nível de autenticação que deve ser usado – apenas o primeiro fator, o primeiro fator e o segundo fator, [e] se deve permitir a autenticação”, acrescenta Maguire. Se um IdP perceber que o local está desativado, por exemplo, ele pode negar a autenticação de um usuário. 

O IdP verifica esses dados e cria uma mensagem, ou asserção SAML, que valida a identidade e os atributos de um usuário e usa assinatura criptográfica para provar sua autenticidade. O IdP então envia esses dados por meio de redirecionamentos do navegador para o Webex, que valida a assinatura e verifica os dados de identificação do usuário antes de autenticá-lo no aplicativo.

“Toda essa comunicação é transmitida de um lado para outro usando o navegador do usuário”, acrescenta Jamie Pringle, também engenheiro de software sênior da Duo Security. “Os dois lados nunca falam diretamente um com o outro.” 

Muitas vezes, haverá vários SPs configurados para um IdP. Nesses casos, um usuário autenticado pode ver um painel com outros provedores de serviços que eles podem acessar nas seis horas seguintes – ou pelo tempo que a sessão estiver configurada para durar.

Existem dois tipos de fluxos de trabalho para autenticação baseada em SAML. Em um processo iniciado pelo SP, um usuário tenta fazer login no portal da Web de um provedor de serviços. Em vez de solicitar credenciais, o site redirecionará para seu IdP com uma solicitação SAML de autenticação. Em um processo iniciado pelo IdP, o usuário efetua login no IdP e é autenticado e, em seguida, enviado ao SP com uma asserção SAML. Alguns SPs não oferecem suporte a um processo iniciado por SP. Nesse caso, um fluxo de trabalho iniciado por IdP é a única opção.

Como as empresas e administradores se beneficiam do SAML? 

Desde que foi desenvolvido pela primeira vez, o SAML se tornou o padrão para logon único baseado na web. Ele rapidamente pegou entre as empresas, que passaram a usar o protocolo internamente para os funcionários.

“Conforme o gerenciamento de acesso começou a ganhar mais relevância, porque mais e mais empresas estavam acessando aplicativos fora de sua rede … SAML se tornou muito importante para a corporação e para as pessoas que precisam fornecer SSO”, disse Michael Kelley, diretor de pesquisa sênior do Gartner’s Secure Business Grupo de ativação.

Os benefícios são claros para usuários e administradores. Os indivíduos não precisam inserir credenciais no aplicativo em si e passar por um processo de login mais seguro em geral, explica Aaron Parecki, estrategista de segurança sênior da Okta. Depois de autenticados, eles podem fazer transferências entre aplicativos sem a dificuldade de fazer login várias vezes.

“Esta é uma ótima maneira de ter uma experiência mais segura como usuário, porque você só insere suas credenciais no servidor que possui as suas credenciais – o local onde a conta fica”, diz ele. “Se você deseja fazer login em um aplicativo, não precisa confiar que o aplicativo manipulará suas credenciais de maneira adequada.”

O SAML também dá poder aos administradores, que se beneficiam de um único ponto de acesso para implementar controles de segurança em aplicativos, acrescenta Maguire do Duo. Em vez de se preocupar com 20 aplicativos diferentes e suas medidas de autenticação, os administradores configuram o IdP para verificar a identidade de todos os funcionários. Isso permite que os administradores adicionem políticas aos serviços que ainda não as suportam, como o MFA, aponta ele. Também oferece um único ponto para auditar ou investigar um possível comprometimento da conta.

Embora o SAML tenha se mostrado simples e direto de implementar e seguro para usuários e empresas, ele também tem desvantagens que se tornam mais proeminentes à medida que novas tecnologias surgem. 

“Ele tem algumas lacunas; carece de alguns recursos e funcionalidades que outros protocolos modernos mais novos têm”, acrescenta Kelley. “Mas é simples, é seguro … contanto que você tenha um aplicativo baseado na Web que possa suportá-lo nativamente, você estará em ótima forma.”

O que saber sobre o ‘Golden SAML’  e o  SolarWinds 

Você pode ter ouvido falar recentemente sobre o SAML em relação ao incidente de segurança da SolarWinds, que chamou a atenção para o vetor de ataque “Golden SAML”. Nesse tipo de ataque , quando um usuário tenta acessar um serviço e sua solicitação é redirecionada para os Serviços Federados do Active Directory, o invasor forja uma resposta SAML assinada usando uma chave roubada para obter acesso não autorizado.

Golden SAML permite que os adversários obtenham acesso persistente a qualquer aplicativo que ofereça suporte à autenticação SAML. Embora os especialistas enfatizem que o ataque não depende de uma falha no SAML, Kelley, do Gartner, observa que isso pode inspirar outros invasores a buscar informações confidenciais para um ataque semelhante. 

“Não foi o SAML que foi violado, foram as credenciais privilegiadas”, explica ele. “Capturar essas credenciais privilegiadas permitiu que esses hackers emitissem certificados SAML válidos. Quando você pensa dessa forma … se você não tem um bom controle sobre os privilégios no ambiente … atores mal-intencionados podem seguir [esta] abordagem.”

O próprio SAML é bastante seguro. Muitos problemas relacionados ao SAML podem ser atribuídos ao uso ou configuração incorreta do protocolo, Hardjono aponta. Um novo desenvolvedor pode esquecer de implementar um recurso, por exemplo, ou um grupo de trabalho SAML não implementou totalmente a especificação.

“A parte mais difícil do SAML é configurá-lo”, diz Maguire, observando que é voltado para administradores. “Cada aplicativo no qual você deseja se conectar deseja informações um pouco diferentes sobre o usuário.” Talvez ele queira um nome de usuário, talvez um endereço de e-mail, ou talvez ambos, mas com um nome específico.

Um problema com o SAML é que suas especificações são muito grandes e não muito rígidas, levando a diferenças de implementação entre diferentes provedores de serviços, acrescenta Pringle. Alguns SPs fornecem documentação vaga sobre como configurar o SAML, dificultando a implementação adequada. Existem informações essenciais que devem ser preenchidas para enviar a mensagem SAML adequada, diz ele.

“Por ser um provedor de identidade, vimos que diferentes provedores de serviço têm interpretações diferentes para algumas dessas áreas vagamente definidas e, portanto, isso pode às vezes causar dores de cabeça de interoperabilidade”, explica ele, observando que os IdPs podem cometer um erro semelhante. 

As consequências do intervalo de configuração incorreta, dependendo da implementação do SP. Os usuários podem ser desconectados, falhar na autenticação ou efetuar login para ver informações incorretas. Em alguns casos, os usuários podem ter suas contas bloqueadas e precisam entrar em contato com o SP se algo quebrar.

Nova tecnologia, novos padrões: SAML vs. OAuth e OIDC

SAML foi um dos primeiros padrões para resolver o problema de autenticação baseada na Web e, como tal, tornou-se amplamente usado. A maioria dos serviços em nuvem que vendem para empresas permitirá que elas se federem com SAML; a maioria dos IdPs tem catálogos de aplicativos que já estão integrados. 

O SAML faz parte de uma família maior de protocolos de identidade modernos, que também inclui padrões como OAuth e Open ID Connect (OIDC). OAuth é para autorização; isso permite que os aplicativos realizem ações ou acessem recursos em nome do usuário sem precisar de suas credenciais. OIDC, construído em cima do Oauth, é um padrão aberto que as empresas usam para verificar as identidades dos usuários. Parecki de Okta chama isso de “a versão moderna do SAML”.

“Houve muitas mudanças fundamentais na tecnologia que o SAML não evoluiu para resolver”, diz ele, observando que o OpenID Connect, por exemplo, foi projetado para se adaptar a telefones celulares e é construído em JSON em vez de XML de SAML. “Acho que você atingirá muito rapidamente os limites do que o SAML é útil ao tentar aplicá-lo em uma pilha de tecnologia moderna.”

O SAML pode ter endereçado o SSO, diz Parecki, mas não foi criado para o mundo orientado por API em que vivemos hoje. Os aplicativos modernos não precisam apenas saber quem acabou de fazer login; eles também precisarão acessar uma API – algo que ele observa que o OIDC e o OAuth já fazem com mais eficiência. 

“Tudo é conduzido por APIs”, acrescenta Kelley. “É assim que os desenvolvedores gostam de desenvolver as coisas … interações baseadas em API. Eles preferem seguir esse caminho de desenvolvimento de um aplicativo para se comunicar com APIs para autenticação … em vez de apenas por meio do navegador.” 

Os recursos e funcionalidades adicionais do OAuth e OIDC aumentam sua complexidade, observa ele. O SAML, em comparação, é mais simples, mas carece dos recursos adicionais dos processos orientados por API. Embora ele acredite que a adoção de OAuth e OIDC aumentará, Kelley prevê que levará mais oito a 10 anos até que se tornem mais comuns do que o SAML.

Leitura adicional

Esses links contêm informações mais úteis sobre SAML e os detalhes de como ele funciona:

FONTE: DARK READING

POSTS RELACIONADOS