Como proteger credenciais no Slack
Muitas organizações estão usando aplicativos de bate-papo para comunicação dentro de uma empresa, digamos S falta . Essas comunicações podem ser anúncios regulares, indivíduos solicitando acesso ou compartilhando credenciais entre si em um grupo ou individualmente em texto sem formatação. O problema surge quando o token de folga de um indivíduo vaza, o que leva a violações de dados como:
https://mashable.com/article/slack-key-to-twitter-hack
https://www.vice.com/en/article/7kvkqb/how-ea-games-was-hacked-slack
O problema central?
Os dados confidenciais compartilhados com seres humanos, idealmente, não devem ser acessíveis a usuários humanos também, em vez de armazená-los em um arquivo, você deve usar gerenciadores de senhas, por exemplo, Bitwarden , Lastpass , etc e estar disponível para sistemas de uma loja de creds.
Às vezes, usamos terceiros para compartilhar as credenciais. E se pudermos usar ferramentas internas para compartilhá-las? Como implantar o PrivateBin interno por trás da VPN e usá-lo para compartilhar credenciais.
Por que PrivateBin?
- Dá a você a flexibilidade de ajustar a validade do link de acordo com a necessidade do usuário (mesmo um link único)
- Links podem ser protegidos por senha
- É gratuito e de código aberto
- é fácil de usar
É porque apenas pessoas com acesso à VPN podem acessar o link. Se não estiver atrás de uma VPN, qualquer pessoa que tenha o token slack pode obter o link e acessá-lo pela Internet.
Automatizando toda a solução
O usuário abrir o PrivateBin e gerar o link será muito trabalhoso para o usuário. E se o usuário enviar a mensagem e ela puder ser substituída pelo link do PrivateBin .
Vamos criar um aplicativo slack e com a ajuda do AWS Lambda(Scalability) e AWS API Gateway, atingiremos nosso objetivo.
Diagrama de arquitetura
Etapas de implementação — Configurando o aplicativo Slack:
- Abra o link dos aplicativos slack .
- Clique em Criar novo aplicativo no canto superior direito.
- Clique em Do zero .
- Dê o nome do aplicativo Slack, escolha o espaço de trabalho e clique em Criar aplicativo.
- Clique em Oauth & Permissions e role para baixo até os escopos e adicione os escopos abaixo indicados em Bot Token Scopes e User Token Scopes :
channels:read
files:read
groups:read
im:read
links:read
mpim:read
remote_files:read
search:read
team:read
users:read
users:read.email
chat:write
- Vamos configurar o AWS API Gateway e associar uma função lambda que será invocada sempre que o endpoint da API for atingido. Faça login em sua conta da AWS, vá para Lambda e crie uma função com permissões básicas.
- Preencha o nome da função e selecione runtime como python 3.8 e clique em criar função.
- Copie o código de lambda_function.py e cole-o na função lambda e carregue os dois arquivos zip(pbincli.zip e slack-sdk.zip) restantes como camadas.
- Lembre-se de definir variáveis de ambiente em seu lambda. Essas variáveis são o segredo de assinatura do Slack, server(URL da caixa privada, por exemplo,https://privatebin.net/),e token slack do usuário (para postar o link no chat). Você pode obter o segredo de assinatura acessando as informações básicas do seu aplicativo slack e credenciais do aplicativo. Você pode obter o segredo de assinatura.
- Agora clique no aplicativo de instalação, no painel esquerdo do aplicativo slack. Após a instalação, você receberá um token OAuth do usuário. A variável de ambiente em seu lambda ficará assim:
server = <Your Server URL>
SLACK_USER_TOKEN = <User Oauth Token>
SLACK_SIGNING_SECRET = <Slack Signing Secret>
- Copie o URL acima e abra o aplicativo slack, vá para a assinatura do evento no painel esquerdo, clique no botão de alternância e cole o URL no URL da solicitação e aguarde até que não apareça verificado.
- Clique em Inscrever-se em eventos em nome dos usuários e em Inscrever-se em eventos de bot e adicione as seguintes permissões OAuth.
message.groups
message.channels
- Abra seu slack, adicione o bot a um canal e tente postar um segredo nele.
- A mesma solução pode ser expandida para Microsoft Teams, Confluence, etc.
Obrigado a Abhinav , Priyal e Jeyanthi por suas ideias e sugestões.
Você pode me seguir no Twitter / LinkedIn .





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)