Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
agentsh — Segurança em Camada de Execução (ELS) para agentes de IA — shell com política imposta e auditoria. | Kitploit
Ferramentas/GitHubGitHub/canyonroad/agentsh
Autenticação e AutorizaçãoSegurança de ContêineresAnálise Dinâmica (Sandboxing)Segurança de RedeSegurança na NuvemDevSecOpsResposta a IncidentesSegurança de IASegurança de Banco de DadosAnálise de Logs
GitHubcanyonroad/agentsh
36914há 15 diasRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

agentsh

Segurança em Camada de Execução (ELS) para agentes de IA — shell com política imposta e auditoria.

Ver RepositórioSite

agentsh

Nota para macOS: A aplicação nativa no macOS via ESF (Endpoint Security Framework) + NE (Network Extension) está em Alpha. Ela funciona de ponta a ponta — eventos de arquivo, processo e rede fluem através da extensão do sistema para o mecanismo de políticas em Go — mas espere arestas e mudanças significativas entre versões. Para uso em produção hoje, recomendamos Linux.

Nota para Windows: Estamos trabalhando para obter a assinatura dos drivers minifilter. Até lá, apenas o modo Windows WSL2 é totalmente compatível para uso em produção.

Gateway de execução seguro e com aplicação de políticas para agentes de IA.

O agentsh fica abaixo do seu agente/ferramentas — interceptando atividades de arquivo, rede, processo e sinal (incluindo árvores de subprocessos), aplicando a política que você define e emitindo eventos de auditoria estruturados.

Nota de plataforma: Linux oferece aplicação total (100% de pontuação de segurança). O ESF+NE do macOS (90% de pontuação) está em Alpha — funcional, mas não pronto para produção. O WSL2 do Windows oferece aplicação total equivalente ao Linux (100% de pontuação); o Windows nativo via driver minifilter + AppContainer (85% de pontuação) está pendente de assinatura do driver. Veja a Matriz de Comparação de Plataformas para detalhes.


O que é o agentsh?

  • Ponto de execução shell/exec substituível que transforma cada comando (e seus subprocessos) em eventos auditáveis.
  • Mecanismo de política por operação: allow, deny, approve (aprovação humana), soft_delete ou redirect.
  • Visibilidade completa de E/S:
    • abertura/leitura/escrita/exclusão de arquivos
    • conexão de rede + DNS
    • início/término de processos
    • atividade PTY
    • requisições de API LLM com DLP e rastreamento de uso
    • tráfego de banco de dados da família Postgres através de db_services declarados
    • envio/bloqueio de sinais (aplicado no Linux, auditado no macOS/Windows)
    • consultas a banco de dados via proxy PostgreSQL embutido — classificação e política por declaração
    • rotear chamadas de API HTTP de saída através de serviços declarados (http_services) com regras por método e por caminho, controle de aprovação e aplicação de host com falha fechada
  • Dois modos de saída:
    • saída shell amigável para humanos
    • respostas JSON compactas para agentes/ferramentas

Por que agentsh?

Fluxos de trabalho de agentes eventualmente executam código arbitrário (pip install, make test, python script.py). Os controles tradicionais de "pedir aprovação antes de executar um comando" param no limite da ferramenta e não conseguem ver o que acontece dentro desse comando.

O agentsh aplica a política em tempo de execução, de modo que o trabalho oculto realizado por subprocessos ainda é governado, registrado e (quando necessário) aprovado.


Bloqueios significativos: deny → redirect (o superpoder de "direcionamento")

A maioria dos sistemas pode negar uma ação. O agentsh também pode redirecioná-la.

Isso significa que quando um agente tenta a abordagem errada (ou soluções alternativas por força bruta), a política pode direcioná-lo para o caminho correto, trocando o comando e retornando orientação — mantendo o agente no caminho pavimentado e reduzindo tentativas desperdiçadas.

Exemplo: redirecionar curl para um wrapper auditado```yaml command_rules:

  • name: redirect-curl commands: [curl, wget] decision: redirect message: "Downloads routed through audited fetch" redirect_to: command: agentsh-fetch args: ["--audit"]
root@kitploit:~
**Exemplo: redirecionar escritas fora do workspace de volta para dentro**```yaml
file_rules:
  - name: redirect-outside-writes
    paths: ["/home/**", "/tmp/**"]
    operations: [write, create]
    decision: redirect
    redirect_to: "/workspace/.scratch"
    message: "Writes outside workspace redirected to /workspace/.scratch"

O agente vê uma operação bem-sucedida (não um erro), mas você controla onde as coisas realmente ocorrem.


Containers + agentsh: melhor juntos

Containers isolam a superfície do host; agentsh adiciona visibilidade e política em tempo de execução dentro do container.

  • Auditoria por operação (arquivos, rede, comandos) mostra o que aconteceu durante instalações/compilações/testes.
  • Aprovações e regras persistem em shells de longa duração e árvores de subprocessos—não apenas no primeiro comando.
  • Controles em nível de caminho em workspaces/caches/credenciais montados; containers nativamente não oferecem essa granularidade.
  • Mesmo comportamento no host e em containers, para que CI e desenvolvimento local vejam os mesmos resultados de políticas.

Início rápido

Instalar

macOS (Homebrew)```bash brew tap canyonroad/tap brew install --cask agentsh

root@kitploit:~
Isto instala o pacote de aplicativos AgentSH com a extensão de sistema ESF+NE. Após a instalação, será solicitado que você aprove a extensão do sistema em **System Settings > General > Login Items & Extensions**.

**Linux (a partir de um GitHub Release)**

Baixe o `.deb`, `.rpm` ou `.apk` para sua plataforma na [página de releases](https://github.com/erans/agentsh/releases).```bash
# Example for Debian/Ubuntu
sudo dpkg -i agentsh_<VERSION>_linux_amd64.deb

A partir do código fonte (Linux)```bash make build sudo install -m 0755 bin/agentsh bin/agentsh-shell-shim /usr/local/bin

root@kitploit:~
**A partir do código-fonte (macOS)**```bash
# ESF+NE mode (full enforcement — Alpha, requires Xcode 15+)
make build-macos-enterprise

Veja macOS Build Guide para instruções detalhadas de compilação no macOS.


Execute localmente```bash

Start the server (optional if using autostart)

./bin/agentsh server --config configs/server-config.yaml

Create a session and run a command (shell output)

SID=$(./bin/agentsh session create --workspace . --json | jq -r .id) ./bin/agentsh exec "$SID" -- ls -la

Structured output for agents

./bin/agentsh exec --output json --events summary "$SID" -- curl https://example.com

root@kitploit:~
---

### Verificar o que é aplicado

`agentsh detect` sonda o host e relata quais primitivas de aplicação estão realmente disponíveis — seccomp, Landlock, FUSE, eBPF, ptrace, cgroups — agrupadas em pontuações de proteção por domínio, além do modo de segurança selecionado. Em hosts restritos (Daytona, E2B, Firecracker-class) onde o listener user-notify do seccomp não pode ser instalado, ele relata o modo que *realmente* aplicará em vez do que o kernel meramente suporta.```bash
agentsh detect              # human-readable protection report
agentsh detect config       # emit a config tuned for this host

Consulte Modos de Segurança para a matriz de modos e parâmetros de ajuste.


Diga ao seu agente para usá-lo (AGENTS.md / CLAUDE.md snippet)```md

Shell access

  • Run commands via agentsh, not directly in bash/zsh.
  • Use: agentsh exec $SID -- <your-command-here>
  • For structured output: agentsh exec --output json --events summary $SID -- <your-command-here>
  • Get session ID first: SID=$(agentsh session create --workspace . --json | jq -r .id)
root@kitploit:~
---

### Início automático (sem etapa manual do daemon)

Você **não** precisa iniciar `agentsh server` manualmente.

* O primeiro `agentsh exec` (ou qualquer `/bin/sh`/`/bin/bash` com shim) iniciará automaticamente um servidor local usando `configs/server-config.yaml` (ou `AGENTSH_CONFIG`, se definido).
* Esse servidor mantém a camada FUSE e o mecanismo de políticas ativos durante a sessão; comandos subsequentes o reutilizam.
* Defina `AGENTSH_NO_AUTO=1` se quiser gerenciar o ciclo de vida do servidor manualmente.

---

## Uso no Docker (com o shim do shell)

Veja `Dockerfile.example` para uma imagem mínima baseada em Debian.

Dentro da imagem, instale um pacote de lançamento (ou copie sua compilação) e ative o shim:```bash
agentsh shim install-shell \
  --root / \
  --shim /usr/bin/agentsh-shell-shim \
  --bash \
  --i-understand-this-modifies-the-host

Aponte o shim para o seu servidor (sidecar ou host):```dockerfile ENV AGENTSH_SERVER=http://127.0.0.1:18080

root@kitploit:~
Agora, qualquer `/bin/sh -c ...` ou `/bin/bash -lc ...` no contêiner é roteado através do agentsh.

### Aplicação não interativa

Por padrão, o shim ignora a política quando stdin não é um TTY (preservando dados binários para comandos com pipe). Em plataformas onde os comandos são sempre não interativos mas ainda precisam de aplicação (por exemplo, exe.dev, sandbox APIs), adicione `--force`:```bash
agentsh shim install-shell \
  --root / \
  --shim /usr/bin/agentsh-shell-shim \
  --bash \
  --force \
  --i-understand-this-modifies-the-host

