web-dev-qa-db-fra.com

Comment empêcher un utilisateur de copier des fichiers sur un autre disque dur?

J'ai une machine Linux qui contient des fichiers sensibles. Les utilisateurs doivent pouvoir y accéder (lire) lorsqu'ils utilisent l'ordinateur, mais ne doivent pas pouvoir les copier sur un autre disque dur (clé USB ou autre disque dur qui aurait pu être ajouté sur la même machine).

Le disque dur principal a été crypté, afin d'empêcher quelqu'un de l'extraire et de voler les fichiers.

Je suis libre d'utiliser SELinux ou d'autres approches pour atteindre l'objectif.

MISE À JOUR:

Après avoir lu les réponses, je voudrais clarifier:

  • Je ne suis pas très préoccupé par les utilisateurs qui peuvent prendre une photo de l'écran. Protéger le fichier réel est mon objectif principal.

  • Même si la protection de chaque fichier aurait été optimale, je suis surtout préoccupé par la protection de l'ensemble de données (il est très volumineux). Même si quelques fichiers sont divulgués, les dommages sont gérables. De plus, en raison de la grande quantité de fichiers, les extraire un par un de manière inefficace ne serait pas pratique.

  • Les utilisateurs de l'ordinateur ne bénéficieront pas de privilèges administratifs.

39
jackgu1988

Vous pouvez désactiver le stockage USB sur Linux en mettant sur liste noire le module.

modprobe -r usb-storage
echo blacklist usb-storage >> /etc/modprobe.d/10-usbstorage-blacklist.conf
echo blacklist uas >> /etc/modprobe.d/10-usbstorage-blacklist.conf

Si vos utilisateurs ont un accès physique à la machine et connaissent les clés de cryptage, le jeu est opérationnel, peu importe ce que vous faites au niveau logiciel.

Ma suggestion serait de limiter l'accès aux interfaces physiques de la machine. Verrouillez-le dans une boîte et ne laissez les utilisateurs interagir qu'avec un clavier, une souris et un écran.

Vous devez également noter que vous ne pouvez pas empêcher un utilisateur de copier quelque chose. Pire cas? Prenez le téléphone et prenez des photos de l'écran pendant qu'ils passent au crible les fichiers. La prévention de la perte de données devrait à mon avis viser à arrêter accidentel la copie sur des appareils non fiables.

59
vidarlo

Architecture client-serveur

C'est une autre approche qui pourrait rendre la copie des fichiers beaucoup plus difficile, mais elle nécessite d'investir plus d'efforts de votre côté.

L'accès aux informations pourrait être configuré sur une architecture client-serveur avec des informations stockées dans une base de données (comme MySQL ou PostgreSQL) sur un serveur distant dans un emplacement sécurisé.

Ensuite, fournissez des stations d'accès qui exécuteraient une application cliente qui récupère les informations du serveur et les affiche aux utilisateurs.

Ainsi, au lieu de laisser les utilisateurs accéder directement aux informations, vous les leur fournissez.

Vous pouvez rendre la copie des données plus difficile pour les utilisateurs en limitant les capacités de l'environnement de bureau, en désactivant les ports USB, etc. En outre, votre application peut afficher les informations sous forme d'image par opposition au texte, mais cela dépend si cela est ou non approprié du point de vue de l'utilisabilité.

Mais tout cela suppose que les seuls hôtes qui peuvent accéder à la base de données sont des postes clients verrouillés qui vous fournissent aux utilisateurs et qu'ils se trouvent dans un environnement contrôlé afin qu'ils ne puissent pas altérer les stations d'accès ou la prise leurs propres appareils au réseau.

Que ce soit ou non une bonne approche pour votre cas d'utilisation dépend de votre modèle de menace et de l'effort que vous êtes prêt à y investir.

21
VL-80

En plus de bloquer l'USB (voir les autres réponses ci-dessus):

Désactivez la mise en réseau, car ...

  • ... sinon l'utilisateur utilisera l'accès à distance à votre machine, par ex. via scp ou ftp, et copiez les fichiers depuis votre machine.
  • ... sinon, les utilisateurs connectés pourront transférer des fichiers via net de votre machine vers une autre machine via scp, ftp, samba, http.
20
mentallurg

OK, je ne suis absolument pas un expert en sécurité et c'est peut-être complètement faux (faites le moi savoir dans les commentaires!), Mais ...

