Les attaques

Hasard ou nécessité ?

La bonne question à se poser, concernant les problèmes de sécurité n'est pas:

Est-ce que j'ai des chances (grandes ou petites) de subir une attaque un jour?

Mais:

Quand vais-je être la cible d'une attaque?”

Et la seule réponse pertinente à cette question est:

A tout moment. Peut-être justement pendant que tu lis ces lignes :-P

Mon propos n'est certes pas d'affoler le lecteur, mais d'essayer de lui faire comprendre que les arguments du type:

Oh, moi, je n'ai rien d'intéressant sur ma machine et je ne vois pas pourquoi un pirate s'ennuierait à essayer d'y pénétrer…

Sont du même ordre que de croire que les accidents de voiture sont toujours pour les autres et jamais pour soi.

Les attaques possibles

Une machine informatique est par défaut, d'une grande vulnérabilité, tout simplement, parce que l'informatique est passée des mains d'une poignée de spécialistes à une foule d'utilisateurs et qu'une certaine éthique de l'informaticien y a laissé ses plumes.

Les environnements informatiques n'ont pas été prévus pour être manipulés par des personnes sans scrupules qui cherchent à en exploiter tous les effets pervers.

Je classerai les malfaisants dans trois catégories (c'est une opinion toute personnelle):

  1. Les amateurs de génocides
    Ils utilisent des virus pour produire le plus de dégâts possible sans se soucier de savoir quelles sont les cibles qui seront touchées. Ce qui leur importe est la masse atteinte. Les meilleurs écrivent eux-mêmes leurs virus, ce qui fait au moins la preuve de leur compétence technique, les pires exploitent des virus faits par d'autres, sans même savoir comment ils fonctionnent.
  2. Les voyous du Net
    Bien connus sous le nom de « script kiddies », ceux là cherchent à pénétrer, le plus souvent pour faire de la casse, des hôtes connectés au Net en utilisant des recettes de cuisine élaborées par d'autres. Nous verrons plus loin de quoi il retourne. Peu leur importe la cible, leur amusement consiste à utiliser des méthodes toutes faites pour ennuyer leur monde. Ils s'attaquent à la première machine sur laquelle ils trouvent une faille, juste pour le plaisir. Mes logs sont pleins de petits comiques de ce genre, qui cherchent au hasard du Net, une machine qui serait infectée par un cheval de Troie, juste, sans doute, parce qu'ils ont trouvé quelque part le client qui sait s'y connecter.
  3. Les Hackers
    Les vrais, ceux qui ont des connaissances très étendues dans les systèmes et pour qui le jeu consiste à rechercher toujours de nouvelles failles. Notez bien que ce ne sont pas forcément des pirates. Ceux là sont de véritables techniciens et, même s'ils font parfois des dégâts (lorsqu'ils sombrent du mauvais côté de la force), inspirent plus ou moins le respect par leur grandes connaissances. Ce sont leurs découvertes qui, la plupart du temps, sont exploitées par les script kiddies et autres utilisateurs de virus. Ce sont également leurs découvertes qui contribuent à créer des systèmes de plus en plus solides et fiables. Leur objectif premier n'est pas de détruire, mais de comprendre.

Les attaques virales et assimilées

Les virus dans les exécutables

Un virus est un bout de programme glissé volontairement dans une application dans le but de nuire. Il est possible d'attraper un virus avec n'importe quelle application que l'on a installée et que l'on exécute, ce n'est pas un problème typique d'une connexion permanente. Un virus ne peut être introduit dans sa machine que si l'on exécute une application infectée, application récupérée sur l'internet ou sur n'importe quel autre support informatique: Disquette, CD ROM, clé USB etc.

Les macro virus dans les données

Une autre infection, assez semblable, consiste à exploiter les possibilités qu'ont certaines applications d'installer des macro commandes dans les fichiers de données. La suite Microsoft Office qui propose des possibilités, par ailleurs intéressantes, de placer des macros dans les documents Word, Excel et même Powerpoint est une cible de choix. Ces macros sont maintenant écrites en VBA (Visual Basic for Applications) qui est un langage suffisamment puissant pour arriver à faire beaucoup de dégâts avec. Dans un tel cas, il suffit d'ouvrir un document infecté pour mettre le macro virus en activité. Autrement dit, même des fichiers de données peuvent être dangereux.  Notez que Microsoft a modifié les applications de MS Office de manière à ce qu'elles puissent vous avertir de la présence de macros dans les documents, vous laissant la possibilité de les activer ou non. OpenOffice n'est pas plus à l'abri de ce genre d'infection.

Les scripts et applets dans le HTML

Malheureusement, d'autres moyens existent, typiquement venus de l'internet, dans les pages HTML. En effet, pour rendre les pages HTML plus vivantes, il devient possible d'y insérer des composants actifs. Parmi ceux-ci nous trouvons :

  • les scripts (javascript, vbscript).
    Ce ne sont pas les plus dangereux parce que les langages de scripts offrent rarement des fonctions pouvant être utilisées à des fins vraiment destructrices. Ils disposent cependant de la possibilité de lancer des exécutables locaux, c'est en cela qu'ils peuvent devenir dangereux ;
  • les applets Java ou les composants ActiveX.
    Plus puissants, ils sont introduits dans les pages HTML sous la forme de composants compilés (ou pré compilés). Leur contenu n'est pas visible et les outils qui permettent de les construire (Java ou Visual Basic) offrent des fonctions permettant de réaliser des opérations extrêmement dangereuses.
    La grande mode consiste en un mélange des deux. Un message malicieux en HTML pour exécuter un script qui exécute un applet ou un ActiveX, le résultat étant par exemple que votre carnet d'adresse sera utilisé à votre insu pour « spammer » à toutes vos connaissances le même message malicieux ou mieux encore, un autre message, mais contenant le même ver ; 
  • les « plug-in » qui sont des extensions ajoutées aux navigateurs pour permettre la visualisation de fichiers multimédia peuvent également être corrompus.

Parades

Toutes ces attaques sont plus ou moins prises en charge par des applications anti-virus, les meilleures précautions à prendre sont :

  • installer un « bon » antivirus et effectuer une mise à jour fréquente de la base de données de cet outil. Mais attention, un antivirus, si efficace soit-il ne saura jamais détecter 100% des attaques ;
  • ne pas faire une confiance aveugle à son antivirus, sous prétexte qu'il est « bon et à jour » ;
  • rester très prudent sur les sources des documents ou applications que l'on rapatrie sur la machine ;
  • paramétrer son navigateur pour ne pas laisser exécuter n'importe quel script ou applet dont l'origine n'est pas sûre ;
  • éventuellement, prier.

Les intrusions

Décrire dans le détail les méthodes employées serait long, voire fastidieux. Ceux qui sont avides de détails sur la question ont intérêt à se procurer le très instructif  « Hacking interdit » édité en français chez Eyrolles. Cet ouvrage traite en quelques 1250 pages des diverses techniques de piratage, ainsi que les parades possibles. Voyons tout de même en résumé les principaux risques.

Les ports à l'écoute

Lorsqu'un port est ouvert à l'écoute sur un  service serveur, c'est une porte ouverte par laquelle un intrus peut entrer. Sur un serveur, on peut entrer avec des outils comme telnet et exploiter des failles de ces logiciels

Je vous entend me dire Oui, mais ma machine WIndows xx n'est pas un serveur, il n'y a donc pas de ports à l'écoute… En êtes-vous si sûr?

Vous avez déjà les ports 137, 138 et 139 qui sont ouverts pour que NetBIOS fonctionne (la partie la plus visible étant le voisinage réseau). Surtout, si vous avez le partage des fichiers et des imprimantes activé. Dans ce cas là, vous êtes bel et bien un serveur.

Si vous avez installé IIS (Internet Information Services), nécessaire pour travailler efficacement avec FrontPage, vous avez également le port 80 qui est ouvert (et vous êtes particulièrement en danger).

Vous êtes donc peut-être beaucoup plus serveur que vous ne le pensez…

Les « backdoors », « trojans » et assimilés

