IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

Comment créer un antivirus


Sujet :

Langages de programmation

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 24
    Points : 17
    Points
    17
    Par défaut Comment créer un antivirus
    Bonjour et merci pour avoir consacré du temps pour lire mon message.

    Je cherche toute informations qui peut m'aider à créer un antivirus :
    - Documentations.
    - Langages de programmation apropriés.
    - Méthodes.
    - Cours.
    Bref tous ce que vous savez sur ce sujet!

    Encore merci et bonne navigation!

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    une méthode simple pour reconnaitre des virus, c'est de détecter leur signature binaire


    ça revient à un algo de recherche de sous-chaine dans une chaine... mais sur un flux binaire
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  3. #3
    Rédacteur
    Avatar de Neitsa
    Homme Profil pro
    Chercheur sécurité informatique
    Inscrit en
    Octobre 2003
    Messages
    1 041
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chercheur sécurité informatique

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 041
    Points : 1 956
    Points
    1 956
    Par défaut
    Bonjour,

    Pour les langages utilisés pour programmer, on peut envisager :

    - Un langage "très haut niveau" pour tout ce qui est GUI et interface avec l'utilisateur.

    - Un (ou des) langages compilables en natif et performant en terme d'exécution (type C / C++) pour la couche métier.

    - Dans de très rare cas, l'assembleur.

    Pour la détection des virus, on scinde les diverses en actives (exécution d'un fichier) ou passives (simple recherche, sans exécution) :

    - Comme le disait Gorgonite, le "scanning" qui consiste à analyser les fichiers de manières passive en cherchant des signatures contenue dans une BDD.

    - Contrôle d'intégrité :

    On passe les fichiers (notamment exécutables) dans un contrôleur d'intégrité, via une fonction de checksum / CRC / Hash. On compare le résultat avec une base faites à l'installation de l'antivirus. Si un fichier obtient un résultat différent, on peut le dors et déjà le soupçonner, sans pour autant tout de suite remonter un "faux positif".

    - Analyse Heuristique : L'analyse heuristique est une démarche passive ou active suivant le cas.

    Dans le cas passif on tente non pas de repérer un ou des patterns de signature mais des "constructions" qui peuvent être marquées comme suspectes. Meilleurs sont les heuristiques, meilleur est l'AV, la difficulté est de trouver les bonnes heuristiques... Un exemple pour être plus parlant : L'instruction assembleur LIDT permet de remplacer tout ou partie de l'IDT (table des interruptions) qui est une table maintenu par le Kernel permettant d'appeler des fonctions résidante du noyau. Tout programme utilisant LIDT doit être marqué comme suspect.

    Dans le cas actif, on émule tout ou partie d'un code pour savoir ce qu'il fait. Le terme d'émulation est très important puisque le programme ou le code émuler ne doit en aucun produire un résultat réel. On regarde donc ce que fait le code émuler, et suivant un jeu de règles (les heuristiques) on détermine s'il y a matière à marqué le code ou le binaire suspect.

    - Analyse comportementale (dite "behaviour blocking"):

    On "hook" certaines fonctions système en bas niveau pour savoir qui fait quoi (écriture, lecture, connexion, etc.) : Pour simplifier on "monitor" le système entier.
    Par exemple, un binaire qui se mettrait à ouvrir tous les fichiers exécutables pour y écrire quelque chose doit immédiatement être déclaré suspect voir tout de suite arrêté. Il y a certains jeux facilement applicables: ouverture de binaire + écriture ou ajout, lecture de certians champs du PE, etc.

    Le problème ici est de définir un seuil entre un comportement normal et anormal. Arrêté en pleine course un programme "légal" est du plus mauvais effet .

    - analyse spectrale : D'approche simple (c'est une technique de recherche en statique), on se contente de faire un histogramme des instructions assembleur utilisées et de dégagés celle qui sont potentiellement aberrante. Dans ce cas là on peut être face à un virus de type polymorphique.


    C'est vraiment un tour très très rapide des possibilités. Certaines détectent des macro virus ou virus de script, des virus polymophiques ou même métamorphiques, il faut souvent combiner et ajouter d'autres techniques...
    Certaines techniques ont des avantages et/ou des désavantages...

    Tu trouvera beaucoup de docs chez les constructeurs d'AV. (par exemple Symantec n'est pas trop avare de ce coté là). Cherche avec des noms de chercheurs reconnus comme Peter Szor et consorts. Beaucoup d'entre eux ont écrit des livres.

    Si tu es intéressé, va faire quelques tours dans les conventions autour de la sécurité informatique. On trouve du plus ou moins intéressant, de bonne interventions, et surtout on rencontre du monde avec qui papoter.

    Ce qu'il faut c'est :

    Une bonne très bonne connaissance du système (Kernel land et user-land) puisqu'il faut développer des drivers, être capable de naviguer dans l'espace kernel sans être perdu, etc.
    Une très bonne connaissance d'un langage comme le C ou apparenté.
    Une très bonne connaissance de l'assembleur.
    De très solides connaissances en algo : data mining, neural networks, etc.

    Et enfin : Ne pas être seul... Au vu des compétences requises, une seule personne ne peut tout faire.

  4. #4
    Membre à l'essai
    Inscrit en
    Mars 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 24
    Points : 17
    Points
    17
    Par défaut
    Merci les amis, ça fait chaud au coeur de savoir qu'ils des gens qui partagent leurs savoires!

  5. #5
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Alors moi, Unixien convaincu connaissant très peu de choses au monde Windows, j'ai une question toute simple : comment se fait-il qu'un programme puisse s'installer chez soi sans que l'on ne s'en rende compte ?

    Je me souviens qu'à l'époqie où j'étais sous Windows, quand je navigais sur internet, je me choppais des virus de la mort, pourtant sans jamais rien installer ni télécharger. Souvent, les virus arrivaient dès que l'ordinateur se connectait au site de Wanadoo (mon fournisseur de l'époque).

    Des spams ? je n'en n'avais pas. Comme je le dis, je ne téléchargeais rien, et j'allais quasiment toujours sur les mêmes sites, qui étaient au passage plus que de confiance et comportaient très peu, voire jamais, de "fioritures" (JavaScript et autres...).

    J'ai du mal à voir, comment d'un point de vue programmation, on peut faire quelque chose qui s'installe automatiquement (parmis les fichiers système en plus !) !

    Sous Linux (Mandriva, sans firewall) et Solaris 9, je n'ai aucun problème.
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  6. #6
    Membre régulier Avatar de siplusplus
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Points : 107
    Points
    107
    Par défaut
    Coté internet et win, cela se joue sur le pare feu.
    Et ensuite sous win les droits sur les fichiers ressemblent
    plus à un désert par rapport à linux.
    Ce sont ces droits qui font qu'un programme peut atteindre
    ou non le système.

  7. #7
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Oui, je sais, mais comment le programme peut-il se copier chez toi sans même que tu ne t'en rendes compte ? Et comment, une fois copié, peut-il se positionner comme un démon (sous Linux, il faut modifier des fichiers de configuration normalement accessible à root uniquement).
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  8. #8
    Membre régulier Avatar de siplusplus
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Points : 107
    Points
    107
    Par défaut
    Du peu que j'en sais, c'est souvent dans les codes javascript, activex, ... qui
    associé à un évènement clic ou le simple fait d'aller sur une page précise
    créera un évènement de téléchargement et d'installation du programme
    malicieux.
    A partir de ce moment là, tout dépend du programme qui s'est installé (troyen,
    data miner, virus, etc ...).
    Et tout cela se fait du coté client qui est donc lié au navigateur. En gros si le
    navigateur n'est pas à jour, les risques sont élevés.
    Par exemple Firefox permet d'activer ou non le javascript en fonction des sites
    que l'on visite.
    Ceci est possible lorsque les droits de l'utilisateur sont élevés style
    administrateur, root, ...
    Donc si sur win on utilise un simple compte utilisateur, les risques seront
    fortement réduits par rapport a un compte administrateur (c'est un mécanisme
    assez basique par rapport à linux).
    Les site de sécurités donnent assez bien d'informations sur le sujet (la façon
    dont les virus et autres codes malveillants se propagent).
    La plupart des antivirus surveillent les dossiers temporaires des navigateurs.

    Pour en revenir au développement d'un antivirus, j'ai vu qu'il y avait aussi la
    technique de l'image. J'essayerai de retrouver le lien, si j'arrive a m'en
    souvenir. Autrement, comme dit précédemment, beaucoup de techniques
    de balayage et de protection sont possibles.

  9. #9
    Membre régulier Avatar de siplusplus
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Points : 107
    Points
    107
    Par défaut
    Si tu veux voir quelques antivirus en open source.
    Les codes sources sont disponibles, ça ferait une bonne base de départ.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 38
    Points : 42
    Points
    42
    Par défaut
    Une technique qui est en train d'émerger, c'est l'utilisation d'une machine virtuelle dans l'antivirus. L'AV exécute le programme dans sa MV, et contrôle certaines zones 'sensibles'. Si l'exécutable y accède, c'est un virus.

    Un conseil, ne choisit pas UNE technique. Les meilleurs AV combinent la plupart de ces techniques.

    InOCamlWeTrust :
    Il existait plusieurs méthodes pour copier un exécutable sur un ordinateur sous Windows. C'était l'époque où avec un simple tour de passe passe en javascript, ou en vbscript comme le vers ILoveYou, on pouvait exécutait un code malicieux, installer un ActiveX, exploiter une faille de sécurité d'un ActiveX déjà présent, bref : les portes étaient ouvertent. Sinon il y avait le fameux NetBios qui était activé et qui par défaut donnait accès à l'ensemble des fichiers du disque dur. A partir de là, on pouvait remplacer un logiciel très utilisé par un virus, et simplement attendre que l'utilisateur du PC infecté lance sont application comme à son habitude. Aujoud'hui, c'est beaucoup plus sécurisé sous Windows. Firefox est, à mon gout, particulièrement performant. Et puis aujourd'hui, il y a les antivirus, les firewall, les antispywares, les blacklists, alors si tu y ajoutes une bonne configuration de ton système d'exploitation et un tout petit peu de bon sens, tu ne choppes plus de virus.

  11. #11
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 942
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 942
    Points : 5 654
    Points
    5 654
    Par défaut
    Hal,
    Citation Envoyé par InOCamlWeTrust
    Sous Linux (Mandriva, sans firewall) et Solaris 9, je n'ai aucun problème.
    Tu seras ok tant que les créateurs (sic !) de virus ne s'attaqueront pas à Linux mais ils le feront un jour, et tu seras moins tranquille.

    Espérons que ce jour n'est pas trop proche
    Si les cons volaient, il ferait nuit à midi.

  12. #12
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par droggo
    Tu seras ok tant que les créateurs (sic !) de virus ne s'attaqueront pas à Linux mais ils le feront un jour, et tu seras moins tranquille.

    Espérons que ce jour n'est pas trop proche

    il y a quand même moins de chances pour que ça arrive sous Unix...
    * les droits en écriture/exécution sont mieux gérés ;
    * les processus sont facilement "chrootables" ;

    mais il est vrai qu'aucun système n'est parfait...
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  13. #13
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par InOCamlWeTrust
    Oui, je sais, mais comment le programme peut-il se copier chez toi sans même que tu ne t'en rendes compte ? Et comment, une fois copié, peut-il se positionner comme un démon (sous Linux, il faut modifier des fichiers de configuration normalement accessible à root uniquement).
    Il me semble que c'est aussi parce qu'un gros problème sous windows est qu'une personne est automatiquement "root" (enfin, le root de windows) sous windows. Donc les applications peuvent faire un peu n'importe quoi.

    Pour éviter des ennuis, il faut se créer un compte limité (à peu près l'équivalent d'un compte normal sous linux), et installer les applications que via un clic droit, exécuter en tant qu'administrateur.

    Cela dit, malgré ça, les gens ont tendance à installer un peu n'importe quoi, plus ça clignote, plus il clique dessus et plus ils ont de chance de chopper un truc

    Enfin, je sors du sujet
    Je ne répondrai à aucune question technique en privé

  14. #14
    Membre régulier Avatar de siplusplus
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Points : 107
    Points
    107
    Par défaut
    Je vois que tout le monde est bien d'accord sur le mécanisme des sessions.
    Dans la question de Overon, il devrait préciser pour quel système il veut
    développer un antivirus.
    Conceptuellement c'est possible d'en faire un pour tout les systèmes,
    genre un panneau d'interdiction avec écrit dessus "Interdit aux virus" .
    Mais, nous ne sommes pas dans le meilleur des monde .

  15. #15
    Nouveau Candidat au Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2013
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2013
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Création d'antivirus
    J'ai une bonne connaissance et programmation , sur le langage C,C++ , visual C++ et bien d'autre . Je souhaite crée un antivirus avec ces languages mais malheureusement , je ne sais ce qu'il faut respecté pour créer cet antivirus .si vous pouvez m’aide a faire un premier pas .

    En passant ,est -il possible d'installé le langage C ou C++ ou Visual c++ sous windows 7 ou Xp et crée un antivirus sans portant avoir des problème de configuration ou de perte de données ?


    Merci d'avance de votre aide .

  16. #16
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2013
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 41
    Points : 27
    Points
    27
    Par défaut
    Salut

    La programmation de tout ce qui touche au système et à la sécurité m'a toujours énormément intéressé et j'ai pu commencer à créer le début d'un programme en C qui regardait le hash MD5 d'un fichier donné et qui regardait dans un fichier si le hash était présent ou non

    Le plus dur à mon avis pour toi qui veut en créer un, sera de faire l'analyse heuristique en "direct". En gros ton programme devra constamment veiller à la fois sur chaque action de chaque programme, analyser les entrées et sorties réseau, les actions javascript, etc...

    En passant ,est -il possible d'installé le langage C ou C++ ou Visual c++ sous windows 7 ou Xp et crée un antivirus sans portant avoir des problème de configuration ou de perte de données ?
    Pour commencer créer une bonne base pour ton antivirus. En gros ne te lance pas dans tout à la fois mais commence par une petite partie que tu amélioreras sur le long terme. Un antivirus est un très gros projet et tu devrais t'inspirer des sources des AV libres comme on te l'a déjà dis plus haut

    Enfin, pour tester ton antivirus en toute sécurité, tu peux faire comme moi et commencer par analyser le fichier EICAR. C'est un fichier totalement inoffensif qui ne fait qu'afficher du texte dans une console mais tous les AV le détecte comme un faux positif à cause de sa signature

    Plus d'infos: le fichier EICAR

    Voilà j'espère avoir pu compléter les réponses

    Neyort

Discussions similaires

  1. [FLASH 5] Comment créer un lien hypertexte
    Par ajit dans le forum Flash
    Réponses: 4
    Dernier message: 30/03/2006, 12h26
  2. Comment créer des barres de Menu ?
    Par MoKo dans le forum IHM
    Réponses: 5
    Dernier message: 30/07/2003, 14h58
  3. Comment créer un nouveau dossier par programmation ?
    Par annecyrond dans le forum Langage
    Réponses: 3
    Dernier message: 27/03/2003, 07h59
  4. Comment créer et executer un .EXE
    Par maher12 dans le forum Flash
    Réponses: 3
    Dernier message: 26/09/2002, 08h33
  5. [] [Stratégie] Comment créer un fichier log
    Par Skeezo dans le forum Installation, Déploiement et Sécurité
    Réponses: 4
    Dernier message: 16/09/2002, 18h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo