Instale a integração Axur Leakstream

Axur Leakstream é uma integração de Firewall que monitora atividades na internet em busca de credenciais vazadas. Ela ajuda seu e-commerce a evitar ataques de checker e a proteger as credenciais dos seus usuários, verificando se uma determinada combinação de nome de usuário e senha foi exposta em alguma violação de dados conhecida.

Quando uma requisição de login chega ao edge, a função extrai o nome de usuário e a senha do corpo da requisição, consulta a API do Axur Leakstream e adiciona cabeçalhos personalizados à requisição. O Rules Engine pode então usar esses cabeçalhos para executar qualquer ação necessária — como bloquear a requisição, redirecionar o usuário ou acionar um fluxo de verificação secundário.


Pré-requisitos

Para começar a usar esta integração, você precisa:

  • Criar uma conta Axur e assinar um plano Leakstream compatível com o tamanho da sua base de clientes.
  • Obter um Token API da Axur após a habilitação da sua conta.

Obtenha a integração

Para instalar esta integração:

  1. Acesse Azion Console > Marketplace.
  2. Na página inicial do Marketplace, selecione o cartão da Leakstream.
  3. Na página de integração, clique no botão Install.

Você verá uma mensagem indicando que sua integração foi instalada com sucesso.


Configure a integração

Depois de instalar a integração Axur Leakstream, conclua as etapas abaixo para configurá-la.

Configure um Firewall

Siga estes passos:

  1. No canto superior esquerdo, abra o Products menu e selecione Firewall na seção Secure.
  2. Clique no botão + Firewall.
  3. Dê um nome fácil de lembrar ao seu firewall.
  4. Ative a opção Functions na seção Modules.
    • Esta ação dá acesso a functions no firewall.
  5. Clique no botão Save.

Pronto. Agora você instanciou o firewall para sua função e tem acesso a functions em seu firewall.

Configure uma função no Firewall

Enquanto ainda estiver na página do Firewall:

  1. Selecione a aba Functions Instances.
  2. Clique no botão + Function Instance.
  3. Dê um nome fácil de lembrar à sua instância.
  4. No menu suspenso, selecione a função Axur Leakstream.
  5. Na caixa Arguments, passe suas variáveis:
{
"api_key": "YourAxurAPIKey",
"username_field": "user",
"password_field": "password",
"password_hash_type": "sha256",
"execute_hashing": false,
"leakstream_timeout": 60000
}

Onde:

VariávelObrigatórioDescrição
api_keySimO Token API da sua conta Axur. Obrigatório, a menos que a variável de ambiente AXUR_API_V1_LEAKSTREAM_API_KEY esteja definida
username_fieldSimO nome do campo no corpo da requisição que contém o nome de usuário. Obrigatório, a menos que a variável de ambiente AXUR_API_V1_LEAKSTREAM_USERNAME_FIELD esteja definida
password_fieldNãoO nome do campo no corpo da requisição que contém a senha
password_hash_typeNãoO algoritmo de hash usado para a senha. Valores aceitos: md5, sha1, sha224, sha256, sha384, sha512
execute_hashingNãoQuando definido como true, a função aplica hash SHA-256 à senha automaticamente antes de enviá-la à API da Axur. Recomendado quando o frontend não aplica hash à senha
leakstream_timeoutNãoTimeout de conexão (em milissegundos) para requisições à API da Axur. O valor padrão é 60000 (60 segundos)
  1. Clique no botão Save.

Configure uma regra no Rules Engine

A integração Leakstream usa um padrão de duas regras no Rules Engine:

  • Regra 1 — aciona a função Leakstream no endpoint alvo (por exemplo, um formulário de login ou criação de conta).
  • Regra 2 — aciona uma segunda função de resposta personalizada no mesmo endpoint. Essa função lê os cabeçalhos personalizados definidos pelo Leakstream e decide se deve bloquear a requisição ou deixá-la passar.

Os critérios do Rules Engine do Firewall não suportam correspondência em cabeçalhos de requisição personalizados. Por isso, a lógica de bloqueio deve estar dentro de uma segunda função que lê o cabeçalho axur-leakstream-leaked do objeto da requisição e retorna a resposta adequada.

A tabela abaixo descreve os cabeçalhos que a função Leakstream adiciona ao objeto da requisição:

CabeçalhoValorDescrição
axur-leakstream-leakedtrueA combinação de nome de usuário e senha foi encontrada em uma violação de dados
axur-leakstream-username-leakedtrueO nome de usuário isolado foi encontrado em uma violação de dados
axur-leakstream-missing-usernametrueO campo de nome de usuário não foi encontrado no corpo da requisição
axur-leakstream-errortimeout, invalid-content-type ou um código de status HTTPOcorreu um erro ao chamar a API da Axur

Regra 1 — Execute a função Leakstream

Ainda na página do Firewall:

  1. Selecione a aba Rules Engine.
  2. Clique no botão + Rule Engine.
  3. Dê um nome fácil de lembrar à regra (por exemplo, Executar Leakstream).
  4. Selecione um criteria (critério) para restringir quais requisições acionam a verificação do Leakstream.
    • Exemplo: if Request Method is equal to POST and Request URI matches /login.
    • Isso evita executar a verificação em todas as requisições e a limita a endpoints de login ou criação de conta.
  5. Abaixo, selecione Run Function como behavior e escolha a instância da função Leakstream criada anteriormente.
  6. Clique no botão Save.

Regra 2 — Aja sobre o resultado

Antes de criar esta regra, você precisa de uma segunda instância de função que leia o cabeçalho axur-leakstream-leaked e retorne uma resposta personalizada. Por exemplo, a função abaixo retorna uma página HTML de aviso quando o cabeçalho é true:

async function handleRequest(request) {
const leaked = request.headers.get('axur-leakstream-leaked');
if (leaked === 'true') {
const html = `<!DOCTYPE html>
<html lang="pt-BR">
<head>
<title>Aviso!</title>
</head>
<body>
<h1>Aviso!</h1>
<p>A combinação de usuário e senha fornecida foi encontrada em um vazamento de dados. Você não pode utilizá-la.</p>
</body>
</html>`;
return new Response(html, {
status: 403,
headers: { 'content-type': 'text/html;charset=UTF-8' },
});
}
return fetch(request);
}
addEventListener('fetch', event => {
return event.respondWith(handleRequest(event.request));
});

Após criar e instanciar a função de resposta, adicione a segunda regra:

  1. Clique novamente no botão + Rule Engine.
  2. Dê um nome fácil de lembrar à regra (por exemplo, Bloquear credenciais vazadas).
  3. Defina o criteria para corresponder ao mesmo endpoint da Regra 1:
    • Exemplo: if Request Method is equal to POST and Request URI matches /login.
  4. Selecione Run Function como behavior e escolha a instância da função de resposta.
  5. Clique no botão Save.

Associe o Firewall ao seu domínio

No Console, você deve agora configurar seu domínio para que ele seja protegido pelo seu Firewall.

  1. No Products menu, selecione Domains.
  2. Clique no domínio que você deseja proteger com sua função Leakstream.
  3. Na seção Settings, clique no seletor de Firewall e escolha o Firewall que você acabou de criar.
  4. Clique no botão Save.

Pronto. Agora a integração Axur Leakstream está em execução e protegendo as credenciais dos seus usuários no edge.


Documentação relacionada