Az idei Devoxx Java fejlesztői konferencia egyik érdekes előadása Adam Gowdiak nevéhez fűződik, a bemutató vázlatát a Security vulnerabilities in Java SE linket követve olvashatjuk el, a PDF formátumú prezentációt pedig a se-2012-01-devoxx.pdf letöltésével tekinthetjük meg.
Az előadás központi témája az SE-2012-01 projekt, amely a Java futtatókörnyezet sandbox mechanizmusát veszi górcső alá, ebből "esett ki" nyáron a hírhedt Java sebezhetőség is (Java 7 sebezhetőség). Úgy gondolom, hogy tapasztalt Java fejlesztőknek nem okoz meglepetést, hogy a homokozóból való kitörés leginkább a Reflection API segítségével lehetséges, így az előadás nagyobb részét tekintve erről olvashatunk.
A Reflection API a Java 1.1 verzióban jelent meg, tervezésekor ügyeltek a biztonságos működésre, de az eltelt évek alatt ez a fegyelem fellazult, így jelenleg a Java futtató környezet tele van olyan kihasználható hibákkal, amelyek súlyos problémákat tudnak okozni, mivel a sandbox környezetből való kitörés után már nem abban az erősen szűkített környezetben fut, amelyre a felhasználó gondol.
A Project SE-2012-01 egy másik megállapítása a sebezhetőségek és a sandbox kitörési lehetőségek száma a három nagyobb Java implementátor futtató környezetében:
|
A tanulmány utolsó negyedét a kihasználható sebezhetőségek példával illusztrált listája foglalja el, illetve a cégek hibákhoz való hozzáállását – a fenti táblázatot magyarázandó:
A Java sebezhetőségek okán ajánlott a böngészőben letiltani az Applet futtatás lehetőségét, és csak arra az időre engedélyezzük, amíg feltétlenül szükséges!
A tanulmány amúgy érdekes olvasmány, ajánlom minden Java fejlesztő és biztonsági szakember számára...