Si vous pouvez sécuriser la boîte physiquement (sinon tous les paris sont désactivés), vous pouvez peut-être laisser l'utilisateur se connecter uniquement avec l'utilisateur A. Cependant, tous les fichiers sensibles appartiendraient à l'utilisateur B et seraient inaccessibles à l'utilisateur A. SAUF pour un programme "PDF Viewer" qui appartiendrait également à l'utilisateur B, mais avec le bit setuid défini, donc lors de son exécution, il s'exécuterait dans le contexte de l'utilisateur B et pouvoir accéder aux fichiers. Puisqu'il s'agit d'une visionneuse, il peut afficher les fichiers, mais pas les copier.

Ou quelque chose dans ce sens. L'astuce est le bit setuid.

13
Vilx-

VNC

Vos fichiers peuvent être stockés sur un ordinateur dans un endroit sécurisé.

Configurez un serveur VNC dessus et désactivez la capacité de transfert de fichiers. Par cette question sur ServerFault, cela peut être fait dans TightVNC.

Assurez-vous qu'aucun autre port n'est ouvert sur l'ordinateur qui stocke vos fichiers.

Fournissez un poste client VNC et verrouillez-le en:

  • désactivation des ports d'E/S dans le système d'exploitation et au niveau du BIOS
  • placer un verrou sur le boîtier
  • limitation des fonctions d'environnement de bureau
  • définir un mot de passe fort pour le compte root
  • limiter ce que le compte de l'utilisateur peut faire

Cela devrait rendre plus difficile pour les utilisateurs de copier les informations tout en leur fournissant un moyen pratique d'interagir avec les fichiers. VNC peut fonctionner en mode plein écran, donnant à vos utilisateurs l'impression qu'ils interagissent avec des fichiers sur une station locale.

10
VL-80

Si vous souhaitez simplement désactiver tous les périphériques USB, consultez usb-storage.ko (pilote de stockage de masse USB sous Linux). La désactivation du pilote affecterait tous les périphériques USB, claviers/souris inclus. Pour désactiver le pilote, vous pouvez le mettre sur liste noire en modifiant /etc/modprobe.d/blacklist.conf. Ajoutez simplement la ligne:

blacklist usb-storage

Cette solution suppose que les autres utilisateurs ne disposent pas des droits Sudo.

3
borizzzzz

En suivant le principe "ne donne à chacun que les droits nécessaires pour accomplir sa tâche", vous pouvez peut-être implémenter un shell restreint qui imposera aux utilisateurs de votre système de ne faire que ce que vous leur permettez.

Si vos utilisateurs ne sont pas en mesure de:

  • scp
  • mount
  • lancer n'importe quel utilitaire réseau (firefox, netcat, curl)
  • Utilisez les commandes bash pour ouvrir le flux réseau.

Ensuite, la seule façon dont ils peuvent exfiltrer des données est de pirater l'une des commandes qu'ils sont autorisés à exécuter ...

Un "shell restreint" peut être implémenté assez facilement par:

  1. Commande de lecture de l'utilisateur
  2. Tester si la commande est autorisée pour l'utilisateur
  3. Si oui, lancez-le.

De plus, il existe des tonnes de Shell restreints disponibles pour GNU/Linux.

2
binarym

Que diriez-vous de quelque chose comme un goulot d'étranglement humain via une procédure au lieu de l'automatisation et de l'accès à tous les fichiers à la fois? Toutes les solutions proposées proposent de restreindre l'accès à l'ordinateur. Cela souffre du problème que les ordinateurs sont finalement stupides au niveau le plus bas et font ce qu'on leur dit. Étant donné que le HD utilise le cryptage du disque entier, tous les fichiers sont disponibles en texte brut pendant que la machine est sous tension.

En plus du cryptage complet du disque, cryptez tous les fichiers sur le disque dur, chacun avec un mot de passe différent, généré de manière aléatoire, mais assurez-vous d'avoir une sorte de capacité de recherche par mot-clé via un index. Pour que l'utilisateur puisse demander un fichier, il doit en faire la demande à l'administrateur. Les mots de passe sont stockés hors ligne sur une ressource non disponible pour l'utilisateur. L'administrateur obtient ensuite le ou les mots de passe pour le ou les fichiers demandés, puis saisit le mot de passe et déchiffre les fichiers pour l'utilisateur. Selon le logiciel de visualisation, vous pourrez même forcer le fichier à être uniquement en mémoire et non sur disque. L'administrateur pourrait être chargé de déchiffrer uniquement un nombre limité de fichiers/jour.

Ce serait en plus des méthodes ci-dessus, comme la désactivation de l'accès USB/réseau/etc. L'avantage de cette méthode est qu'elle limite sévèrement toute méthode de copie. Si une méthode de copie est découverte, les dommages sont limités aux seuls fichiers qui ont été demandés déchiffrés.

Bien sûr, cela peut ne pas être possible en fonction de votre scénario, mais il offre un niveau de sécurité très élevé puisque chaque fichier est protégé individuellement.

2
Steve Sether