Syswall, um firewall dinâmico para chamadas de sistema

syswall

Syswall é um novo desenvolvimento que visa criar uma semelhança com um firewall dinâmico para filtrar o acesso de aplicativos às chamadas do sistema. O código do projeto é escrito na linguagem Rust, a licença não é especificada.

Este novo desenvolvimento ele se parece com a versão interativa do utilitário strace e permite que você acompanhe todas as chamadas do sistema feitas pelo programa. A principal diferença é que, além de exibir informações sobre as chamadas do sistema e os resultados de sua execução.

Sobre Syswall

syswall suporta modo interativo em que o processo monitorado é interrompido antes de fazer uma chamada de sistema e o usuário é solicitado a continuar ou ignorar a operação (por exemplo, você pode monitorar as tentativas de abrir cada arquivo ou processo de conexão de rede).

O Syswall também pode coletar estatísticas sobre as chamadas do sistema feitas e gerar um relatório com base nisso.

Os objetivos do syswall são os seguintes:

Pára fornecer uma versão melhorada do strace o que é mais fácil de determinar o que o software está realmente fazendo.
Fornece um ambiente para testar e experimentar o software, permitindo uma abordagem detalhada e interativa para permitir e rejeitar chamadas do sistema.

Cada processo pode ter um arquivo de configuração

Para cada processo, sPodemos conectar um arquivo de configuração com uma lista de chamadas de sistema explicitamente permitidas ou bloqueadas.

Para chamadas com suporte, syswall permite que o usuário execute as seguintes ações:

  • Permitir syscall uma vez
  • Sempre permitir aquela syscall em particular
  • Bloquear syscall uma vez (rígido ou suave)
  • Sempre bloqueie aquela syscall em particular (dura ou macia)
  • Ao bloquear, o programa pode executar um bloqueio (rígido ou suave).

Durante a sessão interativa, é possível permitir ou bloquear chamadas de sistema específicas em tempo de execução e quaisquer chamadas para esta chamada de sistema, independentemente de onde o programa é acessado.
O bloqueio é suportado nos modos "hard" e "soft".

Tipos de fechaduras

No primeiro caso, a chamada do sistema não é executada e o código de erro de acesso é enviado para o processo. No segundo caso, a chamada do sistema também não é executada, mas o processo recebe um código de retorno fictício com sucesso, simulando a execução com sucesso da chamada do sistema.

Por exemplo, no momento, apenas a análise de chamadas do sistema relacionada às operações de arquivo é suportada.

Um bloqueio rígido impede a execução do syscall e retorna um erro de permissão negada para o processo filho. Por outro lado, um bloqueio suave impede a syscall, mas tenta retornar uma resposta apropriada ao processo filho para fingir que a syscall foi realmente executada.

Nesse caso, as solicitações de confirmação serão exibidas apenas quando se referem a chamadas do sistema especialmente discadas ou ausentes.

Salve e carregue uma configuração de processo.

As escolhas feitas durante a execução podem ser salvas em um arquivo JSON. Este arquivo pode ser carregado durante outra execução para que as opções acima sejam usadas.

Este é um trabalho em andamento - apenas as respostas permitidas / bloqueadas sempre serão salvas.

informação

Quando o processo filho terminar, o syswall emitirá um breve relatório sobre as chamadas de sistema do processo filho. Atualmente, ele consiste em todos os arquivos abertos ou bloqueados, mas será expandido em versões futuras.

O projeto ainda está em fase de protótipo funcional e nem todas as possibilidades concebidas são realizadas.

Ainda há mais para desenvolver

Há uma grande lista de tarefas pendentes para o projeto; no futuro, está planejado adicionar suporte para classes adicionais de chamadas do sistema, la capacidade de verificar, levando em consideração os argumentos passados ​​para a chamada do sistema, meios de salvar o estado do processo em um arquivo para posterior comparação da atividade durante diferentes lançamentos de programas (por exemplo, para comparar listas de arquivos e conexões de rede), opção para ignorar o carregamento de bibliotecas dinâmicas e oferecer suporte ao conjunto típico de configurações (por exemplo, bloquear todos os soquetes, mas permitir o acesso ao arquivo).


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: AB Internet Networks 2008 SL
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.