Sécurité sous Linux - Association infothema
Transcription
Sécurité sous Linux - Association infothema
Sécurité sous Linux La menace (en anglais « threat ») représente le type d’action susceptible de nuire dans l’absolu, tandis que la vulnérabilité (en anglais « vulnerability », appelée parfois faille ou brêche) représente le niveau d’exposition face à la menace dans un contexte particulier. Afin de pouvoir sécuriser un système, il est nécessaire d’identifier les menaces potentielles, et donc de connaître et de prévoir la façon de procéder de l’ennemi. Le but de cette présentation est ainsi de donner un aperçu des motivations éventuelles des pirates ou crackers, de catégoriser ces derniers, et enfin de donner une idée de leur façon de procéder afin de mieux comprendre comment il est possible de limiter les risques d’intrusions. Les hackers résolvent les problèmes et bâtissent... Observez le maître Suivez le maître Marchez avec le maître Assistez le maître Devenez le maître Les impacts de la négligence Dès le milieu des années 70, les recherches sur la cybercriminalité mettaient en évidence l’apparition de nouvelles menaces. Selon des sondages réalisés aux Etats-Unis au début des années 80, près de 50 % des entreprises interrogées avaient subi un acte de type cybercriminel. Vingt-cinq ans plus tard, la situation n’a fait qu’empirer. Oubliée l’heure des hackers héros de séries B ! L’artillerie lourde est sortie. La cybercriminalité engloutit des milliards détournés de l’économie, et l’on parle désormais de (cyber)guerre entre Etats. Pour les Américains, l’ennemi public numéro un est l’armée de hackers chinois ; et pour les Chinois, ce sont les cyberunités de l’armée et les services d’espionnage américains. Quelle est réellement la dimension de la menace ? Difficile à dire. Mais « on » ne cesse d’affirmer qu’elle est grande, chiffres à l’appui. Ces chiffres nous disent que la forteresse est sous le feu. En 1995, les 2 millions d’ordinateurs du réseau du département de la Défense américain subissaient 250 000 cyberattaques. 65 % de toutes les attaques menées avaient réussi ! A la fin des années 2000, le réseau de l’armée américaine, subissait quotidiennement plus de 3 millions de scans. Ces dernières années, les botnets sont venus noircir le tableau, capables de prendre la main sur des millions d’ordinateurs, comme le célèbre bot Mariposa qui infecta près de 13 millions de machines dans le monde. Ajoutons à cela les centaines de millions de données nominatives volées annuellement, y compris jusque dans les serveurs (soit-disant sécurisés) de la police et de la Défense ! Peu rassurant. Les impacts de la négligence Des chiffres en hausse Il se trouve que la cybercriminalité a augmenté en 2009, à échelle mondiale, comparée à l’année précédente. La France, elle, obtient de bons chiffres puisqu’elle passe de la 8ème à la 13ème place mondiale en matière de malveillance informatique, mais malgré tout, la vigilance et les sanctions restent indispensables. De manière générale, la cybercriminalité a augmenté de 71% en un an. Elle est calculée grâce à un réseau de millions d'ordinateurs, de comptes mails leurres afin d'attirer les spams et de sondes installées sur internet. Les pays les plus concernés sont les Etats-Unis et la Chine, dû à leur nombre important d’internautes, suivi par le Brésil, l’Allemagne et l’Inde. Chiffres de l'insécurité Le coût de la non-sécurité On parle souvent, lorsque l’on évoque la sécurité informatique, des coûts y étant associés : coût du matériel, coût de l’expertise, coût de la maintenance… Ce dont on parle moins en revanche, c’est le coût de la NON-SÉCURITÉ INFORMATIQUE. Une récente étude, 49% des professionnels informatiques européens ont noté au moins deux incidents de sécurité informatique entre mai 2010 et mai 2011. Selon ces derniers, les incidents survenus auraient coûté au moins 250 000 €… Les moins « chanceux » (1%) ayant perdu plus d’un million d'euros dans l’histoire. Il est à noter que ces chiffres incluent les coûts de résolution du problème, de perturbation de l’activité de l’entreprise, de pertes de revenus, de la hausse significative de tâches à réaliser en interne ainsi que de nombreux autres postes de dépenses de moindre importance. Chiffre plus inquiétant, 76% des sondés indiquent que les attaques enregistrées sont beaucoup plus sérieuses qu’auparavant, qu’elles sont plus difficile à détecter et à contenir. Notons également que les points d’entrée signalés proviennent en grande partie (52%) des terminaux mobiles (iphone, smartphone...) Risques sous Linux Pas de Virus ? … La configuration par défaut de Linux est généralement plus sûre que celle de Windows Les failles sont généralement plus vite corrigées Par défaut, les utilisateurs de Linux n'ont pas les droits administrateur "Ceux qui pensent encore que Linux est invulnérable aux menaces devraient changer d'avis rapidement" Le Spam : pour envoyer plus de mails. Le DDoS : envoyer plus d'attaques sur un serveur pour le faire arrêter de fonctionner. Le BruteForcing : trouver un mot de passe plus vite. Anti Virus sous Linux Eset Nod 32 Desktop sous Linux ESET File Security for Linux (pour les serveurs) ex. Postfix... ClamAV Effectuer un filtrage efficace sur les serveurs de mails afin d'éviter toute propagation de vers et de fichiers malicieux sur le réseau internes. - Analyse virale de tous les messages qui transitent par le serveur SMTP. - Un contrôle des mises à jour doit être effectué chaque mois par un responsable informatique. Botnets Les botnets malveillants servent principalement à : Relayer du spam pour du commerce illégal ou pour de la manipulation d'information (par exemple des cours de bourse) Réaliser des opérations de phishing Identifier et infecter d’autres machines par diffusion de virus et de programmes malveillants (malwares) Participer à des attaques groupées (DDoS) Générer de façon abusive des clics sur un lien publicitaire au sein d’une page web (fraude au clic) Capturer de l’information sur les machines compromises (vol puis revente d'information) Exploiter la puissance de calcul des machines ou effectuer des opérations de calcul distribué notamment pour cassage de mots de passe Servir à mener des opérations de commerce illicite en gérant l'accès à des sites de ventes de produits interdits ou de contrefaçons Outils pour Linux Metasploit Nessus SpamAssasin Denyhosts John the Ripper Perdition Ssh Iptables Metasploit Metasploit était un projet open-source sur la sécurité informatique qui fournit des informations sur des vulnérabilités, aide à la pénétration de systèmes informatisés et au développement de signatures pour les IDS. Le plus connu des sous-projets est le Metasploit Framework, un outil pour le développement et l'exécution d'exploits contre une machine distante. Créé à l'origine en langage de programmation Perl, Metasploit Framework a été complètement ré-écrit en langage Ruby. Le plus notable est la publication de certains des exploits les plus techniquement sophistiqués auprès du public. De plus, il est un puissant outil pour les chercheurs en sécurité étudiant des vulnérabilités potentielles. Metasploit peut être utilisé par les administrateurs pour tester la vulnérabilité des systèmes informatiques afin de les protéger, ou par les pirates a des fins de piratage. Comme la plupart des outils de sécurité informatique, Metasploit peut être utilisé à la fois de manière légale et à la fois pour des activités illégales. Nessus Nessus est un outil de sécurité informatique. Il signale les faiblesses potentielles ou avérées du matériel testé (machines, équipement réseau). Nessus est capable de scanner un équipement (machine ou matériel réseau), un ensemble d'équipements (à partir d'un fichier ou d'une plage IP) ou encore un réseau entier. Le résultat du scan fournira : -la liste des vulnérabilités par niveaux de criticité, -une description des vulnérabilités, et surtout la méthode ou un lien pour solutionner le problème. Il s'appuie pour cela sur une base de signatures des failles connues sur un large panel de systèmes. Mener des audits internes afin d'assurer le bon fonctionnement des mesures de sécurité prises par l'entreprise. John the Ripper John the Ripper (ou JTR, ou John) est un logiciel libre de cassage de mot de passe, utilisé notamment pour tester la sécurité d'un mot de passe. (audit, crack). D'abord développé pour tourner sous les systèmes dérivés d'UNIX, le programme fonctionne aujourd'hui sous une cinquantaine de plate-formes différentes, telles que BeOS, BSD et ses dérivés, DOS, Linux, OpenVMS, Win32… John est l'un des craqueurs de mots de passe les plus populaires, car il inclut l'autodétection des tables de hachage utilisées par les mots de passe, l'implémentation d'un grand nombre d’algorithmes de cassage, par le fait qu'il soit très facilement modifiable, et aussi qu'il soit possible de reprendre une attaque après une pause (arrêt de la machine). sudo sudo sudo sudo john mypasswd unshadow /etc/passwd /etc/shadow > passwd john mypasswd john --show passwd Un audit concerne plusieurs critères : - Le niveau de sécurité des mots de passe. - La vérification du changement des mots de passe tous les six mois. - L'étude des notes délivrées par le responsable sécurité aux employés sur la politique des choix de mots de passe. Un exemple concret de test consisterait à évaluer la sécurité des mots de passe de 30 utilisateurs, et à identifier la proportion de mots de passe faibles. SpamAssasin Le but de ce logiciel est de filtrer le trafic des courriels pour éradiquer les courriels reconnus comme pourriels ou courriels non sollicités. Face à l'augmentation importante du spam, ce logiciel connaît un engouement important et est adaptable sur de nombreux serveurs de courriels dont procmail, sendmail, Postfix, Exim, qmail ; il peut être installé sur la plupart des systèmes basés sur Linux, Windows et Mac OS X. SpamAssassin est distribué gratuitement sous la licence Apache Software License. SpamAssassin est un programme (en Perl) qui fait passer un certain nombre de tests au message. En fonction du résultat de ces tests, il attribue un score au message. Si le score dépasse un certain seuil, le courriel est alors considéré comme du Spam. SpamAssassin modifie alors le titre du message (il l'encadre par ***** SPAM *****). De plus, SpamAssassin positionne deux nouveaux en-têtes au message : X-Spam-Status et X-Spam-Level. Ces deux en-têtes permettent alors de créer des filtres dans votre client de messagerie pour orienter le message (par exemple vers la corbeille). Tous les messages doivent donc passer par SpamAssassin pour être traités, avant d’arriver dans leur dossier définitif. HoneyPot Perdition Un honeypot, ou pot de miel, est un ordinateur ou un programme volontairement vulnérable destiné à attirer et à piéger les pirates. Perdition est un serveur proxy pour les protocoles POP3, POP3S, IMAP4 et IMAP4S. Il est capable de gérer des connexions SSL ou non-SSL et rediriger les utilisateurs vers un serveur réel suivant l'utilisateur (qui se trouve dans une base de données ou pas). Perdition est essentiellement utilisé pour créer des systèmes e-mail de grande envergure où les boîtes e-mails des utilisateurs se trouvent sur un ou plusieurs hôtes différents. Il peut être également utilisé comme solution transitoire pour passer d'une authentification "texte brut" à SSL. Denyhosts Finies les attaques bruteforce sur mon serveur... Il permet automatiquement de bloquer les IPs qui tentent un peu trop de connexion vers votre serveur. Le script s'installe sous Debian avec apt-get install denyhosts et est directement fonctionnel. Les options de configuration sont très nombreuses et se trouvent dans le fichier /etc/denyhosts.conf qui est bien documenté. Vous pouvez : -choisir le nombre de tentatives au bout desquelles bloquer une IP -choisir de bloquer plus rapidement les tentatives en root ou sur des comptes inexistants -bloquer les IPs que pour le SSH ou bien pour tous les services du serveur -retirer automatiquement les IPs du fichier /etc/hosts.deny après une durée déterminée -ne pas oublier de mettre au moins son IP dans le fichier /etc/hosts.allow Ssh OpenSsh Server vi /etc/ssh/sshd_config Port 2222 PermitRootLogin no Iptables vi /etc/init.d/iptables chmod a+x /etc/init.d/iptables #INTERDIRE IP iptables -A INPUT -s 192.168.1.1 -j DROP #INTERNET iptables -I INPUT -d 192.168.1.100 -p tcp --dport 80 -m string --to 700 --algo bm --string 'Host: 192.168.1.100' -j DROP iptables -I INPUT -d 192.168.1.100 -p tcp --dport 80 -m string --to 70 --algo bm --string 'GET /w00tw00t.at.ISC.SANS.' -j DROP iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name BLACKLIST --set iptables -A INPUT -p tcp --dport 80 -m state --state NEW -m recent --name BLACKLIST --update --seconds 10 --hitcount 10 --rttl -j DROP 1/ Interdit de pointer sur son serveur web via l'ip 2/ Si vous avez un serveur apache qui tourne et vous avez accès aux log il est plus que probable que tu ai déjà vu ce genre de logs : 213.211.134.23 [date] "GET /w00tw00t.at.ISC.SANS.DFind:) HTTP/1.1" 400 Ce n'est enfait qu'un scanner de vulnérabilités (DFind) sans grand intérêt si ce n'est qu'il pollue en permance vos logs. 3/ Avec les deux règles précédentes je refuse (DROP) les nouvelles (-m state --state NEW) connexions entrantes (-A INPUT) au port http (--dport 80) qui atteignent le taux de 10 connexions (--hitcount 10) sur une période de 10 secondes (--seconds 10) et qui utilisent le protocol tcp (-p tcp). La première règle sert à mettre à jour l'adresse IP dans la liste BLACKLIST et la seconde règle permet de limiter les connexions.