Syswall un pare-feu dynamique pour les appels système

mur système

Syswall est un nouveau développement visant à créer une similitude d'un pare-feu dynamique pour filtrer l'accès des applications aux appels système. Le code du projet est écrit en langage Rust, la licence n'est pas spécifiée.

Ce nouveau développement il ressemble à la version interactive de l'utilitaire strace et vous permet de garder une trace de chaque appel système effectué par le programme. La principale différence est que, en plus d'afficher des informations sur les appels système et les résultats de leur exécution.

À propos de Syswall

mur système prend en charge le mode interactif dans lequel le processus surveillé est arrêté avant d'effectuer un appel système et l'utilisateur est invité à continuer ou à ignorer l'opération (par exemple, vous pouvez surveiller les tentatives d'ouverture de chaque fichier ou processus de connexion réseau).

Syswall peut également collecter des statistiques sur les appels système effectués et générer un rapport basé sur ces derniers.

Les objectifs de syswall sont les suivants:

pour les fournir une version améliorée de strace ce qui est plus facile de déterminer ce que fait réellement le logiciel.
Fournir un environnement pour tester et expérimenter le logiciel en permettant une approche détaillée et interactive pour autoriser et rejeter les appels système.

Chaque processus peut avoir un fichier de configuration

Pour chaque processus, sNous pouvons connecter un fichier de configuration à une liste d'appels système explicitement autorisés ou bloqués.

Pour les appels pris en charge, le syswall permet à l'utilisateur d'effectuer les actions suivantes:

  • Autoriser l'appel système une fois
  • Toujours autoriser cet appel système en particulier
  • Bloquer l'appel système une fois (dur ou logiciel)
  • Bloquer toujours cet appel système en particulier (dur ou logiciel)
  • Lors du blocage, le programme peut effectuer un blocage (dur ou souple).

Pendant la session interactive, il est possible d'autoriser ou de bloquer des appels système spécifiques au moment de l'exécution et tous les appels à cet appel système, quel que soit l'endroit où le programme est accédé.
Le blocage est pris en charge dans les modes "hard" et "soft".

Types de serrures

Dans le premier cas, l'appel système n'est pas exécuté et le code d'erreur d'accès est envoyé au processus. Dans le second cas, l'appel système n'est pas non plus exécuté, mais le processus reçoit un code de retour fictif réussi, simulant l'exécution réussie de l'appel système.

Par exemple, pour le moment, seule l'analyse des appels système liée aux opérations sur les fichiers est prise en charge.

Un bloc fixe empêche l'exécution de l'appel système et renvoie une erreur d'autorisation refusée au processus enfant. D'un autre côté, un verrouillage logiciel empêche l'appel système, mais tente de renvoyer une réponse appropriée au processus enfant pour faire semblant que l'appel système a été effectivement exécuté.

Dans ce cas, les demandes de confirmation ne seront affichées que lorsqu'elles se réfèrent à des appels système spécialement composés ou précédemment manquants.

Enregistrez et chargez une configuration de processus.

Les choix effectués lors de l'exécution peuvent être enregistrés dans un fichier JSON. Ce fichier peut être chargé lors d'une autre exécution afin que les options ci-dessus soient utilisées.

Il s'agit d'un travail en cours - seules les réponses autorisées / bloquées seront toujours enregistrées.

information

Une fois le processus enfant terminé, le mur système émettra un bref rapport sur les appels système du processus enfant. Actuellement, il se compose de tous les fichiers ouverts ou verrouillés, mais sera développé dans les versions futures.

Le projet est encore au stade d'un prototype fonctionnel et toutes les possibilités conçues ne sont pas réalisées.

Il y a encore plus à développer

Il y a une grande liste de choses à faire pour le projet, à l'avenir, il est prévu d'ajouter la prise en charge de classes supplémentaires d'appels système, lune capacité à vérifier, en tenant compte des arguments passés à l'appel système, des moyens de sauvegarder l'état du processus dans un fichier pour une comparaison ultérieure de l'activité lors de différents lancements de programmes (par exemple, pour comparer des listes de fichiers et des connexions de réseau), option pour ignorer charger les bibliothèques dynamiques et prendre en charge l'ensemble de paramètres typique (par exemple, verrouiller toutes les sockets, mais autoriser l'accès aux fichiers).

 

 

 


Le contenu de l'article adhère à nos principes de éthique éditoriale. Pour signaler une erreur, cliquez sur c'est par ici !.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

*

*

  1. Responsable des données : AB Internet Networks 2008 SL
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.