Asiakkaistamme Suomen eduskunnan verkkopalvelu sai huomiota pääsiäisen aikaan. Vaikka silloin julkisuudessa esiintynyt haavoittuvuus tapahtui toisen järjestelmätoimittajan järjestelmässä, on samantapaisia haavoittuvuuksia nyt myös löydetty Teamware Pl@za -järjestelmissä.
Yhteistyössä eduskunnan ja kolmannen osapuolen tietoturva-asiantuntijoiden kanssa eduskunnan sivustot on auditoitu tietoturvaongelmia ja -haavoittuvuuksia vastaan. Samalla teimme sisäisen tietoturvatarkastuksen Teamware Pl@zalle mahdollisten haavoittuvuuksien selvittämiseksi ja korjaamiseksi.
Tässä artikkelissa esittelemme kaksi harvemmin tiedossa olevaa verkkopalvelujen haavoittuvuutta cross-site scripting
1), joka on viimeaikoina julkisuudessakin nostettu esille, ja SQL injection sekä kuinka ne liittyvät Teamware Pl@za -järjestelmään.
Cross site scripting
Tietoturvaviranomaisten cross site scripting -määritelmä:
"Cross site scripting (XSS) -hyökkäyksellä tarkoitetaan tilannetta, jossa www-palvelimelle syötetään ohjelmakoodia, joka suoritetaan käyttäjän selaimessa. Näin hyökkääjän antama sisältö näyttää olevan peräisin luotettavaksi oletetulta www-sivustolta. Hyökkäys voi onnistua, jos www-palvelin ei tarkista sille annettuja syötteitä (kuten esimerkiksi linkissä annettavaa URL-osoitetta) riittävän tarkasti. Cross site scripting -haavoittuvuudet johtuvat sivustojen turvallisuudeltaan puutteellisesta toteutuksesta, mutta ne eivät tarkoita sitä, että palvelimelle olisi murtauduttu.
Hyökkäys voidaan toteuttaa siten, että käyttäjä houkutellaan syöttämään hyökkäyskoodi palvelimelle. Koodi voi olla mukana sivustolle johtavan linkin sisältämässä URL-osoitteessa. Linkkiä voidaan levittää esimerkiksi roskapostiviestien mukana. Joissakin tapauksissa hyökkäys voidaan tehdä myös upottamalla koodi esimerkiksi sivustolla olevalle keskustelufoorumille lähetettyyn viestiin, jolloin se suoritetaan aina kun käyttäjä lataa sivun siitä riippumatta, että minkälainen linkki sivulle on johtanut.
Käyttäjän suojautuminen
Hyökkäyksissä käytettävä ohjelmakoodi on yleensä JavaScriptiä, joten käyttäjä voi suojautua niiltä kieltämällä kokonaan JavaScriptin suorittamisen selaimessa. JavaScriptin estäminen voi kuitenkin myös häiritä tai estää joidenkin sivustojen selailua. Usein hyökkäyksen voi tunnistaa tutkimalla linkin takana olevan URL-osoitteen muotoa, mutta hyökkääjä voi myös pyrkiä piilottamaan hyökkäyksen muotoilemalla osoitteen siten, ettei komentojen tai ulkoisten osoitteiden havaitseminen ole helppoa. Vihamielisiä syötteitä URL-osoitteissa voi välttää siten, että siirtyy sivustolle vain puhtaaksi tunnetun osoitteen, kuten vaikkapa palvelun oman etusivun kautta, tai syöttää osoitteen kokonaan itse."
Lähde:
CERT.FI: Tietoturva nyt! -tiedote 28.3.2008
Teamware Pl@za -järjestelmän linkkejä (URL) ei näin pysty muokkaamaan. On kuitenkin muutamia tilanteita, jossa järjestelmään osoitettuun ulkopuoliseen linkkiin pystyy upottamaan cross-site scripting -tyylisen lisäyksen, joka voi näyttää käyttäjälle ulkopuolista sisältöä tai ohjata käyttäjän järjestelmän ulkopuolelle ja täten harhauttaa käyttäjän antamaan tietoja ulkopuoliselle taholle. Tästä esimerkkinä on löydetty Tapahtumakalenterin tapahtuman näytön kuvauskenttä.
SQL Injection
SQL injection on kriittisempi haavoittuvuus ja luokiteltava tietoturvaongelmaksi, koska sen avulla hakkeri voi muuttaa tai tuhota tietokannan sisältöä. Erilaiset sovellukset (esim. verkkopalvelujärjestelmät) käyttävät SQL-kutsuja sisällön hakemiseksi SQL-tietokannasta
2)
Verkkopalvelun linkki (URL) voi sisältää SQL-komennon osia. Kutsun sisään muokattua tai lisättyä parametriä, komentoa tai muuta toimintoa sanotaan SQL injectioniksi. Muokatulla linkillä voi esimerkiksi vaihtaa otsikkokentän sisällön toiseksi, muuttaa muiden kenttien arvoja tai sisältöjä sekä pahimmassa tapauksessa poistaa dataa tietokannasta.
Tietourvatarkastuksen tuloksena emme ole löytäneet tilannetta, jossa Teamware Pl@za -järjestelmän tietokantojen sisältöä voisi muuttaa SQL-injection:lla. Löysimme kuitenkin muutaman tapauksen, jossa sivun näyttöä varten voisi kenttien sisältö (esim. otsikkokenttän) vaihtaa ulkopuoliseksi sisällöksi.
Teamware Pl@za Vakioratkaisu 5
Tietoturvatarkastuksissa ja asiakassivustojen auditoinnissa löydetyt cross-site scripting ja SQL-injection haavoittuvuudet on korjattu Teamware Pl@za Vakioratkaisu 5 -versiossa. Lisätietoja ja oman sivustonne tietoturvaan tai Teamware Pl@za Vakioratkaisu 5 -päivitykseen liittyvissä kysymyksissä ottakaa yhteyttä asiakasratkaisu- tai projektipäällikköihimme.
1) käytetään myös lyhennettä XSS
2) esim. Oracle RDBMS, MS SQL Server, MySQL, PostgreSQL -tietokannat
CERT-FI lyhyesti: CERT-FI on Viestintävirastossa toimiva kansallinen tietoturvaviranomainen, jonka tehtävänä on tietoturvaloukkausten ennaltaehkäisy, havainnointi, ratkaisu sekä tietoturvauhkista tiedottaminen. http://www.cert.fi/
12.5.2008 18:43