vendredi 29 janvier 2010

Monkey see, monkey doo !!


Avira GmbH compte plus de 300 développeurs et 100 millions d'utilisateurs, c'est énorme n'est ce pas ?! oui ça l'est. Maintenant est-ce une raison pour croire en leurs travaux à l'aveuglette ? certainement pas !!

Je peux vous garantir que mes concurrents, dans leur majorité, possèdent actuellement un effectif aussi nombreux que celui de Avira...Mais, est ce une guise de garantie le nombre d'effectif ? pas à ce que je vois !

Dernièrement,
cette meute de clowns travaillant chez Avira a laissé passer une erreur de détection heuristique concernant un composant d'analyse de mon FSB Antivirus. De toute façon ça arrive ce genre d'erreurs heuristiques, je suis très bien placé pour comprendre ça.. Mais ce qui est marrant c'est de voir comment les autre concurrents ont réagi : comme des singes, ils ont bêtement reproduit la même erreur de Avira, mais en plus stupide comme forme : puisque c'est signatures de détections tout court !!

Business Antivirus ? je dirais plutôt planète des singes c'est mieux descriptif dans tous les cas...

jeudi 28 janvier 2010

Kaspersky et sa Russie















Quand Eugène Kaspersky montre la lune : le Président Medvedev ne regarde point le doigt...


  • Son pays aime le savoir et la science, le mien adore le foot.
  • Son peuple aime inventer, le mien adore consommer.
  • Ses amis, entre-eux, discutent de la Russie, les miens ? je leur parle de Gaza et ils me parlent d'Haïti, je leur parle de Dieu et ils me parlent des filles...

Je comprend bien que
son pays est un conquérant et que le mien adore être conquis. Mais je comprend toujours mal comment il m'es plus facile de conquérir la Russie que mon propre pays ?

lundi 25 janvier 2010

Avast 5 : Détection du Sandbox

Bonzour, ce n'est pas dans mes habitudes ce genre d'interventions. Mais je pense tout de même que c'est mon autre coté diabolique qui prend le dessus actuellement à travers cette entrée Blog, bref.. Diable je peux devenir parfois :)

La firme Tchécoslovaque Alwil a présenté dernièrement une toute nouvelle version de leur antivirus Avast. Le passage de la version 4.8 vers la version 5.0 leur a demandé presque une année de travail intensif, bien-sur que ce n'est pas toujours facile, même pour une équipe de 30 ou 40 développeurs aussi chevronnés que les leurs. Après avoir installé, leur nouvel antivirus et fait le tour sommairement, les 1ère impressions ont été positives dans leur globalités, même si elles manquent de précision :





  • L'habillage et le nouveau moteur visuel GUI est très beau et très bien soigné. Ils ont battu tout le monde sur ce niveau. Kaspersky Labs utilise depuis des années cette même méthode d'habillage HTML, mais l'idée d'aller utiliser très intelligemment le composant HTML Layout s'avère plus payante et moins complexe à maintenir.
  • Le Kernel Antivirus est maintenant "presque" multi-moteurs : ils y sont presque enfin :)
  • Toujours adeptes de la compression ZLib pour les bases de données ?
  • Support Heuristiques ? Donc support While List ? ah bon c'est le pourquoi du SQLite 3 :)
  • Le Support WEB Sandboxing est une excellente nouvelle idée. Bravo pour l'idée, même si le Hooking à la méthode Sandboxie ne permet pas la portabilité de ce module sur Unix et dérivés.
  • Le support Win32 est vraiment tout nouveau pour la boite Alwil, ont ils fait de nouveaux recrutements pour cette tâche ? Bon, à 1ère vue, le moteur Win32 Sandbox est vraiment très immature :)
Maintenant laissons place à l'œil du Diable hehe..

char IsAvast_5_SandBox(void)

{
char szFileName[MAX_PATH];

GetModuleFileName(NULL,szFileName,MAX_PATH);

if (!strcmp(szFileName,"C:\\emu\tmp.tmp")) return 1;

if
(!strcmp(szFileName,"C:\\emu\fajl.exe")) return 1;

return 0;

}

Et si on pouvait atteindre le Kernel d'analyse Avast depuis un code viral
? c'est une bonne idée n'est ce pas ? Mais ne soyez pas trop gourmands Diaboliquement parlant hehe...

Ceci dit, un énorme Bravo tout de même à la firme Alwil avec un grand B; sans oublier comme toujours et sans la moindre hésitation : je les emmerde quand même haha..., bien-sur avec un grand E !!!

mercredi 20 janvier 2010

La détection algorithmique

La détection de certains virus très complexes, qu'ils soient Polymorphiques ou Métamorphiques, nécessite en effet, un développement de routines de détections dites spécifiques. La détection algorithmique est dans ce cas, une méthode de plus, dans l'arsenal antiviral, qui permet entre autre de couvrir ce genre de menaces illicites. En parlant de cette méthode, je vais citer sommairement quelques exemples, qui en quelques sortes, résument bien l'état actuel de la technologie antivirale.

