Kako vratiti izoliranu datoteku. Vraćanje datoteka nakon brisanja s Nod32

Kako izolirati sumnjive procese u sustavu Windows i ne pokvariti sam OS? Kako stvoriti robustan softverski sandbox kompatibilan sa sustavom Windows bez hardverske virtualizacije i kernel hook-ova, ali koristeći dokumentirane ugrađene sigurnosne mehanizme OS-a? Govorit ćemo o najčešćim problemima s kojima se susreću developeri (a u konačnici i korisnici) softverskih sandboxa. I naravno, ponudit ćemo svoje rješenje :).

Uvod ili kako je loše živjeti bez pješčanika

Među profesionalcima postoji nekoliko aksioma o kojima ne vole govoriti. A što je s aksiomima? Jesu i jesu. Čini se da je svima jasno, kao dva i dva. Na primjer, jedan od njih - antivirusi temeljeni na potpisu ne štite. Pa, to jest, ne štite, i to je to. Puno je toga rečeno i prepričano o tome puno, puno puta. Uz primjere, lijepe prezentacije, plesove i plesove. A epidemije kojekakvih gadnih stvari poput Ransomwarea jedan su od dokaza neučinkovitosti tehnologija potpisa i heurizma. Sve vrste kriptora i zamagljivača uspješno rješavaju problem zaštite već poznatog zlonamjernog softvera od otkrivanja, a već neko vrijeme ovaj malware antivirusi ne otkrivaju. Ovo vrijeme je dovoljno da se netko osjeća loše, a netko dobro.

Odnosno, ne radi se čak ni o 0 dana: možete uzeti stari dobro poznati bradati zlonamjerni softver, preoblikovati ga, ukloniti bihevioralne potpise (radi nekoliko dana za lijenu osobu) i koristiti ga ponovno, pa opet, i opet, dok ti ne dosadi ili dok te ne strpaju u zatvor. U isto vrijeme, ljudi koji su prodali lijek kako ta naj“loša” stvar nikada ne bi došla, kao da nemaju ništa s tim; objavljuju nekakav bilten s ozbiljnim licima i govore o higijeni na internetu, zaboravljajući reći da ako se ta higijena u potpunosti poštuje, onda antivirusi, posebno plaćeni, praktički nisu potrebni.

Pješčanici i značajke njihove implementacije

Dakle, antivirusi ne štede, a ponekad i razbijaju ono što već postoji. “Pristupimo zaštiti s druge strane i izolirajmo procese jedne od drugih”, rekao je netko beskrajno pametan. Doista, sjajno je kada se sumnjivi procesi izvode u nekoj vrsti izoliranog okruženja koje se zove sandbox. Zlonamjerni softver koji radi u sandboxu ne može napustiti svoje granice i oštetiti cijeli sustav. Ovo bi moglo biti rješenje, no postoje nijanse u postojećim implementacijama sandboxa...
Zatim ćemo samo razgovarati o svim zamršenostima izgradnje pješčanika, čije će vam znanje svakako dobro doći kada trebate odabrati alat za izolaciju procesa ili HIPS (Host-based Intrusion Prevention System - sustav za sprječavanje upada za radne stanice).

Nijansa broj 1, ili jedan sandbox za sve

Većina sandboxa zapravo ne osigurava izolaciju procesa. Istina, u većini implementacija, zaštićeni sustav podijeljen je na dva dijela - pouzdani i nepouzdani. Normalni procesi izvode se u pouzdanom dijelu, izolirani procesi izvode se u nepouzdanom dijelu. Odnosno, svi izolirani procesi rade u istom sandboxu, imaju pristup jedni drugima i međusobnim resursima, koriste isti registar i isti datotečni sustav.

Dakle, zlonamjerni softver može dobiti uporište u samom sandboxu i započeti epizodno s jednom od izoliranih aplikacija (ili s nekoliko izoliranih aplikacija, ili s bilo kojom od njih). U isto vrijeme, sandboxovi često ne bilježe radnje izoliranih procesa. Akcije u koje se HIPS kune u pješčanicima sasvim su prohodne bez imalo reakcije, prilagođene izolaciji, što baš i nije dobro.

