|
Publicité
' | |||||||||||||||||||||||
| #1 | |
|
Invité régulier
Inscription : mars 2007
Messages : 24
|
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 | |
|
Ingénieur d'études
Inscription : décembre 2005
Messages : 10 051
|
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 |
| #3 | |
|
Chercheur sécurité informatique
Inscription : octobre 2003
Messages : 1 041
|
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 | |
|
Invité régulier
Inscription : mars 2007
Messages : 24
|
Merci les amis, ça fait chaud au coeur de savoir qu'ils des gens qui partagent leurs savoires!
|
| #5 | |
|
Membre Expert
Inscription : septembre 2006
Messages : 1 036
|
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. |
| #6 | |
|
Membre régulier
Inscription : septembre 2006
Messages : 78
|
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 | |
|
Membre Expert
Inscription : septembre 2006
Messages : 1 036
|
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).
|
| #8 | |
|
Membre régulier
Inscription : septembre 2006
Messages : 78
|
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. |
| #10 | |
|
Nouveau Membre du Club
Inscription : avril 2007
Messages : 38
|
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 | ||
|
Expert Confirmé
Inscription : août 2006
Messages : 3 462
|
Hal,
Citation:
Espérons que ce jour n'est pas trop proche
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
| #12 | ||
|
Ingénieur d'études
Inscription : décembre 2005
Messages : 10 051
|
Citation:
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... |
|
| #13 | ||
|
Inscription : juin 2006
Messages : 6 941
|
Citation:
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 | |
|
Membre régulier
Inscription : septembre 2006
Messages : 78
|
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 | |
|
Invité de passage
Ingénieur développement logiciels
Inscription : janvier 2013
Messages : 1
|
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 | ||
|
Futur Membre du Club
Inscription : juillet 2013
Messages : 34
|
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...
Citation:
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 |
|
Copyright © 2000-2013 - www.developpez.com
Aucun commentaire:
Enregistrer un commentaire