Update howto/security_101.md
parent
bed2a8b7fe
commit
9ab20e6c12
|
@ -0,0 +1,75 @@
|
||||||
|
# Security 101: Quelques bases de sécurité
|
||||||
|
|
||||||
|
Le but ici est de donner quelques conseils généraux de sécurité qui est bon à
|
||||||
|
respecter le plus possible lors de changements de l'infrastructure ou de
|
||||||
|
services.
|
||||||
|
La liste ne se veut pas exhaustive, mais permet de donner l'esprit global qu'il
|
||||||
|
faut avoir.
|
||||||
|
|
||||||
|
## Sécurité des comptes utilisateurs
|
||||||
|
|
||||||
|
Que ce soit les membres de l'association, comme les membres actifs, il faut
|
||||||
|
prendre les précautions pour s'assurer que ses identifiants ne fuient pas dans
|
||||||
|
la nature :
|
||||||
|
|
||||||
|
* **Ne pas avoir de comptes locaux avec des mots de passe actifs.**
|
||||||
|
Un compte avec possibilité d'authentification par mot de passe DOIT être
|
||||||
|
dans l'annuaire LDAP. Cela permet de faciliter le changement de mot de
|
||||||
|
passe et ne pas laisser des mots de passe cassés traîner.
|
||||||
|
|
||||||
|
* **Ne pas partager un compte.**
|
||||||
|
Et oui, on évite de filer son mot de passe à son voisin.
|
||||||
|
|
||||||
|
* **Avoir un mot de passe solide.**
|
||||||
|
`toto2345` n'est pas un bon mot de passe et prend en moyenne moins de 5
|
||||||
|
minutes à être bruteforcée avec
|
||||||
|
[john](https://fr.wikipedia.org/wiki/John_the_Ripper).
|
||||||
|
|
||||||
|
* **Favoriser l'authentification par paire de clées.**
|
||||||
|
Pour les services le permettant (SSH, Git...), il est préférable d'avoir
|
||||||
|
une paire de clé. Une clé privée ne doit jamais quitter le périphérique
|
||||||
|
où elle a été créée (que ça soit un token matériel ou une machine Linux).
|
||||||
|
Il est préférable de protéger la clé privée par un mot de passe.
|
||||||
|
Ainsi si une de vos machine est compromise, vous pouvez révoquer seulement
|
||||||
|
sa clé et tracer où elle a été utilisée.
|
||||||
|
|
||||||
|
* **Favoriser la double authentification.**
|
||||||
|
Pour les services critiques (paiement, accès root...) il est préférable
|
||||||
|
d'ajouter un second facteur d'authentification et d'alerter l'équipe si
|
||||||
|
seulement le premier facteur a réussi mais le second a échoué.
|
||||||
|
Pour les services Web, voir le standard WebAuthn. Pour OpenSSH il existe
|
||||||
|
des intégrations avec des applications de second authentification.
|
||||||
|
|
||||||
|
* **Utiliser un gestionnaire de mots de passe pour les secrets partagés.**
|
||||||
|
Pour les secrets partagés au sein de l'équipe technique, on les chiffre
|
||||||
|
pour les clés privées de chaque administrateur.
|
||||||
|
|
||||||
|
## Sécurité des logiciels développés
|
||||||
|
|
||||||
|
* **Ne pas fixer strictement les versions des paquets.**
|
||||||
|
Il faut s'assurer que les contraintes sur les dépendances permettent
|
||||||
|
d'obtenir les mises à jour de sécurité. Souvent il n'est que nécessaire
|
||||||
|
de fixer la version majeure (`~=2.1`, plutôt que `==2.1.1`).
|
||||||
|
|
||||||
|
* **Privilégier le gestionnaire de paquet de la distribution.**
|
||||||
|
La distribution rétroporte les mises à jour de sécurité. Il est donc de
|
||||||
|
bon goût d'utiliser le plus possible ses paquets pour simplifier la mise
|
||||||
|
à jour de l'ensemble de l'infrastructure.
|
||||||
|
|
||||||
|
* **Utiliser des outils de linting avec des règles de sécurité.**
|
||||||
|
Les bons outils de linting connaissent les patterns pouvant potentiellement
|
||||||
|
se traduire en faille de sécurité.
|
||||||
|
|
||||||
|
* **Lancer le logiciel en non-privilégiés.**
|
||||||
|
Un logiciel ne devrait jamais avoir besoin de `root` ou de `sudo`.
|
||||||
|
Lors de l'écriture du service, on peut également ajouter des protections
|
||||||
|
suplémentaires pour augmenter l'isolation.
|
||||||
|
|
||||||
|
## Sécurité de l'infrastructure
|
||||||
|
|
||||||
|
* **Faire ses backups, et vérifier qu'elles marchent.**
|
||||||
|
|
||||||
|
* **Faire des scans des ports ouverts.**
|
||||||
|
Pour cela on peut lancer `nmap` sur la plage d'adresses IP.
|
||||||
|
|
||||||
|
* **Monitorer et alerter.**
|
Loading…
Reference in New Issue