it-swarm-eu.dev

Jak vložit spustitelný, škodlivý kód do PDF, JPEG, MP3 atd.?

  1. Chtěl jsem vědět, jestli je obecně možné vložit spustitelný kód do souborů, jako jsou soubory PDF nebo JPEG atd., Nebo musí být v aplikaci nějaký bezpečnostní otvor?

  2. A pokud ano, jak by to člověk udělal?

Často slyším, že lidé se nakazili otevřením PDF obsahujících škodlivý kód, proto se ptám.

47
JohnnyFromBF

V aplikaci musí být nějaký bezpečnostní otvor.

Přemýšlejte jako o jakémkoli velmi jednoduchém a běžném souboru TXT: pokud jej otevřete pomocí hex prohlížeče nebo pomocí dobře navrženého textového editoru, měl by zobrazit pouze obsah souboru a dobře.

Pak přemýšlejte o tom, jak soubor zpracovat, namísto pouhého zobrazení obsahu. Například čtení souboru a interpretace jeho hodnot. Pokud to není provedeno správně, mohlo by to vést k provedení bajtů, které jsou uvnitř souboru.

Například: Pokud jste navrhli aplikaci tak, aby načítala celý soubor a zobrazovala jej, ale nějakým způsobem máte uvnitř programu proměnnou, která pojme pouze 256 bajtů. Díky tomu můžete číst (a zapisovat do paměti) více bajtů, než vaše aplikace očekávala. A představte si, že uvnitř vaší aplikace bude nějaký příkaz přeskočit na pozici NNNN v paměti a provést, co tam je, ale protože tato paměťová pozice byla zapsána s daty, které váš program neočekával, pak provedete nějaký kód, který by tam neměl být a byl načten ze souboru ...

To byl útok přetečení vyrovnávací paměti .

Totéž by se mohlo stát s pdf, jpg, mp3 atd., Pokud by aplikace nenačetla data správně.

Další možnost: z jakéhokoli jiného důvodu aplikace (nebo část DLL, která se načte, aby načítala vaše data), místo načtení provede část dat namísto čtení. Pokud víte, jaký by byl příkaz (nebo data), která by toto chování spustila, vložíte tyto příkazy do datového souboru (jako soubor pdf), aby jej aplikace provedla.

PDF virus : přečtěte si tento web: http://lwn.net/2001/0809/a/Adobe-pdf-vul.php vědět něco o jednom viru, který se šíří pomocí PDF souborů.

32
woliveirajr

Existují dva způsoby, jak provést část kódu: záměrně a neúmyslně.

Úmyslné spuštění je, když je soubor čten aplikací a aplikace dělá něco na základě toho, co soubor říká. Čtení souboru se nazývá analýza souboru.

Neúmyslné spuštění je, když analyzátor přečte něco, co by neměl, a místo rozbití pokračuje ve provádění. Toto neúmyslné spuštění je zranitelností, protože pokud dokážu přimět analyzátora, aby něco provedl, pravděpodobně ho mohu přimět provést něco škodlivého.

Odpovědi na vaše otázky:

  1. Je to obecně možné? Vše záleží na formátu souboru a aplikaci, která jej čte. Některé soubory jsou navrženy tak, aby umožňovaly spustitelné soubory, jiné ne. Některé aplikace umožňují spuštění kódu, jiné ne. Pokud aplikace nepodporuje, musí existovat chyba zabezpečení, která se má spustit.

  2. Vše záleží na formátu souboru, ale je to obvykle nalezením chyby v logice analyzátoru souborů.

16
Steve

Klíčovým problémem PDF, Word dokumentů atd. Je to, že současné standardy umožňují makra a spustitelný kód. (Podle mého názoru je to fatální chyba, ale pak se mi líbí, aby e-maily byly pouze textové ...)

To je ta fáze provádění makra, která je obvykle cílem útoku, protože poskytuje způsob, jak spustit kód. Útočník prostě musí přijít na to, jak se dostat přes ovládací prvky, které mohou být přetečením vyrovnávací paměti nebo jiným mechanismem útoku.

8
Rory Alsop

Nesouhlasím s odpovědí „V aplikaci musí být nějaký bezpečnostní otvor“

To je obecně nesprávné. Většina porušení je způsobena přístupem k souborům (nejen jejich poskytováním/nutností) a nutením lidí věřit, že přistupují k něčemu jinému než tomu, co ve skutečnosti jsou, například k většímu obrazu, zatímco je to spustitelný kód nebo odkaz na něj (známý a důvěryhodný) ) popis webu, zatímco se odkazuje na jiný, se zákeřnými úmysly atd.

Doporučil bych si přečíst: