Evaluarea programelor de protecție a calculatorului. Ce este inclus în pachet. Gestionarea paravanului de protecție Windows

Una dintre părțile principale ale oricărui antivirus este așa-numitul „motor” antivirus - un modul responsabil cu scanarea obiectelor și detectarea malware. Calitatea detectării malware-ului și, în consecință, nivelul de protecție oferit de antivirus depinde de motorul antivirus, de modul în care este proiectat și de ce metode de detectare și euristică folosește.

Acest articol descrie în detaliu tehnologii standardși câteva abordări originale ale diverșilor dezvoltatori de antivirus, implementate în „motorul” antivirus. Pe parcurs, vor fi luate în considerare unele probleme tehnice conexe care sunt necesare pentru a evalua calitatea motorului antivirus și a clarifica tehnologiile utilizate în acesta.

„Motor” bun sau rău?

Din păcate, dezvoltatorii de antivirus software foarte rar dezvăluie detalii despre implementarea „motoarelor” lor. Cu toate acestea, prin semne indirecte puteți determina dacă „motorul” este bun sau nu. Iată principalele criterii după care puteți determina calitatea unui motor antivirus:

Calitatea detectiei. Cât de bine detectează antivirusul virușii? Acest criteriu poate fi evaluat pe baza rezultatelor diferitelor teste care sunt efectuate de mai multe organizații și sunt de obicei prezentate pe resursele web ale dezvoltatorului.

Nivelul de detectare de către analizatorii euristici. Din păcate, este imposibil să determinați acest parametru fără a testa o colecție de viruși, dar puteți determina destul de ușor care este nivelul de fals pozitive pentru un anumit motor.

Rata fals pozitive. Dacă pe fișiere 100% neinfectate, antivirusul raportează că a detectat un fișier posibil infectat, atunci acesta este un fals pozitiv. Ar trebui să avem încredere într-un astfel de analizor euristic care deranjează utilizatorul cu alarme false? La urma urmei, pentru o cantitate mare utilizatorul poate rata cu adevărat false pozitive virus nou.

Suport pentru un număr mare de ambalatori și arhivatori. Acesta este un factor foarte important, deoarece adesea creatorii de malware, după ce au scris un virus, îl împachetează cu mai multe utilități pentru ambalarea modulelor executabile și, după ce au primit mai multe diferite virusuri, eliberează-le în lume. În esență, toți acești viruși sunt instanțe ale aceleiași variante. Pentru un motor antivirus care acceptă toate sau aproape toate utilitățile de ambalare populare, nu va fi dificil să identifici toate aceste instanțe ale aceluiași virus, numindu-le cu același nume; pentru alte motoare, va fi necesară actualizarea bazei de date antivirus ( precum și timpul necesar experților în antivirus pentru a analiza instanța virusului).

Frecvența și dimensiunea actualizărilor bazei de date antivirus. Acești parametri sunt semne indirecte ale calității motorului. Deoarece lansarea frecventă a actualizărilor asigură că utilizatorul va fi întotdeauna protejat de virușii care apar recent. Mărimea actualizării (și numărul de viruși detectați în această actualizare) vorbește despre calitatea designului bazei de date antivirus și, parțial, despre motor.

Posibilitatea de a actualiza motorul fără a actualiza programul antivirus în sine. Uneori, pentru a detecta un virus, este necesar să actualizați nu numai baza de date antivirus, ci și „motorul” în sine. Dacă antivirusul nu acceptă această caracteristică, atunci utilizatorul poate rămâne fără protecție în fața unui nou virus. În plus, această caracteristică vă permite să îmbunătățiți rapid motorul și să corectați erorile din acesta.

„Motor” antivirus: tehnologii existente

Odată cu apariția primului virusi informatici programatorii și-au dat seama rapid de principiile funcționării lor și au creat primele programe antivirus. A trecut destul de mult timp de atunci, iar antivirusul modern diferă de acele prime antivirusuri, la fel cum un computer personal diferă de un calculator.

În primul paragraf al acestui articol, a fost dată o definiție oarecum „naivă” a „motorului” antivirus. În continuare, vor fi date o serie de definiții precise și descrieri tehnologice, care, în cele din urmă, vă vor permite să înțelegeți pe deplin structura și algoritmii motorului antivirus.

Anti-Virus Engine este un modul software conceput pentru a detecta software-ul rău intenționat. „Motorul” este componenta principală a oricărui program antivirus, indiferent de scopul acestuia. Motorul este folosit atât în ​​produsele personale - un scanner personal sau monitor, cât și în soluțiile de server - un scanner pentru e-mail sau server de fișiere, firewall sau server proxy. De regulă, pentru a detecta malware, majoritatea „motoarelor” implementează următoarele tehnologii:

Căutare după „semnături” (o secvență unică de octeți);
Căutare după sume de control sau CRC (sumă de control cu ​​o secvență unică de octeți);
Utilizarea unei măști reduse;
Criptanaliză;
Analize statistice;
Analiza euristica;
Emulare.

Să ne uităm la fiecare dintre aceste metode mai detaliat.

Căutați după „semnături”


O semnătură este un „șir” unic de octeți care caracterizează în mod unic un anumit program rău intenționat. Căutarea de semnături, într-o modificare sau alta, a fost folosită pentru a detecta viruși și alte programe malware, de la primele programe antivirus până în prezent. Demnitate incontestabilă căutarea semnăturii - viteza de funcționare (folosind algoritmi special dezvoltați, desigur) și capacitatea de a detecta mai mulți viruși cu o singură semnătură. Dezavantaj - dimensiunea semnăturii pentru detectarea fiabilă trebuie să fie destul de mare, cel puțin 8-12 octeți (de obicei, semnăturile mult mai lungi sunt utilizate pentru detectarea precisă, până la 64 de octeți), prin urmare, dimensiunea bazei de date antivirus va fi destul de mare. În plus, în În ultima vreme Programele rău intenționate scrise în limbi au devenit din ce în ce mai răspândite nivel inalt(C++, Delphi, Visual Basic), iar astfel de programe au părți separate ale codului care practic nu se schimbă (așa-numitele Timp de rulare Bibliotecă). O semnătură aleasă incorect va duce inevitabil la un fals pozitiv - detectarea unui fișier „curat”, neinfectat ca fiind infectat cu un virus. Ca o soluție la această problemă, se propune fie utilizarea semnăturilor foarte mari, fie utilizarea detectării pentru anumite zone de date, de exemplu, tabelele de relocare sau șirurile de text, ceea ce nu este întotdeauna bun.

Căutare după sume de control (CRC)


Căutarea prin sume de control (CRC - cyclic redundancy check), în esență, este o modificare a căutării prin semnături. Metoda a fost dezvoltată pentru a evita principalele dezavantaje ale căutării semnăturilor - dimensiunea bazei de date și pentru a reduce probabilitatea unor rezultate fals pozitive. Esența metodei este că pentru a căuta cod rău intenționat, nu este luată numai linia „de referință” - semnătura, sau mai degrabă, suma de control a acestei linii, ci și locația semnăturii în corpul programului rău intenționat. Locația este folosită pentru a evita calcularea sumelor de control pentru întregul fișier. Astfel, în loc de 10-12 octeți de semnătură (minimum), se folosesc 4 octeți pentru a stoca suma de control și alți 4 octeți pentru locație. Cu toate acestea, metoda de căutare a sumei de control este oarecum mai lentă decât căutarea semnăturii.
Utilizarea măștilor pentru a detecta codul rău intenționat este destul de des complicată de prezența codului criptat (așa-numiții viruși polimorfi), deoarece fie este imposibil să selectați o mască, fie o mască de dimensiune maximă nu satisface condiția de a fi fără ambiguitate. identificarea unui virus fără rezultate false pozitive.
Imposibilitatea alegerii unei măști de dimensiuni suficiente în cazul unui virus polimorf este ușor de explicat. Prin criptarea corpului său, virusul asigură că cea mai mare parte a codului său din obiectul afectat este o variabilă și, în consecință, nu poate fi selectată ca mască. (Virușii auto-criptați și polimorfi sunt descriși mai detaliat în anexa de la sfârșitul articolului).
Pentru a detecta astfel de viruși, se folosesc următoarele metode: utilizarea unei măști reduse, criptoanaliza și analiza statistică. Să ne uităm la aceste metode mai detaliat.

Folosind o mască redusă


Când infectează obiecte, un virus care utilizează criptarea își convertește codul într-o secvență de date criptată:
S = F(T), unde
T - codul de bază al virusului;
S - coduri de virus criptate;
F este funcția de criptare a virusului, selectată aleatoriu dintr-un anumit set de transformări (F).
Metoda măștii reduse constă în alegerea unei transformări R a codurilor de virus criptate S, astfel încât rezultatul transformării (adică o secvență de date S”) să nu depindă de cheile de transformare F, adică
S=F(T)
S" = R (S) = R (F (T)) = R" (T).
La aplicarea transformarii R la toate variantele posibile ale codului cifru S, rezultatul S" va fi constant la o constanta T. Astfel, identificarea obiectelor afectate se face prin alegerea S" ca masca redusa si aplicarea transformarii R la obiectele afectate.

Criptanaliză


Această metodă este următoarea: conform celor cunoscute codul de bază virus și folosind un cod criptat cunoscut (sau un cod „suspect” similar cu corpul criptat al virusului), cheile și algoritmul programului de decriptare sunt restaurate. Acest algoritm este apoi aplicat porțiunii criptate, rezultând corpul decriptat al virusului. Când rezolvați această problemă, trebuie să aveți de-a face cu un sistem de ecuații.
De regulă, această metodă funcționează mult mai rapid și ocupă mult mai puțină memorie decât emularea instrucțiunilor de virus. Cu toate acestea, rezolvarea unor astfel de sisteme este adesea o sarcină extrem de complexă.
Mai mult, problema principală este analiza matematică a ecuației rezultate sau a sistemului de ecuații rezultat. În multe privințe, problema rezolvării sistemelor de ecuații la recuperarea corpului criptat al unui virus seamănă cu problema criptografică clasică a recuperării textului cifrat cu chei necunoscute. Totuși, aici această sarcină sună oarecum diferit: este necesar să aflăm dacă un anumit cod criptat este rezultatul aplicării unei anumite funcții cunoscute până la chei. Mai mult, multe date pentru rezolvarea acestei probleme sunt cunoscute dinainte: o secțiune de cod criptat, o secțiune de cod necriptat, opțiuni posibile funcții de conversie. Mai mult, algoritmul acestei transformări în sine și cheile sunt prezente și în codurile analizate. Cu toate acestea, există o limitare semnificativă care aceasta sarcina trebuie rezolvate în limite specifice memorie cu acces aleator iar procedura de decizie nu ar trebui să dureze mult.

analize statistice


Folosit și pentru detectarea virușilor polimorfi. În timpul funcționării sale, scanerul analizează frecvența de utilizare a comenzilor procesorului, construiește un tabel cu comenzile procesorului întâlnite (opcodes) și pe baza acestor informații face o concluzie dacă fișierul este infectat cu un virus. Această metodă este eficientă pentru căutarea unor viruși polimorfi, deoarece acești viruși folosesc un set limitat de comenzi în decriptor, în timp ce fișierele „curate” folosesc comenzi complet diferite cu o frecvență diferită. De exemplu, toate programele MS-DOS folosesc adesea întrerupere 21h (opcode CDh 21h), dar această comandă nu se găsește practic niciodată în decriptorul de viruși polimorfi DOS.
Principalul dezavantaj al acestei metode este că există o serie de viruși polimorfi complexi care folosesc aproape toate comenzile procesorului și de la copiere la copiere setul de comenzi utilizate se modifică foarte mult, adică nu este posibil să detectăm un virus folosind frecvența construită. masa.

Analiza euristica


Când numărul de viruși a depășit câteva sute, experții în antivirus au început să se gândească la ideea de a detecta malware despre care programul antivirus încă nu știa că există (nu existau semnături corespunzătoare). Ca urmare, au fost create așa-numitele analizoare euristice. Un analizor euristic este un set de rutine care analizează codul fișierelor executabile, macrocomenzi, scripturi, memorie sau sectoare de boot pentru a detecta diferite tipuri de cod rău intenționat. programe de calculator. Există două principii de funcționare ale analizorului.

Metoda statica. Căutați semnături scurte comune care sunt prezente în majoritatea virușilor (așa-numitele comenzi „suspecte”). De exemplu, un număr mare de viruși caută viruși folosind masca *.EXE, deschide fișierul găsit, scrie la deschide fișierul. Sarcina euristicii în acest caz este de a găsi semnături care reflectă aceste acțiuni. Apoi se analizează semnăturile găsite, iar dacă se găsesc un anumit număr de „comenzi suspecte” necesare și suficiente, se ia decizia că fișierul este infectat. Marele avantaj al acestei metode este ușurința de implementare și Viteza buna funcționează, dar rata de detectare a noilor programe malware este destul de scăzută.

Metoda dinamica. Această metodă a apărut simultan cu introducerea emulării comenzii procesorului în programele antivirus (emulatorul este descris mai detaliat mai jos). Esența metodei este de a emula execuția programului și de a înregistra toate acțiunile programului „suspecte”. Pe baza acestui protocol se ia o decizie cu privire la posibila infectie programe cu virus. Spre deosebire de metoda statică, metoda dinamică este mai solicitantă pentru resursele computerului, cu toate acestea, nivelul de detectare este metoda dinamica mult mai înalt.

Emulare


Tehnologia de emulare a codului de program (sau Sandboxing) a fost un răspuns la apariția unui număr mare de viruși polimorfi. Ideea acestei metode este de a emula execuția unui program (atât infectat cu un virus, cât și unul „curat”) într-un „mediu” special, numit și buffer de emulare sau „sandbox”. Dacă o persoană infectată intră în emulator virus polimorf fișier, apoi după emulare corpul decriptat al virusului apare în buffer, gata pentru detectarea prin metode standard (semnătură sau căutare CRC).
Emulatoarele moderne emulează nu numai comenzile procesorului, ci și apelurile sistemului de operare. Sarcina de a scrie un emulator cu drepturi depline este destul de laborioasă, ca să nu mai vorbim de faptul că atunci când utilizați un emulator trebuie să monitorizați în mod constant acțiunile fiecărei comenzi. Acest lucru este necesar pentru a evita executarea accidentală a componentelor distructive ale algoritmului virusului.
Trebuie remarcat în special faptul că este necesar să se emuleze funcționarea instrucțiunilor virusului și să nu le urmărească, deoarece atunci când se urmărește un virus, probabilitatea de a apela instrucțiuni distructive sau coduri responsabile de răspândirea virusului este prea mare.

Baza de date a motorului antivirus


Baza de date este o parte integrantă a motorului antivirus. Mai mult, dacă presupunem că un „motor” bine conceput nu se schimbă atât de des, atunci baza de date antivirus se schimbă constant, deoarece în baza de date antivirus se află semnăturile, sumele de control și module software pentru a detecta malware. După cum se știe, viruși noi viermi de rețea si alte programe malware apar cu o frecventa de invidiat si de aceea este foarte important ca baza de date antivirus sa fie actualizata cat mai des. Dacă acum cinci ani actualizările săptămânale erau suficiente, astăzi este pur și simplu necesar să primim actualizări cel puțin zilnice ale bazei de date antivirus.
De asemenea, este foarte important ce se află exact în baza de date antivirus: există doar înregistrări despre viruși sau alții suplimentari? proceduri software. În al doilea caz, este mult mai ușor să actualizați funcționalitatea motorului antivirus prin simpla actualizare a bazelor de date.

Suport pentru obiecte imbricate „complexe”.


Motoarele antivirus s-au schimbat foarte mult în ultimii ani. Dacă primele antivirusuri pentru a fi considerate un program de primă clasă, a fost suficient să verificați memorie de sistem, fișiere executabile și sectoare de boot, apoi doar câțiva ani mai târziu, din cauza popularității tot mai mari a utilităților speciale pentru ambalarea modulelor executabile, dezvoltatorii s-au confruntat cu sarcina de a despacheta fișierul împachetat înainte de a-l scana.
Apoi noua problema- virușii au învățat să infecteze fișierele arhivate (și utilizatorii înșiși au trimis adesea fișiere infectate în arhive). Antivirușii au fost forțați să învețe cum să proceseze și fișierele de arhivă. În 1995, primul virus macro a apărut să infecteze documentele. Microsoft Word. Este de remarcat faptul că formatul de document folosit de Microsoft Word este închis și foarte complex. Un număr de companii antivirus încă nu știu cum să proceseze complet astfel de fișiere.
Astăzi, datorită popularității enorme E-mail, motoarele antivirus procesează și baze de date mesaje e-mailși mesajele în sine.

Metode de detectare


Într-un „motor” antivirus tipic, care este implementat în fiecare program antivirus, se folosesc toate tehnologiile necesare pentru a detecta malware: un analizor euristic eficient, un emulator performant si, cel mai important, o arhitectura competenta si flexibila a subsistemului de detectare a malware, care permite utilizarea tuturor metodelor de detectare enumerate mai sus.
Aproape fiecare motor antivirus folosește detectarea sumei de control ca metodă de bază. Această metodă a fost aleasă pe baza cerinței de a minimiza dimensiunea bazelor de date antivirus. Cu toate acestea, arhitectura motorului este adesea atât de flexibilă încât permite utilizarea oricăreia dintre metodele de detectare enumerate mai sus, ceea ce se face pentru unii viruși deosebit de complexi. Acest lucru vă permite să obțineți un nivel ridicat de detectare a virușilor. Arhitectura motorului antivirus este prezentată mai detaliat în diagrama de mai târziu în text.
Aplicarea practică a metodelor de detectare a virușilor polimorfi (criptanaliză și analiză statistică, utilizarea unei măști reduse și emulare) se rezumă la alegerea celei mai optime metode în ceea ce privește viteza și cantitatea de memorie necesară. Codul majorității virușilor cu auto-criptare este restaurat destul de ușor prin procedura de emulare. Dacă folosiți un emulator nu este soluție optimă, apoi codul virusului este restaurat folosind o subrutină care implementează transformarea inversă - criptoanaliza. Pentru a detecta virușii care nu pot fi emulați și virușii pentru care nu este posibilă construirea unei transformări inverse, se folosește metoda de construire a măștilor reduse.
În unele dintre cele mai complexe cazuri, se utilizează o combinație a metodelor de mai sus. O parte a codului de decriptare este emulată, iar comenzile care sunt de fapt responsabile pentru algoritmul de decriptare sunt extrase din decriptor. Apoi, pe baza informațiilor primite, se construiește și se rezolvă un sistem de ecuații pentru a restaura codul virusului și a-l detecta.
O combinație de metode este, de asemenea, utilizată atunci când se utilizează criptarea multiplă, când virusul își criptează corpul de mai multe ori, folosind diverși algoritmi criptare. O metodă combinată de recuperare a informațiilor sau de emulare „pură” a codului de decriptare este adesea folosită pentru că fiecare virus nou trebuie analizat și inclus în baza de date antivirus din termene minime, care nu se încadrează întotdeauna în analiza matematică necesară. Și, ca urmare, trebuie să folosim metode mai greoaie pentru detectarea virusului, în ciuda faptului că metodele sunt destul de aplicabile analiză matematică algoritm de decriptare.

Lucrul cu obiecte „complexe”.


Motoarele antivirus acceptă lucrul cu un număr mare de formate de ambalare și arhivare. Dezvoltatorii publică rareori o listă completă (sau cel puțin suficient de detaliată) de formate acceptate. Următoarele sunt informații publicate oficial despre suportul pentru formatele „complexe” în Kaspersky Anti-Virus. În alte produse antivirus, lista de formate acceptate ar trebui să fie aproximativ aceeași.
Motorul Kaspersky Anti-Virus acceptă lucrul cu mai mult de 400 diverse utilitatiîmpachetare fișiere executabile, programe de instalare și arhivare (în total peste 900 de modificări, din mai 2003). Printre ei:

Aparate de fișiere executabile și sisteme de criptare. Cele mai populare dintre ele: Diet, AVPACK, COMPACK, Epack, ExeLock, ExePack, Expert, HackStop, Jam, LzExe, LzCom, PaquetBuilder, PGMPAK, PkLite, PackWin, Pksmart, Protect, ProtEXE, RelPack, Rerp, Rjcrush, Rucc, Scramb , SCRNCH, Shrink, Six-2-Four, Syspack, Trap, UCEXE, Univac, UPD, UPX (mai multe versiuni), WWPACK, ASPack (mai multe versiuni), ASProtect (mai multe versiuni), Astrum, BitArts, BJFnt, Cexe, Cheaters , Dialect, DXPack, Gleam, CodeSafe, ELFCrypt, JDPack, JDProtect, INFTool, Krypton, Neolite, ExeLock, NFO, NoodleCrypt, OptLink, PCPEC, PEBundle, PECompact (mai multe versiuni), PCShrinpt, PE-DiCminiry, PELock , PEncrypt, PE-Pack (mai multe versiuni), PE-Protect, PE-Shield, Petite, Pex, PKLite32, SuperCede, TeLock, VBox, WWPack32, XLok, Yoda.
Suportul pentru atât de mulți packer și arhivare vă permite să reduceți timpul de analiză a noilor viruși, ceea ce duce la o creștere a vitezei de răspuns la apariția unui nou virus și să obțineți un nivel ridicat de detectare a virușilor deja cunoscuți.

Arhivatori și instalatori (mai mult de 60 în total). Cele mai populare dintre ele: CAB, ARJ, ZIP, GZIP, Tar, AIN, HA, LHA, RAR, ACE, BZIP2, WiseSFX (mai multe versiuni), CreateInstall, Inno Installer, StarDust Installer, MS Expand, GKWare Setup, SetupFactory, SetupSpecialist, NSIS, Astrum, PCInstall, Effect Office.
Suportul pentru un număr mare de tipuri de arhivare este deosebit de important pentru testare sisteme poştale, deoarece marea majoritate a virușilor sunt trimise prin poștă în formă arhivată. Obiectele sunt dezambalate indiferent de nivelul de imbricare al arhivelor. De exemplu, dacă un fișier infectat este împachetat cu utilitarul UPX și apoi fișierul este împachetat cu Arhiva ZIP, care este ambalat într-o arhivă CAB etc., atunci „motorul” antivirus ar trebui să poată primi în continuare dosarul originalși detectează virusul.
Trebuie menționat că astfel de considerații nu sunt deloc teoretice. Da, este cunoscut pe scară largă Cal troian Backdoor.Rbot, care a fost distribuit ambalat în multe diverse programe(Ezip, Exe32Pack, ExeStealth, PecBundle, PECompact, FSG, UPX, Morphine, ASPack, Petite, PE-Pack, PE-Diminisher, PELock, PESpin, TeLock, Molebox, Yoda, Ezip, Krypton etc.).
Algoritmul de despachetare a arhivei are de obicei suficientă inteligență pentru a nu despacheta tot felul de „bombe de arhivă” - arhive mici care conțin fișiere uriașe (cu un raport de compresie foarte mare) sau mai multe fișiere identice. De obicei, scanarea unei astfel de arhive necesită mult timp, dar motoarele antivirus moderne recunosc adesea astfel de „bombe”.

Mecanismul de actualizare a bazelor de date antivirus și dimensiunea acestora


Actualizările bazei de date antivirus sunt de obicei lansate de mai multe ori pe zi. Unii pot lansa actualizări o dată la oră, alții - la fiecare două ore. În orice caz, având în vedere nivelul ridicat actual de pericol pe Internet, o astfel de actualizare frecventă a bazelor de date antivirus este complet justificată.
Dimensiunea actualizărilor indică arhitectura bine gândită a motorului antivirus. Astfel, dimensiunea actualizărilor regulate de la companiile lider din industrie, de regulă, nu depășește 30 KB. În același timp, bazele de date antivirus conțin de obicei aproximativ 70% din funcționalitatea întregului motor antivirus. Orice actualizare a bazei de date antivirus poate adăuga suport pentru un nou packer sau arhivator. Astfel, prin actualizarea zilnică a bazei de date antivirus, utilizatorul primește nu doar noi proceduri de detectare a noilor malware, ci și o actualizare a întregului antivirus. Acest lucru vă permite să reacționați foarte flexibil la situație și să garantați utilizatorului protecție maximă.