Kako provjeriti je li izolacija uređena na ovaj način? Jako jednostavno! Pokrenite dvije aplikacije u sandboxu. Na primjer notepad.exe i wordpad.exe. Stvorite tekstualnu datoteku 1.txt s notepad.exe.

Naravno, ova datoteka neće biti spremljena na radnoj površini, već u "virtualnom" direktoriju. Pokušajte ga otvoriti pomoću programa Wordpad (slika 3).



Dakle, datoteka koju je stvorila jedna aplikacija u pijesku može se otvoriti pomoću druge aplikacije u pijesku. Da se razumijemo, izolacija nije baš dobra. Ali možda će barem postojati neka vrsta zaštite od zapisa? Mijenjamo sadržaj (slika 4).


I štedimo. A sada pokušajmo otvoriti datoteku 1.txt koristeći notepad.exe. Naravno, pokrenimo notepad.exe u sandboxu (slika 5).


I evo o čemu smo pričali. Dvije izolirane aplikacije nisu izolirane jedna od druge. Ispostavilo se da je takva izolacija napravljena ne sasvim jasnim razlogom. Čak i ransomware bez pristupa lokalnim mapama na računalu može šifrirati sve u virtualiziranom imeniku, a ako imate sreće, onda i na mrežnim resursima, budući da su postavke sandboxa iste za sve izolirane aplikacije.

Nijansa broj 2, ili podizolacija

Da, procesi u sandboxu ne mogu doći do pouzdanog dijela sustava... ali u većini implementacija je samo za pisanje. Odnosno, mogu čitati s bilo kojeg mjesta bez ikakvih ograničenja i često imaju pristup mreži. To je učinjeno, očito, radi veće kompatibilnosti, ali to se ne može nazvati izolacijom.
Isprobajte jednostavan eksperiment u pješčaniku po svom izboru. Napravite direktorij na svom tvrdom disku. Recimo ovo: E:\Fotografije . Stavite u njega, na primjer, fotografiju (slika 6).


Pokrenite Internet Explorer u sandboxu i pokušajte poslati datu sliku na, recimo, rghost.



Pa kako je? Dogodilo se? Ako je iskustvo uspješno, onda nije baš dobro. Još je gore ako sandbox nema mogućnost određivanja direktorija kojima aplikacije u sandboxu neće imati pristup. I nikako nije dobro ako izolirane aplikacije mogu čitati podatke iz direktorija trenutnog korisnika.

Virtualizacija datotečnog sustava i registra u većini implementacija izgrađena je na principu "kopiraj na zahtjev". To jest, ako datoteku treba jednostavno pročitati, onda se ona čita iz izvornog direktorija ako nema analoga u virtualnom direktoriju. Ako je ista datoteka prisutna u virtualnom direktoriju, tada će izolirana aplikacija raditi s njom. Isto se može reći i za virtualni registar. Pa, jasno je da kada pokušate napisati datoteku uz stvarnu stazu, ona će biti zapisana u virtualni datotečni sustav. Skoro uvijek.

Dakle, ako je zlonamjerni softver "izoliran" u takvom sandboxu, tada će moći imati puni pristup svim ostalim "izoliranim" procesima, gotovo svim podacima u sustavu za čitanje i virtualiziranim (pohranjenim od strane izoliranih aplikacija) podataka (što je često zajedničko svim izoliranim aplikacijama) za snimanje.

Nijansa broj 3, ili "napravimo još jedan bicikl, tako je zanimljivo"

Nastavak dostupan samo članovima

Opcija 1. Pridružite se zajednici "site" kako biste pročitali sve materijale na stranici

Članstvo u zajednici tijekom navedenog razdoblja omogućit će vam pristup SVIM hakerskim materijalima, povećati vaš osobni kumulativni popust i omogućiti vam da skupite profesionalnu ocjenu Xakep Score!

Dakle, pokušavam zaključati izoliranu datoteku za pohranu u svojoj klijentskoj aplikaciji tako da joj višestruke instance moje aplikacije ne mogu pristupiti u isto vrijeme. Koristim sljedeću sintaksu:

LockStream = new IsolatedStorageFileStream("my.lck", FileMode.OpenOrCreate, isoStore); lockStream.Lock(0, 0);

Ovaj kod uzrokuje da moja aplikacija izbaci NullReferenceException iz metode FileStream.Lock strukture. Pokušao sam upotrijebiti vrijednost koja nije nula za duljinu. Pokušao sam napisati bajt u datoteku i onda samo zaključao taj bajt. Bez obzira što radim, isti NullReferenceException me proganja. Zna li netko je li to moguće s izoliranim skladištenjem?

Također proučavam ovu tehniku ​​u aplikaciji Silverlight, podržava li Silverlight zaključavanje datoteka? Čini se da MSDN dokumenti pokazuju da nije, ali vidio sam ovaj post od MVP-a koji kaže da jest.

Ažuriranje: Microsoft je popravio grešku koju sam poslao u Connect, ali nije objavljena u verziji 4 okvira. Nadamo se da bi trebao biti dostupan u sljedećem SP-u ili u punom izdanju.

4

2 odgovora

Ovo izgleda kao greška u Frameworku. Možda sam u krivu, jer je stvarno preveliko da bi bilo istinito.

Gledajući izvorni kod .NET 3.5 SP1 s Reflektorom, možete pronaći da IsolStorageFileStream poziva bezdimenzionalni osnovni konstruktor (FileStream()), što rezultira nevaljano inicijaliziranom osnovnom klasom. IsolatedStorageFileStream instancira FileStream i koristi ga u svim metodama koje nadjačava (Write, Read, Flush, Seek, itd.). Čudno je da ne koristi svoju osnovnu klasu izravno.

Ali zaključavanje i otključavanje nisu nadjačani i zahtijevaju privatno polje (_handle) koje je još uvijek null (jer je korišteni konstruktor bez parametara). Pretpostavljaju da nije null i igraju ga i pozivaju NRE.

Ukratko, zaključavanje i otključavanje nisu podržani (ili ne rade).

Mislim da ste prisiljeni koristiti druge metode blokiranja kao što su Mutex ili Semaphore.

Kako oporaviti datoteke koje je izbrisao Eset NOD32 antivirus” zahtjev je koji se često može vidjeti na internetu. Ipak, nema toliko mogućih rješenja za ovaj problem, što često stvara osjećaj da nema načina za vraćanje izgubljenih dokumenata.

Prije svega, morate razumjeti da antivirusni program nikada neće blokirati ili izbrisati datoteku koja na ovaj ili onaj način ne utječe na rad operativnog sustava ili drugih instaliranih programa.

Sukladno tome, ako je vaš dokument izbrisan, možete sa sigurnošću posumnjati u njegovu zlonamjernost. Međutim, postoje i datoteke koje jednostavno modificiraju program, ometajući njegove procese, ali same po sebi ne predstavljaju prijetnju.

Postoje li neki načini za oporavak datoteke koju je izbrisao antivirusni program? Definitivno postoji! U ovom članku ćemo pogledati što je aplikacija Eset NOD32, značajke rada s njom i učinkovit način oporavka datoteka izbrisanih od strane antivirusa.

Što je Eset NOD32?

Nikome u suvremenom svijetu nije tajna koliko su važne, i što je najvažnije, relevantne antivirusne aplikacije. Omogućuju ne samo uklanjanje velike većine zlonamjernih datoteka, već i pomažu u sprječavanju moguće prijetnje čak i prije nego što se manifestira, našteteći sustavu na ovaj ili onaj način.

Antivirus Eset NOD32, koji se najčešće naziva jednostavno NOD32, čitav je paket antivirusnog softvera koji je stvorila slovačka tvrtka Eset davne 1987. godine.

Postoje dva izdanja programa:

  • kućna verzija.
  • Poslovna verzija.

Glavna razlika između poslovne inačice i kućne inačice je mogućnost daljinskog upravljanja i dostupnost međuplatformske zaštite. Ništa manje ugodna je značajka koja vam omogućuje jednostavnu i fleksibilnu prilagodbu programa za sve potrebe.

