sunnuntai 2. syyskuuta 2012

Harmaita hiuksia Javasta

Tietoturva-aukon vuoksi otsikoihin noussut Java on jo pitkään aiheuttanut harmaita hiuksia. Java-tekniikka eli kulta-aikaansa 1990-luvun lopussa, kun netti alkoi yleistyä ja sen kehittäjä Sun Microsystems suunnitteli jopa suoraan java-koodia ajavien prosessorien valmistamista. Nykyään Javan (ja Sunin) omistaa massiivisista (sekä kooltaan että hinnaltaan) tietokantaohjelmista tunnettu Oracle.

Java kiinnostaa rosvoja, koska se on asennettu moneen koneeseen, joissa sitä ei oikeasti edes tarvita. Javassa on oma päivitysjärjestelmänsä, mutta se ei ole mukana Windowsin automaattipäivityksissä. Käytännössä Java jää helposti päivittämättä, jolloin vanhat versiot ovat erityisen alttiita hyökkäyksille. Koneessa voi olla useita Java-versioita rinnakkain, sillä osa ohjelmista vaatii tietyn (vanhemman) version. Tietenkin Java-päivitykset vaativat admin-oikeudet, joita peruskäyttäjällä ei välttämättä ole. Silloin Java saattaa jäädä kokonaan päivittämättä.

Jotta tilanne olisi entistä sekavampi, Javalla ei ole mitään tekemistä Javascriptin kanssa. Javasta voi luopua, Javascriptistä ei -- kyse on kahdesta aivan eri asiasta.

Javasta on sekä 32- että 64-bittinen versio, joten 64-bittisissä Windows-koneissa pitää pohtia, kumpi ladataan. Yleensä 32-bittinen on suositeltava; se latautuu Javan jakelusivulta automaattisesti, vaikka koneessa olisikin 64-bittinen käyttöjärjestelmä.

Melkoinen härdelli! Ja usein täysin turha, sillä harva oikeasti tarvitsee Javaa. Sitä käytetään joillakin www-sivuilla pelien ja multimedian toteuttamiseen. Lisäksi on joitakin perinteisiä sovelluksia, jotka vaativat Javan toimiakseen (kuten Minecraft-pelialusta ja ProjectX digi-tv-tallenteiden leikkausohjelma).

Suomessa tärkein Java-käyttäjä on Sampopankki, joka on jostain syystä toteuttanut verkkopankkiaan varten oman Java-sovelluksen. En ole koskaan ymmärtänyt, millä tavalla se parantaa asioinnin turvallisuutta. Javassa on oma varmennejärjestelmä, mikä antaa turvaa käyttöjärjestelmän ja selaimen virheitä vastaan, mutta toisaalta Javan asennuspakko avaa koneeseen uuden haavoittuvuuden. Se ei vaaranna pankkiyhteyttä, vaan koko koneen.

Koska Java on laiteriippumatonta, sen ongelmat eivät riipu käyttöjärjestelmästä. Viime toukokuussa Flashback kiusasi Mac-käyttäjiä. Uusinta turva-aukkoa käytettiin Windows-haittaohjelman levittämiseen.

Koneissani ei ole virustorjuntaa. Ainoan viruksen sain muutama vuosi sitten kotimaiselta www-sivulta Java-haavoittuvuuden kautta. Javan oma päivitys oli lakannut toimimasta, joten koneen Java oli saanut vanhentua kaikessa rauhassa ja ilman mitään varoituksia.

Javan korjaaminen kyseisessä koneessa osoittautui erittäin hankalaksi. Manuaalinen päivitysyritys katkesi aina epämääräisiin virheilmoituksiin Error 1722: There is a problem with this Windows Installer package ja Failed to download required installation files:



Lopulta tyydyin vain poistamaan Javan käytöstä ja annoin koko asian olla. Google-haku kertoo, että virheilmoitukset 1722 ja 1723 ovat tulleet tutuiksi muillekin, eikä niille ole yksikäsitteistä syytä.

