Linux – Les failles de sécurité

Décembre 2016





Introduction


Un système Linux est comparable à un labyrinthe avec plein de passages. Chaque passage représente une connexion inconnue et des ports d’entrées avec différents niveaux de sécurité.
Les différents moyens de communication (protocoles, programmes, …) sont à l’origine de failles de sécurité. En effet, pour communiquer, ils ouvrent des voies de communication qui, si elles ne sont pas bien contrôlées, sécurisées, peuvent représenter une porte d’entrée à des intrusions et des attaques.
A titre d’exemple, nous pouvons citer quelques unes de ces failles :
  • Bugs ou configuration incorrecte et incomplète de DNS, de Sendmail, POP, IMAP, FTP DAEMON
  • Bugs au niveau de CGI ou configuration incorrecte et incomplète d’Apache
  • NFS, mountd ou SUN RPC (Remote Procedure Calls)
  • SNMP surtout avec le mot de passe par défaut
  • Inexistence de mot de passe d’accès
  • Telnet

Dans ce qui suit, nous allons essayer de détailler des failles en expliquant comment se protéger.

Mots de passe


Une des failles de sécurité les plus communes à tous les systèmes est la mise en place de mots de passe à bas niveau de complexité voire leur absence. Pour cela, l’administrateur du système doit être conscient de l’importance de la mise en place de mots de passe avec un certain degré de complexité. La préconisation générale est que le mot de passe respecte un certain nombre de règles :
  • il doit être composé d’un minimum de 8 éléments
  • il doit contenir des caractères, chiffres, caractère spéciaux
  • il doit contenir des caractères majuscules et minuscules
  • il doit être changé régulièrement. Mise en place d’un période de rotation
  • il ne doit pas contenir des éléments du login

Il est possible par l’utilisation d’un certain nombre d’outils et de bibliothèques tel que passwd, cracklib en addition à PAM(Pluggable Authentification Modules). La bibliothèque cracklib analyse les mots de passe et détermine leur niveau de robustesse.
PAM offre des fonctionnalités complémentaires de sécurité par exemple en éditant le fichier /etc/pam.d/passwd et ajoutant :
passwd password requisite /usr/lib/security/pam_cracklib.so retry=3
passwd password required /usr/lib/security/pam_pwdb.so use_authtok

Ces lignes forcent le chargement dynamique de ces bibliothèques avec passwd .
PAM offre d’autres fonctionnalités qu’il est possible de découvrir sur les sites :

Ports ouverts


Comme décrit précédemment, tout système Linux est au centre d’un labyrinthe où les accès sont multiples. En effet chaque application, service installé ouvre un certain nombre de ports pour pouvoir fonctionner. La majorité de ces programmes sont installés par défaut par Linux et leur présence n’est pas toujours utile.
Pour trouver les services qui tournent, il suffit de lancer
#netstat –atuv
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 localhost:mysql         :                     LISTEN
tcp        0      0 *:netbios-ssn           :                     LISTEN
tcp        0      0 *:www                   :                     LISTEN
tcp        0      0 localhost:postgresql    :                     LISTEN
tcp        0      0 *:microsoft-ds          :                     LISTEN
tcp6       0      0 [::]:ssh                [::]:*                  LISTEN

Une fois la liste des services indésirables déterminée, il suffit de les désinstaller.

Anciennes versions de logiciels


Linux étant loin d’être parfait, des failles sont découvertes quotidiennement sur la panoplie des logiciels, services qu’il héberge. Pour palier cette problématique, l’administrateur du système doit veiller à la mise à jour des logiciels installés pour qu’il soit sur leur dernière version et ainsi garantir l’intégrité du système et la diminution des failles et les risques de sécurité.
Des distributions telles que UBUNTU et GENTOO offre des moyen automatiques de mise à jour de package via les outils emerge et apt-get. Par exemple :
Sous gentoo
#emerge -Duvp world
Sous Ubutnu
#apt-get  upgrade

Configuration incorrecte et incomplète de programmes


La majorité des programmes installés sous Linux présentent des vulnérabilités de sécurité liées à :
  • Une configuration incorrecte
  • Des failles de sécurité natives

POP et IMAP (sauf si encapsulé en SSL), Telnet et Ftp présentent un historique abondant avec les failles de sécurité permettant les intrusions. Il est pour cela préconisé de les remplacer par SPOP ; SIMAP, SSH et SSH SCP ou SFTP pour palier les lacunes et blinder ainsi le système.
Pour palier ce problème, il est généralement recommandé de :
  • Ne jamais lancer le serveur Web avec un compte privilégié à savoir « root », même si dans certaines références documentaires, cette manipulation est indiquée, il est préférable d’utiliser un compte pour lancer le serveur Web disposant du strict minimum en droits d’accès pour suffire aux besoins du serveur.
  • Analyser CGI contre les vulnérabilités : lors du développement, par exemple, en C il est recommandé d’utiliser des fonctions telles que fgets() qui permet au programmeur de limiter la taille du cache et ainsi éviter les overflow.
  • Éviter de stocker des données confidentielles au niveau des serveurs Web
  • Éviter d’intégrer des données confidentielles tels que les numéros de cartes de crédits dans les URLs du serveur web

Ressources insuffisantes et priorités sécuritaires


Les systèmes Linux sont présents au cœur d’une complexe organisation et représente un outil qui optimise et facilite le travail des sociétés. Néanmoins, dans certains cas, les impératifs organisationnels vont à l’encontre des principes de base de sécurité des systèmes, ce qui fait que des normes et procédures de sécurité sont ignorées en faveur d’impératifs « plus important ».
Il faut impérativement comprendre que les normes et procédures de sécurité doivent êtres intégrées dans les priorités des organismes et avoir un degré d’importance élevé, car les conséquences de la non application de ces normes et procédures peuvent êtres très graves.
Il est toujours recommandé d'établir des priorités dans les procédure et normes de sécurité pour garantir l’intégrité des systèmes.

A voir également :

Ce document intitulé «  Linux – Les failles de sécurité  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.