Hlavní navigace

Názor ke zprávičce Bezpečnostní díra v Java knihovně ohrožuje stovky aplikací od Filip Jirsák - To, že uživatel má možnost podstrčit data k...

  • 9. 11. 2015 10:11

    Filip Jirsák

    To, že uživatel má možnost podstrčit data k deserializaci není chyba návrhu. Vždyť jsou to jenom data. Když uživatel na webu odešle formulář, odesílá tím data k deserializaci. Už jenom zadání URL na webu jsou data k deserializaci – i když se v případě toho URL ani formuláře nedeserializuje Java serializací ale textová reprezentace.

    Problém by mohl být, pokud by deserializovaná třída ta přijatá data chybně interpretovala. Což teoreticky je možné. Ke spuštění cizího kódu by to ale znamenalo, že ta data bude interpretovat jako skript a spustí jej, nebo že ta data bude interpretovat jako bajtkód a vytvoří na jeho základě třídu, kterou poté nahraje. Což samo o sobě není vůbec jednoduché – a uvedená třída InvokerTransfor­mer nejen, že nic takového nedělá, ona vůbec neimplementuje vlastní deserializaci.

    Zneužitelné je pouze to, pokud by někdo serializoval a deserializoval instanci té třídy InvokerTransformer, a útočník pak může změnit jenom to, kdy v případě, že se ten deserializovaný InvokerTransformer zavolá na nějakou instanci, může útočník změnit volanou metodu (na stejné instanci) a její parametry. Zaútočit by se tedy dalo jen na konkrétní kód chybně využívající té třídy, rozhodně ne na jakoukoli aplikaci tu třídu využívající. A útok by spočíval jen ve spuštění jiného kódu na dané třídě, nelze tím spustit libovolný kód útočníka.