LFCA : Conseils de sécurité de base pour protéger le système Linux – Partie 17


Aujourd'hui plus que jamais, nous vivons dans un monde où les organisations sont constamment bombardées par des failles de sécurité motivées par l'acquisition de données hautement sensibles et confidentielles qui sont très précieuses et constituent une énorme récompense financière.

Il est plutôt surprenant qu'en dépit d'un risque élevé de subir une cyberattaque potentiellement dévastatrice, la plupart des entreprises ne soient pas bien préparées ou négligent simplement les drapeaux rouges, souvent avec des conséquences dévastatrices.

En 2016, Equifax a subi une violation de données catastrophique où des millions de dossiers clients hautement confidentiels ont été volés à la suite d'une série de failles de sécurité. Un rapport détaillé a indiqué que la violation aurait pu être évitée si les bonnes mesures de sécurité avaient été mises en œuvre par l'équipe de sécurité d'Equifax.

En fait, des mois avant la violation, Equifax a été averti d'une vulnérabilité potentielle de son portail Web qui compromettrait sa sécurité, mais malheureusement, l'avertissement est resté lettre morte avec de graves conséquences. De nombreuses autres grandes entreprises ont été victimes d'attaques, dont la complexité ne cesse de croître à chaque instant qui passe.

Nous ne saurions trop insister sur l'importance cruciale de la sécurité de votre système Linux. Vous n'êtes peut-être pas une institution financière de premier plan qui est une cible potentielle d'infractions, mais cela ne signifie pas que vous devez baisser la garde.

La sécurité doit être une priorité lors de la configuration de votre serveur Linux, en particulier s'il sera connecté à Internet et accessible à distance. Avoir des compétences de base en sécurité est essentiel pour protéger votre serveur Linux.

Dans ce guide, nous nous concentrons sur certaines des mesures de sécurité de base que vous pouvez prendre pour protéger votre système contre les intrus.

Vecteurs de cyber-attaque

Les intrus exploiteront diverses techniques d'attaque pour accéder à votre serveur Linux. Avant de nous plonger dans certaines des mesures que vous pouvez prendre pour protéger votre système, exploitons certains des vecteurs d'attaque courants qu'un pirate peut utiliser pour infiltrer les systèmes.

Une attaque par force brute est une attaque où le pirate utilise des essais et des erreurs pour deviner les identifiants de connexion de l'utilisateur. Habituellement, l'intrus utilisera des scripts automatisés pour entrer en permanence jusqu'à ce que la bonne combinaison du nom d'utilisateur et du mot de passe soit obtenue. Ce type d'attaque est plus efficace lorsque des mots de passe faibles et faciles à deviner sont utilisés.

Comme évoqué précédemment, des informations d'identification faibles telles que des mots de passe courts et faciles à deviner tels que password1234 présentent un risque potentiel pour votre système. Plus un mot de passe est court et moins complexe, plus il y a de chances que votre système soit compromis.

L'hameçonnage est une technique d'ingénierie sociale dans laquelle l'attaquant envoie à la victime un e-mail qui semble provenir d'une institution légitime ou d'une personne que vous connaissez ou avec qui vous faites affaire.

Habituellement, l'e-mail contient des instructions qui invitent la victime à divulguer des informations sensibles ou peut contenir un lien qui la dirige vers un faux site qui se fait passer pour le site de l'entreprise. Une fois que la victime tente de se connecter, ses informations d'identification sont capturées par l'attaquant.

Malware est l'abréviation de logiciel malveillant. Il englobe un large éventail d'applications néfastes telles que des virus, des chevaux de Troie, des vers et des rançongiciels qui sont conçus pour se propager rapidement et prendre en otage le système de la victime en échange d'une rançon.

De telles attaques peuvent être débilitantes et paralyser les activités d'une organisation. Certains logiciels malveillants peuvent être injectés dans des documents tels que des images, des vidéos, des documents Word ou PowerPoint et intégrés dans un e-mail de phishing.

Une attaque DoS est une attaque qui limite ou affecte la disponibilité d'un serveur ou d'un système informatique. Le pirate inonde le serveur de trafic ou de paquets ping qui rendent le serveur inaccessible aux utilisateurs pendant des durées prolongées.

Une attaque DDoS (Distributed Denial of Service) est une sorte de DoS qui utilise plusieurs systèmes qui inondent une cible avec du trafic qui la rend indisponible.

Acronyme de Structured Query Language, SQL est un langage utilisé pour communiquer avec des bases de données. Il permet aux utilisateurs de créer, supprimer et mettre à jour des enregistrements dans la base de données. De nombreux serveurs stockent des données dans des bases de données relationnelles qui utilisent SQL pour interagir avec la base de données.

