BarsUP.AM: como desenvolvemos uma ferramenta para proteger informações de aplicativos da web

imagem

BarsUp.Access Manager (BarsUp.AM) - nosso pacote de software para proteger informações confidenciais. Ao projetar e desenvolver esse sistema de acordo com os requisitos dos documentos regulamentares do FSTEC da Rússia, encontramos dificuldades no gerenciamento do acesso a aplicativos da Web usando ferramentas certificadas de proteção de informações.

A ordem do FSTEC da Rússia nº 17 diz que deve haver uma escolha de ferramentas de proteção de informações certificadas para conformidade com os requisitos de segurança da informação, levando em consideração seu custo, compatibilidade com a tecnologia da informação e meios técnicos. Examinamos o que estava no mercado na época e entendemos: o custo de soluções compatíveis com nossos sistemas de informação geralmente excedia o custo dos próprios sistemas ou eram incompatíveis.

Nesse caso, o regulador relata que, na ausência de meios adequados de proteção de informações, seu desenvolvimento (revisão) e certificação estão em conformidade com a legislação da Federação Russa ou o ajuste das decisões de projeto . Decidimos desenvolver e certificar no FSTEC da Rússia o software que implementa as funções de identificação e autenticação de usuários, controle de acesso e registro de eventos de segurança para a possibilidade de seu uso:

  • Em sistemas automatizados até a classe de segurança 1G, inclusive de acordo com os requisitos do documento de orientação “Sistemas automatizados. Proteção contra acesso não autorizado a informações. Classificação de sistemas automatizados e requisitos de proteção de informações ”(Comissão Técnica do Estado da Rússia, 1992);
  • 11 2013 . № 17 « , , » 11 2014 . « »;
  • 1 18 2013 . № 21 « ».

O produto é chamado BarsUP.Access Manager ou BarsUP.AM . Removerei os problemas relacionados à obtenção de uma decisão do FSTEC e à conclusão de acordos com um laboratório de testes e um organismo de certificação além das fronteiras deste material, e descreverei como desenvolvemos software para proteger aplicativos da Web.

Começar


Formamos uma equipe composta por um gerente de projeto, engenheiro de segurança da informação, analista, arquiteto de software e dois desenvolvedores líderes. Durante a implementação do projeto, identificamos as seguintes etapas do trabalho:

imagem

Na etapa de análise, coletamos requisitos dos documentos regulatórios que podem ser implementados como uma ferramenta de segurança para a web e, em seguida, trabalhamos em conjunto com os desenvolvedores sobre a possibilidade de sua implementação em termos de recursos gastos e tempo. Ao discutir os requisitos, traduzimos a redação dos atos jurídicos para um idioma compreensível para analistas e desenvolvedores, formamos um roteiro: o que deve ser implementado em primeiro lugar, que é opcional. Escrevemos documentação para certificação em paralelo e após o desenvolvimento do produto.

Na saída, recebemos um produto que resolve as seguintes tarefas:

  • (SSO) ;
  • ;
  • ;
  • ;
  • ;
  • .
  • , ;
  • ;
  • () , TOTP ;
  • ;
  • ;
  • () ;
  • ;
  • ;
  • escalabilidade horizontal do sistema devido ao armazenamento em cluster.

O software suporta dois padrões para implementar a conexão única:

  • linguagem de marcação de asserção de segurança (SAML);
  • OpenID Connect 1.0.

Implementação de logon único SAML


De acordo com os termos do padrão SAML, o software atua como um provedor de identidade (IdP). Os subsistemas IP atuam como provedores de serviços (SPs).

O procedimento geral para trabalhar com logon único via SAML é apresentado abaixo:

imagem

  1. O usuário está tentando implementar o acesso da web ao aplicativo (SP);
  2. O aplicativo verifica a presença de um contexto de segurança e, na sua ausência, gera uma mensagem AuthnRequest e redireciona o navegador do usuário para o servidor de autorização BarsUP.AM (IdP);
  3. O usuário se conecta ao servidor de autorização e insere suas credenciais;
  4. , ;
  5. Response;
  6. , Response. Response .

A troca de mensagens entre as partes é na forma de instruções SAML (asserções) . As declarações de SAML são transmitidas usando o protocolo HTTPS seguro.

Uma relação de confiança é estabelecida entre o provedor de identidade do IdP e os provedores de serviços SP. As mensagens SAML enviadas, incluindo AuthRequest e AuthResponse, são assinadas usando certificados digitais SP e IdP, respectivamente.

Uma mensagem AuthRequest é assinada com a chave privada do aplicativo e entregue ao servidor de autorização usando mensagens de redirecionamento HTTP, HTTP POST ou artefato HTTP. Uma mensagem AuthRequest, em particular, contém as seguintes informações:

  • URL do aplicativo
  • URL do provedor de identidade do IdP (servidor de autorização BarsUP.AM);
  • ID e hora da criação da solicitação.

A mensagem de resposta do AuthnResponse é assinada com a chave privada do servidor de autorização. Uma mensagem do AuthnResponse, em particular, contém as seguintes informações:

  • Identificador de solicitação AuthRequest ao qual esta resposta corresponde;
  • URL do manipulador de resposta
  • o período durante o qual a resposta é considerada válida;
  • Data e hora da autenticação do usuário
  • identificador de sessão do usuário;
  • atributos do usuário e seus valores.

Implementando o logon único com base no OpenID Connect


O OpenID Connect é uma extensão projetada para fornecer identificação e autenticação de usuário através do protocolo OAuth 2.0.

