Youtube as a covert channel

Izvor: SIS Wiki
Skoči na: orijentacija, traži

Sadržaj

Uvod u steganografiju i tajne kanale

Steganografija je disciplina koja se bavi sakrivanjem informacija, koristeći se metodama koje će sakriti tu poruku na takav način da ju je nemoguće intiutivno pročitati. Samo ime "steganografija" dolazi iz dviju stranih riječi koje bi u prijevodu značile "sakriveno pisanje". U povijesti su se koristili različita pomagala kako bi se postigla steganografija. Primjeri postizanja steganografije su putem uporabe voska, ili nevidljive tinte. Poruka bi se sakrila te bi ju samo odabrane osobe znale di je, i kako je sakrivena.

U sadašnjosti, steganografija je ostala važan faktor u sigurnosti. Ipak, kod sigurnosti informacijskog sustava se više ne koristi vosak, ili nevidljiva tinta, već različiti multimedijski sadržaji. Dakle, ono što se u moderno vrijeme radi je da se neki tajni tekst sakrije u image, audio te video sadržaj. Tako sakriven sadržaj ne treba ni biti kriptiran, ali je važno spremiti ga na mjesto koje će odašiljati informacije, a koje nije predviđeno za tu svrhu. Takvi mehanizmi zovu se tajni kanali, odnosno "covert channels".

Za svrhu ovog projekta, tajni kanal trebao bi biti Youtube. Dakle, problematika projekta bila je da se tajni tekst spremi u audio sadržaj te se kao takav uploada na Youtube. U narednim poglavljima ću objasniti na koji sam način spremio tajni tekst u audio file te uploadao isti na Youtube.

Za sakrivanje teksta u audio sadržaj, koristio sam dobro poznatu operaciju supstitucije bita najmanjeg značaja, odnosno "Least Significant Bit" switching. Za ovu svrhu kreirao sam novi Visual Studio C# projekt te skinuo NAaudio nuget package, koji je specijaliziran za upravljanje MP3 audio sadržajem.


Algoritam za spremanje teksta u audio sadržaj

Algoritam za sakrivanje teksta u audio file putem LSB switchinga radi na način da korisnik unese mp3 sadržaj te tajni tekst kao input. Klikom na gumb "Convert to MP3", aplikacija otvara memory stream tog mp3 sadržaja. Iz memory streama se otvara Mp3FileReader, koji dolazi od NAudio projekta. Mp3FileReader objekt sada ima mogučnost pročitati svaki MP3 okvir, engl. "frame" kojeg sadržava uneseni MP3 file. Algoritam tako čita svaki frame, sprema prva 4 bajta te ih ne dira iz razloga što su prva 4 bajta zaglavlja MP3 okvira, a svaki idući bajt tog okvira pretvara u binary zapis. Takav zapis nam sada daje mogučnost da zadnji bit (bit najmanjeg značaja) zamijenimo sa prvim bitom kojeg sadržava tajni tekst. Naravno, to znači da smo i tajni tekst pretvorili u binarni zapis, kako bi mogli zamjenjivati najmanje značajne bitove audio sadržaja sa tajnim tekstom.

Svi bajtovi iz zaglavlja okvira te bajtovi nad kojima je izvršen LSB switching, spremaju se u listu bajtova. Kada algoritam izvrti sve MP3 okvire i unesu se svi bitovi tajnog teksta u mjesta najmanje značajnih bitova u tijelu MP3 okvira, kreira se novi MP3 sadržaj u kojeg se sprema byte sadržaj te liste. Takav novi audio sadržaj će biti funkcionalni MP3 sadržaj koji će u sebi sadržavati sakriveni tekst.

<img source="sakrivanje_teksta.jpg alt="Sakrivanje teksta u mp3 format">Sakrivanje teksta u mp3 format<"/img>


Sakrivanje teksta.jpg


Korištenje Youtube-a kao tajni kanal

Kada smo sakrili tekst u MP3 sadržaj, taj sadržaj sada trebamo spremiti u neki tajni kanal. Za potrebe ovog projekta to je Youtube. Kod Youtube-a je problem to što postoje predefinirani uvjeti za upload sadržaja na taj servis. Naime, Youtube prihvača MP4 sadržaj, odnosno video sadržaj, a mi imamo MP3 sadržaj. Osim toga, Youtube ima i predefinirane zahtjeve za frame rate MP4 formata, Bitrate, Codec te ostale sitnice koje su odstupaju od našeg sadržaja koji je u MP3 formatu.

Možda ste pomislili da bi jednostavno rješenje bilo jednostavno spremiti novi sadržaj sa unesenim tajnim tekstom u MP4 format, ali ni to nažalost neće omogučiti upload na Youtube, zbog toga što Codec i Bitrate ne zadovoljavaju uvjete Youtube servisa.

Da bi riješili ovaj problem iskoristio sam alat Filmora. To je alat koji služi za kreiranje videa i video editing. Sa ovim alatom sam kreirao video u MP4 formatu, a koji sadržava audio sa tajnim tekstom. Tako kreiran MP4, sa ispravnim Bitrate-om i Codec-om omogučava upload na Youtube.


Projekt1.jpg


Upload na Youtube

Kako smo dobili sadržaj kojeg će Youtube prihvatiti za upload, sada treba samo izvršiti upload. Za tu svrhu sam kreirao OAuth 2.0 client ID kojeg je moguče generirati preko Google developers servisa. Također sam iskoristio javno dostupne primjere koda za upload na Youtube, s tim da je bilo potrebno unijeti vlastiti JSON kojeg sam preuzeo sa Google developers te bez kojeg ne bi mogao programski pristupiti Youtube servisu i izvršiti sami upload. Kada sam podesio sve potrebne zahtjeve, te naveo koji fajl bi se trebao uploadati, pokrenuo sam konzolnu aplikaciju koja je izvršila upload na Youtube.


Projekt3.jpg


Zaključak

Izrada ovog projekta je bila veoma zanimljiv proces. Naime, izrada samog algoritma za sakrivanje teksta u audio sadržaj je cijelo vrijeme rezultatirala novim sadržajem koji se nije mogao pokrenuti te je bio corruptan. To mi je cijelo vrijeme bio dokaz da algoritam ne radi dobro, a kada sam uspio pokrenuti novokreirani sadržaj, znao sam da je implementacija validna.

Osim tamog tehničkog dijela izrade projekta, shvatio sam koliko steganografija ima potencijala kod sigurnosti te kako se tajni kanali mogu pametno iskoristiti za sigurnost podataka. Otkrivanje teksta koji je sakriven u audio sadržaju koji se nalazi na tajnom kanalu je gotovo nemoguč, a pokušaj otkrivanja teksta je veoma izazovan i zanimljiv. U prilog tome govori i primjer steganografije kod kojeg je takozvani "Parker Warner Wright" [1] kreirao pomalo jeziv video pun steganografskog sadržaja, koji je doslovno zapalio internet dok nisu otkrili sve tajne poruke te na samom kraju i došli do autora istog sadržaja.


Projekt2.jpg

Osobni alati
Imenski prostori
Inačice
Radnje
Orijentacija
Traka s alatima