Sivustojen välinen komentosarja

Cross-site scripting (lyhennetty XSS ) on eräänlainen tietoturvaheikkous ja verkkosivujen pistää sisältöä sivulle, joka aiheuttaa toimia selaimet sivullesi. XSS: n mahdollisuudet ovat hyvin laajat, koska hyökkääjä voi käyttää kaikkia selaimen tukemia kieliä ( JavaScript , Java ...) ja uusia mahdollisuuksia löydetään säännöllisesti etenkin uusien tekniikoiden, kuten HTML5: n, myötä . Esimerkiksi on mahdollista ohjata toiselle sivustolle tietojenkalastelua varten tai jopa varastaa istunto hakemalla evästeet .

Sivustojen välinen komentosarja on lyhennetty XSS: ksi, jotta sitä ei pidä sekoittaa CSS: ään (tyylitaulukot), kun X luetaan ristinä  " englanniksi.

Määritelmä

Termi sivustojen välinen komentosarja ei ole kovin tarkka kuvaus tämän tyyppisestä haavoittuvuudesta. XSS: n edelläkävijä Mark Slemko sanoi:

"Ongelma ei ole pelkästään komentosarjojen kirjoittaminen, eikä useiden sivustojen välillä välttämättä tapahdu jotain. Joten miksi tämä nimi? Itse asiassa nimi annettiin, kun ongelma oli vähemmän ymmärretty, ja se juuttui. Uskokaa minua, meillä oli tärkeämpiä asioita kuin ajatella parempaa nimeä. "

- Mark Slemko, "  Cross Site Scripting Info  " , The Apache HTTP Server Project ,Helmikuu 2000

Periaatteena on injektoida mielivaltaista tietoa verkkosivustolle esimerkiksi lähettämällä viesti foorumiin tai URL-parametreilla. Jos nämä tiedot saapuvat selaimeen lähetetylle verkkosivulle (URL-parametrien, lähetetyn viestin jne. Kautta) vahvistamatta, siinä on virhe: niitä voidaan käyttää haittaohjelmien suorittamiseen komentosarjakielellä ( yleisimmin JavaScript ) selainta tarkastelemalla tätä sivua.

XSS-virheen havaitseminen voidaan tehdä esimerkiksi kirjoittamalla JavaScript-komentosarja lomakekenttään tai URL-osoitteeseen:

<script>alert('bonjour')</script>

Jos valintaikkuna tulee näkyviin, voidaan päätellä, että verkkosovellus on altis XSS-hyökkäyksille.

Riskit

XSS-tyyppisen virheen hyväksikäyttö antaisi tunkeilijalle mahdollisuuden suorittaa seuraavat toimet:

XSS-haavoittuvuuksien tyypit

Sivustojenvälisten komentosarjojen haavoittuvuuksia ei ole standardoitua luokitusta, mutta XSS: n kaksi päätyyppiä voidaan helposti erottaa: ei-pysyvä ja jatkuva. Nämä kaksi tyyppiä on myös mahdollista jakaa kahteen ryhmään: perinteinen XSS (palvelinpuolen haavoittuvuuden aiheuttama) ja DOM- pohjainen XSS (asiakaspuolen haavoittuvuuden vuoksi).

Heijastettu XSS (tai ei pysyvä)

Tämän tyyppinen tietoturvaloukkaus, jota voidaan kuvata "pysyväksi", on ylivoimaisesti yleisin.

Se ilmestyy, kun verkkoasiakkaan toimittamia tietoja käytetään palvelinskriptien tavoin tulossivun tuottamiseen . Jos tarkistamattomat tiedot sisältyvät tulossivulle koodaamatta HTML-entiteettejä , niitä voidaan käyttää koodin lisäämiseen asiakkaan selaimen vastaanottamaan dynaamiseen sivuun.

Klassinen esimerkki sivustohakukoneista: jos haet merkkijonoa, joka sisältää erityisiä HTML- merkkejä , usein haettu merkkijono näytetään tulossivulla muistuttamaan hausta tai tekstiruudussa tämän kanavan uudelleenlähettämistä . Jos näkyvää merkkijonoa ei ole koodattu, XSS-haavoittuvuus on olemassa.

Ensi silmäyksellä tämä ei ole vakava ongelma, koska käyttäjä voi pistää koodia vain omille sivuilleen. Pienellä sosiaalisella suunnittelulla hyökkääjä voi kuitenkin vakuuttaa käyttäjän seuraamaan huijattua URL-osoitetta, joka lisää koodia tulossivulle, jolloin hyökkääjä voi hallita täysin sivun sisältöä. Koska tämän tyyppisen virheen (ja edellisen) hyödyntämiseen tarvitaan sosiaalista suunnittelua, monet ohjelmoijat katsoivat, että nämä aukot eivät olleet kovin tärkeitä. Tämä virhe yleistetään usein XSS-haavoittuvuuksiin yleensä.

Tämän tyyppinen haavoittuvuus, jota kutsutaan myös pysyväksi tai toisen asteen haavoittuvuudeksi, sallii voimakkaat hyökkäykset. Se tapahtuu, kun käyttäjän toimittama data on tallennettu palvelimelle (tietokantaan, tiedostoihin tai mihin tahansa) ja näytetään sitten uudelleen ilman erityisiä HTML-merkkejä koodattuja .

Klassinen esimerkki on foorumit, joissa käyttäjät voivat lähettää HTML-tunnisteilla muotoiltua tekstiä. Nämä haavoittuvuudet ovat suurempia kuin muuntyyppiset, koska hyökkääjä voi vain pistää käsikirjoituksen kerran ja tavoittaa suuren määrän uhreja turvautumatta sosiaaliseen suunnitteluun.

On olemassa erilaisia ​​injektiomenetelmiä, jotka eivät välttämättä vaadi hyökkääjää käyttämään itse verkkosovellusta. Kaikki hyökkääjän lähettämät verkkosovelluksen vastaanottamat tiedot (sähköpostitse, lokit ...) on koodattava ennen niiden esittämistä dynaamisella sivulla, muuten on olemassa XSS-virhe.

Perustuu DOM: iin tai paikalliseen

Tämän tyyppinen XSS-virhe on ollut tiedossa jo kauan. Vuonna 2005 kirjoitetussa artikkelissa määritellään selvästi sen ominaisuudet. Tässä tilanteessa ongelma on asiakaspuolen sivun komentosarjassa. Esimerkiksi, jos JavaScript-fragmentti käyttää URL- pyynnön parametria ja käyttää näitä tietoja HTML: n kirjoittamiseen omalle sivulleen, eikä kyseisiä tietoja ole koodattu HTML-entiteeteiksi , on todennäköisesti XSS-haavoittuvuus. Selain tulkitsee kirjoitetut tiedot uudelleen HTML-koodiksi, joka mahdollisesti sisältää lisätyn haittaohjelman.

Käytännössä tapa hyödyntää tällaista vikaa on samanlainen kuin seuraava tyyppi, paitsi erittäin tärkeässä tilanteessa. Koska Internet Explorer kohtelee asiakaspuolen komentosarjoja "paikallisella vyöhykkeellä" sijaitsevissa objekteissa (kuten asiakkaan paikallinen kiintolevy), tämän tyyppinen haavoittuvuus voi johtaa etäsuorittamiseen. Esimerkiksi, jos hyökkääjä isännöi "haitallista" verkkosivustoa, joka sisältää linkin haavoittuvalle sivulle asiakkaan paikallisessa järjestelmässä, voidaan injektoida komentosarja, joka toimii käyttäjän verkkoselaimen oikeuksilla kyseisessä järjestelmässä. Tämä ohittaa täysin "  hiekkalaatikon  ", ei vain verkkotunnusten väliset rajoitukset, jotka XSS yleensä ohittaa.

XSS-suojaus

XSS: n välttämiseksi voidaan käyttää useita tekniikoita:

On kirjastoja, jotka mahdollistavat merkittyjen käyttäjien luoman sisällön tehokkaan suodattamisen (julkaisujärjestelmät).

Lisäksi on myös mahdollista suojautua XSS-tyyppisiltä haavoittuvuuksilta käyttämällä erillisiä verkkolaitteita, kuten sovellusten palomuureja . Nämä suodattimet mahdollistavat kaikkien HTTP- virtausten suodattamisen epäilyttävien pyyntöjen havaitsemiseksi.

XSS: n käyttö hyökkäyksissä

Useat suuret hyökkäykset käyttivät sivustojen välisiä komentosarjoja:

Viitteet

  1. (sisään) Steven Champeon, "  XSS, Trust ja Barney ( uusintapainos Webmonkeylta )  " osoitteessa hesketh.com ,Toukokuu 2000(käytetty 24. maaliskuuta 2011 )
  2. (in) DOM-pohjainen sivustojen välinen komentosarja
  3. (in) http://namb.la/popular/tech.html  : maton selitys ja lähde
  4. (in) Apache Infrastruktuuri Team "  apache.org tapaus lykkäämisen 04/09/2010  " on Apache Software Foundation ,2010(käytetty 30. elokuuta 2012 )
  5. "  Fake eBay Ads Trick Users  " , osoitteessa 01net.com ,23. syyskuuta 2014(käytetty 25. syyskuuta 2014 )
  6. hakkerointiyrityksen kohteena oleva Jeuxvideo.com , lemonde.fr, 23. elokuuta 2015

Katso myös

Aiheeseen liittyvät artikkelit

Ulkoiset linkit