No processo de implementação do logon único usando a tecnologia OpenID Connect, o BarsUP.AM atua como um provedor OpenID (OpenID Provider, OP). Os sistemas de informação (ou seja, aplicativos da web direcionados acessados ​​pelo usuário) atuam como a Parte Confiante (RP), que usa o OP para autenticar o usuário.

A implementação do logon único via OpenID Connect é descrita na figura abaixo:

imagem

  1. O usuário está tentando acessar o aplicativo (Web)
  2. O aplicativo gera uma solicitação de código de autorização (protocolo OAuth2.0) e redireciona o navegador do usuário para o servidor de autorização BarsUP.AM (OP);
  3. O usuário insere suas credenciais no OP;
  4. OP ;
  5. , OP RP . , Authorization Response, ;
  6. RP OP, (Token Request). TLS;
  7. , OP RP (ID Token, Access Token);
  8. RP .

BarsUP.AM web-


Para evitar ataques destinados a falsificar o OP ou o RP, eles devem se autenticar mutuamente.

O BarsUP.AM suporta os métodos de autenticação definidos na especificação do OpenID Connect. O princípio de operação do OpenID Connect e OAuth 2.0 é baseado no uso de tokens de identificação (token de identificação) e autorização (token de acesso).

Vou dar a implementação das funções básicas de segurança em software:

  • identificação e autenticação de usuário;
  • controle de acesso;
  • log de eventos de segurança.

Autenticação e autenticação do usuário


Identificação e autenticação são implementadas no BarsUP.AM com base no nome de usuário e senha. O usuário insere suas credenciais na página da Web de autenticação BarsUP.AM. Nesse caso, as credenciais são transmitidas de forma segura pelo protocolo HTTPS. O acesso ao aplicativo de destino é permitido apenas se a autenticação for bem-sucedida. Assim, a identificação e autenticação do usuário são realizadas com acesso remoto da Web ao IP.

Ao inserir a senha, a senha não é exibida no formulário da Web e o especial é substituído. personagens. Devido a isso, a proteção de feedback é implementada ao inserir informações de autenticação.

A diretiva de senha BarsUP.AM fornece as seguintes configurações:

  • algoritmo de hash;
  • banir nome de usuário na senha;
  • número mínimo de dígitos em uma senha;
  • comprimento mínimo da senha;
  • número mínimo de letras minúsculas;
  • número mínimo de letras maiúsculas;
  • número mínimo de caracteres especiais;
  • comprimento do histórico da senha;
  • alteração forçada da senha após um certo período de tempo;
  • O número mínimo de caracteres alterado na nova senha.

O BarsUP.AM também suporta autenticação de usuário multifatorial (dois fatores).

Controle de acesso


O BarsUP.AM implementa suporte automatizado ao gerenciamento de contas de usuário e bloqueio automático de conta de usuário.

O administrador pode criar, modificar, excluir, bloquear e desbloquear contas de usuário a seu critério. As contas de usuário são criadas pelo administrador usando o console da web do servidor de gerenciamento BarsUP.AM. Ao criar uma conta, o nome, o endereço de email, o período de validade da conta e, se necessário, outros atributos do usuário são indicados. A senha é alterada pelo usuário no primeiro login, de acordo com a política de senha. As contas de usuário podem ser agrupadas com atributos e permissões específicos do grupo.

Os seguintes mecanismos de bloqueio de conta de usuário são:

  • bloqueio de administrador;
  • bloqueio no final do período de tempo definido para o uso da conta;
  • bloqueio após um período de tempo especificado de não uso da conta;
  • bloqueio ao exceder tentativas malsucedidas de login;
  • bloqueando quando o número de sessões simultâneas for excedido.

A conta será desbloqueada pelo administrador ou após o tempo limite de bloqueio (por exemplo, quando é bloqueada devido ao excedente do número de tentativas com falha de login).

O BarsUP.AM implementa o controle de acesso dos sujeitos ao entrar no IP. Cada usuário ou grupo de usuários no BarsUP.AM pode receber funções e direitos. Os direitos podem ser aplicados a um sistema específico ou a todo o domínio que inclui vários sistemas (aplicativos). As informações sobre a função e os direitos são definidas pelo administrador e são corrigidas na forma de atributos de acesso.

Log de eventos de segurança


O BarsUP.AM implementa a coleta, gravação e armazenamento de informações sobre eventos de segurança durante o acesso remoto da Web ao IP. Em particular, são registrados eventos relacionados à alteração de senhas de usuários, configuração e exclusão de contas de usuários, alteração de regras de controle de acesso e permissões de usuários.

Eventos de segurança são registrados no log de eventos. Para cada evento, a data e hora, o tipo de evento, o sistema afetado, o usuário associado ao evento e o endereço IP do nó são registrados. O servidor de log é usado para armazenar logs de eventos.

Os eventos são divididos em categorias, incluindo eventos de segurança e eventos do sistema. Os direitos para visualizar o log de eventos são concedidos ao administrador.

A composição dos eventos de segurança a serem gravados pode ser personalizada. A definição de eventos de segurança a serem registrados e seus períodos de armazenamento são registrados nos documentos organizacionais e administrativos para proteção de informações

Total


O projeto levou seis meses, excluindo o tempo de teste e o trabalho do organismo de certificação. Agora, ao implementar projetos para garantir a proteção das informações nos sistemas de informação, não temos dor de cabeça, como proteger aplicativos da Web.

Source: https://habr.com/ru/post/undefined/


All Articles