Une porte dérobée n'est pas à proprement parler un virus, dans la mesure où elle ne se multiplie pas . Elle  peut cependant s'attraper sensiblement de la même manière, par un cheval de Troie. Un cheval de Troie est une application, d'apparence inoffensive qui installe discrètement une porte dérobée. Elle peut également être inoculée par un pirate qui a réussi une opération de « spoofing », un débordement de pile ou de prise de contrôle à distance sur votre poste, comme nous le verrons plus loin.

Une porte dérobée est en gros un logiciel de contrôle à distance. Il fonctionne comme un serveur, sur un port connu de celui qui a conçu le piège. Un simple scan d'adresses IP sur ce port permet alors de repérer les machines infectées actuellement en ligne. Le mal intentionné peut s'y connecter et faire plus ou moins ce qu'il veut sur la machine distante. Très dangereux, ce genre de saleté peut heureusement être repéré relativement simplement, en prenant la précaution de vérifier périodiquement les ports ouverts sur sa machine. Malheureusement, l'utilisateur a souvent autre chose à faire que de surveiller continuellement les ports ouverts.

Une variante est le « spyware » très à la mode actuellement. Ce n'est pas dangereux à proprement parler, mais ça envoie des informations diverses sur le contenu de votre machine, vos habitudes sur l'internet etc. à un serveur qui les récupère. Les « spywares » sont souvent implantés dans des logiciels en démonstration ou des « sharewares », de la même manière qu'une porte dérobée. Certains logiciels commerciaux, hélas, s'adonnent également à ce genre de pratiques.

Exemple marrant d'un spyware

Un « keylogger » est un membre de cette famille, dont la spécialité est d'intercepter au plus bas niveau du système toutes les activités du clavier. En bon français, tout ce que vous tapez, il l'enregistre à la source.

Dangereux ?

Vous êtes dans une transaction commerciale. Vous devez envoyer votre numéro de carte bancaire au site marchand. Vous avez bien pris les précautions d'usage :

  • vous êtes en HTTPS (HTTP sécurisé), donc connexion chiffrée ;
  • vérification du certificat du serveur, le serveur est bien celui qu'il prétend être ;

(Comment, vous n'avez même pas vérifié tout ça ?)

Mais si bien sûr, vous avez vérifié :-).

Oui mais…

Le « keylogger » il s'en fout un peu du https, puisqu'il récupère les informations à la source, bien avant la couche application. De même, il s'en fout un peu du serveur dument authentifié, puisqu'il va envoyer les informations recueillies à un serveur pas du tout authentifié, et contrôlé par une association de malfaiteurs.

Vous entrevoyez les risques ?…

parades

  • Contrôler périodiquement les ports ouverts à l'écoute ;
  • certains antivirus savent détecter les trojans, backdoors et autres spywares connus.

Les défauts logiciels

Il est également possible d'exploiter des failles de sécurité sur des applications serveur “officielles” pour les utiliser comme porte d'entrée, en général par débordement de pile. Il arrive aussi que certains logiciels serveurs comportent des “bugs” ou soient mal configurés et permettent de prendre la main sur une machine, les serveurs FTP mal configurés sont un danger immédiat , mais tout type de serveur peut présenter des failles de sécurité pouvant déboucher sur une prise de contrôle. Le pirate qui réussit l'opération peut alors installer une porte dérobée pour la suite des opérations.

Parades

  • Ne pas installer de serveur inutile.
  • Mettre en place toutes les sécurités proposées par les serveurs que l'on a installés et vérifier périodiquement sur les sites des constructeurs de ces logiciels l'apparition de mises à jour de sécurité.
  • Filtrer efficacement les accès sur les ports que l'on souhaite laisser ouverts.
  • D'une manière générale, se tenir au courant des patchs, service packs et autres correctifs qui sortent et les installer systématiquement.

Les « spoofing », « hijacking » et autres « SYN Flood »

Le jeu consiste à se faire passer pour un autre au cours d'une connexion TCP. Le principe est assez compliqué, mais redoutable s' il  réussit. En général, le pirate utilise ces méthodes pour placer une porte dérobée qu'il utilisera par la suite. Vous serez sans doute tout à fait rassurés de savoir qu'il traîne sur l'Internet des programmes spécialement conçus pour ce genre d'intrusions.

Il est très délicat de se protéger de ces d'attaques.

Parades

