Tehnologie noua detectare si indepartare virusi

SorinK
editat aprilie 2007 în Cerere caracteristici

Buna ziua.


Ash dorii sa stiu de ce nu creeati o tehnologie prin care puteti nu doar detecta dar si indeparte virusii necunoscuti.


Sa va dau un exemplu.


Avem un fisier exe.


Aici avem codul (putina aberatzie)


0101100110101101010101010101010101|011010101001011010101


Dupa | avem codul virusului. In mod normal trebuia scrisa o sintaxa intr-un limbaj de programare dar eu nu stiu programare, am scris la "vrajeala" in cod masina.


Deci antivirusul in loc sa caute mutatii de virusi si cod malware, sa ia cateva fisiere ale windows, le face back-up si daca omul infecteaza sistemul pe baza codului nou adaugat la fisierele infectate care sunt comparate cu cele din back-up, antivirusul determina ce anume sa stearga si de la restul fisierelor daca descopera acel cod.


Astfel nu este necesar de definitii atata timp cat se stie clar ca acele fisiere nu au fost modificate datorita unui update.


Daca virusii adauga noi terminatii de cod la fisiere in functie de extensia acestora atunci va lua antivirusul back-up la fisiere curate cu extensii diferite.


Probabil detectia si indepartarea de virusi folosind metode generice de comparare, analiza incluse in antivirus vor fi mult mai bune pentru clienti decat asteptarea definitiilor de virusi, daca aceste motoare de detectzie si indepartare sunt bine construite.


Daca virusul adauga cod aleator pt ca asa vrea el va fi ushor de identificat acest cod utilizand compararea cu niste back-upuri, antivirusul "vede" unde anumite virusul pune cod aiurea, care nu apartine acelui fisier fara sa fie nevoie de a compara cu un back-up al acelui fisier, daca are suficiente fisiere cu back-up pe care sa le compare, sa traga concluzii cum ar venii, tine si de inteligenta artificiala in programare dar ar fi revolutionar un asemenea engine, cu sigurantza concurentza ar sta in fund iar in testele pro-active ati castiga f mult teren.


Sper sa fie ceva folositor in ce spun.


Va multumesc si va doresc mult succes in continuare.