Isto escreve /etc/agentsh/shim.conf com force=true, que o shim lê na inicialização. O arquivo de configuração funciona independentemente de como o shell é gerado (ao contrário de variáveis de ambiente ou scripts de perfil). AGENTSH_SHIM_FORCE=1 no ambiente do processo atinge o mesmo efeito por processo.

Padrão recomendado: executar agentsh como um sidecar (ou PID 1) no mesmo pod/serviço e compartilhar um volume de workspace; o shim garante que cada salto de shell permaneça sob a política.


Modelo de política

Decisões

  • allow
  • deny
  • approve (aprovação humana)
  • redirect (substituir um comando)
  • audit (permitir + registrar)
  • soft_delete (quarentena exclusões com restauração)

Escopos

  • operações de arquivo
  • comandos
  • variáveis de ambiente
  • rede (DNS/conexão)
  • banco de dados (declarações SQL via proxy PostgreSQL)
  • configurações de PTY/sessão
  • serviços HTTP declarados

Avaliação

  • a primeira regra correspondente vence

As regras vivem em uma política nomeada; as sessões escolhem uma política.

Padrões:

  • configuração de exemplo: configs/server-config.yaml
  • política padrão: configs/policies/default.yaml
  • substituição por env: defina AGENTSH_POLICY_NAME para um nome de política permitido (sem sufixo). Se não definido/inválido/não permitido, o padrão é usado.
  • política de ambiente: configure policies.env_policy (allow/deny, max_bytes, max_keys, block_iteration) e substituições env_* por comando nos arquivos de política. Lista de permissões vazia padrão para PATH/LANG/TERM/HOME mínimos com lista de negação de segredos embutida; defina block_iteration para ocultar iteração de ambiente (requer env shim).
  • lista de permissões: configure policies.allowed em config.yml; vazio significa que apenas o padrão é permitido.
  • integridade opcional: defina policies.manifest_path para um manifesto SHA256 para verificar arquivos de política no momento do carregamento.

Referência rápida da política de ambiente

  • Padrões: Sem env_allow, agentsh constrói um ambiente mínimo (PATH/LANG/TERM/HOME) e remove chaves secretas embutidas.
  • Substituições: env_allow/env_deny por comando mais env_max_keys/env_max_bytes limitam e filtram o ambiente filho no momento da execução.
  • Bloqueio de iteração: env_block_iteration: true (global ou por regra) oculta a enumeração do ambiente; defina policies.env_shim_path para libenvshim.so para que agentsh injete LD_PRELOAD + AGENTSH_ENV_BLOCK_ITERATION=1.
  • Limites: Erros se os limites forem excedidos; o construtor de ambiente é aplicado antes da execução para cada comando.
  • env_inject: Variáveis de ambiente confiáveis pelo operador injetadas em todos os comandos, ignorando a filtragem de política. Uso principal: BASH_ENV para desabilitar builtins de shell que contornam seccomp. Configure em (global) ou em nível de política (substitui global).

Exemplos de regras (reduzido)```yaml

version: 1 name: default

file_rules:

  • name: allow-workspace paths: ["/workspace", "/workspace/**"] operations: [read, open, stat, list, write, create, mkdir, chmod, rename] decision: allow

  • name: approve-workspace-delete paths: ["/workspace", "/workspace/**"] operations: [delete, rmdir] decision: approve message: "Delete {{.Path}}?" timeout: 5m

  • name: deny-ssh-keys paths: ["/home//.ssh/", "/root/.ssh/**"] operations: ["*"] decision: deny

network_rules:

  • name: allow-api domains: ["api.example.com"] ports: [443] decision: allow

command_rules:

  • name: block-dangerous commands: ["rm", "shutdown", "reboot"] decision: deny
root@kitploit:~
---
### Usando uma política```bash
# Start the server with your policy
./bin/agentsh server --config configs/server-config.yaml

# Create a session pinned to a policy
SID=$(./bin/agentsh session create --workspace /workspace --policy default --json | jq -r .id)

# Exec commands; responses include decision + guidance when blocked/approved
./bin/agentsh exec "$SID" -- rm -rf /workspace/tmp

Autenticação

O agentsh suporta múltiplos métodos de autenticação:

TipoCaso de Uso
api_keyImplantações simples com chaves estáticas
oidcSSO empresarial (Okta, Azure AD, etc.)
hybridAmbos os métodos aceitos

Modos de aprovação para verificação humano-no-loop:

  • local_tty - Prompt do terminal (padrão)
  • totp - Códigos de aplicativo autenticador
  • webauthn - Chaves de segurança de hardware (YubiKey)
  • api - Aprovação remota via REST

Veja SECURITY.md para detalhes de configuração.