Analizor euristic


Analizorul euristic, care face parte din aproape fiecare antivirus, folosește ambele metode de analiză descrise mai sus - criptoanaliza și analiza statistică. Un analizor euristic modern este proiectat de la zero pentru a fi extensibil (spre deosebire de majoritatea analizoarelor euristice de prima generație, care au fost concepute pentru a detecta malware doar în modulele executabile).
În prezent, analizorul euristic vă permite să detectați coduri rău intenționate în fișiere executabile, sectoare și memorie, precum și noi viruși de script și malware pentru Microsoft Office(și alte programe care folosesc VBA) și, în sfârșit, cod rău intenționat, scris în limbi de nivel înalt precum Microsoft Visual De bază.
Arhitectura flexibilă și combinarea diferitelor metode ne permit să atingem un nivel destul de ridicat de detectare a noilor malware. În același timp, dezvoltatorii depun toate eforturile pentru a reduce la minimum numărul de alarme false. Produsele prezentate de liderii din industria antivirus rareori fac greșeli în detectarea codului rău intenționat.

Schema de funcționare a motorului antivirus


Diagrama de mai jos descrie algoritm aproximativ funcționarea motorului antivirus. Trebuie remarcat faptul că emularea și căutarea de malware cunoscut și necunoscut apar simultan.


Schema de funcționare a unui motor antivirus tipic folosind exemplul Kaspersky Anti-Virus


După cum s-a menționat mai sus, la actualizarea bazei de date antivirus, sunt actualizate și adăugate modulele pentru despachetarea fișierelor și arhivelor împachetate, analizatorul euristic și alte module ale motorului antivirus.

Tehnologii originale în motoarele antivirus


Aproape fiecare dezvoltator de produse antivirus implementează unele dintre propriile tehnologii care fac programul mai eficient și mai productiv. Unele dintre aceste tehnologii sunt direct legate de proiectarea „motorului”, deoarece performanța întregii soluții depinde adesea de funcționarea acesteia. În continuare, vom lua în considerare o serie de tehnologii care pot accelera semnificativ verificarea obiectelor și, în același timp, pot garanta conservarea. Calitate superioară detectarea, precum și îmbunătățirea detectării și tratarii software-ului rău intenționat din fișierele arhivate.
Să începem cu tehnologia iChecker. Această tehnologie și analogii ei sunt implementate în aproape fiecare antivirus modern. De menționat că iChecker este un nume propus de specialiștii Kaspersky Lab. Experții, de exemplu, Panda Software îl numesc UltraFast. Această tehnologie face posibilă atingerea unui echilibru rezonabil între fiabilitatea protecției stațiilor de lucru (și în special a serverelor) și utilizarea resursele sistemului calculator protejat. Datorită acestei tehnologii, timpul de încărcare (până la 30-40%) al sistemului de operare este redus semnificativ (comparativ cu protecția antivirus tradițională) și timpul necesar lansării aplicațiilor atunci când sunt active. protectie antivirus. Acest lucru asigură că toate fișierele de pe discurile computerului au fost scanate și nu sunt infectate. Ideea principală a acestei tehnologii este că nu este nevoie să verificați ceea ce nu s-a schimbat și a fost deja verificat. Motorul antivirus menține o bază de date specială în care sunt stocate sumele de control ale tuturor fișierelor scanate (și neinfectate). Acum, înainte de a trimite fișierul pentru verificare, „motorul” calculează și compară suma de control a fișierului cu datele stocate în baza de date. Dacă datele se potrivesc, înseamnă că fișierul a fost verificat și nu este necesară reverificarea. Este demn de remarcat faptul că timpul petrecut cu numărarea sume de control fișier - mult mai puțin decât timpul unei scanări antivirus.
Un loc special în activitatea antivirusului îl ocupă tratamentul obiectelor infectate arhivate. Este exact ceea ce se va discuta în continuare. iCure este o tehnologie pentru tratarea fișierelor infectate din arhive. Datorită acestei tehnologii, obiectele infectate din interiorul fișierelor arhivate vor fi dezinfectate (sau șterse, în funcție de setările antivirus) cu succes, fără a utiliza utilități externe de arhivare. Astăzi, majoritatea antivirusurilor acceptă următoarele tipuri arhive: ARJ, CAB, RAR, ZIP. Datorită arhitecturii modulare și tehnologiilor de actualizare a motorului antivirus, utilizatorul, de regulă, poate actualiza și extinde cu ușurință lista de tipuri de arhivare acceptate fără a reporni antivirusul.
iArc este o altă tehnologie cu care se poate lucra fișiere de arhivă. Această tehnologie este necesară pentru lucrul cu arhive cu mai multe volume. iArc vă permite să scanați arhive cu mai multe volume și să detectați viruși chiar dacă sunt ambalate arhivă cu mai multe volume, care, la rândul său, va fi, de asemenea, împachetat într-o arhivă cu mai multe volume.
Multithreading. „Motorul” antivirus este un modul cu mai multe fire și poate procesa simultan (verifica codurile rău intenționate) mai multe obiecte (fișiere, sectoare, scripturi etc.).
Majoritatea tehnologiilor enumerate mai sus sunt implementate într-o formă sau alta în fiecare produs antivirus modern.

Viruși polimorfi


Pe tot parcursul articolului, termenii viruși „polimorfi” și „auto-criptați” au fost folosiți frecvent. După cum ar fi trebuit să devină clar din discuțiile anterioare, acest tip de cod rău intenționat a avut o influență puternică asupra dezvoltării tehnologiilor antivirus. Următoarele sunt informații despre virușii polimorfi furnizate de experții Kaspersky Lab.

Definiții de bază: auto-criptare și polimorfism. Sunt folosite de aproape toate tipurile de viruși pentru a complica cât mai mult procedura de detectare a virusului. Virușii polimorfi sunt destul de greu de detectat virușii care nu au semnături, adică nu conțin o singură secțiune constantă de cod. În cele mai multe cazuri, două mostre ale aceluiași virus polimorf nu vor avea o singură potrivire. Acest lucru se realizează prin criptarea corpului principal al virusului și modificarea programului de decriptare. Virușii polimorfi îi includ pe cei care nu pot fi detectați (sau sunt extrem de dificili) folosind așa-numitele măști de virus - secțiuni de cod constant specifice unui anumit virus. Acest lucru se realizează în două moduri principale - prin criptarea codului principal al virusului cu o cheie nepermanentă și un set aleatoriu de comenzi de decriptare sau prin schimbarea codului virusului executabil în sine. Există și alte exemple, destul de exotice, de polimorfism: virusul DOS „Bomber”, de exemplu, nu este criptat, dar secvența de comenzi care transferă controlul către codul virusului este complet polimorfă.
Polimorfismul de diferite grade de complexitate se găsește în viruși de toate tipurile - de la viruși de boot și fișiere DOS până la viruși Windows și chiar viruși macro.

Decriptoare polimorfe


Cel mai simplu exemplu de decriptor parțial polimorf este următorul set de comenzi, ca urmare a căruia nici un octet din codul virusului însuși și decriptorul său nu este constant atunci când infectează diferite fișiere:

MOV reg_1, număr ; reg_1, reg_2, reg_3 sunt selectate dintre
MOV reg_2, cheie ; AX,BX,CX,DX,SI,DI,BP
MOV reg_3, _offset ; count, key, _offset se pot modifica și ele
_buclă:
xxx octet ptr , reg_2 ; xor, adaugă sau sub
DEC reg_1
Jxx_loop ; ja sau jnc
; Urmează codul criptat și datele virusului

Virușii polimorfi complecși folosesc algoritmi mult mai complecși pentru a genera codul decriptorilor lor: instrucțiunile de mai sus (sau echivalentele lor) sunt rearanjate de la infecție la infecție, diluate cu comenzi care nu schimbă nimic precum NOP, STI, CLI, STC, CLC, etc.
Virușii polimorfi cu drepturi depline folosesc algoritmi și mai complexi, drept urmare decriptorul de viruși poate conține operațiuni SUB, ADD, XOR, ROR, ROL și altele într-un număr și o ordine arbitrară. Încărcarea și modificarea cheilor și a altor parametri de criptare este, de asemenea, efectuată printr-un set arbitrar de operații, în care pot fi găsite aproape toate instrucțiunile procesorului Intel (ADD, SUB, TEST, XOR, OR, SHR, SHL, ROR, MOV, XCHG , JNZ, PUSH, POP. ..) cu toată lumea moduri posibile adresarea. Apar și viruși polimorfi, al căror decriptor folosește instrucțiuni până la Intel386, iar în vara anului 1997 a fost descoperit un virus polimorf pe 32 de biți care infectează Fișiere Windows EXE 95.
Ca urmare, la începutul unui fișier infectat cu un virus similar, recrutarea este în curs instrucțiuni aparent lipsite de sens. Este interesant că unele combinații care sunt destul de funcționale nu sunt acceptate de dezasamblatoarele proprietare (de exemplu, combinația CS:CS: sau CS:NOP). Și printre această „mizerie” de comenzi și date, MOV, XOR, LOOP, JMP se strecoară ocazional - instrucțiuni care chiar „funcționează”.

Niveluri de polimorfism


Există o împărțire a virușilor polimorfi în niveluri în funcție de complexitatea codului care se găsește în decriptoarele acestor viruși. Această diviziune a fost propusă pentru prima dată de Dr. Alan Solomon, după un timp Vesselin Bonchev a extins-o:

Nivelul 1: Virușii care au un anumit set de decriptoare cu un cod constant; atunci când sunt infectați, ei aleg unul dintre ei. Astfel de viruși sunt „semi-polimorfi” și mai sunt denumiți „oligomorfi”. Exemple: „Cheeba”, „Slovacia”, „Balenă”.

Nivelul 2: Decriptorul de viruși conține una sau mai multe instrucțiuni permanente, dar partea principală este instabilă.

Nivelul 3: Decriptorul conține instrucțiuni neutilizate - „gunoi” precum NOP, CLI, STI etc.

Nivelul 4: Decriptorul folosește instrucțiuni interschimbabile și instrucțiuni de reordonare (amestecare). Algoritmul de decriptare nu se modifică.

Nivelul 5: Sunt utilizate toate tehnicile de mai sus, algoritmul de decriptare nu este constant, este posibil să re-criptați codul virusului și chiar să criptați parțial codul de decriptare în sine.

Nivelul 6: Viruși permutați. Codul principal al virusului este supus modificării - este împărțit în blocuri, care, atunci când sunt infectate, sunt rearanjate în ordine aleatorie. Virusul rămâne funcțional. Este posibil ca astfel de viruși să nu fie criptați.

Clasificarea de mai sus are dezavantajele sale, deoarece este realizată conform unui singur criteriu - capacitatea de a detecta un virus prin codul de decriptare folosind tehnica standard a măștilor de virus:

Nivelul 1: pentru a detecta virusul este suficient să aveți mai multe măști;
Nivelul 2: detectarea măștii folosind „caracterele sălbatice”;
Nivelul 3: detectarea prin mască după îndepărtarea instrucțiunilor „gunoi”;
Nivelul 4: masca conține mai multe opțiuni pentru codul posibil, adică devine algoritmică;
Nivelul 5: incapacitatea de a detecta virusul folosind masca.

Insuficiența unei astfel de diviziuni este demonstrată în virusul celui de-al treilea nivel de polimorfism, care se numește „Level3”. Acest virus, fiind unul dintre cei mai complexi viruși polimorfi, conform diviziunii de mai sus se încadrează la Nivelul 3, deoarece are un algoritm de decriptare constant, care este precedat de un număr mare de comenzi „gunoi”. Cu toate acestea, în acest virus algoritmul de generare a gunoiului a fost adus la perfecțiune: aproape toate instrucțiunile procesorului i8086 pot fi găsite în codul de decriptare.
Dacă împărțim în niveluri din punctul de vedere al antivirusurilor care folosesc sisteme de descifrare automată a codului virusului (emulatoare), atunci împărțirea în niveluri va depinde de complexitatea emulării codului virusului. Este posibil să detectați un virus folosind alte metode, de exemplu, decriptarea folosind legile matematice elementare etc.
O clasificare mai obiectivă ar fi aceea în care, pe lângă criteriul măștilor virale, sunt implicați și alți parametri, de exemplu:

Gradul de complexitate al codului polimorf (procentul din toate instrucțiunile procesorului care pot fi găsite în codul de decriptare);
Folosind tehnici speciale care fac emularea dificilă pentru antivirusuri;
Constanța algoritmului de decriptare;
Constanța lungimii decriptorului.


Schimbarea codului executabil


Cel mai adesea, această metodă de polimorfism este utilizată de macrovirusuri, care, atunci când creează noi copii ale lor, schimbă aleatoriu numele variabilelor lor, inserează linii goale sau schimba codul lor într-un alt mod. Astfel, algoritmul virusului rămâne neschimbat, dar codul virusului se schimbă aproape complet de la infecție la infecție.
Această metodă este folosită mai rar de virușii de boot complexe. Astfel de viruși injectează doar o procedură destul de scurtă în sectoarele de pornire, care citește codul principal al virusului de pe disc și îi transferă controlul. Codul pentru această procedură este selectat din mai multe opțiuni diferite (care pot fi, de asemenea, amestecate cu comenzi „vide”), comenzile sunt rearanjate etc.
Această tehnică este și mai puțin comună în fișiere viruși- la urma urmei, trebuie să-și schimbe complet codul, iar acest lucru necesită algoritmi destul de complexi. Până în prezent, sunt cunoscuți doar doi astfel de viruși, dintre care unul ("Ply") își mută aleatoriu comenzile în jurul corpului său și le înlocuiește cu comenzi JMP sau CALL. Un alt virus („TMC”) folosește o metodă mai complexă - de fiecare dată când este infectat, virusul schimbă blocurile de cod și datele sale, inserează „gunoi”, setează noi valori de compensare pe date în instrucțiunile sale de asamblare, schimbă constantele, etc. Drept urmare, deși virusul nu își criptează codul, este un virus polimorf - nu există un set constant de comenzi în cod. Mai mult, atunci când creează noi copii ale lui însuși, virusul își schimbă lungimea.

360 Securitate totală- antivirus gratuit de la Qihoo 360 cu optimizare PC și protecție în timp real împotriva tuturor tipurilor de amenințări online cu 5 motoare: Avira și Bitdefender, QVM II proactiv și cloud 360 Cloud, precum și System Repair pentru recuperarea sistemului

Descrierea programului

360 Total Security oferă protecție completă împotriva tuturor tipurilor de malware și amenințări online.

Antivirusul gratuit de la Qihoo 360 folosește protecție în timp real cu motoarele antivirus Avira și Bitdefender, QVM II proactiv și 360 Cloud, precum și System Repair pentru o evaluare completă și recuperare rapida modificări anormale în sistemul de operare Windows.

Când faceți achiziții online, descărcați fișiere, vizitați pagini web ale diferitelor resurse de pe Internet, 360 Total Security vă protejează de amenințări în timp real. În plus, puteți utiliza funcția de curățare cu un singur clic pentru a optimiza performanța computerului.

Cinci motoare oferă un nivel inegalabil de fiabilitate și securitate - online și offline, menținând în același timp performanta ridicatași performanța sistemului.

Principalele caracteristici ale 360 ​​Total Security:

  • Noua versiune a 360 Total Security adaugă motorul antivirus Avira și System Repair pentru a restabili sistemul la cele existente Motoarele Bitdefender, QVM II proactiv și cloud 360 Cloud.
  • De asemenea, este adăugată o funcție de accelerare și curățare cu un singur clic pentru a optimiza performanța computerului.

Caracteristicile cheie ale 360 ​​Total Security

Verificarea sistemului
- Verificare rapida sănătatea generală și securitatea computerului dvs. cu un singur clic

Scanare antivirus
- Utilizarea a 5 motoare de top, inclusiv 360 Cloud Engine / QVMII / Avira și Bitdefender pentru protecţie cuprinzătoareȘi o detectare mai bună, precum și System Repair pentru a restabili sistemul.

Accelerarea sistemului
- Vă permite să gestionați și să optimizați pornirea automată a aplicațiilor, pluginurilor și serviciilor. Reduceți timpul de pornire a computerului dvs.

Curățarea sistemului
- Ajută la eliberarea spațiului pe hard disk prin curățare fișiere inutile de pe computerul dvs. și vă face munca mai eficientă.

Protectie in timp real
- Protejați-vă computerul de malware, phishing, amenințări ascunse și emergente folosind tehnologia cloud rapidă și inteligentă.

Astăzi, mai mult ca niciodată, software-ul antivirus nu este doar cel mai solicitat în sistemul de securitate al oricărui sistem de operare, ci și una dintre componentele sale principale. Și dacă anterior utilizatorul avea o alegere foarte limitată, modestă, acum puteți găsi o mulțime de astfel de programe. Dar dacă te uiți la lista „Top 10 antivirusuri”, vei observa că nu toate sunt echivalente din punct de vedere al funcționalității. Să ne uităm la cele mai populare pachete. În același timp, analiza va include atât aplicații plătite, cât și shareware (antivirus timp de 30 de zile), cât și aplicații distribuite gratuit. Dar mai întâi lucrurile.

Top 10 antivirusuri pentru Windows: criterii de testare

Înainte de a începe să compilați o evaluare, probabil că ar trebui să vă familiarizați cu criteriile de bază care sunt utilizate în majoritatea cazurilor când testați un astfel de software.

Desigur, este pur și simplu imposibil să luăm în considerare toate pachetele cunoscute. Cu toate acestea, dintre toate cele menite să asigure cel mai mult protecția unui sistem informatic în sens larg, le putem evidenția pe cele mai populare. În același timp, vom lua în considerare atât evaluările oficiale ale laboratoarelor independente, cât și recenziile utilizatorilor care folosesc în practică acest sau acel produs software. În plus, programele mobile nu vor fi afectate; ne vom concentra pe sistemele staționare.

În ceea ce privește efectuarea testelor de bază, de regulă, acestea includ câteva aspecte principale:

  • disponibilitatea versiunilor plătite și gratuite și limitări legate de funcționalitate;
  • viteza standard de scanare;
  • identificarea rapidă a potențialelor amenințări și capacitatea de a le elimina sau de a le pune în carantină folosind algoritmi încorporați;
  • frecvența actualizării bazelor de date antivirus;
  • autoapărare și încredere;
  • disponibilitatea caracteristicilor suplimentare.

După cum se poate vedea din lista de mai sus, verificarea funcționării software-ului antivirus vă permite să determinați punctele forte și punctele slabe ale unui anumit produs. În continuare, voi lua în considerare cele mai populare pachete software incluse în Top 10 antiviruși și, de asemenea, voi da și principalele lor caracteristici, desigur, ținând cont de opiniile oamenilor care le folosesc în munca lor de zi cu zi.

Produse software Kaspersky Lab

În primul rând, să ne uităm la modulele software dezvoltate de Kaspersky Lab, care sunt extrem de populare în spațiul post-sovietic.

Este imposibil să evidențiați un singur program aici, deoarece printre ele puteți găsi și un obișnuit Scaner Kaspersky Antivirus și module precum securitatea internetului, Și utilitare portabile tip Îndepărtarea virusului Instrument și chiar și discuri de boot pentru deteriorate Sisteme de salvare Disc.

Este imediat de remarcat două dezavantaje principale: în primul rând, judecând după recenzii, aproape toate programele, cu rare excepții, sunt plătite sau shareware și, în al doilea rând, Cerințe de sistem nerezonabil de ridicat, ceea ce face imposibilă utilizarea lor în configurații relativ slabe. Desigur, acest lucru sperie mulți utilizatori obișnuiți, deși cheile de activare Kaspersky Antivirus sau Internet Security pot fi găsite cu ușurință pe World Wide Web.

Pe de altă parte, situația de activare poate fi corectată în alt mod. De exemplu, cheile Kaspersky pot fi generate folosind aplicatii speciale precum Key Manager. Adevărat, această abordare este, ca să spunem ușor, ilegală, totuși, ca o cale de ieșire, este folosită de mulți utilizatori.

Viteza de operare la mașini moderne se află în intervalul mediu (din anumite motive, se creează din ce în ce mai multe versiuni grele pentru configurații noi), dar baze de date actualizate constant, tehnologii unice pentru identificarea și eliminarea virușilor cunoscuți și potențial programe periculoase aici în vârf. Nu este surprinzător faptul că Laboratorul Kapersky este astăzi lider în rândul dezvoltatorilor de software de securitate.

Și încă două cuvinte despre discul de recuperare. Este unic în felul său, deoarece încarcă un scanner cu o interfață grafică chiar înainte de a porni Windows, permițându-vă să eliminați amenințările chiar și din RAM.

Același lucru este valabil și pentru portabil Utilitare de virus Instrument de eliminare, capabil să urmărească orice amenințare pe un terminal infectat. Poate fi comparat doar cu o utilitate similară de la Dr. Web.

Protectie de la Dr. Web

În fața noastră se află un alt dintre cei mai puternici reprezentanți în domeniul securității - faimosul „Doctor Web”, care a stat la originile creării tuturor programelor antivirus din timpuri imemoriale.

Printre sumă uriașă De asemenea, puteți găsi scanere standard, instrumente de securitate pentru navigarea pe Internet, utilitare portabile și discuri de recuperare. Nu poți enumera totul.

Principalii factori în favoarea software-ului acestui dezvoltator includ viteza mare, detectarea instantanee a amenințărilor, cu capacitatea fie de a le elimina complet, fie de a le izola, precum și o sarcină moderată a sistemului în ansamblu. În general, din punctul de vedere al majorității utilizatorilor, aceasta este un fel de versiune ușoară a Kaspersky. Mai este ceva interesant aici. În special, acesta este Dr. Web Katana. Se crede că acesta este un produs software de nouă generație. Se concentrează pe utilizarea tehnologiilor „nisip”, adică plasarea unei amenințări în „nor” sau „cutie de nisip” (indiferent cum doriți să o numiți) pentru analiză înainte de a pătrunde în sistem. Cu toate acestea, dacă te uiți la asta, nu există nicio inovație specială aici, deoarece această tehnică a fost folosită în antivirusul gratuit Panda. În plus, potrivit multor utilizatori, Dr. Web Katana este un fel de Spațiu de Securitate cu aceleași tehnologii. Cu toate acestea, în general, orice software de la acest dezvoltator este destul de stabil și puternic. Nu este de mirare că mulți utilizatori preferă astfel de pachete.

programe ESET

Vorbind despre Top 10 antivirusuri, este imposibil să nu menționăm un alt reprezentant strălucit al acestui domeniu - Compania ESET, care a devenit faimos pentru un produs atât de faimos precum NOD32. Puțin mai târziu, a luat naștere modulul ESET Smart Security.

Dacă luăm în considerare aceste programe, putem observa un punct interesant. Pentru a activa întreaga funcționalitate a oricărui pachet, puteți face două lucruri. Pe de o parte, aceasta este achiziția unei licențe oficiale. Pe de altă parte, puteți instala antivirus de probă gratuit, dar activează-l la fiecare 30 de zile. Interesantă este și situația cu activarea.

După cum notează absolut toți utilizatorii, pentru ESET Smart Security (sau pentru antivirus standard) pe site-ul oficial puteți găsi chei distribuite gratuit sub forma unui login și a unei parole. Până de curând, doar aceste date puteau fi folosite. Acum, procesul a devenit ceva mai complicat: mai întâi trebuie să vă autentificați și să faceți parola pe un site web special, să îl convertiți într-un număr de licență și abia apoi să îl introduceți în câmpul de înregistrare din programul însuși. Cu toate acestea, dacă nu acordați atenție unor astfel de fleacuri, puteți observa că acest antivirus este unul dintre cele mai bune. Avantaje remarcate de utilizatori:

  • bazele de date de semnături de viruși sunt actualizate de mai multe ori pe zi,
  • identificarea amenințărilor la cel mai înalt nivel,
  • nu există conflicte cu componentele sistemului (firewall),
  • pachetul are cea mai puternică autoapărare,
  • nu exista alarme false etc.

Separat, este de remarcat faptul că încărcarea sistemului este minimă, iar utilizarea modulului Anti-Theft vă permite chiar să protejați datele de furt sau utilizare abuzivă în beneficiul personal.

AVG Antivirus

AVG Antivirus este un software plătit conceput pentru a oferi securitate completă sisteme informatice(există și o versiune trunchiată gratuită). Și, deși astăzi acest pachet nu se mai numără printre primele cinci, demonstrează totuși viteză și stabilitate destul de ridicate.

În principiu, este ideal pentru uz casnic, deoarece, pe lângă viteză, are o interfață rusificată convenabilă și un comportament mai mult sau mai puțin stabil. Adevărat, așa cum notează unii utilizatori, uneori este capabil să rateze amenințările. Și acest lucru nu se aplică virușilor ca atare, ci mai degrabă spyware sau „junk” publicitar numit Malware și Adware. Modulul propriu al programului, deși promovat pe scară largă, totuși, conform utilizatorilor, pare oarecum neterminat. Și un firewall suplimentar poate provoca adesea conflicte cu firewall-ul Windows „nativ” dacă ambele module sunt active.

Pachet Avira

Avira este un alt membru al familiei de antivirus. Nu este fundamental diferit de majoritatea pachetelor similare. Cu toate acestea, dacă citiți recenziile utilizatorilor despre el, puteți găsi postări destul de interesante.

Mulți oameni nu recomandă utilizarea versiunii gratuite în niciun caz, deoarece pur și simplu lipsesc unele module din ea. A furniza protecţie fiabilă, va trebui să cumpărați produs plătit. Dar un astfel de antivirus este potrivit pentru versiunile 8 și 10, în care sistemul în sine folosește o mulțime de resurse, iar pachetul le folosește la cel mai de jos nivel. Pe scurt, Avira este mai bună Este potrivit doar pentru, de exemplu, laptopuri bugetare și computere slabe. Cu toate acestea, o instalare în rețea este exclusă.

Serviciu cloud Panda Cloud

Gratuit a devenit la un moment dat aproape o revoluție în domeniul tehnologiilor antivirus. Utilizarea așa-numitei „sandbox” pentru a trimite conținut suspect spre analiză înainte de a pătrunde în sistem a făcut această aplicație deosebit de populară în rândul utilizatorilor de toate nivelurile.

Și tocmai cu „sandbox” este asociat astăzi acest antivirus. Da, într-adevăr, această tehnologie, spre deosebire de alte programe, vă permite să împiedicați amenințările să intre în sistem. De exemplu, orice virus își salvează mai întâi corpul pe hard disk sau în RAM și abia apoi își începe activitatea. Aici chestiunea nu vine la conservare. În primul rând, fișierul suspect este trimis către serviciu cloud, unde este verificat și abia apoi poate fi salvat în sistem. Adevărat, conform martorilor oculari, din păcate, acest lucru poate dura destul de mult timp și încarcă inutil sistemul. Pe de altă parte, merită să vă întrebați ce este mai important: securitatea sau creșterea timpului de verificare? Cu toate acestea, pentru configurațiile moderne de computer cu viteze de conectare la Internet de 100 Mbit/s și mai mari, acesta poate fi folosit fără probleme. Apropo, propria sa protecție este asigurată tocmai prin „nor”, ​​care provoacă uneori critici.

Avast Pro Antivirus Scanner

Acum câteva cuvinte despre un alt reprezentant proeminent.Este destul de popular printre mulți utilizatori, totuși, în ciuda prezenței aceluiași sandbox, anti-spyware, scanner de rețea, firewall și cont virtual, din păcate, Avast Pro Antivirus este depășit în ceea ce privește Principalii indicatori de performanță, funcționalitate și fiabilitate sunt în mod clar pierd în fața unor giganți precum produsele software Kaspersky Lab sau aplicațiile care utilizează tehnologii Bitdefender, deși demonstrează viteză mare de scanare și consum redus de resurse.

Utilizatorii sunt atrași de acest produs în principal de faptul că versiunea gratuită a pachetului este cât se poate de funcțională și nu diferă foarte mult de software-ul plătit. În plus, acest antivirus funcționează pe toată lumea versiuni Windows, inclusiv „zece” și se comportă perfect chiar și pe mașinile învechite.

Pachete de securitate 360

În fața noastră se află probabil unul dintre cele mai rapide antivirusuri ale vremurilor noastre - 360 Security, dezvoltat de specialiști chinezi. În general, toate produsele etichetate „360” se disting printr-o viteză de operare de invidiat (același browser de Internet 360 Safety Browser).

În ciuda scopului său principal, programul are module suplimentare pentru a elimina vulnerabilitățile sistemului de operare și pentru a-l optimiza. Dar nici viteza de funcționare, nici distribuția gratuită nu pot fi comparate cu alarmele false. În lista de programe care au cei mai înalți indicatori pentru acest criteriu, acest software ocupă unul dintre primele locuri. Potrivit multor experți, conflictele apar la nivel de sistem din cauza optimizatorilor suplimentari, a căror acțiune se intersectează cu executarea sarcinilor sistemului de operare în sine.

Produse software bazate pe tehnologii Bitdefender

Un alt „bătrân” printre cei mai renumiți apărători ai sistemelor de operare este Bitdefender. Din păcate, în 2015 a pierdut palma în fața produselor Kaspersky Lab, cu toate acestea, în mod antivirus, ca să spunem așa, este unul dintre cei care au marcat tendințe.

Dacă te uiți puțin mai atent, vei observa atât de multe programe moderne(același pachet 360 ​​Security) în diferite variante sunt realizate tocmai pe baza acestor tehnologii. În ciuda bazei funcționale bogate, are și deficiențele sale. În primul rând, nu veți găsi antivirusul rus (rusificat) Bitdefender, deoarece nu există deloc în natură. În al doilea rând, în ciuda utilizării celor mai recente evoluții tehnologice în ceea ce privește protecția sistemului, din păcate, acesta arată un număr prea mare de fals pozitive (apropo, conform experților, acest lucru este tipic pentru întregul grup de programe create pe baza Bitdefender). Prezența componentelor suplimentare de optimizare și a propriilor firewall-uri, în general, nu afectează în bine comportamentul unor astfel de antivirusuri. Dar nu puteți nega viteza acestei aplicații. În plus, P2P este folosit pentru verificare, dar nu există o verificare a e-mailurilor în timp real, ceea ce multor oameni nu le place.

Antivirus de la Microsoft

O altă aplicație care se remarcă prin funcționarea sa de invidiat cu sau fără motiv este propria sa produs Microsoft numit Security Essentials.

Acest pachet este inclus în Top 10 antivirusuri, aparent, doar pentru că este conceput exclusiv pentru sisteme Windows, ceea ce înseamnă că nu provoacă absolut niciun conflict la nivel de sistem. În plus, cine altcineva, dacă nu specialiști de la Microsoft, cunoaște toate găurile de securitate și vulnerabilitățile propriilor sisteme de operare. Apropo, este interesant că inițiala Windows se construiește 7 și Windows 8 aveau MSE ca standard, dar apoi din anumite motive au abandonat acest kit. Cu toate acestea, pentru Windows poate deveni cea mai simplă soluție din punct de vedere al securității, deși nu poți conta pe nicio funcționalitate specială.

aplicația McAfee

În ceea ce privește această aplicație, pare destul de interesantă. Cu toate acestea, a câștigat cea mai mare popularitate în domeniul de aplicare pe dispozitive mobile cu tot felul de blocări, totuși, pe computerele desktop acest antivirus nu se comportă mai rău.

Programul are suport de nivel scăzut pentru rețele P2P cu partajarea la fișierele Instant Messenger și oferă, de asemenea, protecție pe 2 niveluri, în care rolul principal este acordat modulelor WormStopper și ScriptStopper. Dar, în general, conform consumatorilor, setul funcțional este la un nivel mediu, iar programul în sine se concentrează mai mult pe identificarea programelor spion, viermilor de computer și a troienilor și prevenirea pătrunderii în sistem. scripturi executabile sau coduri rău intenționate.

Antivirusuri și optimizatori combinați

Desigur, aici au fost luate în considerare doar cele incluse în Top 10 antivirusuri. Dacă vorbim despre alte software-uri de acest fel, putem remarca unele pachete care conțin module antivirus în seturile lor.

Ce să prefer?

Desigur, toate antivirusurile au anumite asemănări și diferențe. Ce sa instalezi? Aici trebuie să porniți de la nevoile și nivelul de protecție oferit. De obicei, către clienții corporativi merită să cumpărați ceva mai puternic cu capacitatea instalarea rețelei(Kaspersky, Dr. Web, ESET). Cât despre uz casnic, aici utilizatorul alege ceea ce are nevoie (dacă dorește, poți găsi chiar și un antivirus pentru un an - fără înregistrare sau achiziție). Dar, dacă te uiți la recenziile utilizatorilor, este mai bine să instalezi Panda Cloud, chiar și în ciuda unei încărcări suplimentare a sistemului și a timpului necesar pentru a verifica în sandbox. Dar aici există o garanție completă că amenințarea nu va pătrunde în niciun fel în sistem. Cu toate acestea, fiecare este liber să aleagă singur ceea ce are nevoie. Dacă activarea nu este dificilă, vă rugăm: funcționează bine în sistemele de acasă produse ESET. Dar utilizarea optimizatoarelor cu module antivirus ca principal mijloc de protecție este extrem de nedorită. Ei bine, de asemenea, este imposibil să spunem care program ocupă primul loc: există atât de mulți utilizatori, atât de multe opinii.

Motoare antivirus.

Una dintre părțile principale ale oricărui antivirus este așa-numitul „motor” antivirus - un modul responsabil cu scanarea obiectelor și detectarea malware-ului. Calitatea detectării malware-ului și, în consecință, nivelul de protecție oferit de antivirus depinde de motorul antivirus, de modul în care este proiectat și de ce metode de detectare și euristică folosește.

Acest articol descrie în detaliu tehnologiile standard și câteva abordări originale ale diverșilor dezvoltatori de antivirus, implementate în motorul antivirus. Pe parcurs, vor fi luate în considerare unele probleme tehnice conexe care sunt necesare pentru a evalua calitatea motorului antivirus și a clarifica tehnologiile utilizate în acesta.

„Motor” bun sau rău?

Din păcate, dezvoltatorii de software antivirus dezvăluie foarte rar detalii de implementare ale motoarelor lor. Cu toate acestea, prin semne indirecte puteți determina dacă „motorul” este bun sau nu. Iată principalele criterii după care puteți determina calitatea unui motor antivirus:
Calitatea detectiei. Cât de bine detectează antivirusul virușii? Acest criteriu poate fi evaluat pe baza rezultatelor diferitelor teste care sunt efectuate de mai multe organizații și sunt de obicei prezentate pe resursele web ale dezvoltatorului.

Nivelul de detectare de către analizatorii euristici. Din păcate, este imposibil să determinați acest parametru fără a testa o colecție de viruși, dar puteți determina destul de ușor care este nivelul de fals pozitive pentru un anumit motor.

Rata fals pozitive. Dacă pe fișiere 100% neinfectate, antivirusul raportează că a detectat un fișier posibil infectat, atunci acesta este un fals pozitiv. Ar trebui să avem încredere într-un astfel de analizor euristic care deranjează utilizatorul cu alarme false? La urma urmei, din cauza unui număr mare de rezultate false pozitive, utilizatorul poate rata un virus cu adevărat nou.

Suport pentru un număr mare de ambalatori și arhivatori. Acesta este un factor foarte important, deoarece adesea creatorii de malware, după ce au scris un virus, îl împachetează cu mai multe utilitare pentru ambalarea modulelor executabile și, după ce au primit mai mulți viruși diferiți, îi eliberează în lume. În esență, toți acești viruși sunt instanțe ale aceleiași variante. Pentru un motor antivirus care acceptă toate sau aproape toate utilitățile de ambalare populare, nu va fi dificil să identifici toate aceste instanțe ale aceluiași virus, numindu-le cu același nume; pentru alte motoare, va fi necesară actualizarea bazei de date antivirus ( precum și timpul necesar experților în antivirus pentru a analiza instanța virusului).

Frecvența și dimensiunea actualizărilor bazei de date antivirus. Acești parametri sunt semne indirecte ale calității motorului. Deoarece lansarea frecventă a actualizărilor asigură că utilizatorul va fi întotdeauna protejat de virușii care apar recent. Mărimea actualizării (și numărul de viruși detectați în această actualizare) vorbește despre calitatea designului bazei de date antivirus și, parțial, despre motor.

Posibilitatea de a actualiza motorul fără a actualiza programul antivirus în sine. Uneori, pentru a detecta un virus, este necesar să actualizați nu numai baza de date antivirus, ci și „motorul” în sine. Dacă antivirusul nu acceptă această caracteristică, atunci utilizatorul poate rămâne fără protecție în fața unui nou virus. În plus, această caracteristică vă permite să îmbunătățiți rapid motorul și să corectați erorile din acesta.

„Motor” antivirus: tehnologii existente

Odată cu apariția primilor viruși de computer, programatorii și-au dat seama rapid cum funcționează și au creat primele programe antivirus. A trecut destul de mult timp de atunci, iar antivirusul modern diferă de acele prime antivirusuri, la fel cum un computer personal diferă de un calculator.

În primul paragraf al acestui articol, a fost dată o definiție oarecum „naivă” a „motorului” antivirus. În continuare, vor fi date o serie de definiții precise și descrieri tehnologice, care, în cele din urmă, vă vor permite să înțelegeți pe deplin structura și algoritmii motorului antivirus.

Anti-Virus Engine este un modul software conceput pentru a detecta software-ul rău intenționat. „Motorul” este componenta principală a oricărui program antivirus, indiferent de scopul acestuia. Motorul este utilizat atât în ​​produsele personale - un scanner personal sau monitor, cât și în soluțiile de server - un scanner pentru un server de e-mail sau fișiere, un firewall sau un server proxy. De regulă, pentru a detecta malware, majoritatea „motoarelor” implementează următoarele tehnologii:
Căutare după „semnături” (o secvență unică de octeți);
Căutare după sume de control sau CRC (sumă de control cu ​​o secvență unică de octeți);
Utilizarea unei măști reduse;
Criptanaliză;
Analize statistice;
Analiza euristica;
Emulare.
Să ne uităm la fiecare dintre aceste metode mai detaliat.

Căutați după „semnături”

O semnătură este un „șir” unic de octeți care caracterizează în mod unic un anumit program rău intenționat. Căutarea de semnături, într-o modificare sau alta, a fost folosită pentru a detecta viruși și alte programe malware, de la primele programe antivirus până în prezent. Avantajul incontestabil al căutării semnăturilor este viteza de funcționare (folosind algoritmi special dezvoltați, desigur) și capacitatea de a detecta mai mulți viruși cu o singură semnătură. Dezavantaj - dimensiunea semnăturii pentru detectarea fiabilă trebuie să fie destul de mare, cel puțin 8-12 octeți (de obicei, semnăturile mult mai lungi sunt utilizate pentru detectarea precisă, până la 64 de octeți), prin urmare, dimensiunea bazei de date antivirus va fi destul de mare. În plus, recent, programele rău intenționate scrise în limbaje de nivel înalt (C++, Delphi, Visual Basic) au devenit din ce în ce mai răspândite, iar astfel de programe au părți separate ale codului care practic nu se schimbă (așa-numita Bibliotecă Run Time). ). O semnătură aleasă incorect va duce inevitabil la un fals pozitiv - detectarea unui fișier „curat”, neinfectat ca fiind infectat cu un virus. Ca o soluție la această problemă, se propune fie utilizarea semnăturilor foarte mari, fie utilizarea detectării pentru anumite zone de date, de exemplu, tabelele de relocare sau șirurile de text, ceea ce nu este întotdeauna bun.

Căutare după sume de control (CRC)

Căutarea prin sume de control (CRC - cyclic redundancy check), în esență, este o modificare a căutării prin semnături. Metoda a fost dezvoltată pentru a evita principalele dezavantaje ale căutării semnăturilor - dimensiunea bazei de date și pentru a reduce probabilitatea unor rezultate fals pozitive. Esența metodei este că pentru a căuta cod rău intenționat, nu este luată numai linia „de referință” - semnătura, sau mai degrabă, suma de control a acestei linii, ci și locația semnăturii în corpul programului rău intenționat. Locația este folosită pentru a evita calcularea sumelor de control pentru întregul fișier. Astfel, în loc de 10-12 octeți de semnătură (minimum), se folosesc 4 octeți pentru a stoca suma de control și alți 4 octeți pentru locație. Cu toate acestea, metoda de căutare a sumei de control este oarecum mai lentă decât căutarea semnăturii.
Utilizarea măștilor pentru a detecta codul rău intenționat este destul de des complicată de prezența codului criptat (așa-numiții viruși polimorfi), deoarece fie este imposibil să selectați o mască, fie o mască de dimensiune maximă nu satisface condiția de a fi fără ambiguitate. identificarea unui virus fără rezultate false pozitive.
Imposibilitatea alegerii unei măști de dimensiuni suficiente în cazul unui virus polimorf este ușor de explicat. Prin criptarea corpului său, virusul asigură că cea mai mare parte a codului său din obiectul afectat este o variabilă și, în consecință, nu poate fi selectată ca mască. (Virușii auto-criptați și polimorfi sunt descriși mai detaliat în anexa de la sfârșitul articolului).
Pentru a detecta astfel de viruși, se folosesc următoarele metode: utilizarea unei măști reduse, criptoanaliza și analiza statistică. Să ne uităm la aceste metode mai detaliat.

Folosind o mască redusă

Când infectează obiecte, un virus care utilizează criptarea își convertește codul într-o secvență de date criptată:
S = F(T), unde
T - codul de bază al virusului;
S - coduri de virus criptate;
F este funcția de criptare a virusului, selectată aleatoriu dintr-un anumit set de transformări (F).
Metoda măștii reduse constă în alegerea unei transformări R a codurilor de virus criptate S, astfel încât rezultatul transformării (adică o secvență de date S”) să nu depindă de cheile de transformare F, adică
S=F(T)
S" = R (S) = R (F (T)) = R" (T).
La aplicarea transformarii R la toate variantele posibile ale codului cifru S, rezultatul S" va fi constant la o constanta T. Astfel, identificarea obiectelor afectate se face prin alegerea S" ca masca redusa si aplicarea transformarii R la obiectele afectate.

Criptanaliză

Această metodă este următoarea: folosind codul de bază cunoscut al virusului și codul criptat cunoscut (sau codul „suspect”, similar corpului criptat al virusului), cheile și algoritmul programului de decriptare sunt restaurate. Acest algoritm este apoi aplicat porțiunii criptate, rezultând corpul decriptat al virusului. Când rezolvați această problemă, trebuie să aveți de-a face cu un sistem de ecuații.
De regulă, această metodă funcționează mult mai rapid și ocupă mult mai puțină memorie decât emularea instrucțiunilor de virus. Cu toate acestea, rezolvarea unor astfel de sisteme este adesea o sarcină extrem de complexă.
Mai mult, problema principală este analiza matematică a ecuației rezultate sau a sistemului de ecuații rezultat. În multe privințe, problema rezolvării sistemelor de ecuații la recuperarea corpului criptat al unui virus seamănă cu problema criptografică clasică a recuperării textului cifrat cu chei necunoscute. Totuși, aici această sarcină sună oarecum diferit: este necesar să aflăm dacă un anumit cod criptat este rezultatul aplicării unei anumite funcții cunoscute până la chei. Mai mult, multe date pentru rezolvarea acestei probleme sunt cunoscute dinainte: o secțiune a codului criptat, o secțiune a codului necriptat, posibile variante ale funcției de transformare. Mai mult, algoritmul acestei transformări în sine și cheile sunt prezente și în codurile analizate. Cu toate acestea, există o limitare semnificativă că această problemă trebuie rezolvată în limitele specifice ale RAM și procedura de soluționare nu ar trebui să dureze mult timp.

analize statistice

Folosit și pentru detectarea virușilor polimorfi. În timpul funcționării sale, scanerul analizează frecvența de utilizare a comenzilor procesorului, construiește un tabel cu comenzile procesorului întâlnite (opcodes) și pe baza acestor informații face o concluzie dacă fișierul este infectat cu un virus. Această metodă este eficientă pentru căutarea unor viruși polimorfi, deoarece acești viruși folosesc un set limitat de comenzi în decriptor, în timp ce fișierele „curate” folosesc comenzi complet diferite cu o frecvență diferită. De exemplu, toate programele MS-DOS folosesc adesea întrerupere 21h (opcode CDh 21h), dar această comandă nu se găsește practic niciodată în decriptorul de viruși polimorfi DOS.
Principalul dezavantaj al acestei metode este că există o serie de viruși polimorfi complexi care folosesc aproape toate comenzile procesorului și de la copiere la copiere setul de comenzi utilizate se modifică foarte mult, adică nu este posibil să detectăm un virus folosind frecvența construită. masa.

Analiza euristica

Când numărul de viruși a depășit câteva sute, experții în antivirus au început să se gândească la ideea de a detecta malware despre care programul antivirus încă nu știa că există (nu existau semnături corespunzătoare). Ca urmare, au fost create așa-numitele analizoare euristice. Un analizor euristic este un set de rutine care analizează codul fișierelor executabile, macrocomenzi, script-uri, memorie sau sectoare de boot pentru a detecta diferite tipuri de programe rău intenționate. Există două principii de funcționare ale analizorului.

Metoda statica. Căutați semnături scurte comune care sunt prezente în majoritatea virușilor (așa-numitele comenzi „suspecte”). De exemplu, un număr mare de viruși caută viruși folosind masca *.EXE, deschid fișierul găsit și scriu în fișierul deschis. Sarcina euristicii în acest caz este de a găsi semnături care reflectă aceste acțiuni. Apoi se analizează semnăturile găsite, iar dacă se găsesc un anumit număr de „comenzi suspecte” necesare și suficiente, se ia decizia că fișierul este infectat. Marele avantaj al acestei metode este ușurința de implementare și viteza bună, dar nivelul de detectare a noilor malware este destul de scăzut.

Metoda dinamica. Această metodă a apărut simultan cu introducerea emulării comenzii procesorului în programele antivirus (emulatorul este descris mai detaliat mai jos). Esența metodei este de a emula execuția programului și de a înregistra toate acțiunile programului „suspecte”. Pe baza acestui protocol, se ia o decizie cu privire la posibila infectare a programului cu un virus. Spre deosebire de metoda statică, metoda dinamică este mai solicitantă pentru resursele computerului, cu toate acestea, nivelul de detectare al metodei dinamice este mult mai ridicat.

Emulare

Tehnologia de emulare a codului de program (sau Sandboxing) a fost un răspuns la apariția unui număr mare de viruși polimorfi. Ideea acestei metode este de a emula execuția unui program (atât infectat cu un virus, cât și unul „curat”) într-un „mediu” special, numit și buffer de emulare sau „sandbox”. Dacă un fișier infectat cu un virus polimorf intră în emulator, atunci după emulare apare corpul decriptat al virusului în buffer, gata pentru detectarea prin metode standard (semnătură sau căutare CRC).
Emulatoarele moderne emulează nu numai comenzile procesorului, ci și apelurile sistemului de operare. Sarcina de a scrie un emulator cu drepturi depline este destul de laborioasă, ca să nu mai vorbim de faptul că atunci când utilizați un emulator trebuie să monitorizați în mod constant acțiunile fiecărei comenzi. Acest lucru este necesar pentru a evita executarea accidentală a componentelor distructive ale algoritmului virusului.
Trebuie remarcat în special faptul că este necesar să se emuleze funcționarea instrucțiunilor virusului și să nu le urmărească, deoarece atunci când se urmărește un virus, probabilitatea de a apela instrucțiuni distructive sau coduri responsabile de răspândirea virusului este prea mare.

Baza de date a motorului antivirus

Baza de date este o parte integrantă a motorului antivirus. Mai mult, dacă presupunem că un „motor” bine conceput nu se schimbă atât de des, atunci baza de date antivirus se schimbă constant, deoarece în baza de date antivirus există semnături, sume de control și module software speciale pentru detectarea malware-ului. . După cum știți, noi viruși, viermi de rețea și alte programe rău intenționate apar cu o frecvență de invidiat și, prin urmare, este foarte important ca baza de date antivirus să fie actualizată cât mai des posibil. Dacă acum cinci ani actualizările săptămânale erau suficiente, astăzi este pur și simplu necesar să primim actualizări cel puțin zilnice ale bazei de date antivirus.
De asemenea, este foarte important ce se află exact în baza de date antivirus: există doar înregistrări ale virușilor sau proceduri software suplimentare. În al doilea caz, este mult mai ușor să actualizați funcționalitatea motorului antivirus prin simpla actualizare a bazelor de date.

Suport pentru obiecte imbricate „complexe”.

Motoarele antivirus s-au schimbat foarte mult în ultimii ani. Dacă primele antivirusuri, pentru a fi considerate un program de primă clasă, nu trebuiau decât să verifice memoria sistemului, fișierele executabile și sectoarele de boot, atunci câțiva ani mai târziu, din cauza popularității tot mai mari a utilităților speciale pentru ambalarea modulelor executabile, dezvoltatorii s-au confruntat cu sarcina de a despacheta fișierul împachetat înainte de a fi scanat.
Apoi o nouă problemă - virușii au învățat să infecteze fișierele arhivate (și utilizatorii înșiși au trimis adesea fișiere infectate în arhive). Antivirușii au fost forțați să învețe cum să proceseze și fișierele de arhivă. În 1995, a apărut primul macrovirus care infectează documente Microsoft Cuvânt. Este de remarcat faptul că formatul de document folosit de Microsoft Word este închis și foarte complex. Un număr de companii antivirus încă nu știu cum să proceseze complet astfel de fișiere.
Astăzi, datorită popularității enorme a e-mailului, motoarele anti-virus procesează, de asemenea, atât bazele de date de mesaje de e-mail, cât și mesajele în sine.

Metode de detectare

Un „motor” tipic antivirus, care este implementat în fiecare program antivirus, folosește toate tehnologiile necesare pentru detectarea malware-ului: un analizor euristic eficient, un emulator de înaltă performanță și, cel mai important, o arhitectură competentă și flexibilă a subsistem de detectare a programelor malware, permițând utilizarea tuturor metodelor de detectare de mai sus.
Aproape fiecare motor antivirus folosește detectarea sumei de control ca metodă de bază. Această metodă a fost aleasă pe baza cerinței de a minimiza dimensiunea bazelor de date antivirus. Cu toate acestea, arhitectura motorului este adesea atât de flexibilă încât permite utilizarea oricăreia dintre metodele de detectare enumerate mai sus, ceea ce se face pentru unii viruși deosebit de complexi. Acest lucru vă permite să obțineți un nivel ridicat de detectare a virușilor. Arhitectura motorului antivirus este prezentată mai detaliat în diagrama de mai târziu în text.
Aplicarea practică a metodelor de detectare a virușilor polimorfi (criptanaliză și analiză statistică, utilizarea unei măști reduse și emulare) se rezumă la alegerea celei mai optime metode în ceea ce privește viteza și cantitatea de memorie necesară. Codul majorității virușilor cu auto-criptare este restaurat destul de ușor prin procedura de emulare. Dacă utilizarea unui emulator nu este soluția optimă, atunci codul virusului este restaurat folosind o subrutină care implementează transformarea inversă - criptoanaliza. Pentru a detecta virușii care nu pot fi emulați și virușii pentru care nu este posibilă construirea unei transformări inverse, se folosește metoda de construire a măștilor reduse.
În unele dintre cele mai complexe cazuri, se utilizează o combinație a metodelor de mai sus. O parte a codului de decriptare este emulată, iar comenzile care sunt de fapt responsabile pentru algoritmul de decriptare sunt extrase din decriptor. Apoi, pe baza informațiilor primite, se construiește și se rezolvă un sistem de ecuații pentru a restaura codul virusului și a-l detecta.
O combinație de metode este folosită și atunci când se utilizează criptarea multiplă, când virusul își criptează corpul de mai multe ori, folosind algoritmi de criptare diferiți. O metodă combinată de recuperare a informațiilor sau de emulare „pură” a codului de decriptare este adesea folosită pentru că fiecare virus nou trebuie analizat și inclus în baza de date antivirus în cel mai scurt timp posibil, ceea ce nu se încadrează întotdeauna în necesarul. analiză matematică. Și, ca urmare, trebuie să utilizați metode mai greoaie pentru detectarea unui virus, în ciuda faptului că metodele de analiză matematică a algoritmului de decriptare sunt destul de aplicabile.

Lucrul cu obiecte „complexe”.

Motoarele antivirus acceptă lucrul cu un număr mare de formate de ambalare și arhivare. Dezvoltatorii publică rareori o listă completă (sau cel puțin suficient de detaliată) de formate acceptate. Următoarele sunt informații publicate oficial despre suportul pentru formatele „complexe” în Kaspersky Anti-Virus. În alte produse antivirus, lista de formate acceptate ar trebui să fie aproximativ aceeași.
Motorul Kaspersky Anti-Virus acceptă lucrul cu peste 400 de utilitare diferite pentru împachetarea fișierelor executabile, programe de instalare și arhivare (mai mult de 900 de modificări în total, din mai 2003). Printre ei:

Aparate de fișiere executabile și sisteme de criptare. Cele mai populare dintre ele: Diet, AVPACK, COMPACK, Epack, ExeLock, ExePack, Expert, HackStop, Jam, LzExe, LzCom, PaquetBuilder, PGMPAK, PkLite, PackWin, Pksmart, Protect, ProtEXE, RelPack, Rerp, Rjcrush, Rucc, Scramb , SCRNCH, Shrink, Six-2-Four, Syspack, Trap, UCEXE, Univac, UPD, UPX (mai multe versiuni), WWPACK, ASPack (mai multe versiuni), ASProtect (mai multe versiuni), Astrum, BitArts, BJFnt, Cexe, Cheaters , Dialect, DXPack, Gleam, CodeSafe, ELFCrypt, JDPack, JDProtect, INFTool, Krypton, Neolite, ExeLock, NFO, NoodleCrypt, OptLink, PCPEC, PEBundle, PECompact (mai multe versiuni), PCShrinpt, PE-DiCminiry, PELock , PEncrypt, PE-Pack (mai multe versiuni), PE-Protect, PE-Shield, Petite, Pex, PKLite32, SuperCede, TeLock, VBox, WWPack32, XLok, Yoda.
Suportul pentru atât de mulți packer și arhivare vă permite să reduceți timpul de analiză a noilor viruși, ceea ce duce la o creștere a vitezei de răspuns la apariția unui nou virus și să obțineți un nivel ridicat de detectare a virușilor deja cunoscuți.

Arhivatori și instalatori (mai mult de 60 în total). Cele mai populare dintre ele: CAB, ARJ, ZIP, GZIP, Tar, AIN, HA, LHA, RAR, ACE, BZIP2, WiseSFX (mai multe versiuni), CreateInstall, Inno Installer, StarDust Installer, MS Expand, GKWare Setup, SetupFactory, SetupSpecialist, NSIS, Astrum, PCInstall, Effect Office.
Suportul pentru un număr mare de tipuri de arhivare este deosebit de important pentru scanarea sistemelor de poștă, deoarece marea majoritate a virușilor sunt trimiși prin poștă în formă arhivată. Obiectele sunt dezambalate indiferent de nivelul de imbricare al arhivelor. De exemplu, dacă un fișier infectat este împachetat cu UPX și apoi fișierul este împachetat într-o arhivă ZIP, care este ambalată într-o arhivă CAB etc., atunci motorul antivirus ar trebui să poată în continuare să ajungă la fișierul original și să detecteze virus.
Trebuie menționat că astfel de considerații nu sunt deloc teoretice. Astfel, este larg cunoscut programul troian Backdoor.Rbot, care a fost distribuit ambalat cu multe programe diferite (Ezip, Exe32Pack, ExeStealth, PecBundle, PECompact, FSG, UPX, Morphine, ASPack, Petite, PE-Pack, PE-Diminisher, PELock , PESpin, TeLock, Molebox, Yoda, Ezip, Krypton etc.).
Algoritmul de despachetare a arhivei are de obicei suficientă inteligență pentru a nu despacheta tot felul de „bombe de arhivă” - arhive mici care conțin fișiere uriașe (cu un raport de compresie foarte mare) sau mai multe fișiere identice. De obicei, scanarea unei astfel de arhive necesită mult timp, dar motoarele antivirus moderne recunosc adesea astfel de „bombe”.

Mecanismul de actualizare a bazelor de date antivirus și dimensiunea acestora

Actualizările bazei de date antivirus sunt de obicei lansate de mai multe ori pe zi. Unii pot lansa actualizări o dată la oră, alții - la fiecare două ore. În orice caz, având în vedere nivelul ridicat actual de pericol pe Internet, o astfel de actualizare frecventă a bazelor de date antivirus este complet justificată.
Dimensiunea actualizărilor indică arhitectura bine gândită a motorului antivirus. Astfel, dimensiunea actualizărilor regulate de la companiile lider din industrie, de regulă, nu depășește 30 KB. În același timp, bazele de date antivirus conțin de obicei aproximativ 70% din funcționalitatea întregului motor antivirus. Orice actualizare a bazei de date antivirus poate adăuga suport pentru un nou packer sau arhivator. Astfel, prin actualizarea zilnică a bazei de date antivirus, utilizatorul primește nu doar noi proceduri de detectare a noilor malware, ci și o actualizare a întregului antivirus. Acest lucru vă permite să reacționați foarte flexibil la situație și să garantați utilizatorului protecție maximă.

Analizor euristic

Analizorul euristic, care face parte din aproape fiecare antivirus, folosește ambele metode de analiză descrise mai sus - criptoanaliza și analiza statistică. Un analizor euristic modern este proiectat de la zero pentru a fi extensibil (spre deosebire de majoritatea analizoarelor euristice de prima generație, care au fost concepute pentru a detecta malware doar în modulele executabile).
În prezent, analizorul euristic poate detecta cod rău intenționat în fișiere executabile, sectoare și memorie, precum și noi viruși de script și programe malware pentru Microsoft Office (și alte programe care folosesc VBA) și, în sfârșit, cod rău intenționat scris în limbaje de nivel înalt, cum ar fi ca Microsoft Visual Basic.
Arhitectura flexibilă și combinarea diferitelor metode ne permit să atingem un nivel destul de ridicat de detectare a noilor malware. În același timp, dezvoltatorii depun toate eforturile pentru a reduce la minimum numărul de alarme false. Produsele prezentate de liderii din industria antivirus rareori fac greșeli în detectarea codului rău intenționat.

Diagrama de mai jos descrie un algoritm aproximativ pentru funcționarea motorului antivirus. Trebuie remarcat faptul că emularea și căutarea de malware cunoscut și necunoscut apar simultan.

După cum s-a menționat mai sus, la actualizarea bazei de date antivirus, sunt actualizate și adăugate modulele pentru despachetarea fișierelor și arhivelor împachetate, analizatorul euristic și alte module ale motorului antivirus.

Tehnologii originale în antivirus
"motoare"

Aproape fiecare dezvoltator de produse antivirus implementează unele dintre propriile tehnologii care fac programul mai eficient și mai productiv. Unele dintre aceste tehnologii sunt direct legate de proiectarea „motorului”, deoarece performanța întregii soluții depinde adesea de funcționarea acesteia. În continuare, vom lua în considerare o serie de tehnologii care pot accelera semnificativ scanarea obiectelor, garantând în același timp păstrarea detectării de înaltă calitate, precum și îmbunătățirea detectării și tratarii software-ului rău intenționat din fișierele arhivate.
Să începem cu tehnologia iChecker. Această tehnologie și analogii ei sunt implementate în aproape fiecare antivirus modern. De menționat că iChecker este un nume propus de specialiștii Kaspersky Lab. Experții, de exemplu, Panda Software îl numesc UltraFast. Această tehnologie vă permite să obțineți un echilibru rezonabil între fiabilitatea protecției stațiilor de lucru (și în special a serverelor) și utilizarea resurselor de sistem ale computerului protejat. Datorită acestei tehnologii, timpul de încărcare (până la 30-40%) a sistemului de operare (comparativ cu protecția antivirus tradițională) și timpul de lansare a aplicațiilor cu protecție antivirus activă sunt reduse semnificativ. Acest lucru asigură că toate fișierele de pe discurile computerului au fost scanate și nu sunt infectate. Ideea principală a acestei tehnologii este că nu este nevoie să verificați ceea ce nu s-a schimbat și a fost deja verificat. Motorul antivirus menține o bază de date specială în care sunt stocate sumele de control ale tuturor fișierelor scanate (și neinfectate). Acum, înainte de a trimite fișierul pentru verificare, „motorul” calculează și compară suma de control a fișierului cu datele stocate în baza de date. Dacă datele se potrivesc, înseamnă că fișierul a fost verificat și nu este necesară reverificarea. Este de remarcat faptul că timpul petrecut calculând sumele de verificare a fișierelor este semnificativ mai mic decât timpul unei scanări antivirus.
Un loc special în activitatea antivirusului îl ocupă tratamentul obiectelor infectate arhivate. Este exact ceea ce se va discuta în continuare. iCure este o tehnologie pentru tratarea fișierelor infectate din arhive. Datorită acestei tehnologii, obiectele infectate din interiorul fișierelor arhivate vor fi dezinfectate (sau șterse, în funcție de setările antivirus) cu succes, fără a utiliza utilități externe de arhivare. Astăzi, majoritatea antivirusurilor acceptă următoarele tipuri de arhive: ARJ, CAB, RAR, ZIP. Datorită arhitecturii modulare și tehnologiilor de actualizare a motorului antivirus, utilizatorul, de regulă, poate actualiza și extinde cu ușurință lista de tipuri de arhivare acceptate fără a reporni antivirusul.
iArc este o altă tehnologie pentru lucrul cu fișiere de arhivă. Această tehnologie este necesară pentru lucrul cu arhive cu mai multe volume. iArc vă permite să scanați arhive cu mai multe volume și să detectați viruși chiar dacă aceștia sunt împachetati într-o arhivă cu mai multe volume, care, la rândul său, va fi, de asemenea, împachetat într-o arhivă cu mai multe volume.
Multithreading. „Motorul” antivirus este un modul cu mai multe fire și poate procesa simultan (verifica codurile rău intenționate) mai multe obiecte (fișiere, sectoare, scripturi etc.).
Majoritatea tehnologiilor enumerate mai sus sunt implementate într-o formă sau alta în fiecare produs antivirus modern.

Viruși polimorfi

Pe tot parcursul articolului, termenii viruși „polimorfi” și „auto-criptați” au fost folosiți frecvent. După cum ar fi trebuit să devină clar din discuțiile anterioare, acest tip de cod rău intenționat a avut o influență puternică asupra dezvoltării tehnologiilor antivirus. Următoarele sunt informații despre virușii polimorfi furnizate de experții Kaspersky Lab.

Definiții de bază: auto-criptare și polimorfism. Sunt folosite de aproape toate tipurile de viruși pentru a complica cât mai mult procedura de detectare a virusului. Virușii polimorfi sunt destul de greu de detectat virușii care nu au semnături, adică nu conțin o singură secțiune constantă de cod. În cele mai multe cazuri, două mostre ale aceluiași virus polimorf nu vor avea o singură potrivire. Acest lucru se realizează prin criptarea corpului principal al virusului și modificarea programului de decriptare. Virușii polimorfi îi includ pe cei care nu pot fi detectați (sau sunt extrem de dificili) folosind așa-numitele măști de virus - secțiuni de cod constant specifice unui anumit virus. Acest lucru se realizează în două moduri principale - prin criptarea codului principal al virusului cu o cheie nepermanentă și un set aleatoriu de comenzi de decriptare sau prin schimbarea codului virusului executabil în sine. Există și alte exemple, destul de exotice, de polimorfism: virusul DOS „Bomber”, de exemplu, nu este criptat, dar secvența de comenzi care transferă controlul către codul virusului este complet polimorfă.
Polimorfismul de diferite grade de complexitate se găsește în viruși de toate tipurile - de la viruși de boot și fișiere DOS până la viruși Windows și chiar viruși macro.

Decriptoare polimorfe

Cel mai simplu exemplu de decriptor parțial polimorf este următorul set de comenzi, ca urmare a căruia nici un octet din codul virusului însuși și decriptorul său nu este constant atunci când infectează diferite fișiere:

MOV reg_1, număr; reg_1, reg_2, reg_3 sunt selectate dintre
MOV reg_2, cheie ; AX,BX,CX,DX,SI,DI,BP
MOV reg_3, _offset ; count, key, _offset se pot modifica și ele
_buclă:
xxx octet ptr, reg_2; xor, adaugă sau sub
DEC reg_1
Jxx_loop ; ja sau jnc
; Urmează codul criptat și datele virusului

Virușii polimorfi complecși folosesc algoritmi mult mai complecși pentru a genera codul decriptorilor lor: instrucțiunile de mai sus (sau echivalentele lor) sunt rearanjate de la infecție la infecție, diluate cu comenzi care nu schimbă nimic precum NOP, STI, CLI, STC, CLC, etc.
Virușii polimorfi cu drepturi depline folosesc algoritmi și mai complexi, drept urmare decriptorul de viruși poate conține operațiuni SUB, ADD, XOR, ROR, ROL și altele într-un număr și o ordine arbitrară. Încărcarea și modificarea cheilor și a altor parametri de criptare este, de asemenea, efectuată printr-un set arbitrar de operații, în care pot fi găsite aproape toate instrucțiunile procesorului Intel (ADD, SUB, TEST, XOR, OR, SHR, SHL, ROR, MOV, XCHG , JNZ, PUSH, POP...) cu toate modurile de adresare posibile. Apar și viruși polimorfi, al căror decriptor folosește instrucțiuni până la Intel386, iar în vara anului 1997 a fost descoperit un virus polimorf pe 32 de biți care infectează fișierele Windows 95 EXE.
Drept urmare, la începutul unui fișier infectat cu un astfel de virus există un set de instrucțiuni aparent lipsite de sens. Este interesant că unele combinații care sunt destul de funcționale nu sunt acceptate de dezasamblatoarele proprietare (de exemplu, combinația CS:CS: sau CS:NOP). Și printre această „mizerie” de comenzi și date, MOV, XOR, LOOP, JMP se strecoară ocazional - instrucțiuni care chiar „funcționează”.

Niveluri de polimorfism

Există o împărțire a virușilor polimorfi în niveluri în funcție de complexitatea codului care se găsește în decriptoarele acestor viruși. Această diviziune a fost propusă pentru prima dată de Dr. Alan Solomon, după un timp Vesselin Bonchev a extins-o:

Nivelul 1: Virușii care au un anumit set de decriptoare cu un cod constant; atunci când sunt infectați, ei aleg unul dintre ei. Astfel de viruși sunt „semi-polimorfi” și mai sunt denumiți „oligomorfi”. Exemple: „Cheeba”, „Slovacia”, „Balenă”.

Nivelul 2: Decriptorul de viruși conține una sau mai multe instrucțiuni permanente, dar partea principală este instabilă.

Nivelul 3: Decriptorul conține instrucțiuni neutilizate - „gunoi” precum NOP, CLI, STI etc.

Nivelul 4: Decriptorul folosește instrucțiuni interschimbabile și instrucțiuni de reordonare (amestecare). Algoritmul de decriptare nu se modifică.

Nivelul 5: Sunt utilizate toate tehnicile de mai sus, algoritmul de decriptare nu este constant, este posibil să re-criptați codul virusului și chiar să criptați parțial codul de decriptare în sine.

Nivelul 6: Viruși permutați. Codul principal al virusului este supus modificării - este împărțit în blocuri, care, atunci când sunt infectate, sunt rearanjate în ordine aleatorie. Virusul rămâne funcțional. Este posibil ca astfel de viruși să nu fie criptați.

Clasificarea de mai sus are dezavantajele sale, deoarece este realizată conform unui singur criteriu - capacitatea de a detecta un virus prin codul de decriptare folosind tehnica standard a măștilor de virus:

Nivelul 1: pentru a detecta virusul este suficient să aveți mai multe măști;
Nivelul 2: detectarea măștii folosind „caracterele sălbatice”;
Nivelul 3: detectarea prin mască după îndepărtarea instrucțiunilor „gunoi”;
Nivelul 4: masca conține mai multe opțiuni pentru codul posibil, adică devine algoritmică;
Nivelul 5: incapacitatea de a detecta virusul folosind masca.

Insuficiența unei astfel de diviziuni este demonstrată în virusul celui de-al treilea nivel de polimorfism, care se numește „Level3”. Acest virus, fiind unul dintre cei mai complexi viruși polimorfi, conform diviziunii de mai sus se încadrează la Nivelul 3, deoarece are un algoritm de decriptare constant, care este precedat de un număr mare de comenzi „gunoi”. Cu toate acestea, în acest virus algoritmul de generare a gunoiului a fost adus la perfecțiune: aproape toate instrucțiunile procesorului i8086 pot fi găsite în codul de decriptare.
Dacă împărțim în niveluri din punctul de vedere al antivirusurilor care folosesc sisteme de descifrare automată a codului virusului (emulatoare), atunci împărțirea în niveluri va depinde de complexitatea emulării codului virusului. Este posibil să detectați un virus folosind alte metode, de exemplu, decriptarea folosind legile matematice elementare etc.
O clasificare mai obiectivă ar fi aceea în care, pe lângă criteriul măștilor virale, sunt implicați și alți parametri, de exemplu:
Gradul de complexitate al codului polimorf (procentul din toate instrucțiunile procesorului care pot fi găsite în codul de decriptare);
Folosind tehnici speciale care fac emularea dificilă pentru antivirusuri;
Constanța algoritmului de decriptare;
Constanța lungimii decriptorului.

Schimbarea codului executabil

Cel mai adesea, această metodă de polimorfism este folosită de virușii macro, care, atunci când creează copii noi ale lor, schimbă aleatoriu numele variabilelor lor, inserează linii goale sau își schimbă codul într-un alt mod. Astfel, algoritmul virusului rămâne neschimbat, dar codul virusului se schimbă aproape complet de la infecție la infecție.
Această metodă este folosită mai rar de virușii de boot complexe. Astfel de viruși injectează doar o procedură destul de scurtă în sectoarele de pornire, care citește codul principal al virusului de pe disc și îi transferă controlul. Codul pentru această procedură este selectat din mai multe opțiuni diferite (care pot fi, de asemenea, amestecate cu comenzi „vide”), comenzile sunt rearanjate etc.
Această tehnică este și mai puțin comună cu virușii de fișiere - la urma urmei, ei trebuie să își schimbe complet codul, iar acest lucru necesită algoritmi destul de complexi. Până în prezent, sunt cunoscuți doar doi astfel de viruși, dintre care unul ("Ply") își mută aleatoriu comenzile în jurul corpului său și le înlocuiește cu comenzi JMP sau CALL. Un alt virus („TMC”) folosește o metodă mai complexă - de fiecare dată când este infectat, virusul schimbă blocurile de cod și datele sale, inserează „gunoi”, setează noi valori de compensare pe date în instrucțiunile sale de asamblare, schimbă constantele, etc. Drept urmare, deși virusul nu își criptează codul, este un virus polimorf - nu există un set constant de comenzi în cod. Mai mult, atunci când creează noi copii ale lui însuși, virusul își schimbă lungimea.