Eset NOD32. Kako omogućiti ili onemogućiti antivirus?

Često se događa da prilikom instaliranja određenog programa od nas zahtijevaju isključivanje antivirusa jer će u suprotnom “pojesti” važnu datoteku bez koje se aplikacija jednostavno ne može pokrenuti.

Još jedan uobičajeni razlog za traženje odgovora na pitanje omogućavanja / onemogućavanja antivirusa je cilj smanjenja potrošnje resursa "branitelja". Ovdje utječe osobitost rada antivirusnih programa - oni obično zauzimaju prilično veliku količinu memorije čak i kada su u pasivnom stanju, a kada pokrenete druge "teške" programe, ponekad morate pauzirati zaštitu.

Dakle, kako izvršiti zadatak omogućavanja ili onemogućavanja NOD32? Pogledajmo ovaj problem u uputama u nastavku.

1. Pokrenite aplikaciju Eset NOD32 i idi na postavke.

2. U prozoru koji se otvori pronaći ćete sve instalirane servisne pakete NOD32. Posjetite svaki od njih i omogućite/onemogućite opcije ovisno o svojim potrebama.

Eset NOD32. Antivirusna karantena i isključenja.

Karantena- spremište koje je nužno prisutno u bilo kojem antivirusu, bez obzira na njegovog proizvođača i verziju (kućna ili poslovna). Pohranjuje sve sumnjive datoteke koje, prema antivirusu, na ovaj ili onaj način mogu naštetiti vašem operativnom sustavu.

Vrijedno je napomenuti činjenicu da se nijedan dokument, čak i ako je trojanski, ne briše trenutno. Prije svega, neutralizira se prijetnja koja iz njega izvire: datoteka se stavlja u karantenu, a antivirus strpljivo čeka korisnikovu odgovornu odluku o daljnjim radnjama - možete izbrisati zaraženi dokument ili ga označiti kao izuzetak, što ćemo malo analizirati kasnije.

Kako pronaći Eset NOD32 antivirusnu karantenu? Jako jednostavno! Pogledajmo upute u nastavku.

1. Trčanje Eset NOD32 i idite na odjeljak Servis.

2. Otvorite karticu Dodatna sredstva. Nalazi se u donjem desnom kutu.

3. Imamo kompletan popis dodatnih usluga koje pruža Eset kao dio svoje antivirusne zaštite. otvoren Karantena.

4. U izborniku koji se otvori, NOD32 vam daje puna prava za upravljanje svim izoliranim datotekama.

Našli smo karantena i pronašao ga glavne funkcije:

  • Izoliraj datoteku. Ova opcija vam omogućuje da ručno pronađete zlonamjernu datoteku i blokirate je ako se antivirusni program ne može sam nositi.
  • Vratiti. Opcija koja vam omogućuje vraćanje slučajno zaključane datoteke.

Jednostavno vraćanje izoliranog dokumenta ne izbjegava uvijek daljnja zaključavanja. Može li se to promijeniti? Razmotrimo.

1. ne napuštajući prozor Karantena, desnom tipkom miša kliknite datoteku koju želite otključati.

2. Odaberite opciju Vrati i isključi iz skeniranja.

3. Ako ste sigurni u svoje postupke, kliknite Da. Ako ne znate je li datoteka opasna ili bezopasna, preporučamo klik Ne.

Eset NOD32 je izbrisao datoteke. Kako se oporaviti?

Antivirus je jedina barijera koja zadržava nevjerojatno velik broj mogućih prijetnji koje mogu prodrijeti u naša računala putem interneta. Sasvim je prirodno da blokira apsolutno sve datoteke sa sličnim mehanizmom rada; takve dokumente koji na ovaj ili onaj način ometaju procese sustava ili softvera.

Nažalost, antivirusni programi ne mogu razlikovati datoteke, jer se svaka zlonamjerna datoteka može lako prerušiti u Windows proces i postupno uništiti računalo iznutra.

Posljedično, program na sve moguće načine pokušava zaštititi računalo, blokirajući sve što, po njegovom mišljenju, predstavlja određenu prijetnju. U većini slučajeva, blokirani dokumenti mogu se lako obnoviti jednostavnom iznimkom, ali povremeno se potpuno izbrišu ako antivirusni program smatra da je datoteka kritično opasna.

Oporavak particije Starus bit će dobar pomoćnik u svakodnevnom radu s datotečnim sustavom. Aplikacija će vas dugoročno osloboditi brige oko osobnih dokumenata i pomoći će vam da vratite datoteku bilo kojeg formata, bez obzira na to kako ste je izgubili.

Možete procijeniti sve šanse za "vratiti izgubljeno" prije registracije Starus Partition Recovery alata. Preuzmite program za oporavak osobnih dokumenata izbrisanih antivirusom i isprobajte ga besplatno. Sve značajke dostupne su u probnoj verziji, uključujući pregled oporavljenih datoteka. Prozor za pregled pružit će vam priliku da se uvjerite da određena datoteka nije oštećena ili prepisana te da se može u potpunosti oporaviti.

Nadamo se da vam je članak bio koristan i pomogao u rješavanju postavljenih pitanja.

4

Dakle, pokušavam zaključati izoliranu datoteku za pohranu u svojoj C# klijentskoj aplikaciji tako da joj višestruke instance moje aplikacije ne mogu pristupiti u isto vrijeme. Koristim sljedeću sintaksu:

LockStream = new IsolatedStorageFileStream("my.lck", FileMode.OpenOrCreate, isoStore); lockStream.Lock(0, 0);

Ovaj kod uzrokuje da moja aplikacija izbaci NullReferenceException unutar metode FileStream.Lock okvira. Pokušao sam upotrijebiti vrijednost koja nije nula za duljinu. Pokušao sam napisati bajt u datoteku i onda samo zaključao taj bajt. Bez obzira što radim, isti NullReferenceException me proganja. Zna li netko je li to moguće s izoliranim skladištenjem?

Također proučavam ovu tehniku ​​u aplikaciji Silverlight, podržava li Silverlight zaključavanje datoteka? Čini se da MSDN dokumenti pokazuju da nije, ali vidio sam ovaj post od C# MVP-a koji kaže da jest.

Ažuriranje: Microsoft je popravio grešku koju sam prijavio na Connectu, ali nije objavljena u verziji 4 okvira. Nadamo se da bi trebao biti dostupan u sljedećem SP-u ili u punom izdanju.

0

Uspio sam zaobići ovu pogrešku korištenjem refleksije za pozivanje metode zaključavanja polja IsolatedStorageFileStream privatnog "m_fs" ovako: lockStream = new IsolatedStorageFileStream("q.lck", FileMode.OpenOrCreate, isoStore); FileStream m_fs = typeof (IsolatedStorageFileStream) .InvokeMember(("m_fs"), BindingFlags.GetField | BindingFlags.NonPublic | BindingFlags.Instance, null, lockStream, null) as FileStream; m_fs.Lock(0, long.MaxValue); - bsiegel 5. ožujka 10 2010-03-05 15:57:55

  • 2 odgovora
  • Sortiranje:

    Aktivnost

4

Ovo izgleda kao greška u Frameworku. Možda sam u krivu, jer je stvarno preveliko da bi bilo istinito.

Gledajući izvorni kod .NET 3.5 SP1 s reflektorom, otkrivate da IsolStorageFileStream poziva bezdimenzionalni osnovni konstruktor (FileStream()), što rezultira neinicijaliziranom osnovnom klasom. IsolatedStorageFileStream instancira FileStream i koristi ga u svim metodama koje nadjačava (Write, Read, Flush, Seek, itd.). Čudno je da ne koristi svoju osnovnu klasu izravno.

Ali zaključavanje i otključavanje nisu nadjačani i potrebno im je privatno polje (_handle) koje je još uvijek null (jer je korišteni konstruktor bez parametara). Pretpostavljaju da nije null i igraju ga i pozivaju NRE.

Ukratko, zaključavanje i otključavanje nisu podržani (ili ne rade).