Segurança MCP

  • Lista de permissão de ferramentas: Controle quais ferramentas MCP podem ser invocadas por meio de políticas de lista de permissão/negação
  • Fixação de versão: Detecte alterações na definição de ferramentas (proteção contra rug pull) com respostas configuráveis
  • Detecção entre servidores: Bloqueie padrões de exfiltração de dados (ler do Servidor A → enviar pelo Servidor B)
  • Limitação de taxa: Limitação de taxa de token bucket para servidores MCP e domínios de rede

Veja SECURITY.md para opções completas de configuração, ou execute a Demonstração de Proteção MCP para ver essas detecções em ação.


Demonstração de 60 segundos

A maneira mais rápida de "entender" é executar algo que gere subprocessos e toque no sistema de arquivos/rede.```bash

1) Create a session in your repo/workspace

SID=$(agentsh session create --workspace . --json | jq -r .id)

2) Run something simple (human-friendly output)

agentsh exec "$SID" -- uname -a

→ prints system info, just like normal

3) Run something that hits the network (JSON output + event summary)

agentsh exec --output json --events summary "$SID" -- curl -s https://example.com

→ JSON response includes: exit_code, stdout, and events[] showing dns_query + net_connect

4) Trigger a policy decision - try to delete something

agentsh exec "$SID" -- rm -rf ./tmp

→ With default policy: prompts for approval or denies based on your rules

5) See what happened (structured audit trail)

agentsh exec --output json --events all "$SID" -- ls

→ events[] shows every file operation, even from subprocesses

root@kitploit:~
**O que você verá na saída JSON:**
- `exit_code`: o status de saída do comando
- `stdout` / `stderr`: saída capturada
- `events[]`: todas as operações de arquivo/rede/processo com decisões de política
- `policy.decision`: `allow`, `deny`, `approve` ou `redirect`

Dica: mantenha um terminal com `--output json` aberto ao testar políticas — isso torna óbvio o que está sendo tocado.

---

### Relatórios de Sessão

Gerar relatórios markdown resumindo a atividade da sessão:```bash
# Quick summary
agentsh report latest --level=summary

# Detailed investigation
agentsh report <session-id> --level=detailed --output=report.md

Relatórios incluem:

  • Resumo da decisão (permitido, bloqueado, redirecionado)
  • Detecção automática de achados (violações, anomalias)
  • Divisão de atividade por categoria
  • Linha do tempo completa de eventos (modo detalhado)

Veja o Guia de Integração CI/CD para exemplos de pipeline.


Pontos de Verificação do Espaço de Trabalho

Crie snapshots do estado do espaço de trabalho para recuperação de operações destrutivas:```bash

Create a checkpoint before risky operations

agentsh checkpoint create --session $SID --workspace /workspace --reason "before cleanup"

List checkpoints for a session

agentsh checkpoint list --session $SID

Show what changed since a checkpoint

agentsh checkpoint show --session $SID --workspace /workspace --diff

Preview what rollback would restore (dry-run)

agentsh checkpoint rollback --session $SID --workspace /workspace --dry-run

Restore workspace to checkpoint state

agentsh checkpoint rollback --session $SID --workspace /workspace

Clean up old checkpoints

agentsh checkpoint purge --session $SID --older-than 24h --keep 5

root@kitploit:~
**Auto-checkpoint:** Quando ativado, agentsh cria automaticamente pontos de verificação antes de comandos arriscados (`rm`, `mv`, `git reset`, `git checkout`, etc.). Configure em `sessions.checkpoints.auto_checkpoint`.

Consulte [SECURITY.md](https://github.com/canyonroad/agentsh/blob/HEAD/SECURITY.md#checkpoint-and-rollback) para opções completas de configuração.

---

### Proxy LLM e DLP

agentsh inclui um proxy embutido que intercepta todas as requisições de API LLM dos agentes:```bash
# Check proxy status for a session
agentsh proxy status <session-id>

# View LLM-specific events
agentsh session logs <session-id> --type=llm

Funcionalidades:

  • Roteamento automático: Define ANTHROPIC_BASE_URL e OPENAI_BASE_URL para que os SDKs de agente roteiem através do proxy
  • Provedores personalizados: Roteie para LiteLLM, Azure OpenAI, vLLM ou gateways corporativos
  • Mascaramento DLP: PII (e-mails, números de telefone, chaves de API, etc.) é mascarada antes de chegar aos provedores de LLM
  • Padrões personalizados: Defina padrões específicos da organização para dados sensíveis
  • Rastreamento de uso: Contagens de tokens extraídas e registradas para atribuição de custos
  • Trilha de auditoria: Todas as solicitações/respostas registradas no armazenamento de sessão

