====== Analiza formata datoteke OVA i OVF iz perspektive forenzike ====== ===== Sažetak ===== Virtualnim strojevima je ostvareno većina sustava u oblaku te su postali skoro neophodni za uporabu pošto nude velike sigurnosne prednosti i portabilnost. Portabilnost je ostvarena s OVA i OVF datotečnim formatima čija otvorena specifikacija dopušta uporabu unutar različite programske podrške za virtualne strojeve. Formati u sebi nalaze sve informacije potrebne kako bi se virtualni stroj pokrenuo te je time pogodno istražiti kako doći do tih informacija i zadirati u datotečni sustav virtualnog stroja. Ključne riječi: forenzika; OVA; OVF; virtualizacija; virtualni stroj; datotečni sustav; ===== Video ===== Video uradak se nalazi na sljedećoj poveznici: https://ferhr-my.sharepoint.com/:v:/g/personal/bh51358_fer_hr/EWBCFc_40aZDvyZPUbuMH-YBjaPJ4AezmyEykvhL4JfPEQ?e=9VG8tL ===== Prezentacija ====== https://ferhr-my.sharepoint.com/:p:/g/personal/bh51358_fer_hr/EZu1cTPJTGVDpwNyj4YJyLEBoE5Zw-vl7zMwpJ9JjjADNA?e=GoZayb ===== Uvod ===== Postojanje više operacijskih sustava te različitih verzija samih operacijskih sustava, je prouzrokovalo problem u razvoju programske podrške koja se može pokretati na svim silnim mogućnostima operacijskih sustava. Time je došlo do podržavanja samo za određenih operacijskih sustava te ponekad samo i određenih verzija. Naime, ponekad je neki program neophodan za uporabu i ako nismo u mogućnosti pokrenuti program, nismo u mogućnosti izvršavanja zadatka. U tu svrhu su osmišljeni virtualni strojevi s kojima se može pokrenuti proizvoljni operacijski sustav unutar operacijskog sustava na našem računalu. Gostujući operacijski sustavi su pokrenuti u sigurnoj okolini za koju možemo proizvoljno odabrati koje mogućnosti im se pružaju, poput mrežnih sučelja, USB uređaja i slično. Pošto su se razvojem iznimno proširile mogućnosti koje se mogu pružati gostujućim operacijskim sustavima, pojavila se potreba da se sustav može lagano prenijeti na druga računala sa svim postavljenim postavkama i svim podacima u cijelini. U tu svrhu je svaka programska podrška za virtualne strojeve imala svoj format datoteka, ali s većom uporabom virtualnih strojeva se pojavila potreba za standarizacijom datoteka za prijenos strojeva. Time su standardizirani formati datoteka OVA i OVF za opis i prijenos strojeva. Formati su trenutno podržani u svim aktualnim programskim podrškama za virtualne strojeve te su najšire korišteni formati za virtualne strojeve općenito. Zbog široke primjene navedenih formata, odabrani su za forenzičku analizu. Za analizu će se koristiti Linux OVA datoteka iz 5. laboratorijske vježbe te će se pokušati izvući odgovori na određena pitanja vježbe. ===== Analiza OVA formata datoteke ===== Pretragom "ova file format" u web pregledniku, Google ponudi kratki opis OVA formata datoteke. {{:racfor_wiki:ova_i_ovf_formati:google_ova.png?500|}} tar format datoteke je jedan od prvih formata za spajanje više datoteka u jednu, tako zvano "arhiviranje". Naziv formata dolazi od "**__t__**ape **__ar__**chive" te je služio za zapisivanje datoteka na magnetsku vrpcu. Potpuni naziv OVA datoteke je "Open Virtual Appliance". Virtual Appliance je u specifikaciji DSP0243 [2] opisan kao sljedeće: > a service delivered as a complete software stack installed on one or more virtual machines Opisom se ističe da zasebna OVA datoteka sadrži svu potrebnu programsku podršku. Time se podrazumijeva operacijski sustav te sva programska podrška i podaci postavljeni u datotečnom sustavu. ==== Analiza binarnog sadržaja ==== Budući da je OVA format datoteke zapravo tar format, potrebno je istražiti strukturu tar formata datoteke. Tablica na [[https://www.ibm.com/docs/en/zos/2.4.0?topic=formats-tar-format-tar-archives|stranicama IBM-a]] prikazuje specifikacije starog UNIX formata te novijeg proširenog USTAR formata. {{:racfor_wiki:ova_i_ovf_formati:hxd.png?700|}} Za analizu binarnog sadržaja koristimo hex editor-e, konkretno [[https://mh-nexus.de/en/hxd/|HxD]] u ovom primjeru. Nakon otvaranja OVA datoteke u HxD, vidimo binarni sadržaj datoteke u programu. Na početku se nalazi niz znakova "Lab4_ubuntu.ovf" te se nadalje može pratiti prethodno navedena specifikacija tar formata. Unutar zaglavlja datoteke je vidljiv niz znakova "ustar" te se time prepoznaje korištenje USTAR formata. Datoteke unutar tar formata se mogu postaviti u proizvoljno odabranom redoslijedu. Naime, specifikacija OVA formata navodi određeni redoslijed. Format je sljedeći: - OVF opisna datoteka - OVF manifest (nije obavezan) - OVF certifikat (nije obavezan) - datoteke unutar //References// sekcije unutar opisne datoteke u redoslijedu kojem su navedene - OVF manifest (nije obavezan) - OVF certifikat (nije obavezan) Time možemo vidjeti da se na početku nalazi OVF opisna datoteka. ==== "Raspakiravanje" datoteke ==== Budući da je OVA format tar format, moguće je otvoriti datoteku u alatima za arhiviranje poput 7-Zip te sadržane datoteke "raspakirati". {{:racfor_wiki:ova_i_ovf_formati:7zip.png?600|}} Time dobivamo prethodno navedenu OVF opisnu datoteku te dodatnu datoteku "Lab4_ubuntu-disk001.vmdk" koja je "slika" virtualnog diska. Slika sadrži sve podatke u datotečnim sustavima virtualnog stroja te će se njezinom naknadnom analizom odgovoriti na pojedina pitanja laboratorijske vježbe. ===== Analiza OVF formata datoteke ===== Open Virtualization Format, ili skraćeno OVF, specifikacija zapravo opisuje cijelu strukturu direktorija koji sadrži sve datoteke potrebne za pokretanje sustava. Datoteka koja ima nastavak .ovf se naziva OVF opisnom datotekom te ona opisuje mogućnosti sustava i sve datoteke koje se nalaze unutar direktorija. U tu svrhu je OVF opisna datoteka zapravo formata XML (eXtensible Markup Language). U sljedećim poglavljima se detaljno analiziraju polja unutar OVF opisne datoteke. ==== Čitanje XML sadržaja ==== XML datoteke, kao što je zapravo OVF opisna datoteka, je moguće otvoriti u običnim uređivačima teksta, poput [[https://notepad-plus-plus.org/|Notepad++]]. {{:racfor_wiki:ova_i_ovf_formati:ovf.png?300|}} Datoteka je strukturirana u sekcije te se unutar svake sekcije opisuje određeni dio. ==== References ==== {{:racfor_wiki:ova_i_ovf_formati:references.png?400|}} Sekcija //References// opisuje sve resurse koji se dodatno nalaze unutar OVF direktorija. Resursi se opisuju jedinstvenim identifikatorom te URI-jem koji može biti relativna putanja do datoteke te također može biti i http i https URL. U ovoj se sekciji navode virtualni diskovi te se također ovdje mogu dodati i proizvoljne datoteke tipa ISO i sličnih formata. U primjeru je moguće vidjeti da se navodi "Lab4_ubuntu-disk001.vmdk" datoteka te joj se prirodaje ID "file1". ==== DiskSection ==== {{:racfor_wiki:ova_i_ovf_formati:disksection.png?600|}} Unutar //DiskSection// se navode svi virtualni diskovi koje sustav koristi. Za opis diska potrebno je upisati njegov željeni kapacitet (capacity) te identifikator diska (diskId). Referencu na datoteku (fileRef) je moguće izostaviti te će u tom slučaju se virtualni disk stvoriti pri prvom pokretanju. Ako je navedena referenca na datoteku, potrebno je i navesti format diska kako bih se mogao interpretirati. U primjeru je moguće vidjeti da se diskId postavlja na "vmdisk1", fileRef na "file1" koji je naveden u prethodnoj References sekciji te format sadrži URL na opis VMDK((Virtual Machine Disk)) formata slike. ==== NetworkSection ==== {{:racfor_wiki:ova_i_ovf_formati:network_section.png?600|}} //NetworkSection// sadrži sva mrežna sučelja koja su definirana za sustav. Za definiciju mrežnog sučelja je potrebno samo ime mrežnog sučelja. U primjeru su definirana dva sučelja, HostOnly i NAT. ==== VirtualSystem ==== {{:racfor_wiki:ova_i_ovf_formati:virtual_system.png?600|}} //VirtualSystem// sekcija se sastoji od više sekcija koje opisuju virtualni hardware i operacijski sustav. //OperatingSystem// sekcija sadrži informacije o operacijskom sustavu koji se pokreće u sustavu. Pri tome se postavlja jedinstveni identifikator svakog operacijskog sustava iz popisa navedenog na stranici dokumentacije [[https://schemas.dmtf.org/wbem/cim-html/2.49.0+/CIM_OperatingSystem.html|CIM_OperatingSystem.OSType]]. Time je moguće iz identifikatora saznati koji se operacijski sustav pokreće. {{:racfor_wiki:ova_i_ovf_formati:virtual_disk.png?600|}} {{:racfor_wiki:ova_i_ovf_formati:virtual_networks.png?600|}} U //VirtualHardware// sekciji se navodi ime sistema te svaki komad hardwarea koji postoji na virtualnom stroju. Najznačajniji su diskovi te mrežna sučelja. Kod diska je potrebno definirati koji virtualni disk je vezan za njega preko parametra "HostResource" Iako je OVF otvorena specifikacija, različite programske podrške znaju dodati dodatne informacije unutar njega. VirtualBox tako dodaje sekciju //vbox:Machine// koja sadržava dodatne informacije koje koristi samo VirtualBox. {{:racfor_wiki:ova_i_ovf_formati:vbox_machine.png?600|}} U primjeru je moguće pročitati da je operacijski sustav koji se pokreće Ubuntu 64-bitni, da je definiran jedan disk koji koristi "vmdisk1" naveden u sekciji //DiskSection// te dva mrežna sučelja povezana na sučelja unutar //NetworkSection//. ===== Analiza slike virtualnog stroja ===== VMDK te drugi formati slika se mogu analizirati s različitim alatima. Poneke je moguće otvoriti s alatima poput 7-Zip, no neke je potrebno otvarati u posebnim alatima. Pošto je u primjeru korišten Windows operacijski sustav, a virtualni stroj pokreće Linux operacijski sustav, nije moguće jednostavno otvoriti sliku budući da Linux koristi ext datotečne sustave, a Windows ih ne podržava. U tu svrhu je korišten alat [[https://www.diskinternals.com/linux-reader/|DiskInternals Linux Reader]]. U navedenom alatu je moguće otvoriti disk te čitati sve podatke unutar njega. {{:racfor_wiki:ova_i_ovf_formati:hidden_file.png?600|}} ===== Zaključak ===== OVA i OVF formati datoteka su dio otvorene specifikacije za opis i prijenos virtualnih strojeva. Jednostavni su za forenzičku analizu budući da je OVA datoteka zapravo tar datoteka, a OVF datoteka zapravo XML datoteka. U njima je moguće pročitati sve specifikacije virtualnog stroja poput operacijskog sustava koji se pokreće te kojeg formata su slike virtualnih diskova i time u krajnosti dobivamo mogućnost otvaranja datotečnog sustava i čitanje svih podataka koji se nalaze na njemu. ===== Literatura ===== [1] [[https://www.ibm.com/docs/en/zos/2.4.0?topic=formats-tar-format-tar-archives|IBM: tar - Format of tar archives]] [2] [[https://www.dmtf.org/sites/default/files/standards/documents/DSP0243_1.1.0.pdf|DMTF: Open Virtualization Format Specification 1.1.0]] [3] [[https://www.dmtf.org/sites/default/files/standards/documents/DSP0243_2.1.1.pdf|DMTF: Open Virtualization Format Specification 2.1.1]] [4] [[https://docs.vmware.com/en/VMware-vSphere/7.0/com.vmware.vsphere.vm_admin.doc/GUID-AE61948B-C2EE-436E-BAFB-3C7209088552.html|VMware OVF and OVA File Formats and Templates]]