Pas à ma connaissance, sauf si le pirate utilise un « SYN Flood » et que le logiciel firewall sait le détecter. Ici, il faut être préventif et curatif. Comme un spoofing ne s'improvise pas, le mal intentionné a déjà certainement pas mal tourné autour de votre machine. Prise d'empreinte de la pile TCP/IP, scan des ports ouverts et c'est à ce niveau qu'il faut le débusquer et le coincer. Par ailleurs, il se contentera dans cette phase d'installer une porte dérobée ou de créer un compte d'administrateur, choses qui sont détectables si l'on y prend garde en vérifiant périodiquement l'état de son système.

Les blocages

Ce n'est pas à proprement parler une intrusion. C'est assez facile à faire, c'est pas forcément dangereux, mais la machine ciblée se bloque, forçant parfois un “reset” sauvage, on appelle ça un “denial of Service”

Pour ce genre d'attaque, le “méchant” utilise des failles dans le NOS pour bloquer le système distant. Le “ping de la mort” en est un bon exemple. Le jeu consiste à envoyer un “echo request” avec une trame anormalement longue. Certains systèmes y sont sensibles et se bloquent. Le “méchant” n'y gagne rien, il a juste la joie de vous avoir obligé à faire un reset.

Parades :

Un firewall bien configuré arrive généralement à éviter ce genre de problèmes.

ICMP, le proto qui fait peur

Rappelons ici que le protocole ICMP est avant tout destiné au transport d'informations sur le fonctionnement du réseau. Il travaille au même niveau qu'IP. Vous trouverez ici des détails sur ce protocole.

ICMP couvre tous les besoins de signalisation des équipements de réseau. Il est clair que l'utilisateur final n'a pas besoin de tous les signaux possibles, c'est cependant une erreur de croire que l'on peut tous les bloquer sans problèmes. Voici quelques éléments de réponse à l'épineuse question: ICPM oui ou non?

Le PING

Le ping peut éventuellement être une source de désagréments:

  • Il contribue à révéler votre présence sur le Net
  • Il peut servir à obtenir un déni de service (blocage de la machine)

Vous pouvez bloquer les ping request (signal 8) à l'entrée de votre machine, ça ne prête pas à conséquences.

Hôte inaccessible

C'est le signal 3. Il sert à indiquer que l'hôte que l'on cherche à joindre ne répond pas.  C'est certainement le signal le plus utile pour les clients du Net.

Il ne faut pas bloquer ce signal, du moins en entrée, faute de quoi les couches supérieures du protocole ne pourront pas être informées et ne réagiront pas en conséquence.

Par ailleurs, ce signal intervient dans la découverte du MTU (Maximum Transfert Unit). C'est la taille la plus grosse qu'un paquet peut prendre avant de devoir subir une fragmentation. Si ce processus est mis en œuvre et que le signal 3 est bloqué,  les paquets envoyés risquent d'être systématiquement trop grands et donc systématiquement  fragmentés (voire même rejetés parfois). Dans ce cas, les performances de la connexion risquent de devenir déplorables.

Ce signal est-il par ailleurs dangereux? Pas à ma connaissance.

Horodatage

Ce signal peut donner des indications sur le fuseau horaire sur lequel vous vous trouvez. Son utilisation est assez similaire au ping. Comme vous ne voulez pas forcément donner ce genre d'information à un éventuel pirate, bloquez le (signal 13) A priori, ça ne devrait pas perturber le bon fonctionnement de votre connexion.

TTL Expiré

Information aussi intéressante que « hôte inaccessible ». Ce signal (signal 11)  est utilisé dans la commande traceroute.

Il n'est pas utile, voire néfaste de bloquer ce signal.

Redirection nécessaire

Ce signal n'est en principe utile que pour les routeurs. Il peut servir à manipuler à distance la table des routes (commande route print sous Windows, ou route sous GNU/Linux).

Du fait de ces risques, il vaut mieux le bloquer.

En ce qui concerne les autres signaux, je n'ai trouvé aucune information indiquant s'il valait mieux les bloquer ou non. A mon sens, le signal 17 (requête de masque de réseau) ne perd rien à être bloqué. A essayer pour voir.