Informations sécurité
Cette page est un point d'entrée sur les différentes informations relatives à Dolibarr ERP CRM en rapport avec la sécurité.
Alertes de sécurité
Pour recevoir toutes les alertes officielles sur les vulnérabilités de sécurité connues sur le projet Dolibarr (agrégation des CVE officielles publiées, Private Vulnerability Disclosure, problèmes du projet) vous pouvez:
- Consulter la section "Alertes de sécurité" disponible sur cette page https://cti.dolibarr.org,
- Ou vous abonner au flux RSS sur https://cti.dolibarr.org/index-security.rss (par exemple avec l'application Android Feeder ) si vous avez besoin de recevoir ou de consulter les alertes en temps réel sur votre smartphone.
- Si vous souhaitez également recevoir des alertes de sécurité non encore connues de l'équipe projet, et publiées dans la base de données internationale CVE (très rare, les vulnérabilités étant en général remontées au projet avant d'être publié en CVE, et donc déjà disponible via la méthode précédente), vous pouvez souscrire à un service d'alerte CVE. Un bon service par exemple https://opencve.io
Fonctionnalités de sécurité
Dolibarr intègre les mécanismes de sécurité suivant :
Chiffrement
- Chiffrement des mots de passe utilisateurs en base [*7] [*8] par un algorithme non réversible (par défaut utilisation du password_hash PHP).
- Chiffrement d'autres données sensibles ayant un besoin de lecture en clair par un algorithme réversible [*7] [*8] (utilisation d'une fonction interne dolCrypt/dolDecrypt utilisant une clé issue du fichier conf.php).
- Chiffrement possible du mot de passe technique de la base de données dans le Fichier de configuration (conf.php) [*8].
- Forçage du mode HTTPS [*9].
//conf/conf.php file
//example of $dolibarr_main_force_https configuration
$dolibarr_main_force_https = '1';//to force https
Values | Description |
---|---|
0 |
No forced redirect |
1 |
Force redirect to https, until SCRIPT_URI start with https into response |
2 |
Force redirect to https, until SERVER["HTTPS"] is 'on' into response |
Force redirect to the https domain name mydomain (recommended method) |
Hacks et cracks
- Support du mode register_globals on ou off ("off", valeur par défaut de PHP, recommandé) [*2].
- Support du mode safe_mode on ou off de PHP ("on" recommandé) [*3].
- Option de production pour inhiber toute remontée d'information technique comme débogage, info d'erreurs, info de version (Voir le Fichier de configuration) [*6].
- WAF: Système de protection anti injection SQL [2*].
- WAF: Système de protection anti injection XSS (Cross Site Scripting) [*1].
- WAF: Système de protection anti injection SSRF
- WAF: Système de protection anti CSRF (Cross Site Request Forgery) [*5]
Notez qu'il reste préférable d'ajouter aussi la protection côté serveur Web en désactivant l'option Apache
AcceptPathInfo Off
Accès pages et fichiers
- Pages et contenus protégées par un système centralisé de vérification des habilitations accordées aux groupes ou utilisateurs pour chaque module fonctionnel [*4] [*10].
- Isolation des fichiers stockés par Dolibarr dans une arborescence différente de la racine web (donc non téléchargeable sans passer par le wrapper de sécurité) [*3] [*10].
- Assainissement des noms de répertoires et fichiers (fonction interne dol_sanitizeFilename() et dol_sanitizePathname().
Protection login
- Retardateur anti brute force cracking sur la page de login [*7]. Actuellement ce délai est fixe (mais pourra devenir exponentiel dans une version future).
- Code graphique optionnel anti robot (CAPTCHA) sur la page de login [*7].
- Restriction des accès au backoffice pour certaines IP uniquement [*7].
- Aucun traçage de mot de passe dans les logs (ni techniques ni fonctionnelles) [*7].
- Système d'audit interne pour journaliser de manière permanente les événements en rapport avec l'administration utilisateurs et les connexions en succès ou en échec.
- Possibilité de tracer un enregistrement en fichier log (Le module Debug Log doit être activé avec au moins le niveau 5 - LOG_NOTICE) après un succès ou un échec de connexion ainsi vous pouvez ajouter des règles fail2ban ou crowdsec pour bloquer les brute force attacks. Vous pouvez vérifier les enregistrements avec la syntax :
"YYYY-MM-DD HH:MM:SS (ERROR|NOTICE|INFO|DEBUG) IP functions_dolibarr::check_user_password_.* Authentication KO"
Des exemples de règles fail2ban son fournis avec le projet.
Virus
- Possibilité d'insérer un contrôle antivirus sur tout fichier téléversé (GNU/Linux uniquement) [*3].
Centre d'information Sécurité
- A partir de la version 14, vous trouverez dans le menu Accueil - Outils d'administration - Sécurité, un centre d'information sur la sécurité vous rapporte toutes les recommandations faites et à faire liées à votre installation.
Une CTI pour la sécurité
Une plateforme d'intégration continue exécute des tests unitaires de sécurité et une analyse de code statique à chaque modification de code.
Une empreinte pour chaque version
Notre processus de publication apporte à chaque version un fichier d'empreinte (également disponible en ligne) pour valider tous les fichiers de votre installation locale.
DOS et modération Brute force
Le projet fournit des exemples de règles fail2ban pour bloquer les tentatives de force brute ou les accès abusifs sur la page de connexion, la page de mot de passe oublié et sur toutes les pages publiques. Voir https://github.com/Dolibarr/dolibarr/tree/develop/dev/setup/fail2ban
OpenSourceSSF
Dolibarr est conforme aux Bonnes Pratiques définies par l'OpenSourceSSF : https://bestpractices.coreinfrastructure.org/projects/5521
Remonter une faille de sécurité
La politique de remontée d'une vulnérabilité est décrite dans le fichier suivant: https://github.com/Dolibarr/dolibarr/blob/develop/SECURITY.md
Ouvrir l'accès à sa machine / son serveur local vers internet
Une installation chez un hébergeur (généraliste ou spécialisé Dolibarr) donne accès à n'importe quelle machine reliée à internet, de manière sécurisée.
Si vous avez fait le choix d'installer Dolibarr en local, sur votre machine : il est tout de même possible de partager Dolibarr avec d'autres machines.
Deux cas sont à prendre en compte :
- le partage local : seules les machines présentes physiquement sur le même réseau auront accès aux données par leur navigateur. Pour cela il suffit d'attribuer une IP fixe à la machine "serveur" et de paramétrer correctement les antivirus/firewall de cette machine. (ce forum ayant vocation à l'unique utilisation de Dolibarr : il faudra vous documenter par vous même sur les paramétrages à mettre en place, ou demander de l'aide sur le forum). Les autres machines auront lors accès à Dolibarr avec une adresses similaire à "http://192.168.1.148/xxxxx" où "xxxxxx" est potentiellement le sous répertoire dans le quel vous avez installé dolibarr)
- le partage via internet : la procédure est identique au partage local, il vous faudra en plus :
- paramétrer une redirection de port sur votre accès internet vers le "serveur". Cette ouverture de port n'est pas anodine d'un point de vue sécurité : formez vous correctement ou faites appel à un professionnel.
- avoir une IP fixe de pour votre accès internet, ou une résolution DNS dynamique.
La solution idéale, restera de confier l'hébergement, la sécurité et les sauvegardes de votre Dolibarr à un hébergeur professionnel...
Oui : cela à un coût... mais en regard du risque de "tout perdre", il est important de se poser la question !
NB : une installation locale avec des données existantes est très facilement migrable vers ce type d'hébergement.
(*X) Ce mécanisme répond à la criticité numéro X du classement Top Ten de l'OWASP 2007. La position X peut avoir évoluée.