Čau Habr.
Chci vám představit malý projekt na
Vytvořil jsem projekt o skrytém ukládání informací v souborovém systému (dále FS).
Toho lze využít ke krádeži důvěrných informací pro vzdělávací účely.
Jako prototyp byl vybrán velmi starý Linux FS
uskutečnění
Úvahy o implementaci
Pokud je dobré „dráždit“ standard ext2, tak můžeme nahradit, že ve FS je tzv.
Pokud ukládáte skryté informace bez šifrování, pak, i když jsou ve FS rozmazané, budou stále příliš nápadné, zvláště pokud programátor ví, co má hledat. Proto bylo rozhodnuto zašifrovat všechny bloky zdrojového souboru. Zvolil jsem blokovou šifru
Aby bylo možné při čtení oddělit potřebné bloky od všech ostatních, bylo rozhodnuto přidat ke každému bloku na začátek bloku speciální značku. Tato značka byla zašifrována v závislosti na čísle bloku ve zdrojovém souboru. Takový trik okamžitě umožnil nejen najít správné bloky, ale také zjistit jejich správné pořadí.
Obecný princip systému.
Algoritmus záznamu
Body:
- Nejprve zapište nějaké informace do původního systému souborů;
- Smažte tyto informace (ne nutně všechny);
- Rozdělte soubor tak, aby se skryl na bloky stejné délky přidáním značky;
- Zašifrujte tyto bloky;
- Umístěte zašifrované bloky do prázdných bloků FS.
Pro milovníky vývojových diagramů
Níže je blokové schéma záznamového algoritmu. Algoritmus přijímá jako vstup čtyři soubory:
-Obrázek proměnlivého systému souborů;
-Soubor podléhající steganografii;
-Soubor s šifrovacím klíčem pro AES;
-Filmujte fixem.
Hned je třeba poznamenat, že tento algoritmus má jednu nevýhodu: po zapsání souboru do FS, nesmí napsat něco nového do FS, protože jakákoli nová informace se může dostat do bloků, které jsme přiřadili našemu zazipovanému souboru, i když to také otevírá možnost „rychlého zakrytí stop“.
Je ale zcela zřejmé, jak to lze opravit: je nutné přepsat algoritmus pro zápis bloků do FS. To je pochopitelný, ale neuvěřitelně časově náročný úkol.
Pro Proof Of Consept jsem to neimplementoval.
Výsledkem budou následující změny ve FS, takto vypadá FS před steganografií (dříve byl nahrán zvukový soubor).
A takto vypadá FS s již zazipovanými informacemi.
Algoritmus čtení
Body:
- Se znalostí klíče a způsobu konstrukce značek sestavte prvních N značek se zárukou, že N vynásobené délkou bloku souborového systému je větší než délka zazipovaného souboru;
- Hledejte bloky ve FS počínaje značkami;
- Dešifrovat přijaté bloky a oddělit značky;
- Sestavte výsledné bloky ve správném pořadí a získejte zdrojový soubor.
Pro milovníky vývojových diagramů
Níže je blokové schéma záznamového algoritmu. Algoritmus přijímá jako vstup tři soubory:
- Obrazový souborový systém;
-Soubor s šifrovacím klíčem pro AES;
-Filmujte fixem.
Po spuštění programu se objeví soubor Read, což bude soubor extrahovaný ze steganografovaného FS, pokud byl klíč nebo značka zadána špatně, bude soubor Read prázdný.
(pro milovníky krásy můžete proložit nejen soubor, ale i „záhlaví“ obsahující metainformace: název souboru, práva, čas poslední úpravy atd.)
Spusťte automatizaci
Pro usnadnění byly napsány bash skripty, které automatizují spouštění v Linuxu (testováno na Ubuntu 16.04.3 LTS).
Pojďme se na spuštění podívat krok za krokem.
Záznam:
- sudo Copy_Flash.sh "ZAŘÍZENÍ" - získat obraz FS ze zařízení DEVICE (flash);
- ./Write.sh "FILE" "KEY" "MARKER" - vytvořte virtuální prostředí, stáhněte si potřebné knihovny a spusťte zapisovací skript;
- sudo ./Write_Flash.sh "ZAŘÍZENÍ" - zapište upravený FS zpět do DEVICE.
Čtení:
- sudo Copy_Flash.sh "ZAŘÍZENÍ" - získat obraz FS ze zařízení DEVICE (flash);
- ./Read.sh “KEY” 'MARKER” - vytvořte virtuální prostředí, stáhněte si potřebné knihovny a spusťte skript pro čtení;
- V aktuálním adresáři otevřete soubor Číst – to jsou zazipované informace.
Závěr
Tento způsob steganografie je pravděpodobně potřeba vylepšit, dále testovat a rozšířit na populárnější souborové systémy jako např
Účelem této práce však bylo ukázat princip, kterým je možné provádět skryté ukládání informací v souborovém systému.
S pomocí takových algoritmů můžete nebojácně ukládat informace, a pokud se znalostí klíče může být takový systém hacknut ne vyčerpávajícím hledáním (ale velmi dlouhým algoritmem), pak bez znalosti klíče tento systém se mi jeví jako naprosto stabilní, nicméně to může posloužit jako důvod pro samostatný článek.
Veškerý kód je implementován v Pythonu verze 3.5.2.
(Ano, ano, vím, že pro produkční verzi je potřeba psát něčím “rychlým”, např. C 😉 )
V této implementaci by velikost vstupního souboru pro steganografii neměla přesáhnout 1000 kB.
Chci poděkovat uživateli
Zdroj: www.habr.com