Hlavní navigace

Názor ke zprávičce Bezpečnostní díra v Java knihovně ohrožuje stovky aplikací od Karel - Tak jméno mi může podstrčit jaké chce. Když...

  • 9. 11. 2015 14:06

    Karel (neregistrovaný) 93.90.162.---

    Tak jméno mi může podstrčit jaké chce. Když mi místo com.company.Em­ployee pošle com.company.Sup­plier, tak na to asi přijdu při kontrole typu, případně mi to rovnou spadne na chybu přetypování. Přeci jen zavolat funkci typu "deleteAllEmplo­yees" na objektu typu Object nejde. Navíc podvrhnout může jen existující třídu, protože jinak spadne na ClassNotFoundEx­ception. A na té existující musí existovat metoda, kterou program volá a musí se trefit do přetypování, které programátor použil (tady by Interface mohl útočníkovi pomoci).

    Podstatné je, že mi přes serializaci nedokáže poslat spustitelný kód, jen data. Deserializace použije kód z classpath a jen doplní data podle příchozího souboru. Čili dokáže v ideálním případě leda tak zajistit, že se spustí metoda jiné třídy, než by měla. Útok typu, že si serializuji záznam o zaměstnanci, v něm přepíšu plat na desetinásobek a pak deserializuji, je natolik zřejmý, že o ten asi nepůjde.

    Pokud ale nějaká knihovna použije data jako program (vlastní ClassLoader), pak to samozřejmě problém je poměrně zásadní.