web-dev-qa-db-fra.com

Opinion: Autorisations: écrire mais pas lire pour des raisons de sécurité?

J'ai un certain nombre de systèmes connectés et je cherche à configurer un serveur séparé pour les sauvegardes incrémentielles et complètes.

Afin d'éviter également la perte de tous les systèmes/sauvegardes au cas où l'un d'entre eux serait compromis, j'envisage d'en faire une affaire de type "boîte de dépôt", avec un partage en écriture seule monté sur chaque système sur lequel les sauvegardes sont transférées.

En cas d’attaque, la sauvegarde peut être exposée au système affecté ou transférée sur celui-ci via un partage en lecture seule nouvellement créé, puis restaurée à partir de cet emplacement, sans que le système lui-même ne soit accessible.

Un de nos concurrents a récemment perdu toute son activité car même leurs sauvegardes étaient connectées - ils n'avaient donc aucune restauration à effectuer.

Je téléchargerai également des sauvegardes complètes à des intervalles appropriés.

S'il vous plaît percer des trous dans mon plan.

Merci.

7
edooze

S'il vous plaît percer des trous dans mon plan.

Sûr. Seule la suppression de la lecture ne vous empêche pas de problèmes. Toute tentative de modification nécessite des autorisations en écriture. Un attaquant peut alors écrire le fichier vide (il a seulement besoin de savoir où se trouve le fichier).

Pourquoi ne rien verrouiller sur ce disque en ce qui concerne les sauvegardes, sauf pour ajouter de nouvelles données?

Configuration possible:

/backups/20160911/backup.tar.gz
/backups/20160912/backup.tar.gz
/backups/20160913/backup.tar.gz

Créer un script qui fait

chattr -R +a /backups/
chattr -R +i /backups/*.tar.gz

+i signifie "immuable"; rien ne peut être fait pour ces fichiers ou répertoires. Pas même root ne peut le modifier (cela inclut la suppression, l'édition, l'écriture, l'ajout de nouveaux fichiers. N'importe quoi). Même la racine doit supprimer cela (avec -i) avant que la racine puisse faire quelque chose à ces fichiers.

+a signifie "ajouter"; Mêmes règles que -i avec une exception. Personne n'est autorisé à modifier le fichier ou le répertoire sauf l'ajout. Et encore une fois: même la racine doit supprimer cela (avec un -a) avant que le fichier ou le répertoire ne puisse être modifié là où la modification n’ajoute rien.

(ci-dessus peut nécessiter quelques ajustements. 1 gros fichier de sauvegarde pourrait ne pas être la meilleure approche. Quelque chose avec des sous-répertoires et un fichier pourrait être meilleur. Cela nécessiterait donc un ajustement de ces 2 lignes: par exemple UNIQUEMENT sur les anciens répertoires et "aujourd'hui" manuellement lorsque la sauvegarde est terminée.

chattr -R +i /backups/{not_today}
chattr -R +a /backups/{today}

Faites exécuter ce script à intervalles réguliers. Ainsi, si à tout moment quelqu'un modifie quelque chose à l'intérieur de /backups/, les autorisations de toutes les sauvegardes sont réinitialisées.

Les répertoires et les fichiers peuvent être ajoutés à "aujourd'hui" et une fois votre sauvegarde terminée, vous pouvez ajouter le + i manuellement. Créez un bon mot de passe administrateur et ne laissez que les administrateurs toucher à ces fichiers. Déjà.

À propos: envisagez également de stocker des sauvegardes en ligne. Nous avons nos sauvegardes dans plusieurs instances de Google (nous avons 3 systèmes actifs sur 3 continents qui partagent les données, créant ainsi une instance de secours sur un autre continent et partageant un système de sauvegarde).

19
Rinzwind

Supprimez la permission read des fichiers ou des répertoires que vous voulez illisibles.

Les autorisations sont:

u - Owner
g - group
o - others

Désactiver la lecture pour tout le monde et juste pour tout le monde que vous souhaitez avoir un accès en écriture.

$ chmod -R ugo-r [path]

Le répertoire [chemin] et tous ses fichiers et sous-répertoires auront cet attribut. Dans ce cas, le -r (pas d'accès en lecture).

4
L. D. James

Rien n'est aussi sûr que les sauvegardes déconnectées. Téléchargez vos sauvegardes sur un lecteur externe et débranchez-le du réseau après y avoir copié la sauvegarde. Obtenez un certain nombre de lecteurs et faites-les pivoter.

Par exemple, achetez 5 lecteurs de 1 To (coût total <300 USD). Assignez 3 d'entre eux en tant que sauvegardes quotidiennes; Chaque jour, connectez-en un et copiez la sauvegarde, puis déconnectez-le. Attribuez-en une sauvegarde hebdomadaire et une sauvegarde mensuelle, et procédez de même.

Conservez certains disques dans un deuxième endroit en cas d’incendie ou de vol.

Cette approche vous protège contre de nombreuses menaces de perte de données.

Si votre système est entièrement basé sur un serveur, utilisez un équivalent cloud. Configurez des serveurs sur différents fournisseurs (Amazon, Google, Azure). Connectez-vous quotidiennement à un autre serveur et envoyez votre sauvegarde sur ce serveur, puis déconnectez-vous. Conservez plusieurs copies pour ne pas sauvegarder sur une bonne copie.

Mais rien n’est aussi irréversible qu’une copie physique que vous déconnectez de n’importe quel réseau et que vous gardez dans un emplacement hors site.

3
Thoma