Lyhyesti: Verkkosivuston haittaohjelmaskanneri löytää lähinnä tunnettuja kuvioita tiedostoista tai tarjoillusta sivusta. Uusi ja hämärretty koodi, tietokannan takaovet, vieraat tilit, cron-tehtävät ja SSH-avaimet jäävät usein näkymättömiin. ”Ei löytöjä” ei siksi tarkoita ”puhdas”. Luotettavaksi tarkistus muuttuu vasta skannerin, vertailun alkuperäiseen, tietokannan ja järjestelmän tarkistuksen sekä käyttäytymisen valvonnan yhdistelmästä.
Vihreän merkin petollinen rauha
PHP2Shellin jälkeen moni ylläpitäjä teki sen, mikä oli ilmeistä: ajoi skannerin. Verkkopalvelu tarkistaa etusivun, tietoturvaliitännäinen käy läpi verkkohakemiston, tulos on vihreä. Näin kysymys siitä, tapahtuiko jotain ennen korjausta, näyttää ratkenneen.
Ongelma on periaatteessa. Useimmat skannerit vertaavat sisältöjä tunnetun haittaohjelman kuvioihin. Aukoille CVE-2026-109618 ja CVE-2026-109619 ei kuitenkaan ole julkaistuja, vahvistettuja Indicators of Compromise -tunnisteita; tunnistus perustuu käyttäytymisanalyysiin. Skanneri ei voi etsiä jälkiä, joita kukaan ei tunne. Parhaimmillaan se löytää yleistä haittaohjelmaa, joka ladattiin murron jälkeen, jos se noudattaa tunnettuja kuvioita.
Se ei tee skannereista arvottomia. Se tarkoittaa vain, että niiden tulos on osattava sijoittaa oikein. Mitkä merkit skannerien lisäksi ratkaisevat, kuvaa Olenko jo vaarantunut?.
Verkkosivuston haittaohjelmaskanneri: kolme rakennetta
| Rakenne | Mitä se näkee | Mitä se ei näe |
|---|---|---|
| Ulkoinen skanneri (verkkopalvelu) | tarjoillut sivut, mukaan liitetyt skriptit, uudelleenohjaukset, estolistat | tiedostot, tietokanta, tilit, kaikki, mikä tarjoillaan vain ehdoilla |
| Skanneri CMS:ssä (liitännäinen tai laajennus) | verkkohakemiston tiedostot, osin tietokannan sisällöt, vertailu ydintiedostoihin | järjestelmätaso, cron-tehtävät, SSH; toimii mahdollisesti vaarantuneessa järjestelmässä |
| Skanneri palvelimella (allekirjoituspohjainen) | kaikki luettavat tiedostot, myös verkkohakemiston ulkopuolella | tuntemattomat ja hämärretyt kuviot, tietokanta, tilit, käyttäytyminen |
Ulkoiset skannerit ovat hyödyllisiä näkyvien seurausten, kuten uudelleenohjausten tai estolistamerkintöjen, tunnistamiseen. Monet hakkeroinnit tarjoilevat roska- tai uudelleenohjaussisältönsä kuitenkin vain tietyille kävijöille, esimerkiksi hakukoneille tai mobiililaitteille. Skanneri näkee silloin puhtaan sivun.
CMS:n skannereilla on enemmän näkyvyyttä mutta perustavanlaatuinen ongelma: ne toimivat samassa järjestelmässä, jota niiden pitäisi tarkistaa. Riittävillä oikeuksilla varustettu koodi voi vaikuttaa niiden tuloksiin, piilottaa tiedostoja tai poistaa skannerin käytöstä. Palvelinskannerit toimivat sovelluksen ulkopuolella, mutta ovat yhä riippuvaisia kuvioista.
Mitä skannerit ohittavat periaatteessa
Rakenteesta riippumatta on alueita, joita tiedosto- tai sivuskanneri tuskin kattaa:
- Uusi tai yksilöllisesti hämärretty koodi: Jokainen muunnelma, joka näyttää erilaiselta kuin tunnetut kuviot, livahtaa läpi.
- Tietokanta: Skriptit sisällöissä, muutetut asetukset, triggerit ja vieraat tilit. Lisää kohdassa Tietokannan tarkistus sisäänajetun koodin varalta.
- Pääsyoikeudet: ylimääräiset ylläpitäjätilit, SSH-avaimet, tietokantakäyttäjät, tilit hosting-paneelissa.
- Järjestelmäpalvelut ja cron-tehtävät: mekanismit, jotka lataavat haittakoodin säännöllisesti uudelleen.
- Huomaamattomat muutokset laillisiin tiedostoihin: yksi ainoa lisärivi ydintiedostossa, joka näyttää harmittomalta.
- Vuotaneet tiedot: Mikään skanneri ei näytä, kopioitiinko tunnuksia tai asiakastietoja.
Mikä sen sijaan tuo varmuuden
Enemmän varmuutta tuo eri tavoin toimivien tarkistustapojen yhdistelmä:
- Vertailu alkuperäiseen: Se löytää jokaisen muutoksen tunnetuissa tiedostoissa kuvioista riippumatta. Menettelyn kuvaa CMS-ydintiedostojen vertailu alkuperäiseen.
- Kohdennettu haku poikkeavuuksista: PHP-tiedostot upload-kansioissa, äskettäin muuttuneet tiedostot, hämärretty koodi, suoritettavat tiedostot väliaikaiskansioissa.
- Tilien ja järjestelmäpalveluiden tarkistus: Verratkaa käyttäjiä, avaimia, cron-tehtäviä ja palveluita tunnettuun tavoitetilaan.
- Lokien analyysi: Pyynnöt tuntemattomiin tiedostoihin, virheiden kasaantuminen, epätavalliset kirjautumiset.
- Käyttäytymisen valvonta: Verkkopalvelimen prosessit, jotka käynnistävät shellin, odottamattomat lähtevät yhteydet, uudet tiedostot arkaluonteisissa kansioissa.
Viimeinen luokka on tärkein, kun tunnettuja jälkiä ei ole. Se ei kysy, miltä haittakoodi näyttää, vaan mitä se tekee. Verkkopalvelimen prosessi, joka yhtäkkiä käynnistää shellin, herättää huomiota riippumatta siitä, kuinka laukaiseva koodi on hämärretty.
Ajakaa palvelinskanneri puhtaasta järjestelmästä kirjoitussuojatun kopion yli sen sijaan, että ajaisitte sen epäilyttävällä palvelimella itsellään. Näin sisäänajettu koodi ei voi vaikuttaa tulokseen.
Miten skannereita käytetään järkevästi
Skannereilla on paikkansa yhtenä työkaluna muiden joukossa. Ulkoinen skanneri sopii näkyvien seurausten säännölliseen valvontaan, esimerkiksi viikoittain. CMS:n skanneri ilmoittaa arjessa tunnetuista haittaohjelmista ja muuttuneista ydintiedostoista. Palvelinskanneri täydentää tunnettujen kuvioiden etsintää koko tiedostojärjestelmässä.
Ratkaisevaa on tuloksen käsittely. Löytö on selvä tarkistustehtävä ja oikeuttaa täydelliseen selvitykseen, koska harvoin vain yksi tiedosto on vaikutuksen alainen. Tyhjä tulos sen sijaan on vain väite tarkistetuista kuvioista. Kirjatkaa dokumentaatioonne, mikä skanneri ajettiin milloin ja millä tilalla, äläkä kirjoittako ”järjestelmä puhdas” vaan ”tunnettuja kuvioita ei löytynyt”.
Johdolle tämä tarkoittaa: vihreä merkki ei korvaa tarkistusta, jonka tekee joku, joka tarkastelee tiedostoja, tietokantaa, tilejä ja käyttäytymistä yhdessä. Tapauksen jälkeen, jossa koodin suorittaminen on mahdollista, kuten PHP2Shellin kohdalla on ajateltavissa, tämän tarkistuksen pitäisi tapahtua.
Jos skanneri sen sijaan ilmoittaa löydön, tarvitaan nopeaa mutta järjestelmällistä toimintaa. Älkää poistako ilmoitettua tiedostoa heti skannerin toiminnolla. Varmistakaa ensin tiedosto ja lokit, jotta voidaan selvittää, miten se päätyi palvelimelle. Miten täydellinen siivous etenee, kuvaa palvelu Haittaohjelmien ja web shellien poisto.
Miten PHP SOS auttaa konkreettisesti?
- Yhdistämme skannerit vertailuun alkuperäiseen, kohdennettuun hakuun sekä tilien, palveluiden ja lokien arviointiin.
- Tarkistamme epäilyttävät järjestelmät varmistettujen kopioiden kautta, jotta vaarantunut järjestelmä ei vaikuta tuloksiin.
- Merkitsemme jokaisen tuloksen rehellisesti todistetuksi, todennäköiseksi tai tuntemattomaksi.
- Verkkopalvelinten tietoturvavalvonnalla valvomme palvelimienne käyttäytymistä jatkuvasti, emme vain tunnettuja kuvioita.
Usein kysytyt kysymykset
Onko verkkosivustoni puhdas, jos haittaohjelmaskanneri ei löydä mitään?
Ei välttämättä. Skannerit löytävät lähinnä tunnettuja kuvioita. Uusi tai hyvin hämärretty koodi, tietokannan takaovet, vieraat tilit, cron-tehtävät ja SSH-avaimet jäävät usein huomaamatta. Tyhjä tulos on yksi rakennuspalikka, ei vapauttava todiste.
Mitä eroa on ulkoisella skannerilla ja liitännäisskannerilla?
Ulkoinen skanneri avaa verkkosivuston ulkopuolelta ja näkee vain sen, mikä tarjoillaan. Liitännäisskanneri toimii CMS:n sisällä ja voi lukea tiedostoja, mutta toimii samassa järjestelmässä, joka on mahdollisesti vaarantunut. Kummallakin on omat sokeat pisteensä.
Onko PHP2Shellille olemassa skannerien allekirjoituksia?
PHP2Shellille ei ole julkaistuja, vahvistettuja Indicators of Compromise -tunnisteita. Skannerit eivät siksi voi etsiä kohdennetusti varmistettuja PHP2Shellin jälkiä. Tunnistus perustuu käyttäytymisanalyysiin ja yleisten vaarantumisen merkkien etsintään.
Mikä skanneri on paras?
Kysymys johtaa harhaan. Tärkeämpää kuin yksittäinen tuote on eri tarkistustapojen yhdistelmä: vertailu alkuperäiseen, haku tiedostoista ja tietokannasta, tilien ja järjestelmäpalveluiden tarkistus sekä käyttäytymisen valvonta.