Une attaque par injection SQL exploite une vulnérabilité SQL connue qui oblige le serveur à divulguer des informations de base de données sensibles qu'il ne divulguerait pas autrement en injectant du code SQL malveillant. Cela pose un risque énorme si la base de données stocke des informations personnellement identifiables telles que les numéros de carte de crédit, les numéros de sécurité sociale et les mots de passe.

Communément abrégée en MITM, l'attaque de l'homme du milieu implique qu'un attaquant intercepte des informations entre deux points dans le but d'écouter ou de modifier le trafic entre les deux parties. Le but est d'espionner la victime, corrompre les données ou voler des informations sensibles.

Conseils de base pour sécuriser votre serveur Linux

Après avoir examiné les passerelles potentielles qu'un attaquant peut utiliser pour violer votre système, passons en revue certaines des mesures fondamentales que vous pouvez prendre pour protéger votre système.

Peu d'attention est accordée à l'emplacement physique et à la sécurité de votre serveur, cependant, si vous envisagez d'avoir votre serveur dans un environnement sur site, c'est généralement par là que vous commencerez.

Il est important de s'assurer que votre serveur est sécurisé en toute sécurité dans un centre de données avec une alimentation de secours, une connectivité Internet redondante et un refroidissement suffisant. L'accès au centre de données doit être limité au personnel autorisé uniquement.

Une fois le serveur configuré, la première étape à suivre consiste à mettre à jour les référentiels et les progiciels d'application comme suit. La mise à jour du package corrige toutes les failles qui pourraient se présenter dans les versions existantes des applications.

Pour les distributions Ubuntu/Debian :

$ sudo apt update -y
$ sudo apt upgrade -y

Pour les distributions RHEL/CentOS :

$ sudo yum upgrade -y

Un pare-feu est une application qui filtre le trafic entrant et sortant. Vous devez installer un pare-feu robuste tel que le pare-feu UFW et l'activer pour autoriser uniquement les services requis et leurs ports correspondants.

Par exemple, vous pouvez l'installer sur Ubuntu en utilisant la commande :

$ sudo apt install ufw

Une fois installé, activez-le comme suit :

$ sudo ufw enable

Pour autoriser un service tel que HTTPS, exécutez la commande ;

$ sudo ufw allow https

Alternativement, vous pouvez autoriser son port correspondant qui est 443.

$ sudo ufw allow 443/tcp

Rechargez ensuite pour que les modifications prennent effet.

$ sudo ufw reload

Pour vérifier l'état de votre pare-feu, y compris les services autorisés et les ports ouverts, exécutez

$ sudo ufw status

En outre, envisagez de désactiver tous les services et ports inutilisés ou inutiles sur le pare-feu. Avoir plusieurs ports qui ne sont pas utilisés ne fait qu'augmenter le paysage des attaques.

Les paramètres SSH par défaut ne sont pas sécurisés et, par conséquent, certains ajustements sont nécessaires. Veillez à appliquer les paramètres suivants :

  • Désactiver l'utilisateur root de la connexion à distance.
  • Activer l'authentification SSH sans mot de passe à l'aide de clés publiques/privées SSH.

Pour le premier point, éditez le fichier /etc/ssh/sshd_config et modifiez les paramètres suivants pour qu'ils apparaissent comme indiqué.

PermitRootLogin no

Une fois que vous avez désactivé la connexion à distance de l'utilisateur root, créez un utilisateur normal et attribuez des privilèges sudo. Par example.

$ sudo adduser user 
$ sudo usermod -aG sudo user 

Pour activer l'authentification sans mot de passe, dirigez-vous d'abord vers un autre PC Linux - de préférence votre PC et générez une paire de clés SSH.

$ ssh-keygen

Copiez ensuite la clé publique sur votre serveur

$ ssh-copy-id [email protected]

Une fois connecté, assurez-vous de désactiver l'authentification par mot de passe en éditant le fichier /etc/ssh/sshd_config et en modifiant le paramètre affiché.

PasswordAuthentication no

Veillez à ne pas perdre votre clé privée ssh car c'est la seule voie que vous pouvez utiliser pour vous connecter. Conservez-la en lieu sûr et sauvegardez-la de préférence sur le cloud.

Enfin, redémarrez SSH pour appliquer les modifications

$ sudo systemctl restart sshd

Dans un monde où les cybermenaces évoluent, la sécurité devrait être une priorité élevée lorsque vous vous lancez dans la configuration de votre serveur Linux. Dans ce guide, nous avons mis en évidence certaines des mesures de sécurité de base que vous pouvez prendre pour renforcer votre serveur. Dans le sujet suivant, nous approfondirons et examinerons les étapes supplémentaires que vous pouvez suivre pour renforcer votre serveur.