Configuração do provedor:```yaml proxy: mode: embedded providers: anthropic: https://api.anthropic.com # Default Anthropic API openai: https://api.openai.com # Default OpenAI API

root@kitploit:~
# Or use alternative providers:
# openai: http://localhost:8000         # LiteLLM / vLLM
# openai: https://your-resource.openai.azure.com  # Azure OpenAI
# anthropic: https://llm.corp.example.com         # Corporate gateway
root@kitploit:~
**Configuração DLP:**```yaml
dlp:
  mode: redact
  patterns:
    email: true
    api_keys: true
  custom_patterns:
    - name: customer_id
      display: identifier
      regex: "CUST-[0-9]{8}"

Consulte a Documentação do Proxy LLM para opções completas de configuração.

O mesmo proxy também despacha entradas declaradas http_services — upstreams de API nomeados com regras por método e por caminho. Consulte os Serviços HTTP Declarados e o Manual de Serviços HTTP para mais detalhes.


Controle de Acesso a Banco de Dados (apenas Postgres no momento)

agentsh pode aplicar políticas em serviços de banco de dados declarados através de db_services, database_connection_rules e database_rules. A implementação atual é apenas da família Postgres: PostgreSQL é o alvo suportado, com Aurora Postgres usando o mesmo caminho e Redshift/CockroachDB tratados como dialetos compatíveis com Postgres com cobertura beta. MySQL, MongoDB, Snowflake, BigQuery, Databricks, ClickHouse, MSSQL, Cassandra, Redis e Oracle são itens de roadmap, sem suporte atual em tempo de execução.

O suporte atual ao Postgres inclui:

  • Decisões de conexão permitir/negar/aprovar/auditar.
  • Classificação de declarações para o protocolo PostgreSQL wire v3, incluindo Simple Query, Extended Query, instruções preparadas SQL, COPY, negação de FunctionCall, estado de transação e mapeamento de CancelRequest.
  • Cobertura estrita de políticas por objeto com precedência de negação.
  • Seletores de relação/função baseados em catálogo para políticas de objeto resolvido.
  • redirect seguro em tempo de execução para substituição de relação Postgres somente leitura.
  • Detecção de bypass e cobertura E2E Docker com Postgres real em CI.

O runtime do proxy Postgres é código em processo apenas para Linux atualmente. Use Linux nativo, WSL2 ou um ambiente de VM Linux para aplicação de banco de dados.

Consulte Controle de Acesso a Banco de Dados e Documentação de Políticas.


Geração de Políticas

Gere políticas restritivas a partir do comportamento observado da sessão (fluxo de trabalho "perfil-depois-bloqueio"):```bash

Generate policy from latest session

agentsh policy generate latest --output=ci-policy.yaml

Generate with custom name and threshold

agentsh policy generate abc123 --name=production-build --threshold=10

Quick preview to stdout

agentsh policy generate latest

root@kitploit:~
The generated policy:
- Permite apenas operações observadas durante a sessão
- Agrupa caminhos em globs quando muitos arquivos no mesmo diretório
- Colapsa subdomínios em curingas (ex.: `*.github.com`)
- Sinaliza comandos arriscados (curl, wget, rm) com padrões de argumentos
- Inclui operações bloqueadas como regras comentadas para revisão

**Casos de uso:**
- **Bloqueio de CI/CD**: Perfilar uma execução de build/teste, bloquear execuções futuras para esse comportamento
- **Sandbox de agente**: Deixar um agente de IA executar uma tarefa, gerar política para execuções futuras
- **Perfil de contêiner**: Perfilar uma carga de trabalho, gerar política mínima para produção

---

## Acesso a Banco de Dados (PostgreSQL)

o agentsh inclui um **proxy PostgreSQL** embutido que torna o acesso ao banco de dados consciente do agente e governado por políticas. Ele fala o protocolo wire do Postgres, classifica cada declaração em uma lista de *efeitos* (leituras, escritas, DDL, DCL, controle de transação/sessão, `COPY`/exportação em massa, …) e avalia cada efeito em relação às `database_rules` antes de encaminhar upstream — então um `UPDATE`, `DROP`, ou `DELETE` sem escopo é governado da mesma forma que uma escrita de arquivo ou conexão de rede.

- **Avaliação por efeito e multi-objeto** — as regras são coletar-tudo / **qualquer-nega-vence** (o verbo mais restritivo decide), não primeira correspondência.
- **Decisões:** `allow`, `deny`, `approve` (OK humano), `audit` e `redirect` no nível da declaração.
- **Guarda `require_where`** — recusa `UPDATE`/`DELETE` de nível superior que não tenham cláusula `WHERE`.
- **Regras de nível de conexão** (`database_connection_rules`) controlam quais sessões podem alcançar qual `db_service` declarado.
- **Eventos de auditoria de autenticação + declaração** para cada conexão e consulta; o registro do texto da declaração é configurável (`policies.db.log_statements: none | parameters_redacted | full`).

A Fase 1 cobre o protocolo wire PostgreSQL v3 (dialetos: `postgres`, `aurora_postgres`; `redshift` / `cockroachdb` em beta). Conexões de replicação e criptografadas por GSSAPI têm negação padrão.```yaml
database_rules:
  # normal reads + updates on the declared service
  - name: app-read-and-update
    db_service: appdb
    operations: [READ, UPDATE]
    decision: allow

  # allow UPDATE/DELETE only when scoped by a WHERE clause
  - name: app-guard-unscoped-dml
    db_service: appdb
    operations: [UPDATE, DELETE]
    require_where: true
    decision: allow

  # block schema/DDL mutations; terminate the transaction on violation
  - name: app-deny-ddl
    db_service: appdb
    operations: [CREATE, DROP, ALTER, EXPORT]
    decision: deny
    deny_mode_in_tx: terminate
    message: "appdb is read+update only. Requested: {{.Operation}}"

