Sadržaj

Forenzička analiza Signal aplikacije

Sažetak

S rastom popularnosti pametnih telefona, narasla je i popularnost komunikacije društvenim medijima, a među njima nesumnjivo dominiraju aplikacije za slanje poruka kao što su WhatsApp i Viber. Usluge za brzo slanje poruka, poznatije pod engleskim nazivom instant messaging services, široko su prihvaćene u svakodnevici ne samo mladih ljudi, nego pripadnika svih životnih dobi, upravo zbog toga što pružaju jednostavan način za povezivanje s drugim korisnicima. Pružatelji takvih usluga koriste napredne algoritme za enkripciju kako bi osigurali sigurnu komunikaciju s kraja na kraj. Kada su uočeni određeni sigurnosti propusti u aplikaciji WhatsApp, dio korisnika diljem svijeta zamijenio ga je Signalom, aplikacijom poznatom po svojim snažnim sigurnosnim svojstvima kojima čuva privatnost svojih korisnika. Ovaj rad predstavit će upravo dobre prakse i poželjna svojstva sigurnosti koje nudi aplikacija Signal, kao i dati pregled njezine forenzičke analize.

Uvod

Neke aplikacije poput Telegrama ili WeChata strogo skrivaju svoj izvorni kod, no izvorni kod aplikacije Signal javno je dostupan u svim inačicama, od mobilnih za iOS i Android do onih za računala operacijskih sustava Windows, MacOS i Linux. Na ovaj način njegovi programeri pozivaju stručnjake za sigurnost da prepoznaju slabe točke aplikacije te isprave propuste i dodatno ojačaju sigurnost. Poruke poslane u Signal aplikaciji enkriptirane su Signalovim Prokolom, koji osigurava sigurnosna svojstva poput povjerljivosti, integriteta i autentifikacije. Pri komunikaciji se koristi enkripcija s kraja na kraj (eng. end-to-end encryption, E2EE), što znači da je poruka pošiljatelja enkriptirana na način da samo primatelj kojemu je poruka namijenjena može dekriptiranjem doći do njezina sadržaja.

Treba imati na umu i drugu stranu medalje, a to je da nisu svi korisnici usluga za brzo slanje poruka pošteni. Budući da i organizirani kriminalci nerijetko koriste usluge aplikacija za slanje poruka, postaje sve važnije doći do digitalnih dokaza. Kako Signal koristi enkripciju s kraja na kraj, detaljnije objašnjenu u zadnjem dijelu rada, ključni izvor dokaza upravo su podatci na samome fizičkom uređaju.

U prvome dijelu rada dan je sažet pregled osnovnih funkcionalnosti aplikacije, nakon čega je forenzički analiziran sadržaj koji aplikacija pohranjuje lokalno na uređaju te je konačno opisan sustav enkripcije s kraja na kraj pregledom Double Ratchet algoritma kao svojstva koje je Signalu dalo prednost nad drugim aplikacijama.

Registracija i korištenje aplikacije iz perspektive korisnika

Signal je jedna od aplikacija koje se vežu s telefonskim brojem, pa je tako registracija korisnika slična drugim aplikacijama s tim istim svojstvom – korisnik prima jednokratnu lozinku putem SMS-a, koju zatim upisuje u aplikaciji kao dokaz posjedovanja broja. Osim uobičajenog izmjenjivanja poruka, postoji mogućnost grupnih razgovora, uspostavljanja poziva i videopoziva, kao i dodavanje avatara, imena profila, korisničkih bilješki, slanje privitaka s multimedijskim sadržajem, a moguće je i blokirati druge korisnike.

Sigurnosna kopija

Stvaranje sigurnosne kopije

Korisnik može odabrati stvaranje sigurnosne kopije razgovora, prilikom čega odabire mjesto pohrane na uređaju. Stvorena datoteka sa sigurnosnom kopijom enkriptirana je nasumično generiranom lozinkom dugom 30 znamenki te se sprema na uređaj s početkom Signal i ekstenzijom .backup. Sigurnosnu kopiju moguće je učitati na računalu, gdje ju je moguće dekriptirati koristeći Signalov naredbeni redak predviđen upravo za to. U slučaju gubitka lozinke za sigurnosnu kopiju, korisnik može stvoriti novu sigurnosnu kopiju bez potrebe za upisivanjem stare lozinke ili brisanjem stare kopije. Izgled korisničkog sučelja pri izradi sigurnosne kopije prikazan je na Slici 1.0.

Slika 1.0 Izgled zaslona pri korisničkom odabiru sigurnosne kopije:

Slika 1.0 Izgled zaslona pri korisničkom odabiru sigurnosne kopije

Pod pretpostavkom da nije poznata lozinka sigurnosne kopije, kopija postaje praktički beskorisna za forenzičku analizu. Ipak, budući da je moguće stvoriti novu sigurnosnu kopiju, jednom kada je uređaj u rukama forenzičara, on može stvoriti novu sigurnosnu kopiju s novom, po želji odabranom lozinkom. Takvu kopiju zatim lako može pohraniti na računalu s ciljem olakšavanja i ubrzavanja procesa forenzičke analize.

Analiza sadržaja sigurnosne kopije

Dekriptirani direktorij sigurnosne kopije sadrži datoteku baze podataka naziva database.sqlite, nekoliko binarnih datoteka i datoteka zajedničke preferencije. Binarne datoteke sadrže podatke o dijeljenim privitcima, a mogu se analizirati raznim alatima, primjerice softverom kao što je HexEditor. Sadržaj jedne takve datoteke u HexEditoru prikazan je na Slici 1.1. Ciljanim promatranjem zaglavlja mogu se uočiti potpisi za pojedinačne formate datoteka kao što je .jpeg (oznaka FFD8FFE0).

Slika 1.1 Sadržaj binarne datoteke (.jpeg) iz sigurnosne kopije, otvoren u programu HexEditor [preuzeto s [2]]:

Slika 1.1 Sadržaj binarne datoteke (.jpeg) iz sigurnosne kopije, otvoren u programu HexEditor [preuzeto s [2]]

U datoteci database.sqlite nalaze se podatci o kontaktima, zapisi o odlaznim, dolaznim i propuštenim pozivima i videopozivima, informacije o grupnim razgovorima, korisničkom profilu, bilješkama, poruke i multimedijski sadržaj, uključujući fotografije, videozapise, zvukovne zapise, dokumente, lokacije i ostale.

Na Slici 1.2 vidljiva je struktura baze podataka. Sadržaji nekih od datoteka izdvojeni su u nastavku.

Slika 1.2 Struktura baze podataka sigurnosne kopije [preuzeto s [2]]:

Slika 1.2 Struktura baze podataka sigurnosne kopije [preuzeto s [2]]

Za dobivanje sadržaja u nastavku izvršene su naredbe prema uputama s izvora [3]. Najprije je potrebno instalirati odgovarajuću binarnu datoteku za računalo na kojem će se obavljati forenzička analiza, koju je moguće preuzeti s [4]. Računalo kojim se provodila forenzička analiza u ovome radu bilo je Ubuntu, pa su tako naredbe koje je bilo potrebno izvršiti:

mv ~/Downloads/signal-back_linux_amd64 ~/signal-back chmod +x ~/signal-back

Nakon toga, prema nastavku uputa s [3], poruke iz sigurnosne kopije pohranjene su u .csv datoteku, odakle ih je bilo lako proučavati. Naredba koja je omogućila prebacivanje poruka u .csv datoteku je:

./signal-back format -f CSV -o backup.csv signal-xxx.backup

