# Massaskannaukset päivittämättömän PHP:n perässä: näin automaattiset hyökkäykset etenevät

> Automaattiset hyökkäykset palvelimiin: miten massaskannaukset etsivät päivittämätöntä PHP:tä, miksi pienet yritykset ovat kohteita, mikä suojaa.

Lähde: https://phpsos.de/fi/blog/automatisierte-massenscans/  
Tilanne: 25.10.2026  
Palveluntarjoaja: PHP SOS, PHP-hätäapu ja palvelimen tietoturva. Pikaapu WhatsAppilla: https://wa.me/491736494914?text=Hei%20PHP%20SOS%2C%20tarvitsemme%20apua%20PHP-palvelimemme%20kanssa.%20Yritys%3A%20%E2%80%A6%20Verkkosivusto%3A%20%E2%80%A6

**Lyhyesti:** Verkkopalvelinten automaattiset hyökkäykset etenevät aalloissa: ohjelmat läpikäyvät internetiä tavoitettavien palvelinten varalta, luokittelevat ne ulkoisten tunnusmerkkien perusteella ja kokeilevat tunnettuja aukkoja, kuten PHP2Shelliä, massoittain. Yrityksen koolla ei ole merkitystä. Suojan antavat päivitetty PHP, pieni hyökkäyspinta ja valvonta, joka huomaa onnistuneet osumat nopeasti.

## Lähtökohta: ”Kuka kiinnostuisi verkkosivustostamme?”

Tämän kysymyksen kuulemme PHP2Shellin jälkeen usein, erityisesti pienemmiltä yrityksiltä. Rehellinen vastaus: luultavasti kukaan henkilökohtaisesti. Mutta sellaisissa aukoissa se ei ole tarpeenkaan. Hyökkäykset suorittavat ohjelmat, jotka eivät etsi nimiä vaan tilaisuuksia.

BSI (Saksan liittovaltion tietoturvavirasto) odotti PHP2Shellin kohdalla nopeaa, laajamittaista hyväksikäyttöä. Cloudflare kertoi hyökkäysyrityksistä ja siitä, että hyökkääjät muuttivat kuvioitaan kiertääkseen suojasääntöjä. Molemmat sopivat siihen, mitä laajalle levinneen ohjelmiston kriittisissä aukoissa tapahtuu säännöllisesti.

## Miten verkkopalvelinten automaattiset hyökkäykset etenevät

Automaattiset kampanjat noudattavat yleensä samankaltaista kaavaa. Seuraava yleiskatsaus kuvaa vaiheet yleisellä tasolla, ilman hyökkäysyksityiskohtia:

| Vaihe | Mitä tapahtuu | Mikä auttaa |
|---|---|---|
| Etsiminen | Ohjelmat tarkistavat suuria osoitealueita tai julkisia hakemistoja, kuten varmenteiden lokeja, tavoitettavien verkkopalvelinten varalta | vähän julkisesti tavoitettavia järjestelmiä, luettelo kaikista osoitteista |
| Luokittelu | Vastauksia arvioidaan: verkkopalvelin, PHP-versio, CMS, tyypilliset polut | piilottakaa versiotiedot, poistakaa tarpeettomat tiedostot |
| Kokeileminen | tunnettuja aukkoja testataan massoittain, usein ilman edeltävää luokittelua | ajantasainen PHP, uudelleenkäynnistys, WAF lisäkerroksena |
| Kiinnittyminen | onnistuessa jätetään takaovi, esimerkiksi webshell tai cron-työ | rajoitetut kirjoitusoikeudet, ei PHP:n suoritusta upload-kansioissa |
| Hyödyntäminen | palvelinta käytetään esimerkiksi roskapostiin, kryptolouhintaan, uudelleenohjauksiin tai tietovarkauksiin | prosessien, tiedostojen ja lähtevien yhteyksien valvonta |

Tärkeä on kolmas rivi. Monet kampanjat eivät vaivaudu luokittelemaan palvelimia tarkasti etukäteen. Ne kokeilevat kaikkea, mikä on tavoitettavissa. Siksi pelkkä huomaamattomuus ei suojaa.

### Miksi hyökkäykset tulevat aalloissa

Automaattiset kampanjat harvoin ajetaan kerran eikä enää koskaan. Tyypillinen kuvio on aaltomainen. Ensimmäinen aalto tulee pian aukon tultua tietoon, usein vielä keskeneräisillä työkaluilla. Lisää aaltoja tulee, kun hyökkääjät parantavat työkalujaan tai mukauttavat ne suojasääntöihin. Cloudflare on havainnut PHP2Shellin kohdalla juuri tämän: muuttuneita hyökkäyskuvioita sääntöjen kiertämiseksi.

Teille se tarkoittaa: palvelin, joka selvisi ensimmäisestä aallosta vahingoittumatta, ei ole pysyvästi turvassa niin kauan kuin se on päivittämätön. Ja uusi palvelin on kohde heti siitä hetkestä, kun se on tavoitettavissa. Joka esimerkiksi tilaa uuden TLS-varmenteen, tekee nimen näkyväksi julkisissa varmenteiden lokeissa, joita myös skannerit käyttävät. Uusi järjestelmä kannattaa siksi kytkeä verkkoon vasta, kun se on jo päivitetty.

## Miksi pienet yritykset ovat yhtä lailla kohteita

Automaattisissa hyökkäyksissä ei lasketa yksittäisen kohteen arvoa vaan määrää. Pienen yrityksen palvelin tarjoaa laskentatehoa, hyvämaineisen verkkotunnuksen, sähköpostin lähetyksen ja joskus asiakastietoja. Hyökkääjille se riittää.

Lisäksi: pienemmillä yrityksillä ei usein ole omaa IT:tä, joka asentaisi päivitykset heti. Niiden palvelimet pysyvät pidempään haavoittuvina ja päätyvät siksi useammin skannereiden tuloslistoille. Joka päivittää ensin, putoaa pois näiltä listoilta.

Toinen seikka on toimitusketju. Monet pienet verkkosivustot ovat toimistojen tai pienten hosting-yritysten palvelimilla, joilla toimii kymmeniä asiakasprojekteja rinnakkain. Hyökkääjille tällainen palvelin on erityisen kannattava, koska yksi osuma koskee monia verkkosivustoja yhtä aikaa. Riskinne ei silloin riipu vain omasta huolellisuudestanne vaan myös palveluntarjoajanne huolellisuudesta.

> **Tärkeää:**
> Skannaukset lokeissanne ovat normaaleja eivätkä todista murtautumista. Onnistunut hyökkäys näkyy muista jäljistä: uusista tiedostoista, vieraista prosesseista, tuntemattomista tileistä, epätavallisista lähtevistä yhteyksistä.

## Mitä voitte tarkistaa itse

Katsaus lokeihin näyttää, kuinka voimakkaasti palvelintanne skannataan. Seuraavat komennot vain lukevat eivätkä muuta mitään:

```bash
# Kymmenen osoitetta, joilla on eniten pyyntöjä nykyisessä pääsylokissa
awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -10

# Pyynnöt, joihin vastattiin "ei löytynyt", esiintymistiheyden mukaan
awk '$9 == 404 {print $7}' /var/log/nginx/access.log | sort | uniq -c | sort -rn | head -20

# Paljastaako palvelin PHP-versionsa otsakkeessa?
curl -sI https://www.example.de/ | grep -i "x-powered-by"
```