See the Database Access Control spec for the full operation taxonomy, effects model, connection rules, and unavoidability threat model.


Redirecionamento de Rede

O agentsh pode redirecionar transparentemente conexões DNS e TCP, possibilitando casos de uso como rotear chamadas de API através de proxies corporativos ou trocar de provedores de IA sem alterações no código.

Redirecionamento DNS

Intercepte a resolução de DNS e retorne endereços IP configurados:```yaml dns_redirect:

  • match: "api.anthropic.com" redirect_ip: "10.0.0.50" visibility: audit_only on_failure: fail_closed

  • match: ".*\.openai\.com" # Regex pattern redirect_ip: "10.0.0.51" visibility: warn

root@kitploit:~
### Connect Redirect

Redirecione conexões TCP para destinos diferentes com manipulação TLS opcional:```yaml
connect_redirect:
  - match: "api.anthropic.com:443"
    redirect_to: "vertex-proxy.internal:8443"
    tls_mode: passthrough          # Forward encrypted traffic unchanged
    visibility: silent

  - match: "api.openai.com:443"
    redirect_to: "azure-proxy.internal:443"
    tls_mode: rewrite_sni          # Modify SNI in TLS ClientHello
    rewrite_sni: "azure-openai.example.com"
    visibility: audit_only

Opções

Suporte de Plataforma

Casos de Uso

  • Roteamento de Gateway de API: Roteie chamadas da Anthropic/OpenAI através de gateway LLM corporativo
  • Troca de Provedor: Redirecione a API Claude para GCP Vertex AI ou Azure OpenAI
  • Teste: Redirecione APIs de produção para servidores mock
  • Conformidade: Force todo o tráfego LLM através de proxies de auditoria

Filtragem de Sinais

agentsh intercepta sinais (kill, SIGTERM, etc.) enviados entre processos, fornecendo controle baseado em políticas sobre quais sinais podem atingir quais alvos.

Suporte de Plataforma

