Java-kirjaston Log4j:n surullisen haavoittuvuuden hätäkorjaus ei ole idioottivarma. Apache Software Foundation julkaisee uuden version korjatakseen haavoittuvuuden lopullisesti.
Huiman suositun Java-kirjaston haavoittuvuus ravistelee maailmanlaajuista IT-maisemaa. Arvioiden mukaan kirjasto on olemassa useimmissa yritysympäristöissä.
Log4j:tä käytetään pääasiassa kirjaamiseen. Sovellusten tapahtumat voidaan rekisteröidä muistiinpanoilla. Ajattele kirjautumistietojen tulostetta kirjautumisyrityksen jälkeen. Tai, jos kyseessä on Java-kielinen verkkosovellus, sen selaimen nimi, johon käyttäjä yrittää muodostaa yhteyden.
Jälkimmäiset esimerkit ovat yleisiä. Molemmissa tapauksissa ulkoinen käyttäjä vaikuttaa Log4j:n tulostamaan lokiin. Sitä vaikutusvaltaa on mahdollista käyttää väärin. Minkä tahansa Log4j-version lokit 13–2013 voivat ohjata Java-sovelluksia suorittamaan koodin etäpalvelimelta paikallisella laitteella.
Vuodesta 2013 lähtien Log4j on käsitellyt API:ta: JNDI tai Java Naming and Directory Interface. JNDI:n lisäys sallii Java-sovelluksen suorittaa koodia etäpalvelimelta paikallisessa laitteessa. Ohjelmoijat antavat ohjeita lisäämällä yhden rivin tietoja etäpalvelimesta sovellukseen.
Ongelmana on, että ohjelmoijat eivät pysty lisäämään sääntöä sovelluksiin. Oletetaan, että Log4j kirjaa sisäänkirjautumisyritysten käyttäjätunnukset. Kun joku syöttää edellä mainitun rivin käyttäjätunnuskenttään, Log4j suorittaa rivin ja Java-sovellus tulkitsee komennon suorittaakseen koodin määritetyllä palvelimella. Sama koskee tapauksia, joissa Log4j kirjaa HTTPS-pyynnön. Jos muutat selaimen nimen riville, Log4j suorittaa rivin ja käskee sitä suorittamaan koodia halutulla tavalla.
Hätälappu voi myös olla vaarallinen
9. joulukuuta haavoittuvuus paljastui suuressa mittakaavassa. Apache Software Foundation, Log4j:n kehittäjä, julkaisi hätäkorjauksen (2.15) korjatakseen haavoittuvuuden. Siitä lähtien ohjelmistotoimittajille on ollut ensisijainen tavoite käsitellä versiota 2.15 ja tarjota korjaustiedosto organisaatioille.
Turvallisuusjärjestö LunaSec kuitenkin toteaa, että paikka ei ole täysin vesitiivis. On edelleen mahdollista säätää asetusta ja suorittaa kirjattuja JNDI-komentoja.
Huomaa: asianmukainen asetus on säädettävä manuaalisesti, jotta muuntamattomat 2.15-versiot ovat todella turvallisia. Siitä huolimatta Luna Sec suosittelee, että tavarantoimittajat ja organisaatiot päivittävät versioon Log4j 2.16. 2.16 julkaisi Apache Software Foundation vastauksena LunaSecille. Uusi versio poistaa haavoittuvan asetuksen kokonaan, mikä tekee mahdottomaksi luoda edellytyksiä väärinkäytölle.