• [^] # Re: Lindows toujours plus proche de Windows.

    Posté par . En réponse à la dépêche Lindows toujours plus proche de Windows.. Évalué à 10.

    Un antivirus a pour but de détecter les virus et je suppose aussi les chevaux de Troie. Les virus et chevaux de Troie sont du code qui ont *exprès* été créés pour se reproduire (dans le premier cas) et causer des dégâts et/ou laisser des portes ouvertes pour un futur attaquant. Les antvirus fonctionnent en général avec une base de signature : ils scannent les exéctuables (ou les fichiers word :) ) à la recherche de ces signatures. Certains antivirus n'ont pas de base de signature mais plutôt une liste de comportement considérés comme suspects. Du genre : il est louche qu'un exécutable aille modifier un autre exécutable ou bien aille écrire dans le MBR, ...

    Les systèmes de détection d'intrusion (IDS : Intrusion Detection Systems) tentent plutôt de repérer les tentatives d'intrusion sur un système. Bon, là on peut se perdre pendant des heures sur la définition d'une intrusion. On va dire qu'il y a plusieurs grandes classes (tout le monde ne sera pas d'accord mais bon...) :
    - les déni de service (DDOS réseau "classique", plantage local ou à distance d'un service ou d'une machine quelconque, while(1){fork();} est assez efficace aussi, ou simplement une batte de base ball bien enfoncée dans l'unité centrale)
    - la prise de privilège distante (tu n'as pas de compte sur une machine et tu arrives à en créer un. Tu passes donc du status de 'inconnu du système' à 'simple utilisateur du système')
    - la prise de privilège locale (tu es déjà connu du système et tu te débrouilles pour devenir super-utilisateur)
    - l'abus de privilèges (là c'est assez délicat. Disons que du point de vue du système d'exploitation, tu as tout à fait le droit d'effectuer les actions que tu veux faire. Par contre, du point de vue du règlement d'ordre intérieur de la société, c'est totalement interdit. Exemple : un administrateur fâché avec un utilisateur qui lui efface tout son $HOME, un utilisateur qui décide d'emmerder son monde en faisant un cat /dev/null > /tmp sur le serveur central, ...)

    En général (prise de privilège locale/distante, plantage d'un service, ...), les attaques exploitent des vulnérabilités de programmes. Donc là, ce sont des programmes qui peuvent faire des choses catastrophiques, mais qui n'ont pas été exprès écrits pour ça. Un bel effet de bord on va dire :)

    Pour détecter les attaques, les IDS ont le choix. D'une part le choix des données à analyser. Soit ils analysent le réseau (ce sont de IDS Network-Based), soit ils analysent des fichiers d'audit générés par le système d'exploitation : Syslog dans une certaine mesure, le "journal des événements" de Windows, l'audit Basic Security Module sur Solaris, ... Ce sont alors des IDS Host-Based.
    D'autre part, ils ont le choix de la méthode d'analyse. Soit on retombe dans le schéma de la base de règles et on a donc un ensemble de signatures des attaques connues. Ce sont des IDS Knowledge-Based. Le grand défaut est qu'il faut que les règles soient à jour et complètes.
    Soit on utilise un système comportemental. L'IDS est d'abord dans une phase d'apprentissage où il étudie le comportement des utilisateurs. Ensuite il passe dans une phase de détection où tout utilisateur s'écartant du comportement 'moyen' observé précedemment est considéré comme suspect. Exemple : un(e) secrétaire qui normalement travaille de 9 à 17 heures et lance OpenOffice et Mozilla et qui subitement se connecte le samedi soir et se fait quelques compilations avec GCC. Ce sont les IDS behaviour-based. Avantage : ils peuvent détecter des attaques jusque là inconnues mais peuvent générer beaucoup de fausses alarmes et n'ont pas intérêt à être attaqués pendant la phase d'apprentissage sinon c'est la catatstrophe.

    Donc, quelle est la différence fondamentale entre un antivirus et un IDS ? Et bien je dirais qu'il s'agit principalement de la nature des données analysées. Un antivirus scannera des fichiers qui sont des binaires exéctables tandis qu'un IDS scannera des fichiers qui sont des données d'audit (provenant d'un dump réseau ou bien d'un système d'audit). Sinon, je pense qu'un vrai IDS générique devrait être capable de s'adapter à la détection de virus et inversément.