Na Slici 1.3 prikazane su poruke s jasnim tekstovima, odnosno odabrani retci i stupci tablice backup.csv dobivene na ranije opisani način. Poruke kojima je type postavljen na 10485783 jesu poslane, a kod poruka s poljem type vrijednosti 10485780 radi se o primljenim porukama. Posljednji stupac vidljiv na Slici 1.3 odgovara jasnom tekstu poslane poruke, a stupac lijevo od njega ranije spomenutom type polju. Tako je, primjerice, u retku 9055 poruka “Kad zelis da budem za kompom?” poslana, a poruka u retku ispod “za 45 do sat” primljena. Za njome slijedi u retku 9057 poruka s tekstom “Ok” i oznakom tipa 10485783, u znak da se radi o poslanoj poruci.

Slika 1.3 Isječak sadržaja datoteke backup.csv s porukama:

Slika 1.3 Isječak sadržaja datoteke backup.csv s porukama

U trećem stupcu, primjerice kod poruke jasnog teksta “puna mi je memorija” u retku 9053, broj 1652453393148 predstavlja UNIX vrijeme slanja poruke: 13. svibnja 2022. 2:49:53.148 PM. Idući redak, s jasnim tekstom “haha” odgovara poruci poslanoj u trenutku 1652453393274, što odgovara vremenu 2:49:53.274 PM u istom danu, dakle samo djelić trenutka nakon prve. U stupcu nakon prikazano je vrijeme poslužitelja. Može se uočiti da je tako ranije spomenuta poruka iz retka 9053 poslana u 2:49:53.148 PM, a vrijeme poslužitelja je u 2:49:50.601 PM, nepunu sekundu kasnije.

Sljedeće dvije naredbe korištene su kako bi se sav medijski sadržaj iz sigurnosne kopije pohranio u direktorij imena signal-media, te kako bi se SMS poruke pohranile u .xml datoteku pod imenom backup.xml.

./signal-back extract -o signal-media signal-xxx.backup ./signal-back format -f XML -o backup.xml signal-xxx.backup

Na Slici 1.4 vidljiv je sadržaj direktorija signal-media nastalog gornjim naredbama. Osim fotografija u .jpg formatu, direktorij sadrži i glasovne zapise (ekstenzija .unknown) te videe.

Slika 1.4 Sadržaj direktorija signal-media

Algoritam Double Ratchet

Budući da su korisnici zamjerali nedostatak enkripcije u aplikaciji Whatsapp - opravdano, jer su se informacije naprije slale u jasnom tekstu do 2012. godine kada je uvedena enkripcija - aplikacija je konačno počela koristiti enkripciju s kraja na kraj tek u travnju 2016. godine [5]. S druge strane, u aplikaciju Signal enkripcija s kraja na kraj uvedena je još u veljači 2014., dokazujući korisnicima da je privatnost njihove komunikacije od iznimne važnosti [6].

Jedan od načina ostvarenja enkripcije s kraja na kraj je korištenje Double Ratchet algoritma. Osim u Signalu, njegove se inačice koriste i u drugim popularnim aplikacijama poput WhatsAppa i Messengera. Ovaj sustav zadovoljava velik broj poželjnih sigurnosnih svojstava, od kojih su vjerojatno najsnažniji unaprijedna sigurnost (eng. perfect forward secrecy) i oporavak od kompromitiranja (eng. brake-in recovery ili post-compromise security).

Double Ratchet omogućava razmjenu enkriptiranih poruka između dvaju korisnika koristeći dijeljeni ključ. Prvi dio protokola čini tzv. Symmetric Key Ratchet u kojem svaka primljena, kao i svaka poslana poruka, biva enkriptirana jedinstvenim simetričnim ključem koji je izveden iz dijeljenog ključa funkcijom za derivaciju ključa. Budući da je funkcija za derivaciju ključa ireverzibilna, čak i ukoliko napadač uspije saznati izvedeni ključ, on se ne može iskoristiti za dekripciju poruka iz prošlosti. Time je zadovoljeno svojstvo unaprijedne sigurnosti.

Drugi dio protokola čini tzv. Diffie-Hellman Ratchet. U njemu sudionici razmjenjuju Diffie-Hellman javne ključeve iz kojih zatim dolaze do novih dijeljenih ključeva. Budući da tako protokol može uspostaviti sigurnu komunikaciju između sudionika u budućnosti, čak i ako je kompromitiran dijeljeni ključ, zadovoljeno je i svojstvo oporavka od kompromitiranja.