Monet pyynnöt olemattomille poluille ovat tyypillistä skannauskohinaa. Tarkkaavaisemmaksi kannattaa tulla, jos tällaisiin pyyntöihin yhtäkkiä seuraa onnistuneita vastauksia, jos upload-kansioissa kutsutaan tiedostoja, joita ette tunne, tai jos verkkopalvelimen käyttäjä käynnistää prosesseja, joita se ei muuten koskaan käynnistä. Vahvistettuja tunnusmerkkejä nimenomaan PHP2Shellille ei toistaiseksi ole, joten arvio perustuu tällaisiin toiminnan poikkeamiin. Miten lokeja arvioidaan perusteellisemmin, kuvaa opas [Verkkopalvelimen lokien analysointi](https://phpsos.de/fi/ratgeber/logfiles-auswerten/). Jos kolmas kysely näyttää PHP-version, asetus `expose_php = Off` kannattaa; taustaa löytyy kohdasta [Versiotietojen piilottaminen](https://phpsos.de/fi/blog/expose-php-versionsangaben/).

## Suojakerrokset oikeassa järjestyksessä

1. **Päivittäkää PHP ja käynnistäkää uudelleen:** Ilman tätä vaihetta kaikki muut toimet jäävät paikkaukseksi.
2. **Pienentäkää hyökkäyspintaa:** sulkekaa käyttämättömät verkkosivustot, testijärjestelmät ja vanhat mikrosivustot tai laittakaa ne kirjautumisen taakse.
3. **Säännöt reunalla:** Web Application Firewall ylläpidetyllä sääntökokoelmalla, esimerkiksi [OWASP Core Rule Set ja ModSecurity](https://phpsos.de/fi/blog/modsecurity-owasp-crs/), pysäyttää osan yrityksistä.
4. **Hidastakaa toistuvia yrityksiä:** Työkalut kuten [Fail2ban](https://phpsos.de/fi/blog/fail2ban-fuer-webserver/) estävät osoitteet, jotka aiheuttavat huomattavan paljon virheitä. Hajautettuja skannauksia vastaan se auttaa vain rajallisesti.
5. **Valvokaa:** Pitäkää silmällä verkkopalvelimen käyttäjän prosesseja, uusia PHP-tiedostoja ja lähteviä yhteyksiä, jotta onnistunut osuma ei jää viikkoja huomaamatta.

## Miten PHP SOS auttaa konkreettisesti?

- **Hyökkäyspinnan kartoitus:** Selvitämme, mitkä järjestelmänne ovat tavoitettavissa ulkoa ja mitä ne paljastavat itsestään.
- **Päivitys ja koventaminen:** Päivitämme PHP:n, käynnistämme uudelleen ja vähennämme versiotietoja, kirjoitusoikeuksia ja tarpeettomia palveluita.
- **Säännöt ja estot:** Otamme käyttöön WAF-säännöt ja estomekanismit sovellukseenne sopivasti.
- **Jatkuva valvonta:** Ilmoitamme poikkeavista prosesseista, tiedostoista ja yhteyksistä, ennen kuin osumasta tulee tapaus.

Miltä se näyttää jatkuvassa käytössä, kuvaa [Tietoturvaseuranta verkkopalvelimille](https://phpsos.de/fi/leistungen/security-monitoring/).

## Yhteenveto

Automaattiset hyökkäykset eivät kysy, kenen palvelin on. Ne kysyvät vain, onko se haavoittuva. Paras vastaus on vaatimaton: päivittäkää nopeasti, tarjotkaa vähän, katsokaa tarkasti. Joka tekee niin, tulee yhä skannatuksi mutta ei enää löydetyksi.


## Usein kysytyt kysymykset

**Ovatko pienet yritykset automaattisten hyökkäysten kohteita?**  
Kyllä. Automaattiset skannaukset tarkistavat tavoitettavat palvelimet ylläpitäjästä välittämättä. Ohjelmistolle ei ole merkitystä, onko takana konserni vai käsityöyritys. Ratkaisevaa on, vaikuttaako palvelin haavoittuvalta.

**Mistä tunnistan skannaukset lokeistani?**  
Tyypillisiä ovat monet pyynnöt poluille, joita verkkosivustollanne ei ole lainkaan, usein vaihtuvista osoitteista ja huomiota herättävillä tunnisteilla. Tällaiset merkinnät ovat normaaleja eivätkä vielä todista onnistunutta hyökkäystä, mutta osoittavat, että palvelintanne tarkistetaan.

**Auttaako PHP-version piilottaminen?**  
Se vaikeuttaa hieman skannereiden kykyä luokitella palvelimenne kohdennetusti, ja se on järkevä perusasetus. Se ei kuitenkaan suojaa hyökkäyksiltä, jotka yksinkertaisesti kokeilevat jokaista palvelinta. Päivitys pysyy pakollisena.

**Voinko estää skannaukset kokonaan?**  
Et. Jokainen julkisesti tavoitettava palvelin skannataan säännöllisesti. Tavoite ei ole estää skannauksia vaan huolehtia siitä, etteivät ne löydä mitään: ajantasainen ohjelmisto, vähän hyökkäyspintaa ja valvonta, joka ilmoittaa poikkeamista.

## Lähteet

- [Cloudflare-blogi: Cloudflare deploys protections against php2shell vulnerability](https://blog.cloudflare.com/php-vulnerabilities-waf-protection/)
- [PHP-käsikirja](https://www.php.net/manual/de/)
- [OWASP ModSecurity Core Rule Set](https://coreruleset.org/)
- [BSI: Saksan liittovaltion tietoturvavirasto](https://www.bsi.bund.de/)
