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:

VENDOR

# ISSUES REPORTED# FULL SANDBOX BYPASS EXPLOITS
Oracle3117
IBM1710
Apple21

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ó:

Összegezve

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... (smile)