Java saa jatkuvasti huonoa mainetta tietoturvan suhteen, mutta kun otetaan huomioon, että puolet yrityssovelluksista viimeisten 15 vuoden aikana on kirjoitettu tällä kielellä, sen levinneisyys (ja yleisesti tunnetut hyökkäysvektorit) voivat olla syyllisempiä kuin Javan luontaiset tietoturvaheikkoudet yksin. Uusia lähestymistapoja on kuitenkin kehitteillä (esim. Rask, Waratek) Java-verkkosovellusten tietoturvan parantamiseksi Java-virtuaalikoneen (Java Virtual Machine, JVM) tasolla, mutta useimmissa organisaatioissa Java-sovellusten perinteisten tietoturvapuolustusten käyttöönotto voi auttaa suojautumaan suurimmalta osalta Java-sovelluksiin liittyvistä hyväksikäytöistä.

Javan kaikkialle levinneisyyden vuoksi Java-sovelluksiin liittyvien työvälineiden ja tekniikoiden kokonaisvaltainen haavoittuvuuksien hallitseminen on ratkaisevassa asemassa vahvan tietoturvan ylläpidon kannalta riippumatta siitä, onko kyseessä kokonainen CI/CD-piippuputki vai muutama sisäinen yrityskohtainen verkkosovellus. Seuraavassa on 10 tärkeintä Java-teknologiaan liittyvää haavoittuvuutta, mukaan lukien työkalut ja suositut sovellukset Java-pohjaisen sovelluskehityksen tueksi.

JUnit

Tämä yksikkötestauskehys kuuluu useimpien Java-kehittäjien työkalupakkien vakiokalustoon, joka mahdollistaa nopean ja automatisoidun koodipohjan testauksen. Muiden sovellusten mukana tulevat JUnit-tiedostot voivat kuitenkin sisältää haavoittuvuuksia. Esimerkiksi Google Web Toolkitin (GWT) versiot ennen 2.5.1 RC:tä sisältävät useita XSS-haavoittuvuuksia (cross-site scripting).

Jenkins

Markkinoilla yleisimmin käytettynä jatkuvan integroinnin (CI) palvelimena Jenkinsillä on vastaavasti suuri kannattajakunta Java-kehittäjien keskuudessa. Valitettavasti suosio jatkuvan integroinnin työkaluna tarkoittaa yleensä enemmän haavoittuvuuksia ja hyväksikäyttöjä – ja Jenkinsin tapauksessa on olemassa useita XSS-, CSRF- (cross-site request forgery) ja Dos- (denial-of-service) haavoittuvuuksia.

Hibernate

Suosittua ORM-kehystä Hibernatea käytetään yleisesti Java-kehittäjien keskuudessa relaationaalisten tietokantojen objektien, kuten taulukoiden, kuvaamiseen Java-luokkiin. Avoimen lähdekoodin työkalun versiot 4.1.0 ennen 4.2.1, 4.3.x ennen 4.3.2 ja 5.x ennen 5.1.2 sisältävät haavoittuvuuden, jonka avulla hyökkääjät voivat ohittaa Java Security Managerin (JSM).

Maven

Apache Maven on laajalti käytössä oleva rakentamishallintaohjelma Java-projekteille, joka mahdollistaa projektin rakentamisen keskitetyn hallinnan, raportoinnin ja dokumentoinnin. Apache Maven 3.0.4:n haavoittuvuus sallii etähakkerien huijata palvelimia man-in-the-middle-hyökkäyksessä.

Tomcat

Tämä suosittu Java-verkkosovelluspalvelin on ollut kehittäjien kestosuosikki servlettien ja sovellusten rakentamiseen JavaServer Pagesilla. Reilusti yli kymmenen vuotta vanha Tomcat on kerännyt suhteellisen vaikuttavan määrän tietoturva-aukkoja XSS-haavoittuvuuksista CSRF-haavoittuvuuksiin – monia niistä on hyödynnetty luonnossa.

Java 7

Viime vuonna markkinoille tulleesta Java 8:sta huolimatta Java 7:n käyttö on edelleen hallitsevassa asemassa – vaikkakin odotetaan, että vuoteen 2016 mennessä 8-versio johtaa joukkoa. On sanomattakin selvää, että kaikki Java-versiot, jotka ovat alle 7:n, tulisi päivittää välittömästi – jopa versio 7 tarvitsee merkittävää korjausta sen haavoittuvuuskaluston vuoksi.

Spring Framework

Spring on sovelluskehys, jolla on oma malli-näkymä-ohjain-kehys Javalle ja joka mahdollistaa syöttö-, liiketoiminta- ja käyttöliittymälogiikan erottamisen. Avoimen lähdekoodin projekti Spring ei ole vailla dokumentoituja haavoittuvuuksia.

JavaServer Faces

JavaServer Faces (JSF) on Javan esityskehys, joka helpottaa uudelleenkäytettävien käyttöliittymäelementtien kehittämistä. Haavoittuvuus Apache MyFaces Core 2.0.x:ssä ennen versiota 2.0.12 ja 2.1.x:ssä ennen versiota 2.1.6 voi antaa etähyökkääjille mahdollisuuden lukea mielivaltaisia tiedostoja.

Eclipse IDE

Eclipse on suosittu työpöytätyökalu web-sovellusten rakentamiseen Javalla, ja se on toiminut Java-kehittäjien suosimana integroituna kehitysympäristönä (Integrated Development Environment (IDE)) vuosien ajan. Valitettavasti tietyt versiot sen ohjetiedostoista – kaikesta huolimatta – ovat alttiita XSS:ään liittyville hyväksikäytöille.

Vaadin

Vaadin on suosittu Java-kehys nykyaikaisten Java-verkkosovellusten rakentamiseen – ajattele nykyaikaisia, yhden sivun web-sovelluksia, jotka toimivat Javalla. Kehyksen XSS-haavoittuvuus voi sallia etähyökkääjien syöttää sivuille mielivaltaisia skriptejä.

Korjaus

Korjataksesi edellä mainitut haavoittuvuudet, sinun on tunnistettava, mitä näistä teknologioista käytetään ympäristössäsi, ja käytävä kyseisen valmistajan/projektin verkkosivustolla saadaksesi päivitys-/korjaustietoja. UpGuard löytää kaikki nämä kohteet automaattisesti muutamalla hiiren napsautuksella. Lisäksi muokattavissa oleva Java-haavoittuvuuskäytäntömme voi kasvaa niin, että siihen voidaan sisällyttää mukautettuja tarkistuksia Java-lisätyökaluja varten. Testaa sitä jo tänään – se on ilmainen.

Articles

Vastaa

Sähköpostiosoitettasi ei julkaista.