Na službenoj stranici Signal aplikacije [1] detaljan je opis rada algoritma sa svim koracima i shemama koje omogućuju rekonstrukciju algoritma, a isječak jedne od shema dan je na Slici 1.5.

Slika 1.5 Shema Double Ratchet protokola aplikacije Signal [preuzeto s [1]]:

Slika 1.5 Double Ratchet protokola aplikacije Signal [preuzeto s [1]]

Diffie-Hellman razmjena javnih ključeva funkcionira na sljedeći način. Prije početka komunikacije, između korisnika postoji dijeljena tajna, nakon čega oba korisnika generiraju svaki svoj par ključeva, jedan javni i jedan privatni. Tada drugome korisniku šalju svoj javni ključ. Algoritam za derivaciju javnih ključeva tako je matematički osmišljen da se primjenom algoritma na javni ključ osobe A i privatni ključ osobe B dobije jednak izlaz kao primjenom algoritma na privatni ključ osobe B i javni ključ osobe A. Na taj način oba sudionika na kraju imaju isti izlaz, koji će predstavljati njihov novi dijeljeni ključ.

Slika 1.6 Slikovit prikaz Diffie-Hellmanovog algoritma razmjene ključeva [preuzeto s [7]]:

Slika 1.6 Slikovit prikaz Diffie-Hellmanovog algoritma razmjene ključeva

Zaključak

Pojačano korištenje aplikacija za čavrljanje u svakodnevnom životu gotovo svih sudionika ljudskog društva, bez obzira na dob, spol, narodnost i namjere, iziskuje da takve aplikacije imaju nepogrešive sigurnosne protokole. Istovremeno, u slučaju da se takve aplikacije koriste u neetičke svrhe, mora biti moguće prikupiti digitalne dokaze. Kako je pokazano u ovome radu, aplikacija Signal jedna je od aplikacija za čavrljanje koja na mrežnoj strani ima u praksi neprobojne sigurnosne protokole kao što su Double Ratchet u enkripciji s kraja na kraj. Stoga je iznimno važno da zaplijenom fizičkog uređaja forenzičarima bude omogućena analiza sadržaja podijeljenog u okruženju aplikacije. U radu je ne samo dokazano da je moguće, nego je i dan prikaz forenzičke analize sadržaja preko sigurnosne kopije stvorene na fizičkom uređaju. Dani su koraci i naredbe koje su korištene za pohranjivanje sigurnosne kopije, njezino dekriptiranje te raspakiravanje u direktorije s odvojenim sadržajima - poruke i medijski sadržaj. Praćenjem opisanih koraka moguće je rekonstruirati postupak na vlastitom uređaju i ponoviti forenzičku analizu.

Vanjski sadržaj

Poveznica na prezentaciju seminara:

https://ferhr-my.sharepoint.com/:f:/g/personal/ew52635_fer_hr/EgsNgO7wbbJNq06fTbnuZ3gBh8aAFUeJY4NF4_nnoWW8Qw?e=ouTytp

Literatura

[1] https://signal.org/docs/specifications/doubleratchet/

[2] S. Krishnapriya, V. S. Priyanka and S. S. Kumar.Forensic Extraction and Analysis of Signal Application in Android Phones. 2021 International Conference on Forensics, Analytics, Big Data, Security (FABS), Bengaluru, India, 2021, pp. 1-6, doi: 10.1109/FABS52071.2021.9702702

[3] https://kabanashvili.com/blog/post/backup-and-decrypt-signal_1f91be7ok9jvmqrf

[4] https://github.com/xeals/signal-back/releases

[5] https://en.m.wikipedia.org/wiki/WhatsApp

[6] https://en.m.wikipedia.org/wiki/Signal_(software)

[7] https://en.wikipedia.org/wiki/Diffie%E2%80%93Hellman_key_exchange#/media/File:Diffie-Hellman_Key_Exchange.svg