Moduuli 10 · 10.3
Kun jokin menee pieleen
Moduuli 10: Pysy turvassa · Lukuaika: 11 minuuttia
Tavoite: Tämän oppitunnin jälkeen tunnistat murretun palvelimen merkit ja otat ensimmäiset askeleet tuhoamatta todisteita tai varmuuskopioita. Osaat valita siivoamisen ja uudelleenasennuksen välillä ja tiedät, milloin tietoturvaloukkauksesta on ilmoitettava.
Keskeiset käsitteet: tietoturvapoikkeama, merkit, eristäminen, tilannevedos todisteena, poikkeaman lokikirja, uudelleenasennus, avainten ja salasanojen vaihtaminen, puhdas varmuuskopio, tietoturvaloukkausten ilmoitusvelvollisuus (72 tuntia), tietosuojavaltuutetun toimisto, hätäsuunnitelma
Poikkeaman tunnistaminen
Murto ilmoittaa itsestään harvoin. Yleensä huomaat jotain "outoa". Näihin merkkeihin kannattaa suhtautua vakavasti:
- Suuri kuormitus ilman syytä: suoritin on jatkuvasti 100 %:ssa, esimerkiksi kryptolouhijan takia. Katso komennolla
toptaihtop, mikä prosessi on kyseessä ja millä käyttäjällä se toimii. - Tuntemattomat prosessit tai palvelut: ohjelma, jolla on outo nimi, usein hakemistossa
/tmp,/dev/shmtai/var/tmp, tai systemd-palvelu tai ajastin, jota et ole itse tehnyt. - Lähtevä liikenne, joka ei täsmää: palveluntarjoajasi ilmoittaa, että palvelimesi lähettää roskapostia tai hyökkää muihin palvelimiin, tai paneelin verkkokaavioissa näkyy piikkejä.
- Uudet käyttäjät tai avaimet: tiedostossa
~/.ssh/authorized_keysrivi, jota et tunnista, tiedostossa/etc/passwdkäyttäjä, jonka UID on 0, uusi rivi tiedostossa/etc/sudoers.d/. - Muuttuneet tiedostot: tuntemattomia PHP-tiedostoja verkkosivustollasi, muutettu crontab.
- Kadonneet tai tyhjät lokit: hyökkääjät pyyhkivät mielellään jälkensä.
Muutama komento nopeaan tarkistukseen:
anna@web1:~$ top -o %CPU
anna@web1:~$ sudo ss -tunap | grep ESTAB
anna@web1:~$ sudo last -n 20
anna@web1:~$ awk -F: '$3 == 0 {print $1}' /etc/passwd
anna@web1:~$ sudo find /etc/systemd/system /etc/cron* -newer /etc/hostname -type f
anna@web1:~$ for u in /root /home/*; do sudo cat $u/.ssh/authorized_keys 2>/dev/null; donelast näyttää, kuka kirjautui ja milloin, awk-rivi näyttää kaikki tilit, joiden UID on 0 (sen pitäisi olla vain root), ja find-rivi etsii unitit ja cron-tiedostot, jotka ovat uudempia kuin asennuksen yhteydessä luotu tiedosto.
Huomaa: aidosti murretulla palvelimella myös nämä komennot voivat olla väärennettyjä. Niiden avulla voit epäillä jotain, mutta et todistaa, että kaikki on puhdasta.
Ensimmäiset askeleet: rauhoitu, eristä, kirjaa
Tärkeintä ensimmäisten minuuttien aikana on olla poistamatta asioita paniikissa. Toimi tässä järjestyksessä.
1. Aloita lokikirja. Kirjoita paperille tai kannettavallesi (ei palvelimelle), mitä näet, milloin ja mitä teet. Tarvitset tätä myöhemmin syyn selvittämiseen, ilmoitukseen, rikosilmoitukseen tai vakuutusyhtiötä varten. Myös Alankomaiden NCSC (kyberturvallisuuskeskus) suosittelee tätä.
2. Eristä palvelin. Estä sitä aiheuttamasta lisää vahinkoa (roskapostia, hyökkäyksiä, tietojen lähettämistä ulos) sammuttamatta sitä:
- sulje palveluntarjoajasi palomuurissa (jos sellainen on) kaikki paitsi SSH omasta osoitteestasi; tai
- tee sama palvelimella itsellään konsolin kautta;
- jos muuta keinoa ei ole: sammuta palvelin paneelista. Silloin menetät kuitenkin muistin sisällön.
3. Ota tilannevedos. Paneelin tilannevedos (snapshot) tallentaa palvelimen tilan sellaisena kuin se on nyt. Se on todisteesi ja lähteesi, kun myöhemmin selvität, miten hyökkääjä pääsi sisään, vaikka asentaisit palvelimen sen jälkeen uudelleen.
4. Turvaa varmuuskopiot. Tarkista, että palvelimen ulkopuoliset varmuuskopiot ovat yhä ehjiä, ja varmista, ettei murrettu palvelin pääse niihin enää käsiksi (peru esimerkiksi palvelimen käyttöavain varmuuskopiotallennukseen). Hyökkääjät yrittävät myös poistaa tai salata varmuuskopioita.
Siivotako vai asentaa uudelleen?
Houkutteleva vastaus on: poista epäilyttävä tiedosto, pysäytä kryptolouhija, valmista. Et kuitenkaan tiedä, mitä muuta hyökkääjä on tehnyt: toinen takaovi, muutettu ohjelma, ylimääräinen avain, ajastin, joka palauttaa kaiken. Palvelimeen, jolla joku on saanut root-oikeudet, ei voi enää luottaa.
Ylläpitäjien ja myös Alankomaiden NCSC:n neuvo on siksi: asenna kohteeksi joutuneet järjestelmät uudelleen ja palauta tietosi varmuuskopiosta, joka ei itse ole saastunut. Käytännössä:
- Uusi asennus (uudelleenasennus paneelista tai uusi palvelin).
- Heti tämän kurssin perusasiat: päivitykset, tavallinen käyttäjä sudolla, SSH uusilla avaimilla, palomuuri (moduulit 2, 3, 4 ja 5).
- Sovellusten asentaminen uudelleen virallisista lähteistä, mieluiten compose-tiedostojesi tai muistiinpanojesi avulla (oppitunti 10.4).
- Tietojen (tietokanta, ladatut tiedostot) palauttaminen varmuuskopiosta, joka on otettu ennen poikkeamaa. Älä palauta koodia tai asetuksia sokeasti: niissä voi olla takaovi. Tarkastele kriittisesti myös palautettuja tietoja; hyökkääjä on voinut olla sisällä pidempään kuin luulet.
- Sen aukon tukkiminen, josta hyökkääjä pääsi sisään. Muuten sama tapahtuu uudelleen. Vaiheen 3 tilannevedos auttaa selvittämisessä.
Vaihda kaikki, mikä on voinut vuotaa
Oleta, että kaikki palvelimella ollut on hyökkääjän hallussa:
- SSH-avaimet: poista palvelimella olleet julkiset avaimet kaikkialta ja luo uudet avainparit, jos palvelimella oli yksityisiä avaimia.
- Salasanat: tietokantojen, hallintapaneelien ja sovelluksesi käyttäjien salasanat.
- API-avaimet ja tunnisteet (sähköposti, maksut, pilvitallennus, varmuuskopiotallennus)
.env-tiedostoista ja asetuksista: peru ne palvelussa ja vaihda uusiin. - Varmenteet: varmenteesi yksityinen avain oli palvelimella. Peruuta varmenne ja hae uusi (Let's Encryptillä se käy nopeasti, oppitunti 7.3).
Ilmoittaminen: tietosuoja-asetus ja muut
Jos palvelimella oli henkilötietoja (asiakastietoja, käyttäjätilejä, sähköpostiosoitteita), kyseessä voi olla tietoturvaloukkaus. Tietosuoja-asetuksen (GDPR) 33 artiklan mukaan rekisterinpitäjän on ilmoitettava tietoturvaloukkauksesta valvontaviranomaiselle ilman aiheetonta viivytystä ja mahdollisuuksien mukaan 72 tunnin kuluessa siitä, kun se on tullut sen tietoon. Suomessa valvontaviranomainen on tietosuojavaltuutetun toimisto, ja tietoturvaloukkausilmoitus tehdään sähköisellä lomakkeella. Muutama tärkeä kohta:
- ilmoitusta ei tarvita, jos loukkauksesta ei todennäköisesti aiheudu riskiä rekisteröidyille; jos epäröit, ilmoita;
- jos sinulla ei vielä ole kaikkia tietoja, ilmoita silti 72 tunnin kuluessa ja täydennä myöhemmin;
- ihmisille, joiden tietoja on vuotanut, ilmoitetaan, jos heille aiheutuu suuri riski;
- jokainen tietoturvaloukkaus kirjataan omaan rekisteriin, vaikka ilmoitusta ei tarvitsisi tehdä.
Jos ylläpidät palvelinta asiakkaalle, olet yleensä henkilötietojen käsittelijä: silloin sinun on ilmoitettava asiakkaalle (rekisterinpitäjälle) ilman aiheetonta viivytystä, jotta tämä voi tehdä ilmoituksen. Tämä oppitunti ei ole oikeudellista neuvontaa; tarkista epäselvissä tapauksissa tietosuojavaltuutetun toimiston ohjeet.
Lisäksi: ilmoita palvelimeltasi tehdystä väärinkäytöstä palveluntarjoajallesi (se on usein jo huomannut asian) ja tee vakavasta hyökkäyksestä rikosilmoitus poliisille. Tietoturvapoikkeamasta voit ilmoittaa myös Traficomin Kyberturvallisuuskeskukselle (CERT-FI). Jos organisaatiosi kuuluu kyberturvallisuuslain (124/2025, NIS2) piiriin, sovelletaan erillisiä, lyhyempiä ilmoitusmääräaikoja.
Valmistautuminen: hätäsuunnitelma
Poikkeama sattuu aina huonoon aikaan. Etukäteen hoidetut asiat säästävät tunteja:
- Tiedä, miten pääset palveluntarjoajasi konsoliin ja tilannevedospainikkeeseen, ja säilytä paneelin kirjautumistiedot (kaksivaiheisella tunnistautumisella) jossain palvelimen ulkopuolella.
- Tiedä, missä varmuuskopiosi ovat, miten ne palautetaan ja että ne toimivat (oppitunti 8.2).
- Pidä luetteloa kaikista palvelimella olevista salaisuuksista, jotta tiedät, mitä pitää vaihtaa.
- Pidä soittolistaa: palveluntarjoajasi, kenen muun pitää tietää palvelimesta (asiakas, kollega) ja tietoturvaloukkausilmoituksen yhteystiedot.
Käytännössä
WebOkén VPS-näkymästä löydät konsolin, tilannevedokset, varmuuskopiot ja uudelleenasennuspainikkeen; muilla palveluntarjoajilla niiden nimet ovat suunnilleen samat (console tai VNC, snapshot, rescue, reinstall). Tämä kurssi on omatoimista: kukaan ei seuraa palvelintasi eikä kukaan siivoa poikkeamaa puolestasi. Juuri siksi hätäsuunnitelma, jonka voit toteuttaa itse, on niin tärkeä.
Yhteenveto
- Merkit: selittämätön kuormitus, tuntemattomat prosessit, palvelut tai avaimet, outo lähtevä liikenne, muuttuneet tai kadonneet tiedostot ja lokit.
- Ensimmäiset askeleet: pidä lokikirjaa, eristä palvelin, ota tilannevedos todisteeksi, turvaa varmuuskopiot.
- Palvelinta, jolla joku on ollut root-oikeuksin, ei siivota vaan se asennetaan uudelleen; tiedot palautetaan puhtaasta varmuuskopiosta ja aukko tukitaan.
- Vaihda kaikki palvelimella olleet avaimet, salasanat, tunnisteet ja varmenteet.
- Koskiko poikkeama henkilötietoja? Tietoturvaloukkauksesta ilmoitetaan mahdollisuuksien mukaan 72 tunnin kuluessa valvontaviranomaiselle, ja jokainen loukkaus kirjataan.
Tietovisa (quiz)
Tehtävä
Tehtävä O10.3: Hätäsuunnitelma yhdelle sivulle. Kirjoita omalle palvelimellesi enintään yhden A4-sivun hätäsuunnitelma: miten pääset paneeliin, konsoliin ja tilannevedoksiin; missä varmuuskopiosi ovat ja miten ne palautetaan; mitä salaisuuksia palvelimella on; kenelle sinun on ilmoitettava (ja onko tietoturvaloukkauksesta tehtävä ilmoitus); ja mitkä viisi ensimmäistä askelta otat, jos epäilet murtoa. Säilytä suunnitelma palvelimen ulkopuolella.
Tehtävä O10.3: Hätäsuunnitelma yhdelle sivulle
Tämän tehtävän teet itse, kukaan ei tarkista sitä. Merkitse tekemäsi kohdat ja merkitse tehtävä tehdyksi.
Ensin kirjaa tapahtumat (lokikirja palvelimen ulkopuolella), sitten eristä palvelin (palveluntarjoajan palomuuri tai konsoli), ota tilannevedos todisteeksi ja turvaa varmuuskopiot. Päätä vasta sen jälkeen uudelleenasennuksesta, salaisuuksien vaihtamisesta ja ilmoittamisesta (jos henkilötietoihin kohdistuu riski, ilmoitus tietosuojavaltuutetun toimistolle 72 tunnin kuluessa). Älä kirjoita oikeita salasanoja tähän lomakkeeseen.
Merkintäsi ja muistiinpanosi pysyvät vain tässä selaimessa, emme lähetä niitä minnekään. Jos olet kirjautunut sisään, tallennamme kohtaan Omat kurssit vain sen, että olet tehnyt tehtävän.
Lue lisää
- Et pääse enää VPS:llesi: mitä nyt?
- VPS-palvelimen snapshotit ja varmuuskopiot
- Oman ISO-levyn liittäminen tai VPS-palvelimen uudelleenasennus
- Alankomaiden NCSC (kyberturvallisuuskeskus), Gehackt, wat nu? (hollanninkielinen lähde): https://www.ncsc.nl/incidenten-en-herstellen/gehackt-wat-nu
- Alankomaiden tietosuojaviranomainen (Autoriteit Persoonsgegevens), tietoturvaloukkausten ilmoitusvelvollisuus (hollanninkielinen lähde): https://www.autoriteitpersoonsgegevens.nl/nl/onderwerpen/beveiliging/meldplicht-datalekken