La détection algorithmique comme méthode de détection antivirale, prouve en effet,toute son importance, spécifiquement contre les virus informatiques dits réplicatifs. Et en parlant de réplication virale, je cible certains PE32 Infectors, qui par leurs natures, sont très difficiles à couvrir que ce soit heuristiquement ou par signatures. D'ailleurs, à mon h
umble avis, j'estime que cette méthode de détection permet de construire un jugement fiable sur le professionnalisme antiviral de l'équipe de développement de telle ou telle boîte Antivirus; Pourquoi penser de la sorte ? Pour la simple raison, que les antivirus sont entrain de pousser partout dans le monde comme des champignons, et que la chasse aux signatures virales indépendamment des algorithmes de hachage, cache de plus en plus les incompétences humaines dans ce domaine critique. Justement il ya des virus spécifiques qui sont intraitables par les méthodes de détection par signatures. Qu'est ce qu'il reste alors ? Il faut que l'équipe d'analyse et de développement soit capable de déchiffrer tout le fonctionnement interne de la menace et plus encore : être vraiment capable de développer une méthode de détection très efficace et pouvant surtout couvrir toutes les générations infectieuses de cette même menace.

Maintenant, voyons sommairement quelques points de filtrage / d'enclenchement des procédures algorithmiques de détection contre certains virus spécifiques :


Remarque : les nominations des virus sont spécifiques aux FSB Antivirus.



Win9x-Virus/CIH :

  • Entry Point qui pointe vers l'epace PE Header : ( EntryPointOffset < IMAGE_SECTION_HEADER.PointerToRawData)

  • Code Execution Redirection / Saut d'exécution vers l'espace PE Header, qu'il soit direct à travers un CALL ou un JMP, voir même à travers d'un SEH. ( Scénario que j'ai pas vu à travers les échantillons que j'ai pu analyser, mais bon c'est une spéculation sur un possible scénario d'une possible modification ).

Win32-Virus/Virut :

  • La valeur du champ IMAGE_FILE_HEADER.Characteristics est différente de IMAGE_FILE_DLL.

  • La valeur du champ IMAGE_OPTIONAL_HEADER.Checksum est égale à zéro.


  • La valeur du champ IMAGE_DOS_HEADER.e_res[] contient des données / marqueurs.

  • Entry Point pointe vers la dernière section PE (ou / et) Entry Point intacte mais la dernière Section PE contient des overlays ( C'est différent des Extra données pouvant être introduis par les installateurs ou les archives SFX, mais plutôt des données résultant d'un élargissement de la taille de la section; exemple : Dernière section PE est une section ressources et que la taille de cette section est plus large que la (valeur d'alignement + Taille globale des ressources), ou que la dernière section PE est une section d'Imports et que la taille de cette section est plus large que la (valeur d'alignement + Taille globale des Imports) etc... ).

Win32-Virus/Leon :

  • Les Imports Data contiennent une entrée qui a été injecté ( PATCHED IAT )

  • Les Imports Data contiennent une entrée qui a pointe vers la bibliothèque Advapi32.dll et que celle-ci fait appel aux fonctions API Suivantes : CryptAcquireContextA , CryptCreateHash, CryptHashData, CryptDeriveKey, CryptDecrypt .


Win32-Worm/Polip :

  • La valeur du champ IMAGE_FILE_HEADER.Characteristics est différente de IMAGE_FILE_DLL.

  • La valeur du champ IMAGE_OPTIONAL_HEADER.NumberOfSections est strictement supérieure à 2 et strictement inferieure à 11.

  • La structure PE SECTIONS HEADER contient une section PE dont les attributs (IMAGE_SECTION_HEADER.Name[0] == NULL) et (IMAGE_SECTION_HEADER.PhysicalAddress <= IMAGE_SECTION_HEADER.SizeOfRawData) et (IMAGE_SECTION_HEADER.SizeOfRawData >= 0x9000) et (IMAGE_SECTION_HEADER.Characteristics == 0xE0000060).

  • Optionnellement si l'engin d'émulation le permet bien : Code Execution Redirection vers un espace d'alignement de la section PE en cours d'émulation.

Closing words :

C'était donc juste une petite projection très simplifiée sur l'état des lieux de ce qu'on peut appeler la détection algorithmique appliquée à quelques virus spécifiques. Kaspersky Labs comme boîte antivirus, est une très solide boîte je l'avoue bien, mais un simple coup d'œil sur leurs bases de données actuelles, me laisse par contre très perplexe quant au nombre gigantesque des signatures statiques de Win32-Virus/Virut, j'ai dénombré à peu près, plus de 1500 entrées de signatures rien qu'à lui tout seul !! on comprend bien donc, comment leurs bases puissent contenir plus de 3.400.000 signatures et par conséquent tout le gâchis de ressources mémoires et CPU des moteurs antiviraux de Kaspersky Antivirus :)

Bruno Bouvet, il te faudra surement un peu de temps avant que tu tombes un jour par hasard sur cette page de mon blog :) Mais en attendant que ce jour vienne, saches frère, que malgré les milliers de kilomètres qui nous séparent : tu as été le seul homme sur terre à être toujours présent pour moi sans conditions, alors que ceux qui ont été à quelques mètres près : ne m'ont même pas vu des yeux. Merci Bruno même si tu m'avais dit et sans cesse répété qu'il n'y a pas de Merci entre nous ;) FSB !!! FSB !!! FSB !!! FSB !!!