Les meilleurs intégrateurs JavaScript freelances sont sur Codeur.com

Création d'antivirus

 Fermé·Plus de 10 000 €·6 offres·1029 vues


Bonjour,

J'ai comme projet la création d'antivirus et j'aimerai savoir si vous êtes aptes à créer un antivirus peut être en collaboration avec d'autres entreprise spécialisées ou d'autre free lance .

Voici quelques rappelles d'informations et compétence au minimum nécessaire pour créer un antivirus :
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...

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

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.

Ceci est un projet à long thermes donc je suis ouvert à toutes les propositions Merci pour vos retours.

Cordialement

Budget indicatif : Plus de 10 000 €

Publication : 06 mai 2019 à 14h36

Profils recherchés : Intégrateur de script freelance, Développeur C++ freelance, Expert BDD freelance, Développeur Python freelance, Spécialiste data mining freelance

Le profil du client est reservé aux prestataires abonnés

Créer un compte

6 freelances ont répondu à ce projet

3 propositions de devis en moins de 2h

G

Montant moyen des devis proposés : 3 200 €

Estimation du délai : 47 jours

Publier un projet similaire

Chaque jour, des centaines de clients utilisent Codeur.com pour trouver un prestataire. Créez votre compte dès maintenant, remplissez votre profil et trouvez de nouveaux clients.

Trouver des nouveaux clients

Votre navigateur Web n’est plus à jour. Il ne permet pas d’afficher correctement le site Codeur.com.
Nous vous invitons à mettre à jour votre navigateur ou à utiliser un autre navigateur plus récent.