Steganograafia failisĂŒsteemis

Tere, Habr.

Soovin tutvustada teile vÀikest projekti steganograafiast, mis on tehtud vabal ajal Ôppimisest.

Tegin projekti info peitmise kohta failisĂŒsteemis (edaspidi FS).
See vÔib olla rakendatav konfidentsiaalse info varastamiseks hariduslikel eesmÀrkidel.

Steganograafia failisĂŒsteemis

Katseseadmeks valiti pÀris vana Linuxi FS ext2.

Rakendamine

Rakendamise kaalutlused

Kui korralikult "peenestada" standard ext2, siis saab asendada niiöelda Superblockid, kus on antud pĂ”hiteave sĂŒsteemi kohta. Minu poolt leiti Ploki Bitmaps ja Inode'i tabel.. Peaaegu kohe sĂŒndis idee salvestada teavet FS-i hetkel tĂŒhjadesse plokkidesse. NĂŒĂŒd tuli vĂ€lja mĂ”elda kaitse programmeerija eest, relvastatud hex-redaktoriga.

Kui hoida peidetud teavet ilma krĂŒpteerimiseta, siis isegi hoolimata selle hajutatusest FS-is, jÀÀb see ikkagi liiga silmatorkavaks, eriti kui programmeerija teab, mida otsida. SeetĂ”ttu otsustati krĂŒpteerida kĂ”ik algse faili plokid. Valisin plokkkrĂŒpteerimise AES, kuid nagu te mĂ”istate, ei ole see pĂ”himĂ”tteline.

Kasutades plokkide eristamiseks lugemise ajal, otsustati iga ploki algusesse lisada spetsiaalne mĂ€rk. See mĂ€rk krĂŒpteeriti sĂ”ltuvalt ploki numbrist algses failis. Selline nipp vĂ”imaldas mitte ainult vajalikku plokki leida, vaid ka tuvastada nende Ă”ige jĂ€rjekord.

SĂŒsteemi töö ĂŒldpĂ”himĂ”te.

Steganograafia failisĂŒsteemis

Salvestamise algoritm

Punktide kaupa:

  • Esmalt salvestage algsesse failisĂŒsteemi mingi teave;
  • Kustutage see teave (mitte tingimata kogu);
  • Fail peitmiseks jagada plokkideks, millel on sama pikkus, lisades mĂ€rgi;
  • KrĂŒpteerida need plokid;
  • Paigutada krĂŒpteeritud plokid FS-i tĂŒhjadesse plokkidesse.

Plokkdiagrammide armastajatele

Allpool on esitatud salvestamise algoritmi plokkdiagramm. Algoritm saab neli faili sisendiks:
- Muudetud failisĂŒsteemi pilt;
- Fail, mis lÀheb steganograafia alla;
- AES-ks krĂŒpteerimise vĂ”ti;
- MĂ€rgiga fail.
Steganograafia failisĂŒsteemis

Tasub mĂ€rkida, et sellel algoritmil on ĂŒks puudus: pĂ€rast faili salvestamist FS-i, sisestada URL-i (see ei ole kunagi töötanud, kuid sisestusala lubas URL-i mÀÀrata, mis segas kasutajaid). salvestada midagi uut failisĂŒsteemi, kuna iga uus teave vĂ”ib sattuda nendesse plokkidesse, mis me oleme mÀÀranud meie steganograafilisele failile, tĂ”si, see avab vĂ”imaluse "kiireks jĂ€lgede peitmiseks".

Aga on ĂŒsna selge, kuidas seda parandada: on vajalik failisĂŒsteemi plokkide kirjutamise algoritmi ĂŒmberkirjutamine. See on arusaadav, kuid erakordselt töömahukas ĂŒlesanne.
Proof Of Concept'i jaoks ei ole ma seda rakendanud.

Tulemusena saab olema jĂ€rgmised muutused failisĂŒsteemis, nii nĂ€eb failisĂŒsteem vĂ€lja enne steganograafiat (enne on salvestatud helifail).
Steganograafia failisĂŒsteemis
Ja nii nĂ€eb failisĂŒsteem vĂ€lja koos juba steganograafilise teabega.
Steganograafia failisĂŒsteemis