Comentarii

  • Teoretic, ai dreptate.


    DAR:


    1) ca antivirusul sa faca backup la anumite fisiere-sistem, ar trebui sa ocupe foarte mult spatiu pe hard-disk, ceea ce multora nu le convine, din mai multe motive: spatiu ocupat mare, fragmentare a datelor ridicata, incetinirea sistemului, etc...


    2) compararea mai multor fisiere cere foarte mult timp. Datorita faptului ca nu stii programare, nu stii nici ca operatiile cu discul sunt foarte lente (daca nu cumva cele mai lente). Deci, daca la fiecare fisier scanat, antivirusul ar trebui sa deschida inca cateva, si sa compare continutul celor doua fisiere, asta ar duce la o crestere drastica a timpului de scanare, lucru care, din nou, nu va fi primit cu placere de utilizatori


    3) Sistemele de operare curente au deja o protectie pentru fisierele-sistem, iar ceea ce ai descris tu ar trebui sa fie suportat de Windows insusi (Window XP are un sistem de genul asta, iar in Vista sunt sigur ca l-au imbunatatit)


    4) (revenind la backup): fisierele backup trebuie, de asemenea, tinute in siguranta pentru ca virusii sa nu le infecteze. Asta ar necesita o criptare a lor de catre antivirus, ceea ce ar duce, din nou, la o crestere a timpului de scanare.


    Asta este parerea mea. Daca metoda asta va putea fi modificata astfel incat sa fie rentabila, atunci probabil se va adauga ceva de genul asta in solutiile antivirus.

  • SorinK
    editat aprilie 2007

    1. Stiu ca dureaza mult aceasta citirea, gasirea datelor datorita vitezei f scazute fatza de RAM sau cache.


    Eu nu sustin un back-up total la C:\Windows eu sustin un back-up al fisierelor care sunt cunoscute ca fiind tinta directa a sunt vizate direct nu sunt infectate pt ca virusul ajunge si la ele in cele din urma.


    Una din tinte este explorer.exe si fisierele ale caror procese sunt incarcate de windows la pornire.


    2. Back-upul se face prin utilizarea unui sistem de fisiere existent, open source dar care se stie ca nu este afectat de virusi de windows pentru ca acestia nu il cunosc.


    BitDefender nu trebuie sa faca altceva decat sa copieze fisierele acolo si apoi sa le utilizeze la comparare cand este nevoie.malware, adica


    Odata analiza facuta si concluziile trase nu are nevoie sa le acceseze de fiecare data, informatii utilizate pt dezinfectarea celorlalte fisiere se afla in memoria RAM.


    Eu definesc concluziile trase ca niste solutii de analiza si dezinfectie creeate de engine pe baza unor notiuni de baza deja existente, utilizarea unei knowledgebase cu interogare a acesteia de catre engine.


    Nu vb. aici de calculatoare cu 64 MB RAM care nu pot sa faca acest lucru.


    Daca antivirusul face acest backup la 100 fisiere sa zicem de diverse tipuri cred ca va putea <decide> daca este bine programat cam unde adauga virusii codul lor in restul fisierelor si cu ce incepe acesta de obicei.


    Fiecare programator are un mod de a isi concepe aplicatiile cred ca acest tipar poate fi observat de program prin analiza si comparare, astfel sa obtina solutia de dezinfectie in multe cazuri fara a utiliza un expert in virusi sa ii scrie codul pt definitii, ci doar ca engine-ul sa fie bine conceput si gandit sa fie capabil sa se adapteze asemanator cu filtrele anti-spam.


    3. Copierea fisierelor windows se poate face inainte ca Windows XP sa aiba toata puterea, probabil la fel cum face Partition Magic, ar urla Windows-ul daca ar vedea cum ii sunt mutate fisiere si el nu poate sa zica nimic. :)


    Poate gandesc prea futuristic.


    Mult succes.

  • Nu se poate ceea ce doresti cel putin din urmatoarele motive:


    1. "inteligenta artificiala" in antivirusi va apare cel mai devreme in ~10 ani; pana atunci hardware-ul existent nu o poate "duce";


    2. corpul virusilor depinde de fisierul gazda; nu exista 2 infectii identice nici macar pentru cei mai simpli virusi;


    3. exista aplicatii care modifica fisierele respective (cel mai evident exemplu fiind Windows Update); daca se creaza un mecanism prin care sa se permita modificarea doar anumitor aplicatii, utilizatorul normal va fi confuz si in final va da "allow all";


    4. virusii nu infecteaza 100 de fisiere anumite, ci cam orice le pica in "mana" (exista si unii mai "selectivi"); munca de backup nu tine de AV si trebuie facuta pentru orice sistem care contine date importante;


    5. softurile care protejeaza fisiere/registry-ul/etc. se cheama HIPS, si nu au legatura cu AV-ul.

  • Multumesc domnule Vlad.


    Nu stiam ca necesita asa multe resurse de sistem softul inteligent.


    Nu am spus 100 fisiere in sensul ca doar acelea sunt vizate.


    Am vrut sa spun din acele 100 de fisiere sa fie mai multe tipuri de fisiere .doc .exe .com etc pentru a putea compara ce se modifica la acele fisiere unde anume in structura fisierului, ce instructiuni cauta virusul ca sa se introduca dupa, pe la inceput sau sfarsitul fisierului.


    Imi pare rau ca mai trebuie sa mai asteptam 10 ani ca sa vedem cum Bitdefender 20 are asa ceva.


    Cu sigurantza si virusii vor fi mai Inteligenti atunci, batalia va ramane echilibrata.


    O zi buna.

  • Hello.


    Disclaimer: cea ce zic este opnia mea personala.


    In mod general exista doua tipuri de a ataca o metoda in securitate "listele albe" (whitelisting - lista "chestiilor" care sunt bune) si "listele negre" (blacklisting - lista "chestiilor" care sunt rele). Amandoua metode au aspectele lor pozitive si negative.


    La whitelisting poti sa fii destul de sigur ca nu ruleaza nimic "rau" pe sistem, insa ai problema ca daca vrei sa rulezi ceva care nu exista in baza de date trebuie sa ai cunostinte destul de avansate ca sa decizi daca "chestia" respectiva este de incredere sau nu sau trebuie sa astepti pana cand altcineva (de exemplu producatorul programului de whitelist folosit) decide pentru tine. De aceea metoda de whitelisting este mai potrivit firmelor unde (a) setul de aplicatii rulate este mai restrans si (B) exista (ar trebui sa existe) personal dedicat pentru rezolvarea problemelor IT.


    La blacklist exista intotdeauna sansa ca ceva sa nu fie pe el, insa utilizatorul are libertate mai mare de a rula aplicatii arbitrare, de aceea este mai potrivit in situatiile in care nu exista personal dedicat (firme mici, utilizatori casnici, etc).


    Exista si metoda de a avea listele acestea si la toate "chestiile" care nu se afla pe el programul sa intrebe utilizatorul. Insa in cele mai multe cazuri utilizatorul nu are destule cunostinte pentru a face o alegere informata. Si cu asta nu vreau sa zic ca utilizatorul este "prost", ci faptul ca avem doar 24 de ore pe zi si nu putem sa fim experti in toate lucurile.


    Cam acestea ar fi solutiile existente. Ah, si toate produsele bune de AV (deci inclusiv BD ;) ) contin module euristice care pot sa detecteze malware-uri care nu au trecut inca prin mainile noastre. Securitatea nu este o stare, ci este un proces. Nu exista "securitate absoluta" (doar in marketing :) ), totul este un joc cu probabilitatile, cum sunt toate chestiile in viata acesta (de exemplu exista o probabilitate - desi sper ca este foarte mica - ca o sa mor inainte sa termin acest raspuns :) ).


    Si inca un lucru: majoritatea (ceva de genul 99.99%) din toate lucrurile "rele" care apar zilnic nu sunt file-infectori (deci nu modifica fisiere), ci sunt torieni, backdoori, rootkit-uri care creaza fisiere noi si metoda lor de dezinfectie este stergerea fisierelor respective.


    Finally: multumesc foarte mult pentru feedback, sper ca ceea ce am scris a fost (relativ) clar si util si astept in continuare orice comentariu / feedback ai avea.

  • In plus, ce se intampla daca faci backup la un fisier, si, la un moment dat il updatezi sau il reinnoiesti?


    Virusii evolueaza permanent, de la primii virusi de DOS TSR (Terminate and Stay Resident, foarte eficienti la acea vreme) si virusi de BOOT care au scris istoria (Stoned, KOH, etc), acum la viermii de internet, care infecteaza zeci de mii de calculatoare in cateva ore. Sunt in plina "evolutie", putem zice, si sunt sigur ca nimic nu va face ca softurile antivirus de azi sa detecteze cu o rata de 100% virusii. Probabil ar fi o victorie de cateva zile, pana cand autorii de virusi ar gasi o metoda de a evita si acea metoda de securitate. Cea mai eficienta modalitate este analiza euristica, care practic se uita cum se comporta fisierul, odata executat intr-un mediu controlat, un "pc virtual".

  • Buna ziua.


    Acea "cutie magica" in care se analizeaza comportamentul este utilizata de f multe programe antivirus, normal codul difera.


    Desi teoretic ar trebui sa fie f eficient, nu este.


    Nu ma pot gandi decat la faptul ca acea cutie nu are suficient cod, toate sunt incomplete, nu analizeaza toate modalitatile prin care un virus sau orice alta amenintare informatica (troian, vierme, rootkit) poate face rau.


    Iar cum din ce in ce mai multi sunt bazati pe exploituri este f greu, trebuie updatate codurile pentru a include si alte activitati ca daunatoare, pe masura ce acestea sunt scoperite de programatorii care scriu codul "cutiei".


    O zi buna.

  • @SorinK: trebuie sa iei in calcul ca modalitatile de care vorbesti ("prin care un virus sau orice alta amenintare informatica (troian, vierme, rootkit) poate face rau") pot fi folosite si de programe perfect legitime in diferite scopuri. Daca nu ar fi asa, iti dai seama ca toti antivirusii ar folosii ceea ce spui tu.


    Un exemplu foarte bun este HyperIM, un status manager foarte raspandit in intreaga lume, ale carui plug-in-uri au fost foarte des gasite ca "infectate" de BitDefender pe baza scanarii euristice, desi plug-in-urile nu faceau altceva decat sa cauta anumite playere multimedia si sa le scaneze dupa anumite date.


    Alt exemplu foarte concludent sunt programele de gen Remote Administrator. Majoritatea sunt detectate ca infectate datorita faptului ca folosesc anumite instructiuni de control la distanta, instructiuni folosite de asemenea de virusii cu care se poate obtine controlul unui calculator de catre persoane "neautorizate".


    Multe dintre lucrurile pe care le spui sunt perfect corecte si logice, dar nu prea au aplicabilitate, deoarece ar cauza supra-protectie.


    Parerea mea :P


    Cris.

  • Buna ziua.


    O semnatura digitala universala prin care aceste programe si pluginuri care au cod ce poate fi considerat ca daunator, din partea producatorilor aceste programe cat si includerea acestei semnaturi in baza de date a antivirusilor ar evita acest false-positive.


    Pe langa semnatura ar putea fi inclus si un checksum codificat cu un algoritm cunoscut doar de producatorul antivirus. Astfel sar evita copierea semnaturii si pe alte programe.


    Nu stiu ce cuprinde o semnatura digitala.


    Poate chestia cu checksum-ul era inclusa oricum.


    Totusi ar putea informa programele antivirus utilizatorul, oferind varianta de stergere dar a mentiona ca software-ul nu este scris de un cracker, ci de o firma respectabila si acesta nu face nimic din ce nu vrea utilizatorul (activitati ascunse de acesta).


    O zi buna.

  • Certificatele / semnaturile digitale sunt teoretic o metoda foarte sigura de a dovedi ca o persoana / companie anume este autorul unui soft. Insa au cel putin trei probleme (practice):


    • Primul (si mai putin grav) este ca daca fisierul a fost infectat inainte sa fie semnat, o sa fie semnat fisierul infectat cu un file-infector
    • Al doilea (care a fost vazut "in the wild") procesul de verificare depinde de niste componente locale (fisiere, certificate root, etc). Daca acestea sunt modificate (si deja exista cateva familii de malware-uri care fac acest lucru), se poate "pacali" sistemul de operare sa creada ca un anumit fisier are semnatura valida
    • Al treilea: programe complet legitime cu semnaturi 100% valide pot fi folosite in scopuri malefice (acesta este familia detectata de BD cu prefixul Application) - de exemplu orice RAT (Remote Administration Tool) daca a fost instalat de persoana respectiva este ok, insa daca a fost instalat de o "malicious third party", nu mai este ok, chiar daca programul este unul legitim si are o semnatura digitala 100% valida. Aici intervine problema de aflarea "itentiei".


    Si inca o veste proasta: s-a demonstrat matematic ca nu se poate scrie un algoritm care sa detecteze toti virusii. Cea ce propui (crearea unei liste cu aplicatii / firme "bune") n-o sa fie acceptat niciodata de consumatori pentru ca este prea restrictiva pentru ei. Problema malware-urului este pana la urma o problema economica / sociala. De exemplu s-ar putea rezolva o mare parte din problema creand o lege care sa permita folosirea calculatorului numai in cazul in care (a) utilizatorul a dat un examen de competenta sau (B) setul de programe este foarte restrans. O astfel de lege ar avea sens pentru ca asemanarea intre folosirea calculatorului si condusul de masina este foarte mare: ambele "aparate" sunt foarte complexe si in ambele cazuri daca nu sunt respectate niste masuri de siguranta, poti sa creezi daune (calculatorul tau poate sa devina parte a unui botnet de exemplu care sa atace alte calculatoare). Totusi nu cred ca o astfel de lege se va accepta in timp previzibil pentru ca oamenii au fost invatati sa se gandeasca la calculator ca la un instrument care "poate fi folosit de oricine" (gen televizor) nu ca la ceva complex care necesita un set de cunostinte minime pentru folosirea corecta.

  • spikje
    editat mai 2007

    @CD-man ... programele RAT sunt legitime dar pot fi instalate sub forma unor executabile arhivate(sfx) care instaleaza acest software pe PC ca serviciu sistem si fara consensul persoanei. Am observat ceva frumos la produsele Bitdefender, probabil si la concurenta(KAV) :


    -cand instalam Radmin de exemplu pe pc folosind setupul autorului produsul este detectat ca riskware si blocat. ( o idee buna, dar unii antivirusi pun aceste semnaturi pt riskware la bazele de date suplimentare - exemplu kaspersky).


    -daca criptam executabilul radmin acesta era automat detectat ca un troian ( NOTA - cripterul UPX de exemplu nu adauga un cod viral detectabil de exemplu).


    Este o idee buna ca Bitdefender sa tina evidenta la aceste programe riskware si sa avertizeze cand gaseste variante modificate - pentru ca nu sunt variantele de autor si sunt folosite in scopuri malefice.


    Cred ca sunt multe surse de unde poti downloada acelasi soft de pe net dar cu addonuri ca adware/spyware si/sau un mic virus fata de sursa originala pe siteul autorului. Pentru a garanta autenticitatea unei distributii este o idee buna sa adaugam o semnatura digitala unica care nu poate fi copiata ... dar stim bine ca majoritatea dau dublu click si instaleaza la "snap". Aceste semnaturi digitale nu sunt deloc practice pt utilizatorul casnic. Putini autorilor pastreaza pe site langa download link si un fisier de recunoastere MD5. Sunt de parere ca in universul asta informatic fiecare distributie trebuie sa aiba o placuta de inmatriculare. O semnatura digitala nu lamureste pe nimeni ca softul e genuine si ca nu e modificat (doar daca compara cu cea afisata pe website-ul autorului).


    Referitor la introducerea semnaturilor digitale in antivirusi pt recunoastere ... ia exemplu programele sourceforge... cam 3 sferturi de acolo nu vin sub un fisier instaler si codul sursa este public. Ar fi o munca tiranica sa faci update zi de zi la milioanele de programe care zboara pe internet.


    Ca concluzie la presupusa intrebare - cum ma protejez impotriva programelor daunatoare si verific ca un software e autentic - ori esti sigur pe sursa de download ori te rogi ca webhostul autorului sa nu fie compromis ( la asta se rezuma cam 90 la suta din probleme).