Regras de Sinal de Exemplo```yaml

signal_rules:

Allow signals to self and children

  • name: allow-self signals: ["@all"] target: type: self decision: allow

  • name: allow-children signals: ["@all"] target: type: children decision: allow

Redirect SIGKILL to graceful SIGTERM

  • name: graceful-kill signals: ["SIGKILL"] target: type: children decision: redirect redirect_to: SIGTERM

Block fatal signals to external processes

  • name: deny-external-fatal signals: ["@fatal"] target: type: external decision: deny
root@kitploit:~
### Grupos de Sinais

- `@all` - Todos os sinais (1-31)
- `@fatal` - SIGKILL, SIGTERM, SIGQUIT, SIGABRT
- `@job` - SIGSTOP, SIGCONT, SIGTSTP, SIGTTIN, SIGTTOU
- `@reload` - SIGHUP, SIGUSR1, SIGUSR2

### Tipos de Alvo

- `self` - Processo sinalizando a si mesmo
- `children` - Processos filhos diretos
- `descendants` - Todos os processos descendentes
- `session` - Qualquer processo na sessão agentsh
- `external` - PIDs fora da sessão
- `system` - PID 1 e threads do kernel

Consulte a [Documentação de Políticas](https://github.com/canyonroad/agentsh/blob/HEAD/docs/operations/policies.md#signal-rules) para opções completas de configuração.

---

## Monitoramento de E/S de Arquivos no macOS

No macOS, o agentsh monitora E/S de arquivos usando o Endpoint Security Framework (ESF), inscrevendo-se em eventos AUTH e NOTIFY. As operações rastreadas incluem abrir, criar, excluir, renomear, escrever (detectado via close-modified) e, no macOS 26+, chmod e chown através de eventos de alteração de atributos. Cada evento de arquivo é atribuído à sessão e comando de origem através da resolução baseada em PID, fornecendo trilhas de auditoria completas entre árvores de subprocessos.

O ESF fornece imposição de permitir/negar no nível do kernel, mas não suporta interceptação transparente de arquivos como o FUSE do Linux. As ações de política que exigem interceptação -- como `redirect` (reescrita de caminho) e `soft_delete` (quarentena) -- são implementadas como negar + orientação: a operação é bloqueada no nível do ESF e o agente recebe instruções para tentar novamente com o caminho correto ou para reconhecer que o arquivo está protegido. Consulte o [documento de arquitetura ESF+NE do macOS](https://github.com/canyonroad/agentsh/blob/HEAD/docs/macos-esf-ne-architecture.md) para detalhes do fluxo de eventos e a [documentação de políticas](https://github.com/canyonroad/agentsh/blob/HEAD/docs/operations/policies.md#file-rule-actions-on-macos-esf) para o comportamento por ação.

---

## Pacotes de políticas iniciais

Você já tem uma política padrão (`configs/policies/default.yaml`). Esses pacotes opinativos estão disponíveis como arquivos separados para que as equipes possam escolher um:

* **[`policies/dev-safe.yaml`](https://github.com/canyonroad/agentsh/blob/HEAD/configs/policies/dev-safe.yaml)**: seguro para desenvolvimento local
  * permitir leitura/gravação do workspace
  * aprovar exclusões no workspace
  * negar `~/.ssh/**`, `/root/.ssh/**`
  * restringir rede a domínios/portas na lista de permissões

* **[`policies/ci-strict.yaml`](https://github.com/canyonroad/agentsh/blob/HEAD/configs/policies/ci-strict.yaml)**: seguro para runners de CI
  * negar qualquer coisa fora do workspace
  * negar rede de saída, exceto registros de artefatos
  * negar shells interativos, a menos que explicitamente permitidos
  * auditar tudo (eventos resumidos)

* **[`policies/agent-sandbox.yaml`](https://github.com/canyonroad/agentsh/blob/HEAD/configs/policies/agent-sandbox.yaml)**: modo 'agente executa código desconhecido'
  * negar padrão + lista de permissões explícita
  * aprovar qualquer acesso a credenciais/caminhos
  * redirecionar uso de ferramentas de rede para proxies/mirrors internos
  * soft-delete de operações destrutivas para fácil recuperação

---

## Exemplos de Integração com Assistente de IA

Trechos prontos para uso para configurar assistentes de codificação de IA para usar agentsh:

* **[Claude Code](https://github.com/canyonroad/agentsh/blob/HEAD/examples/claude/)** - Trecho CLAUDE.md para integração com Claude Code
* **[Cursor](https://github.com/canyonroad/agentsh/blob/HEAD/examples/cursor/)** - Regras do Cursor para integração com agentsh
* **[AGENTS.md](https://github.com/canyonroad/agentsh/blob/HEAD/examples/agents/)** - Trecho AGENTS.md genérico (funciona com múltiplas ferramentas de IA)

> **Nota:** Estes exemplos são para cenários de desenvolvimento local onde executar o agente de IA dentro de um contêiner não é prático. Para ambientes de produção ou CI/CD, prefira executar agentes em contêineres com o shell shim instalado—consulte [Uso no Docker](#use-in-docker-with-the-shell-shim).

---

## Referências

* **Demonstração de Proteção MCP:** [`agentsh-mcp-protection-demo`](https://github.com/canyonroad/agentsh-mcp-protection-demo) - demonstração ao vivo de detecção de exfiltração entre servidores, bloqueio de rug pull e geração de políticas
* **Segurança e modelo de ameaça:** [`SECURITY.md`](https://github.com/canyonroad/agentsh/blob/HEAD/SECURITY.md) - contra o que agentsh protege, limitações conhecidas, lista de verificação do operador
* **KMS Externo:** [`SECURITY.md#external-kms-integration`](https://github.com/canyonroad/agentsh/blob/HEAD/SECURITY.md#external-kms-integration) - AWS KMS, Azure Key Vault, HashiCorp Vault, GCP Cloud KMS para chaves de integridade de auditoria
* Modelo de configuração: [`configs/server-config.yaml`](https://github.com/canyonroad/agentsh/blob/HEAD/configs/server-config.yaml)
* Política padrão: [`configs/policies/default.yaml`](https://github.com/canyonroad/agentsh/blob/HEAD/configs/policies/default.yaml)
* Exemplo de Dockerfile (com shim): [`Dockerfile.example`](https://github.com/canyonroad/agentsh/blob/HEAD/Dockerfile.example)
* **Documentação de políticas:** [`docs/operations/policies.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/operations/policies.md) - variáveis de política, regras de sinal, redirecionamento de rede
* **Controle de acesso a banco de dados:** [`docs/agentsh-db-access-spec.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/agentsh-db-access-spec.md) - escopo de imposição de banco de dados apenas Postgres, semântica de política, comportamento de redirecionamento e roteiro
* **Livro de receitas de políticas de comando:** [`docs/cookbook/command-policies.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/cookbook/command-policies.md) - como permitir um novo binário, quando usar `wrap` em vez de `exec` e como depurar uma negação
* **Livro de receitas de serviços HTTP:** [`docs/cookbook/http-services.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/cookbook/http-services.md) - receitas para rotear chamadas de API HTTP de saída através de serviços declarados com regras e portão de aprovação
* **Livro de receitas de integrações de SDK de sandbox:** [`docs/cookbook/sandbox-sdk-integrations.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/cookbook/sandbox-sdk-integrations.md) - configuração `shim_install` para Tensorlake / E2B / Modal / Daytona onde os comandos são executados como irmãos do servidor agentsh
* **Habilidades de criação de políticas:** [`skills/`](https://github.com/canyonroad/agentsh/blob/HEAD/skills/) - habilidades de assistente de IA para criar e editar políticas no Claude Code, NanoClaw, etc.
* **Comparação de plataformas:** [`docs/platform-comparison.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/platform-comparison.md) - suporte a recursos, pontuações de segurança, desempenho por plataforma
* **Bubblewrap vs agentsh:** [`docs/bubblewrap-vs-agentsh-comparison.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/bubblewrap-vs-agentsh-comparison.md) - comparação com Bubblewrap para sandboxing de contêineres Linux
* **Controle de acesso a banco de dados:** [`docs/agentsh-db-access-spec.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/agentsh-db-access-spec.md) - taxonomia de proxy PostgreSQL, modelo de efeitos, `database_rules`, regras de conexão, modelo de ameaça
* **Modos de segurança e `detect`:** [`docs/security-modes.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/security-modes.md) - modos de imposição, pontuação de proteção e o que `agentsh detect` relata
* **seccomp:** [`docs/seccomp.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/seccomp.md) - filtragem de chamadas de sistema, interceptação de execve e bloqueio de famílias de sockets
* **Modo ptrace:** [`docs/ptrace-support.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/ptrace-support.md) - imposição PTRACE_SEIZE para contêineres restritos (`attach_mode`, pré-filtro seccomp)
* **eBPF:** [`docs/ebpf.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/ebpf.md) - rastreamento de rede e imposição de políticas via eBPF
* **Proxy LLM e DLP:** [`docs/llm-proxy.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/llm-proxy.md) - configuração de proxy embutido, padrões DLP, rastreamento de uso
* **Guia de compilação macOS:** [`docs/macos-build.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/macos-build.md) - instruções de compilação ESF+NE
* **Arquitetura ESF+NE macOS:** [`docs/macos-esf-ne-architecture.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/macos-esf-ne-architecture.md) - Extensão de Sistema, XPC e detalhes de implantação
* **Sandbox XPC macOS:** [`docs/macos-xpc-sandbox.md`](https://github.com/canyonroad/agentsh/blob/HEAD/docs/macos-xpc-sandbox.md) - controle XPC/Mach IPC para processos em sandbox
* Variáveis de ambiente (todas as substituições `AGENTSH_*`, alternâncias de inicialização automática, seleção de transporte): [`docs/spec.md` §15.3 "Variáveis de Ambiente"](https://github.com/canyonroad/agentsh/blob/HEAD/docs/spec.md#153-environment-variables)
* Arquitetura e fluxo de dados (FUSE + motor de política + API): comentários inline em [`configs/server-config.yaml`](https://github.com/canyonroad/agentsh/blob/HEAD/configs/server-config.yaml) e [`internal/netmonitor`](https://github.com/canyonroad/agentsh/blob/HEAD/internal/netmonitor)
* Ajuda da CLI: `agentsh --help`, `agentsh exec --help`, `agentsh shim --help`

---

Criado com a ajuda de agentes para agentes.
Baixar ferramenta
sandbox.env_inject
env_inject
  • Exemplos: Veja config.yml e exemplos de política em configs/.
  • CampoValoresDescrição
    visibilitysilent, audit_only, warnComo os redirecionamentos são registrados/exibidos
    on_failurefail_closed, fail_open, retry_originalO que acontece se o redirecionamento falhar
    tls_modepassthrough, rewrite_sniManuseio TLS para redirecionamento de connect
    FuncionalidadeLinuxmacOSWindows
    Redirecionamento DNS✅ eBPF✅ pf/proxy✅ WinDivert
    Redirecionamento de Conexão✅ eBPF✅ pf/proxy✅ WinDivert
    Reescrita SNI✅✅✅
    PlataformaBloqueioRedirecionamentoAuditoria
    LinuxSim (seccomp user-notify)SimSim
    macOSNãoNãoSim (ES)
    WindowsParcialNãoSim (ETW)