Slijede razlike između dviju inačica stranice.
| Starije izmjene na obje strane Starija izmjena Novija izmjena | Starija izmjena | ||
|
racfor_wiki:seminari2025:mp031800821 [2026/02/01 17:08] Marko Pavlaković [Literatura] |
racfor_wiki:seminari2025:mp031800821 [2026/02/01 17:41] (trenutno) Marko Pavlaković [Što je Electron i zašto je važan za forenziku] |
||
|---|---|---|---|
| Redak 12: | Redak 12: | ||
| Desktop aplikacije se često smatraju „izvornim“ programima, ali mnoge moderne desktop aplikacije izgrađene su pomoću web tehnologije. Jedan od najčešćih okvira za to je Electron. Electron koriste mnoge poznate aplikacije, uključujući alate poput Visual Studio Codea, Slacka, Figme, itd. [13] | Desktop aplikacije se često smatraju „izvornim“ programima, ali mnoge moderne desktop aplikacije izgrađene su pomoću web tehnologije. Jedan od najčešćih okvira za to je Electron. Electron koriste mnoge poznate aplikacije, uključujući alate poput Visual Studio Codea, Slacka, Figme, itd. [13] | ||
| + | |||
| + | | {{ : | ||
| + | | Slika 1 - Neke od aplikacija koje koriste Electron | | ||
| S forenzičkog gledišta, Electron je važan jer miješa dva svijeta: | S forenzičkog gledišta, Electron je važan jer miješa dva svijeta: | ||
| - | • Motor preglednika temeljen na Chromiumu koji stvara tipične artefakte preglednika poput kolačića, pred memorije i web pohrane | + | * Motor preglednika temeljen na Chromiumu koji stvara tipične artefakte preglednika poput kolačića, pred memorije i web pohrane |
| - | • Node.js runtime koji može pristupiti datotečnom sustavu i stvarati ili mijenjati datoteke poput normalnog desktop programa [1] | + | |
| Ova kombinacija znači da Electron aplikacije mogu ostaviti mnoge tragove na disku, a ponekad i u memoriji. Ako ispitivač zna gdje tražiti i kako Chromium pohranjuje podatke, često je moguće rekonstruirati korisničku aktivnost kao što su prijave, posjećene usluge, preuzete datoteke i vrijeme korištenja. Ali postoje i ograničenja, | Ova kombinacija znači da Electron aplikacije mogu ostaviti mnoge tragove na disku, a ponekad i u memoriji. Ako ispitivač zna gdje tražiti i kako Chromium pohranjuje podatke, često je moguće rekonstruirati korisničku aktivnost kao što su prijave, posjećene usluge, preuzete datoteke i vrijeme korištenja. Ali postoje i ograničenja, | ||
| Redak 24: | Redak 27: | ||
| Electron uglavnom ima sljedeće: | Electron uglavnom ima sljedeće: | ||
| - | • Glavni proces koji djeluje kao ulazna točka aplikacije. Izvodi se u Node.js okruženju, što znači da može koristiti Node.js API/je i module [1] | + | * Glavni proces koji djeluje kao ulazna točka aplikacije. Izvodi se u Node.js okruženju, što znači da može koristiti Node.js API/je i module [1] |
| - | • Jedan proces Proces renderera po prozoru (ponekad i više za ugrađeni sadržaj). Procesi renderera prikazuju korisničko sučelje, poput kartice preglednika. [1] | + | |
| Za forenziku, više procesni model je važan jer se dokazi mogu rasporediti po različitim procesima u memoriji. Glavni proces može pristupiti lokalnom računalu i pohraniti podatke na prilagođena mjesta. Dok proces renderera često koristi web pohranu, pa se stvaraju artefakti u stilu Chromiuma. | Za forenziku, više procesni model je važan jer se dokazi mogu rasporediti po različitim procesima u memoriji. Glavni proces može pristupiti lokalnom računalu i pohraniti podatke na prilagođena mjesta. Dok proces renderera često koristi web pohranu, pa se stvaraju artefakti u stilu Chromiuma. | ||
| + | |||
| + | | {{ : | ||
| + | | Slika 2 - Više procesni model | | ||
| Mnoge Electron aplikacije pakiraju svoj izvorni kod u ASAR arhivu. Electron opisuje ASAR kao jednostavan arhivski format sličan tar-u koji spaja više datoteka u jednu. [3] Dokumentacija alata ASAR objašnjava da ASAR arhiva spaja sve datoteke bez kompresije i sadrži JSON zaglavlje koje ih opisuje. Ovo je važno za forenziku zato jer se pristupom ASAR arhivi često može pregledati kod i konfiguracija aplikacije koja objašnjava gdje su podaci pohranjeni ili s kojim krajnjim točkama aplikacija komunicira. Uz to ASAR obično nije kriptiran nego je samo pakiranje. Stoga ga je često moguće izdvojiti za analizu. | Mnoge Electron aplikacije pakiraju svoj izvorni kod u ASAR arhivu. Electron opisuje ASAR kao jednostavan arhivski format sličan tar-u koji spaja više datoteka u jednu. [3] Dokumentacija alata ASAR objašnjava da ASAR arhiva spaja sve datoteke bez kompresije i sadrži JSON zaglavlje koje ih opisuje. Ovo je važno za forenziku zato jer se pristupom ASAR arhivi često može pregledati kod i konfiguracija aplikacije koja objašnjava gdje su podaci pohranjeni ili s kojim krajnjim točkama aplikacija komunicira. Uz to ASAR obično nije kriptiran nego je samo pakiranje. Stoga ga je često moguće izdvojiti za analizu. | ||
| Redak 35: | Redak 41: | ||
| Electron pruža standardni način pronalaženja važnih direktorija putem app.getPath(), | Electron pruža standardni način pronalaženja važnih direktorija putem app.getPath(), | ||
| - | • appData: direktorij podataka aplikacije po korisniku [2] | + | * appData: direktorij podataka aplikacije po korisniku [2] |
| - | o Windows: %APPDATA% | + | |
| - | o Linux: $XDG_CONFIG_HOME ili ~/.config | + | |
| - | o macOS: ~/ | + | |
| - | • userData: direktorij za pohranjivanje konfiguracijskih datoteka aplikacije (prema zadanim postavkama appData plus naziv aplikacije [2] | + | |
| - | • sessionData: | + | |
| - | • crashDumps: direktorij u kojem se pohranjuju zapisi o rušenju sustava [2] | + | |
| Drugim riječima. Nakon što se sazna naziv aplikacije ili mape, često je moguće pronaći najvažnije dokaze bez nagađanja. Glavni podaci aplikacije obično se nalazi pod nečim poput AppName gdje točno ime ovisi o aplikaciji. | Drugim riječima. Nakon što se sazna naziv aplikacije ili mape, često je moguće pronaći najvažnije dokaze bez nagađanja. Glavni podaci aplikacije obično se nalazi pod nečim poput AppName gdje točno ime ovisi o aplikaciji. | ||
| Redak 52: | Redak 58: | ||
| Za forenziku, kolačići mogu prikazati: | Za forenziku, kolačići mogu prikazati: | ||
| - | • Koje su domene korištene | + | * Koje su domene korištene |
| - | • Stanje sesije, a ponekad i identifikatore | + | |
| - | • Prozore grubih aktivnosti (na temelju vremena stvaranja i isteka) | + | |
| Lokalna pohrana i pohrana sesija koriste LevelDB koji je pohranjen u direktorijima poput 'Local Storage/ | Lokalna pohrana i pohrana sesija koriste LevelDB koji je pohranjen u direktorijima poput 'Local Storage/ | ||
| Za forenziku, lokalna pohrana i pohrana sesije mogu: | Za forenziku, lokalna pohrana i pohrana sesije mogu: | ||
| - | • Sadržavati korisničke postavke, tokene i stanje aplikacije (localStorage) | + | * Sadržavati korisničke postavke, tokene i stanje aplikacije (localStorage) |
| - | • Tragove ovisno o tome kako aplikacija radi (sessionStorage) | + | |
| Ranije spomenuti LevelDB koji se koristi za pohranu IndexedDB podataka na disk. [8] Može pohranjivati velike strukturirane podatke kao što su pred memorirane poruke, izvan mrežni podaci ili dokumenti. A sama pred memorija diska pohranjuje resurse dohvaćene s weba kako bi im se kasnije moglo brzo pristupiti. [9] Pred memorija diska može uključivati zaglavlja zahtjeva i sadržaja, ovisno o vrsti pred memorije. Tu onda ima slika, skripti i ponekada podataka o odgovorima. Koje su domene ili usluge kontaktirane, | Ranije spomenuti LevelDB koji se koristi za pohranu IndexedDB podataka na disk. [8] Može pohranjivati velike strukturirane podatke kao što su pred memorirane poruke, izvan mrežni podaci ili dokumenti. A sama pred memorija diska pohranjuje resurse dohvaćene s weba kako bi im se kasnije moglo brzo pristupiti. [9] Pred memorija diska može uključivati zaglavlja zahtjeva i sadržaja, ovisno o vrsti pred memorije. Tu onda ima slika, skripti i ponekada podataka o odgovorima. Koje su domene ili usluge kontaktirane, | ||
| Redak 69: | Redak 75: | ||
| U praksi zapisnici mogu biti: | U praksi zapisnici mogu biti: | ||
| - | • Zapisnici aplikacije (ako ih aplikacija zapisuje) | + | * Zapisnici aplikacije (ako ih aplikacija zapisuje) |
| - | • Zapisnici ažuriranja | + | |
| - | • Zapisnici renderera i rušenja sustava (može se nadjačati s app.setPath(' | + | |
| - | • Zapisnici otklanjanja pogrešaka (ponekad ih omogućuju programeri) | + | |
| Valja istaknuti izvještaje o rušenju sustava jer mogu sadržavati dijelove memorije u trenutku rušenja. Čak i ako istražitelj ne analizira u potpunosti izvatke, prisutnost izvatka o padu sustava može pokazati da je aplikacija instalirana i korištena, da je došlo do rušenja u određeno vrijeme, te potencijalno koja je verzija aplikacije bila pokrenuta. | Valja istaknuti izvještaje o rušenju sustava jer mogu sadržavati dijelove memorije u trenutku rušenja. Čak i ako istražitelj ne analizira u potpunosti izvatke, prisutnost izvatka o padu sustava može pokazati da je aplikacija instalirana i korištena, da je došlo do rušenja u određeno vrijeme, te potencijalno koja je verzija aplikacije bila pokrenuta. | ||
| Redak 89: | Redak 95: | ||
| Nakon što je utvrđeno da se radi o Electron aplikaciji najbolje je prvo potražiti sljedeće stavke unutar userData mape: | Nakon što je utvrđeno da se radi o Electron aplikaciji najbolje je prvo potražiti sljedeće stavke unutar userData mape: | ||
| - | • Cookies (često SQLite baza podataka) | + | * Cookies (često SQLite baza podataka) |
| - | • Local Storage / leveldb | + | |
| - | • Session Storage | + | |
| - | • IndexedDB | + | |
| - | • Cache | + | |
| - | • Crashpad | + | |
| - | • Mapa Logs | + | |
| Cilj nije samo pronaći jedan artefakt, već povezati više tragova kako bi se odgovorilo na pitanje kada je aplikacija korištena, s čime je kontaktirala i što je lokalno pohranila. | Cilj nije samo pronaći jedan artefakt, već povezati više tragova kako bi se odgovorilo na pitanje kada je aplikacija korištena, s čime je kontaktirala i što je lokalno pohranila. | ||
| Redak 104: | Redak 110: | ||
| Za forenzičkog istražitelja, | Za forenzičkog istražitelja, | ||
| - | • Neki podaci mogu biti čitljivi samo u istom korisničkom kontekstu | + | * Neki podaci mogu biti čitljivi samo u istom korisničkom kontekstu |
| - | • Izvan mrežna analiza može biti ograničena ako nemate pristup potrebnim ključevima | + | |
| - | • Pravna i etička pravila su važna jer pokušaji dešifriranja mogu postati vrlo osjetljivi | + | |
| Electron aplikacije zapisuju puno podataka u pred memoriju i bazu podataka. Neki od njih se često prepisuju. Na SSD-ovima, TRIM i sakupljanje smeća mogu smanjiti mogućnost oporavka izbrisanih artefakata. Također, pred memorije preglednika mogu dizajnom izbaciti stare unose. [9] Neke Electron aplikacije koriste jedan zadani profil, ali druge mogu stvoriti više sesija ili prilagođenih lokacija. | Electron aplikacije zapisuju puno podataka u pred memoriju i bazu podataka. Neki od njih se često prepisuju. Na SSD-ovima, TRIM i sakupljanje smeća mogu smanjiti mogućnost oporavka izbrisanih artefakata. Također, pred memorije preglednika mogu dizajnom izbaciti stare unose. [9] Neke Electron aplikacije koriste jedan zadani profil, ali druge mogu stvoriti više sesija ili prilagođenih lokacija. | ||