Etusivu: Kyberturvallisuuskeskus
Etusivu: Kyberturvallisuuskeskus
Valikko

Vakava haavoittuvuus Tomcat-sovellusalustassa (CVE-2020–1938, GhostCat)

Haavoittuvuus6/2020

Apache Tomcat -sovellusalustasta on korjattu vakava haavoittuvuus, joka liittyy AJP-liityntärajapintaan (Apache JServ Protocol Connecor). GhostCat-nimellä tunnettu haavoittuvuus on aktiivisen skannauksen ja hyväksikäyttöyritysten kohteena. Haavoittuvuuden avulla hyökkääjä voi lukea tai suorittaa tiedostoja palvelimelta. Jos hyökkääjällä on lisäksi mahdollisuus ladata oma tiedostonsa suoritettavaksi, voi tämä johtaa koko palvelimen haltuunottoon.

Apache Tomcat on monien verkkopalveluiden rakentamisessa käytetty sovellusalusta. Myös usein käytetty JBoss-sovellusalusta hyöntyntää tyypillisesti Tomcatia. Tomcatin aiempien versioiden oletusasetukset jättivät AJP-liityntärajapinnan avoimeksi TCP-porttiin 8009 mahdollistaen haavoittuvuuden hyväksikäytön, ellei sitä ole kytketty pois tai pääsyä rajattu.

Kohde

  • Palvelimet ja palvelinsovellukset

Hyökkäystapa

  • Etäkäyttö
  • Ilman kirjautumista

Vaikutukset

  • Komentojen mielivaltainen suorittaminen
  • Luottamuksellisen tiedon hankkiminen

Hyväksikäyttömenetelmä tiedossa

  • Rikollisessa käytössä
  • Haavoittuvuuden havainnollistava esimerkkikoodi

Ratkaisu

  • Korjaava ohjelmistopäivitys
  • Ongelman rajoittaminen

Haavoittuvuuden kohde

  • Apache Tomcat, versiot 9.0.0.M1 - 9.0.30
  • Apache Tomcat, versiot  8.5.0 - 8.5.50
  • Apache Tomcat, versiot  7.0.0 - 7.0.99
  • Apache Tomcat 6, kaikki versiot. Korjausta ei ole saatavilla.
  • JBoss Web Server (JWS), kun se sisältää haavoittuvan version Tomcatista
  • JBoss Enterprise Application Platform (EAP), kun se sisältää haavoittuvan version Tomcatista
  • Spring Boot Java framework, kun se sisältää haavoittuvan version Tomcatista

Mistä on kysymys?

  • Päivitä Apache Tomcat korjattuun versioon valmistajan ohjeiden mukaisesti.
    • Huomaa, että päivitys vaatii todennäköisesti pieniä konfiguraatiomuutoksia.
  • Kytke AJP-liityntärajapinta pois käytöstä server.xml-konfiguraatiotiedostoa muuttamalla, jos sille ei ole tarvetta
  • Rajoita pääsyä AJP-liityntärajapintaan palomuurilla tai muulla tavoin niin, että se on saatavilla vain luotetuista lähteistä
  • Rajoita pääsyä AJP-liityntärajapintaan vaatimalla tunnistautumista (AJP Secret)
  • Kyberturvallisuuskeskus suosittelee, että pääsy sovellusalustoilla toteutettuihin verkkopalveluihin sallitaan ainoastaan välityspalvelimen (Reverse Proxy) kautta. Samalla voidaan rajoittaa liikennöinti vain palvelun tarvitsemiin polkuihin ja pyyntöihin.

Mitä voin tehdä?