V'ger

V'ger é um aplicativo de linha de comando interativo para pós-exploração de instâncias Jupyter autenticadas com foco em operações de segurança de IA/ML.
Histórias de Usuário
- Como um Red Teamer, você encontrou credenciais do Jupyter, mas não sabe o que pode fazer com elas. V'ger é organizado em um formato que deve ser intuitivo para a maioria dos profissionais de segurança ofensiva, para ajudá-los a entender a funcionalidade do servidor Jupyter alvo.
- Como um Red Teamer, você sabe que algumas ações baseadas no navegador serão visíveis para os usuários legítimos do Jupyter. Por exemplo, modificar abas aparecerá em seu workspace e comandos inseridos em células serão registrados no histórico. V'ger diminui a probabilidade de detecção.
- Como um AI Red Teamer, você entende ataques algorítmicos acadêmicos, mas precisa de um vetor de execução mais prático. Por exemplo, você pode precisar modificar um grande conjunto de dados fundamental em escala de internet como parte de uma operação de envenenamento de modelo. Modificar esse conjunto de dados em sua fonte pode ser impossível ou gerar artefatos auditáveis indesejáveis. Com V'ger você pode alcançar os mesmos objetivos em memória, uma melhoria significativa na arte da operação.
- Como um Blue Teamer, você quer entender o logging e a visibilidade em uma implantação Jupyter ativa. V'ger pode ajudá-lo a gerar artefatos repetíveis para testar instrumentação e realizar exercícios de resposta a incidentes.
Uso

Configuração Inicial
pip install vger
vger --help
Atualmente, vger interactive tem a funcionalidade máxima, mantendo o estado para artefatos descobertos e tarefas recorrentes. No entanto, a maioria das funcionalidades também está disponível pelo nome no formato não interativo com vger <module>. Liste os módulos disponíveis com vger --help.

Comandos
Uma vez que uma conexão é estabelecida, os usuários entram em um conjunto aninhado de menus.
O menu de nível superior é:
- Redefinir: Configurar um host diferente.
- Enumerar: Utilitários para aprender mais sobre o host.
- Explorar: Utilitários para realizar ação direta e manipulação do host e artefatos.
- Persistir: Utilitários para estabelecer mecanismos de persistência.
- Exportar: Salvar a saída em um arquivo de texto.
- Sair: Ninguém gosta de desistentes.
Esses menus contêm as seguintes funcionalidades:
- Listar módulos: Identificar módulos importados nos notebooks alvo para determinar quais bibliotecas estão disponíveis para código injetado.
- Injetar: Executar código no contexto do notebook selecionado. O código pode ser fornecido em um editor de texto ou especificando um arquivo
.py local. Qualquer entrada é processada como uma string e executada em tempo de execução do notebook.
- Backdoor: Iniciar uma nova instância do JupyterLab aberta para
0.0.0.0, com allow-root em uma porta especificada pelo usuário e uma senha especificada pelo usuário.
- Verificar Histórico: Ver comandos ipython executados recentemente no notebook alvo.
- Executar comando shell: Gerar um terminal, executar o comando, retornar a saída e deletar o terminal.
- Listar diretório ou obter arquivo: Listar diretórios relativos ao diretório do Jupyter. Se não souber, comece com
/.
- Enviar arquivo: Enviar arquivo do localhost para o alvo. Especifique caminhos no mesmo formato de Listar diretório (relativo ao diretório do Jupyter). Forneça um caminho completo incluindo nome do arquivo e extensão.
- Deletar arquivo: Deletar um arquivo. Especifique caminhos no mesmo formato de Listar diretório (relativo ao diretório do Jupyter).
- Encontrar modelos: Encontrar modelos com base em formatos de arquivo comuns.
- Baixar modelos: Baixar modelos descobertos.
- Snoop: Monitorar execução do notebook e resultados até o timeout.
- Tarefas recorrentes: Iniciar/Matar trechos recorrentes de código executados silenciosamente no ambiente alvo.
Experimental
Com pip install vger[ai] você obterá resumos gerados por LLM dos notebooks no ambiente alvo. Eles são destinados a ser uma tradução aproximada para pessoas não-DS/AI fazerem uma triagem rápida de se (ou quais) notebooks valem a pena investigar mais.

Houve uma troca inerente entre tamanho do modelo e capacidade, e é algo que continuarei ajustando, mas espero que isso seja útil para alguns usuários de segurança mais tradicionais. Eu adoraria ver pessoas começarem a fazer prompt injection em seus notebooks ("estes não são os droides que você está procurando").
Exemplos