Lugemise algoritm

Punktide kaupa:

  • Teades vĂ”tit ja markerite koostamise meetodit, koostada esimesed N markereid, tagades et N, korrutatud failisĂŒsteemi ploki pikkusega, on suurem steganograafilise faili pikkusest;
  • Otsida failisĂŒsteemist plokke, mis algavad markeritest;
  • Dekodeerida saadud plokid ja eraldada markerid;
  • Koguda saadud plokid Ă”iges jĂ€rjestuses ja saada algne fail.

Plokkdiagrammide armastajatele

Allpool on esitatud algoritmi kirjutamise vooskeem. Algoritmi sisendiks on kolm faili:
-FailisĂŒsteemi image;
- AES-ks krĂŒpteerimise vĂ”ti;
- MĂ€rgiga fail.
Steganograafia failisĂŒsteemis

PĂ€rast programmi töötamist ilmub fail Read, mis on steganograafilisest failisĂŒsteemist ekstraheeritud fail; kui vĂ”ti vĂ”i marker oli valesti mÀÀratud, on fail Read tĂŒhi.
(ilusate asjade armastajatele on vÔimalik lisada mitte ainult faili, vaid ka "pÀist", mis sisaldab metaandmeid: faili nimi, Ôigused, viimase muutmise aeg jne.)

KĂ€ivitamise automatiseerimine

Mugavuse huvides on kirjutatud bash skriptid, mis automatiseerivad kÀivitamise Linuxis (katsetatud Ubuntu 16.04.3 LTS peal).
AnalĂŒĂŒsime kĂ€ivitamist samm-sammult.
Salvestamine:

  1. sudo Copy_Flash.sh "DEVICE" — saame failisĂŒsteemi pildi DEVICE'ist (mĂ€lupulk);
  2. .\/Write.sh "FILE" "KEY" "MARKER" – loome virtuaalse keskkonna, allalaadime vajalikud raamatukogud ja kĂ€ivitame kirjutamis skripti;
  3. sudo .\/Write_Flash.sh "DEVICE" – salvestame muudetud failisĂŒsteemi uuesti DEVICE'ile.

Lugemine:

  1. sudo Copy_Flash.sh "DEVICE" — saame failisĂŒsteemi pildi DEVICE'ist (mĂ€lupulk);
  2. .\/Read.sh "KEY" 'MARKER' — loome virtuaalse keskkonna, allalaadime vajalikud raamatukogud ja kĂ€ivitame lugemis-skripti;
  3. Avame praeguses kataloogis faili Read – see on steganograafiline teave.

KokkuvÔte

See steganograafia meetod vajab tĂ”enĂ€oliselt tĂ€iendavat töötlemist, testimist ja laiemat rakendamist populaarsematele failisĂŒsteemidele, nagu Fat32, NTFS ja ext4.
KĂ€esoleva töö eesmĂ€rgiks oli nĂ€idata pĂ”himĂ”tet, mille abil saab teostada peidetud teabe salvestamist failisĂŒsteemis.
Sarnaste algoritmide abil on vĂ”imalik teavet ohutult salvestada. Kui sĂŒsteemi, mille puhul on teada vĂ”ti, saab murda, kuigi see nĂ”uab pikka algoritmi, siis ilma vĂ”tmeta tundub see sĂŒsteem mulle tĂ€iesti kindel. Sellegipoolest vĂ”ib see olla pĂ”hjus eraldi artikli jaoks.

Kogu kood on kirjutatud Python 3.5.2 keeles. Töö nÀide on esitatud minu YouTube kanalis. Projekti tÀiskood on saadaval github.
(Jah, ma tean, et tootmisversiooni jaoks tuleb kirjutada millegi „kiirema” peale, nĂ€iteks C keeles 😉 )
KĂ€esolevas teostuses ei tohi steganograafia sisendfaili suurus ĂŒletada 1000 kB.

Soovin tÀnada kasutajat PavelMSTU kasulike nÔuannete eest uurimistöö planeerimisel ja artikli vormimise kohta.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster