Ganhos:
- Capacidade de separar autenticação e autorização e aplicar autorização mínima com RBAC/ABAC
- Capacidade de evitar risco de proxy misto executando o modelo no contexto do usuário
- Capacidade de armazenar e alternar chaves de API com o sistema de gerenciamento de segredos
Uma parte significativa dos ataques a um sistema de IA não começa com “enganar” o modelo, mas com uma chave de API roubada ou uma conta excessivamente autorizada. Essa camada de segurança vem da segurança da informação clássica, mas acrescenta novos riscos no contexto da IA: um modelo pede carona em nome de outra pessoa, uma conta de serviço acessa todos os dados, uma chave vaza para o GitHub. Nesta unidade aprenderemos como restringir o acesso ao sistema de IA com autenticação, autorização (RBAC/ABAC), autorização mínima e gerenciamento de segredos.
Diferença entre autenticação e autorização
Os dois termos são frequentemente confundidos:
- Autenticação: "Quem é você?" — provar que o usuário/serviço é realmente quem afirma ser (senha, token, certificado, MFA).
- Autorização: "O que você pode fazer?" — determine qual recurso/ação a parte autenticada pode acessar.
A sutileza crítica nos sistemas de IA é esta: quando o modelo executa trabalho em nome de um usuário, ele opera com a autoridade desse usuário ou com uma conta de serviço ampla? Este último é perigoso – porque o modelo enganado pela injeção ganha acesso total à conta do serviço.
Cuidado: Problema de "deputado confuso": um usuário de baixa autoridade acessa indiretamente dados que não pode acessar terceirizando um modelo de alta autoridade. O modelo deve sempre operar dentro do contexto da autoridade do usuário, e não de sua própria autoridade ampla.
RBAC e ABAC
- RBAC (Role-Based Access Control): O acesso depende da função do usuário. A função "especialista de suporte" pode ler notas de clientes, mas não pode excluí-las. Simples e comum.
- ABAC (Controle de Acesso Baseado em Atributos): O acesso depende de atributos: o departamento do usuário, o rótulo de privacidade dos dados, a hora do dia, a rede de onde vem a solicitação. Mais afinado, mas mais complexo.
A maioria das organizações começa com o RBAC e se aprofunda no ABAC para dados confidenciais. Regra geral para IA: o modelo deve filtrar cada agente que chama e todos os dados que acessa com base na função/atributos do usuário que faz a solicitação.
Passo a passo: exercendo autoridade mínima
- Faça um inventário. Quais ferramentas o modelo chama, quais dados ele acessa? Liste todos eles.
- Justifique cada acesso. “Este assistente realmente precisa de autoridade de exclusão?” Caso contrário, remova-o.
- Padrão somente leitura. O modelo deve ser capaz de ler por padrão; Exigir gravação/exclusão de token separado e de escopo restrito.
- Mova o contexto do usuário. Ligue para o veículo com a autoridade do usuário, não com a conta de serviço.
- Credencial de curta duração. Use tokens de curta duração e com renovação automática em vez de chaves de longa duração.
Gerenciamento Secreto
Um segredo são credenciais que devem permanecer secretas, como uma chave de API, senha, token ou certificado. O acidente mais comum em projetos de IA é quando a chave API do fornecedor do modelo é incorporada no código e vaza para o controle de versão (Git).
Aplicação correta:
- Nunca incorpore chaves no código; Use uma variável de ambiente ou um sistema de gerenciamento de segredos (um serviço que armazena chaves criptografadas e controla o acesso).
- Rotação: Renove as chaves em intervalos regulares (por exemplo, a cada 90 dias); Se houver suspeita de vazamento, cancele imediatamente.
- Redução de escopo: Cada switch possui apenas o serviço e a autorização necessários.
- Auditoria: registre quem usou a chave, quando e onde.
Quatro modelos copiáveis
Prompt de controle de revisão de acesso:
Para cada ferramenta na lista de ferramentas abaixo, avalie: - Esta ferramenta é NECESSÁRIA para realizar o trabalho deste assistente? (sim/não) - É somente leitura ou gravação/apagamento? - Esta ferramenta é chamada com a autoridade ou conta de serviço do usuário? Marque aqueles desnecessários ou excessivamente autorizados como "REMOVER/REDACT".<tools>{{ tool_list }}</tools>
Solicitação de verificação de vazamento secreto:
Encontre qualquer coisa que possa ser um segredo codificado no seguinte trecho de código: chave de API, senha, token, cadeia de conexão, chave privada. Forneça linha e tipo para cada um. COPIE o valor em resposta;máscara (primeiros 4 caracteres + ***).<code>{{ source }}</code>
Regra de decisão de menor autoridade:
Quando uma nova solicitação de ferramenta/acesso chegar, pergunte:1. A tarefa pode ser executada sem esse acesso? -> Se sim: REJECT2. Somente leitura é suficiente? -> Se sim: GRANT permissão de gravação3. O escopo pode ser reduzido a uma única fonte? -> Se sim: daratA resposta padrão é "não"; O acesso é obtido pela razão.
Lembrete do calendário de rotação:
Para cada segredo, registre: proprietário, data de criação, expiração, escopo. Relate qualquer chave que tenha ultrapassado 90 dias ou não tenha sido usada por 30 dias como “CANDIDATO DE ROTAÇÃO/CANCELAMENTO”.
Alerta Fraco/Prompt Forte
abordagem pobre
Abordagem forte
O modelo acessa todos os dados com uma única conta de serviço
O modelo acessa com a autoridade do usuário que faz a solicitação
A chave da API está incorporada no código e nunca muda
Rotação no gerenciador de segredos de chave, 90 dias
Ampla autoridade de "fazer qualquer coisa" para o assistente
Padrão somente leitura, gravação restrita
Os acessos nunca são revisados
Revisão e revogação regulares de acesso
Três Mini Estojos
Caso 1 — Vazamento de dados de proxy misto. Um assistente interno trabalhava com uma conta de serviço que tinha acesso a todos os registros dos funcionários. Um usuário estagiário acessou dados que normalmente não veria dizendo “resuma a tabela salarial dos executivos”; porque o modelo o questionou no contexto de sua própria autoridade ampla, não do usuário. Depois que o contexto do usuário foi ajustado para ser movido, o estagiário conseguiu extrair gravações que somente ele poderia ver.
Caso 2 — Chave vazada, nota de 190.000 TL em 2 semanas. Um desenvolvedor incorporou a chave de API do modelo em um script auxiliar e a enviou para um repositório público. Um bot encontrou a chave em 40 minutos e a usou por duas semanas; A conta atingiu 190.000 TL. Quando a chave foi movida para o gerenciador de segredos, conectada à rotação e a verificação do repositório foi adicionada, o incidente não ocorreu novamente.
Caso 3 — Interrupção evitada por padrão somente leitura. Um assistente DevOps recebeu um comando “redefinir banco de dados de produção” por meio de injeção imediata. No entanto, o assistente recebeu apenas um token somente leitura; gravar/apagar estava em um fluxo aprovado separado. O comando foi rejeitado com erro de autorização e o evento foi registrado como alarme; Não houve perda de dados.
Dica: Faça do “não” sua resposta padrão para uma nova solicitação de acesso. O acesso é algo obtido através da justificação; Dar largura a todos e depois cortar quase nunca é feito e o risco se acumula.
Erros comuns
- Executando o modelo com uma conta de serviço grande e perdendo o contexto do usuário (proxy misto).
- Incorporar a chave de API no código e vazá-la para o controle de versão.
- Não girar as teclas ("trabalhando, não toque").
- Conceder permissões de gravação/exclusão ao assistente por padrão.
- Conceder acesso uma vez e nunca reconsiderá-lo.
- Confundir autenticação com autorização e presumir que “ele está logado, pode acessar tudo”.
Em resumo
- A autenticação é uma questão de “quem é você”, a autorização é uma questão de “o que você pode fazer”; Na IA, ambos devem operar no contexto do usuário.
- O modelo deve operar com a autoridade do usuário que faz a solicitação, e não com a sua própria autoridade ampla (evitando o risco de agência mista).
- Comece com RBAC, aprofunde-se com ABAC em dados sensíveis; Torne a autoridade mínima o padrão.
- Não enterre segredos em código; armazene-o no gerenciador secreto, restrinja-o e coloque-o em rotação regular.
- O padrão somente leitura e a gravação restrita limitam bastante o impacto da injeção.
Tarefa de aplicativo
Liste todas as ferramentas e dados que seu assistente de IA acessa. Responda três perguntas para cada: (1) É realmente necessário? (2) Somente leitura é suficiente? (3) Ele é executado no contexto do usuário? Em seguida, pesquise todos os segredos codificados (por meio do prompt de verificação acima) e escreva um plano de rotação para cada chave encontrada. Remova pelo menos uma autorização desnecessária.
lista de verificação
- [] O modelo é executado no contexto de autoridade do usuário que faz a solicitação.
- [] O acesso a ferramentas e dados foi reduzido ao princípio do menor privilégio.
- [] Gravar/apagar é separado de somente leitura, autenticado e restrito.
- [] Nenhum segredo está enterrado no código; Ele é mantido no gerenciador secreto.
- [ ] Existe um cronograma de rodízio e procedimento de cancelamento de chaves.
- [ ] Os acessos são revisados regularmente.