Toissapäivänä piti kuitenkin saada uusin Java asennettua. Se onnistui, mutta Javaa vaatinut ohjelma ei silti toiminut. Komentoriviltä annettu komento java -version palautti erikoisen virheilmoituksen Error: could not open `C:\Program Files\Java\jre6\lib\amd64\jvm.cfg'.

Lopulta selvisi, että vanha java.exe löytyi Windowsin omasta järjestelmähakemistosta, ja se yritti hakea jvm-konfigurointitiedostoa kansiosta, jota ei ollut olemassakaan. Vanhaa java.exeä ei saanut poistettua edes admin-oikeuksilla. Kolmen tunnin työn jälkeen -- johon sisältyi muutama vierailu safe modessa, neljä Javan poisto/asennus-sykliä, noin tusina koneen uudelleenkäynnistystä, yli sadan CAFE-alkuisen rekisteriavaimen poisto käsityönä ja loputon määrä harmittelua -- sain vanhat Javat poistettua ja uuden 7-version asennettua tilalle. Huh!

Sotku on niin mutkikas, että siitä on vaikea antaa selkeitä ohjeita. Paitsi yksi: jos et tarvitse Javaa, poista se. Simple as that!

Poisto käy Ohjauspaneelin sovellukset-kuvakkeesta, jossa pitäisi näkyä asennetut Java-versiot.

Muutama www-sivu saattaa sen jälkeen antaa virheilmoituksen, kuten kaupunkien panoraamakuvia esittelevä Stadtpanoramen.de:

Osa www-palveluista vaatii Javan toimiakseen.
Java voi kuitenkin tulla vastaan yllättävissä paikoissa. Esimerkiksi Acrobat-lukuohjelman kansiosta löytyy oma, ikivanha Java-versio:

C:\Program Files (x86)\Adobe\Acrobat 9.0\Designer 8.2\jre\bin>java -version
java version "1.5.0_11"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_11-b03)
Java HotSpot(TM) Client VM (build 1.5.0_11-b03, mixed mode)

Yllättäen myös Adoben Creative Suite 5:n alla on vanha Java:

C:\ProgramData\Adobe\CS5\jre\bin>java -version
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) Client VM (build 16.0-b13, mixed mode)

Tällä hetkellä uusin Java on versio 7 update 7 (1.7.0_7), jossa on 30.8.2012 ilmestynyt kriittinen korjaus. Vastaava versio Java 6:sta versio 6 update 35 (1.6.0_35). Päivitysohjelma ei vaihda automaattisesti kuutosesta seiskaan, joten tämä päivitys on haluttaessa tehtävä manuaalisesti. Seiska on alaspäin yhteensopiva kuutosen kanssa, joten sen käyttöä voi jatkaa kunnes ilmestyy ohjelmia, jotka vaativat seiskan.

Voiko Adoben vanhoista Java-versioista olla haittaa? Ne on tarkoitettu vain sovellusten omaan käyttöön, mutta jos esimerkiksi netistä ladatussa pdf-dokumentissa on tahallisia haittaohjelmia, ne voivat hyödyntää Acrobatin vanhan Javan aukkoja.

Myös Open Office ja Libre Office vaativat asentamaan Javan, mutta sitä tarvitaan "lähinnä" tietokantaominaisuuksiin. Missään ei ole tarkennettu, mitä "lähinnä" käytännössä tarkoittaa, mutta ainakin taulukkolaskenta, tekstinkäsittely ja esitysgrafiikka tuntuvat toimivan ilman Javaakin.

Yllättävin Javan käyttäjä on F-Securen ilmainen online virusskanneri. Se antaa virheilmoituksen, jos Javaa ei ole asennettuna:

F-Securen onlineskanneri käyttää Javaa.
Tietoturvayhtiö suosittelee Javan poistamista, vaikka käyttääkin sitä omassa palvelussaan. Tässä ei ole paljon vaihtoehtoja: standardeilla www-tekniikoilla ei pysty lukemaan käyttäjän koneen tiedostoja. Ainoat vaihtoehdot ovat Java- tai ActiveX-laajennukset. Esimerkiksi Kaspersky käyttää ActiveX:ää, jolloin skanneri toimii vain Internet Explorer -selaimella.

Erikoista on kuitenkin se, että skanneri neuvoo käyttämään vanhaa, haavoittunutta versiota ("Old Version of Java Requested"):

Onlineskanneri neuvoo käyttämään vanhaa Java-versiota.
Suositeltu ("would like to use") versio 1.6.0_10 on julkaistu lokakuussa 2008 eikä missään tapauksessa ole enää suositeltava. Testikoneessa skanneri toimi ajantasaisella 1.7.0_7-versiolla, joten teksti on vähintäänkin harhaanjohtava. Otsikon Warning - Old Version of Java Requested voi ymmärtää joko varoituksena siitä, että ohjelma tarvitsee vanhan version tai että varoitus liittyy juuri siihen, kun ohjelma pyytää vanhaa mutta sille annetaan uusi. Sekavaa.

Jos tarvitset Javaa verkkopalveluissa, varaa sitä varten oma selain (Chrome tai Firefox), ja estä Javan käyttö normaaliselaimesta. Näin minimoit haittaohjelman riskin. Varmista, että Java tarkistaa päivitykset vähintään kerran viikossa (ohjauspaneelin Java-kuvakkeen asetuksista). 

Selaimen näkemän Java-version voit tarkistaa sivulta java.com/verify. Se ei kuitenkaan kerro mitään levyllä olevista vanhemmista Java-asennuksista.

11 kommenttia:

Unknown kirjoitti...

Maceissä tilanne helpompi, edelleen.

http://www.macworld.com/article/1168358/java_security_threats_what_you_need_to_know.html

Petteri Järvinen kirjoitti...

Mac Worldin mukaan kohun aiheuttanut haavoittavuus esiintyy vain Java 7:ssä, joten Mac-käyttäjien riski on pieni. Oraclen tiedotteen mukaan myös Java 6:sta on 35-päivityksessä paikattu aukkoja.

Anonyymi kirjoitti...

OpenOffice (ja jopa LibreOffice) invalidisoituu ilman javaa.
http://www.openoffice.org/download/common/java.html
Yksityishenkilöistä ei kukaan välitä, mutta yritys on valmis pistämään "miljoonan" M$ taskuun - mikäli parin tuhannen työntekijän Office sovellus ei toimi kunnolla.

Monet mm. tulospalvelut on toteutettu Javalla - ja poika sanoisi, parhaat netti-pelit
http://www.formula1.com/live_timing/
http://www.mtv3.fi/f1tulospalvelu/
http://www.mtv3.fi/urheilu/tulospalvelu.shtml
Pelisivustoja on tietysti satoja..
http://www.javagames.net/

Anonyymi kirjoitti...

Näin ylläpitäjänä huomauttaisin, että esim. F-Securen Policy Manager on java-sovellus. Sovellus, jolla ylläpidetään yrityksissä työasemien virustorjunta sovelluksia.

Monet verkkolaitteiden ylläpitoliittymät vaativat oman, jopa spesifisen, valmistaja kohtaisen javan.

Minullakin on ollut koneessani pahimmoillaan toistakymmemtä java-versiota, että laitteiden hallinta onnistuu.

Erno kirjoitti...

Ilmeisesti nämä ongelmat koskevat vain Oraclen/Sunin Javaa? Avoimia vaihtoehtoja käyttävät Linux-käyttäjät ovat turvassa?

Ei sillä, että Javan merkitys nykypäivänä on kyllä aika vähäinen. Joskin LibreOfficen kanssa toimiva lähdeviitteidenhallintasofta Zotero kaipaa Javan - ja nimen omaan Oraclen version ja Zotero on näin akateemiselle kirjoittajalle aika must (on niitä tietysti vaihtoehtojakin, tykästyin vain Zoteroon...).

Toinen Javan päällä pyörivä kikkari on F1 ja muissa sarjoissa käytössä oleva online live timing. Jos kierrosajat napostelee, niin Java on oltava.

Työpöytäkäytössä tietysti NetBeans, Eclipse ja kumppanit on Javalla tehtyjä ja ne ovat laajasti käytössä.

Jari kirjoitti...

Missäköhän se haavoittuvuus oikeastaan on? Oletan että se on selainten käyttämässä appleteissa. Internet selaimen kautta ajettavat ohjelmat ajetaan hiekkalaatikossa, jossa esim. suora tietokoneen omiin tiedostoihin pääsy on estetty. Ja tuo hiekkalaatikko siis vuotaa? Näin päättelen. Varsinaisissa työpöytäohjelmissa aukkoja ei kai edes voisi olla, koska niiden pitääkin päästä käsiksi koneeseen.

Anonyymi kirjoitti...

Meillä hiekkalaatikossa kasvaa mansikoita.

Anonyymi kirjoitti...

Kiitos jälleen kerran Petteri hyvästä artikkelista. Todella ajankohtainen. Poliisin nimissä
liikkuva kiristyshaittaohjelma
hyödyntää juuri tuota java-päivitysten huonoutta, ettei sitä saa liitettyä windowsin automaattiin tai mitenkään muutenkaan.
Miten minusta tuntuu, että javan tarkoitus on vain ollut tehdä sivuista hienoja ja visuaalisia.

Hannu Tanskanen kirjoitti...

@Voi jumankeikka,maallikolle tästä nörttien munkkilatinasta ei mene perille mitään. Atavistinen reaktio on heittää tietokoneilla vesilintua ja palata kynään ja paperiin.

(Anteeksi tällainen pöljäkommentti hienolla asiantuntijasivulla,voi tämän poistaa kuten sen edellisenkin)

neko kirjoitti...

Ja Java 7 U 7 vuotaa edelleen http://www.tietokone.fi/uutiset/tutkijat_javan_turvapaikkaus_ei_tepsi

Anonyymi kirjoitti...

mikäköhän versio 13.8.0 on? Löysin oman mac-koneeni
ohjelmavalokosta tällaisen Java-asetus tiedon? On näin kotikäyttäjälle todella melkomoista härdelliä!