Instale a integração Leakstream
Instale Axur Leakstream a partir de Azion Marketplace e execute-a em um firewall para sinalizar requisições de login que usam credenciais vazadas.
Você instala a integração Axur Leakstream a partir de Azion Marketplace e a executa em um firewall, pelo Azion Console. Leakstream monitora a internet em busca de credenciais vazadas e verifica se uma combinação de nome de usuário e senha foi exposta em uma violação de dados conhecida. Use-a para proteger seu e-commerce de ataques de checker e proteger as credenciais dos seus usuários. A função extrai o nome de usuário e a senha do corpo de uma requisição de login, consulta a API do Axur Leakstream e adiciona cabeçalhos personalizados à requisição. Uma segunda função lê esses cabeçalhos e bloqueia a requisição, redireciona o usuário ou inicia um fluxo de verificação secundário.
Seis objetos precisam existir antes que uma requisição seja verificada: a função instalada, um firewall com o módulo Functions, uma instância da função Leakstream, uma instância da função de resposta, duas regras do Rules Engine com o behavior Run Function e um deployment de workload vinculado ao firewall. As seções abaixo criam esses objetos.
Pré-requisitos
- Uma conta Azion. Para entrar, consulte Como acessar o Azion Console.
- Uma aplicação servida por um workload, cujo deployment você vincula ao firewall na última seção.
- Uma conta Axur com um plano Leakstream compatível com o tamanho da sua base de clientes.
- Um API Token da Axur, que você obtém depois que a Axur habilita sua conta.
- Azion CLI instalada e autorizada, para a última seção.
- Ativar um produto ou um módulo pode gerar custos de uso. Para mais informações, consulte Preços.
Instale a integração
A função é instalada uma vez por conta. Para instalá-la:
Acesse Azion Console > Marketplace.
Digite Leakstream no campo Search on Marketplace e selecione o card da integração. Navegar pelos cards e pelas categorias leva à mesma página.
O card exibe Successfully installed! e Latest version installed!, e a função aparece na lista Function do drawer Create Instance.
Crie o firewall
O firewall é onde as funções são instanciadas e onde ficam as regras que as executam. Para criar um:
Acesse Azion Console > Firewalls e crie um firewall.
Na seção General, insira um Name. Por exemplo: leakstream-firewall.
Na seção Modules, ative o switch Functions.
O firewall exibe a aba Functions Instances enquanto o módulo Functions estiver ativo. Para usar um firewall existente, ative o módulo Functions dele e salve-o. Para cada configuração deste formulário, consulte Defina as configurações principais de um firewall.
Crie a instância de função
A instância guarda seu API Token da Axur e os nomes dos campos de login. Para criá-la:
Em Firewalls, selecione seu firewall e, em seguida, a aba Functions Instances.
Um firewall sem instâncias exibe a mesma ação como Function Instance. O drawer Create Instance é aberto.
Em Name, insira um nome. Por exemplo: leakstream.
Em Function, selecione a função Axur Leakstream. A lista contém apenas as funções que executam em um firewall.
Em Arguments, o editor vem preenchido com os argumentos padrão da integração em JSON. Insira seus valores, como a próxima seção descreve.
A instância aparece na aba Functions Instances.
Argumentos
A instância recebe seu API Token e os campos a serem lidos:
| Variável | Obrigatório | Descrição |
|---|---|---|
api_key | Sim | O API Token da sua conta Axur. Obrigatório, a menos que a variável de ambiente AXUR_API_V1_LEAKSTREAM_API_KEY esteja definida |
username_field | Sim | O nome do campo do 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_field | Não | O nome do campo do corpo da requisição que contém a senha |
password_hash_type | Não | O algoritmo de hash da senha. Valores aceitos: md5, sha1, sha224, sha256, sha384, sha512 |
execute_hashing | Não | Quando true, a função aplica hash SHA-256 à senha antes de enviá-la à API da Axur. Use quando o frontend não aplica hash à senha |
leakstream_timeout | Não | O timeout de conexão, em milissegundos, das requisições à API da Axur. O padrão é 60000 (60 segundos) |
Cabeçalhos que a função adiciona
A função Leakstream adiciona estes cabeçalhos ao objeto da requisição:
| Cabeçalho | Valor | Descrição |
|---|---|---|
axur-leakstream-leaked | true | A combinação de nome de usuário e senha foi encontrada em uma violação de dados |
axur-leakstream-username-leaked | true | O nome de usuário, isoladamente, foi encontrado em uma violação de dados |
axur-leakstream-missing-username | true | O campo de nome de usuário não foi encontrado no corpo da requisição |
axur-leakstream-error | timeout, invalid-content-type ou um código de status HTTP | Ocorreu um erro durante a chamada à API da Axur |
Crie a instância da função de resposta
Os critérios do Rules Engine do Firewall não correspondem a cabeçalhos de requisição personalizados. Por isso, a lógica de bloqueio fica em uma segunda função, que lê o cabeçalho axur-leakstream-leaked do objeto da requisição e retorna uma resposta.
A função abaixo retorna uma página HTML de aviso quando o cabeçalho é true:
Crie uma função de firewall com este código e instancie-a no mesmo firewall, com os passos da seção anterior. Para criar uma função que executa em um firewall, consulte Execute uma função em um firewall.
Crie as regras
A integração usa duas regras no mesmo endpoint. A primeira regra executa a função Leakstream, e a segunda executa a função de resposta que age sobre os cabeçalhos. Uma regra do Rules Engine para Firewall seleciona as requisições que chegam a uma instância, por meio do behavior Run Function.
Para criar a regra que executa a função Leakstream:
Em Firewalls, selecione seu firewall e, em seguida, a aba Rules Engine.
Em Name, insira um nome. Por exemplo: Run Leakstream.
Na seção Criteria, limite a verificação ao seu endpoint de login ou de criação de conta, não a todas as requisições. Por exemplo: if Request Method is equal to POST and Request URI matches /login.
Na seção Behaviors, selecione Run Function e, em seguida, selecione a instância Leakstream.
Para criar a regra que age sobre o resultado:
Em Name, insira um nome. Por exemplo: Block leaked credentials.
Na seção Criteria, corresponda ao mesmo endpoint da primeira regra. Por exemplo: if Request Method is equal to POST and Request URI matches /login.
Na seção Behaviors, selecione Run Function e, em seguida, selecione a instância da função de resposta.
Vincule o firewall ao workload
O vínculo fica no deployment do workload, então crie um deployment que nomeie a aplicação e o firewall:
O comando exibe o id do novo deployment:
As requisições ao domínio do workload chegam ao firewall, e as regras executam a instância Leakstream e a instância da função de resposta no endpoint de login.