Ajankohtainen tilanne: PHP2Shell. Kaksi kriittistä PHP-haavoittuvuutta (CVSS 9.2) sallii haittakoodin suorittamisen ilman kirjautumista. Korjaukset 21.10.2026 alkaen.Mitä nyt on tehtävä →

Palvelimen lähtevien yhteyksien tarkistus

Verkkopalvelin vastaa pääasiassa pyyntöihin. Jos se itse muodostaa yhteyksiä tuntemattomiin kohteisiin, se voi tarkoittaa hyökkääjän ohjausta tai tietovuotoa. Näin tarkistatte ja rajaatte lähtevää liikennettä.

Tilanne Lukuaika 4 minHavaitseminen ja forensiikka

Lyhyesti: Palvelimen lähtevät yhteydet tarkistatte komennoilla ss -tunap tai lsof -i, jotka yhdistävät jokaisen yhteyden prosessiin. Normaaleja ovat yhteydet tietokantaan, postipalvelimelle, päivityspalvelimille ja tunnettuihin rajapintoihin. PHP- tai verkkopalvelinprosessien yhteydet tuntemattomiin kohteisiin, epätavalliset portit ja pysyvät yhteydet ilman syytä ovat varoitusmerkkejä etäohjauksesta tai tietovuodosta. Pysyvästi auttaa lähtösuodatus, joka sallii vain tarvittavat kohteet.

Miksi katse ulospäin kertoo niin paljon

Murtoa etsittäessä useimmat katsovat tiedostoja. Hyökkääjä kuitenkin haluaa pääsyllään saada jotain aikaan: ladata työkaluja, vastaanottaa komentoja, viedä tietoja ulos tai käyttää palvelinta roskapostiin tai hyökkäyksiin muita vastaan. Kaikki tämä vaatii yhteyksiä ulospäin.

Verkkopalvelin muodostaa itsestään vain vähän yhteyksiä, ja useimmat niistä ovat ennakoitavia: se kysyy tietokannalta, välittää viestejä, kutsuu maksu- tai toimitusrajapintoja ja hakee päivityksiä. Siksi vieraat yhteydet pistävät täällä erityisesti silmään. Käytössämme olevien raporttien mukaan lähtevät yhteydet kuuluvat murron jälkeisiin yleisiin varoitusmerkkeihin; PHP2Shellille erityisiä vahvistettuja Indicators of Compromise -tunnisteita ei ole. Muut merkit kokoaa yhteen Olenko jo vaarantunut?.

Lähtevien yhteyksien luettelointi ja yhdistäminen prosesseihin

Seuraavat komennot vain lukevat. Ajakaa ne rootina, muuten prosessitiedot puuttuvat.

# Kaikki muodostetut TCP-yhteydet prosessin kanssa
ss -tnp state established

# TCP ja UDP, mukaan lukien kuuntelevat palvelut
ss -tunap

# Yhteydet ohjelmaa ja käyttäjää kohti, ilman nimien selvitystä
lsof -i -n -P | grep -v LISTEN

# Vain verkkopalvelinkäyttäjien prosessien yhteydet
lsof -i -n -P -u www-data 2>/dev/null

Kiinnittäkää tulosteessa huomiota kolmeen sarakkeeseen: prosessiin, kohdeosoitteeseen portteineen ja käyttäjään. Yhteys php-fpm:ltä tietokantaan portissa 3306 on normaali. Yhteys ohjelmalta, jolla on tuntematon nimi ja joka on peräisin polusta /tmp, vieraaseen osoitteeseen epätavallisessa portissa ei ole. Se, minkä käyttäjän alla PHP toimii, riippuu jakelusta ja paneelista.

Normaali vai epäilyttävä? Luokittelu

Havainto Todennäköisesti normaali Todennäköisesti epäilyttävä
Kohde oma tietokanta, postipalvelin, tunnetut rajapinnat, päivityspalvelimet tuntemattomat osoitteet ilman yhteyttä sovellukseen
Prosessi php-fpm, verkkopalvelin, posti- ja päivityspalvelut tuntemattomat ohjelmat, prosessit polusta /tmp tai /dev/shm
Portti 443, 3306, 5432, 587 epätavalliset korkeat portit, IRC:lle tyypilliset portit
Kesto lyhyt, sopii pyyntöihin pysyvästi auki, myös yöllä ilman kävijöitä
Määrä vähäinen ja tasainen äkilliset piikit lähtevässä datamäärässä
Postiliikenne lähetys tarkoitetun postipalvelimen kautta monta suoraa yhteyttä portissa 25

Monet yhteydet portissa 25 viittaavat roskapostin lähetykseen; siitä on oma artikkelinsa, Palvelin lähettää roskapostia.

Tuntemattoman kohteen arviointi

Vieras osoite luettelossa ei vielä ole todiste. Ennen kuin päätätte, selvittäkää, minne yhteys johtaa ja kuka sen on muodostanut. Nämäkään vaiheet eivät muuta mitään:

  1. Määrittäkää prosessi: Ottakaa PID ss-komennosta ja tarkistakaa komennoilla ls -l /proc/PID/exe ja komentorivi, mikä ohjelma on taustalla.
  2. Hakekaa kohde: Komennolla dig -x <IP> selvitätte nimen ja komennolla whois <IP> verkkoalueen haltijan.
  3. Verratkaa sovellukseen: Kysykää kehittäjältä tai palveluntarjoajalta, käyttääkö sovelluksenne tätä palvelua.
  4. Tarkistakaa historia: Palomuurin ja verkon lokit näyttävät, mistä lähtien yhteys on ollut olemassa ja kuinka paljon dataa on liikkunut.
  5. Varmistakaa tulokset: Tallentakaa tulosteet kellonajan kanssa, ennen kuin lopetatte tai estätte mitään.

Varautukaa moniselitteisiin tuloksiin. Monet oikeutetut palvelut toimivat suurilla pilvi- ja CDN-toimittajilla, joiden osoitteista ei voi päätellä asiakasta. Toisaalta hyökkääjätkin käyttävät vuokrattuja pilvipalvelimia. Tunnettu verkkoalueen haltija ei siis ole sen enempää hälytyksen peruutus kuin todistekaan; ratkaisevaa on, sopivatko prosessi ja tarkoitus sovellukseenne.

ss-komennon hetkellinen kuva näyttää vain sen, mikä on juuri nyt auki. Lyhyet yhteydet, jotka muodostetaan minuuttien välein, näette vain lokeista. Siksi palomuurin tai flow-lokit ovat tietovuotokysymyksessä usein tärkeämpiä kuin katse itse palvelimeen.

Tärkeää

Jos tietoja on mahdollisesti poistunut palvelimeltanne ja henkilötiedot ovat vaarantuneet, GDPR:n mukainen ilmoitusvelvollisuus voi yleensä olla voimassa 72 tunnin kuluessa. Selvittäkää asia ajoissa tietosuojavastaavanne kanssa; taustat sivulla GDPR-ilmoitusvelvollisuus 72 tunnissa. Tämä ei ole oikeudellista neuvontaa.

Älkää unohtako DNS:ää ja kontteja

Kaikki tietovuoto ei tarvitse näkyvää yhteyttä vieraaseen osoitteeseen. DNS:n kautta tehdyt nimenselvitykset menevät konesalinne resolverille eivätkä juuri erotu ss-komennon luettelossa. Hyökkääjät voivat pakata dataa pitkiin, satunnaisilta näyttäviin aliverkkotunnuksiin ja viedä sitä näin ulos DNS-kyselyillä. Vihjeitä tästä antavat resolverin lokit: epätavallisen paljon kyselyjä samaan vieraaseen domainiin, hyvin pitkiä nimiä tai kyselyjä aikoina, jolloin kukaan ei käytä verkkosivustoa.

Jos sovelluksenne toimivat konteissa, isäntäkone näkee konttien yhteydet usein vain konttiverkon liikenteenä. Tarkistakaa silloin jokainen kontti erikseen, jos työkalut ovat siellä saatavilla, tai arvioikaa yhteydet isäntäkoneen ja palomuurin tasolla.

# Yhteydet kontin sisällä (jos ss on kuvassa)
docker exec <container> ss -tnp 2>/dev/null

# Isäntäkoneella: ytimen seuraamat yhteydet, jos conntrack on asennettu
sudo conntrack -L 2>/dev/null | head -50

Lähtevän liikenteen pysyvä rajaus

Tehokkain ennaltaehkäisy on lähtösuodatus: palvelin saa tavoittaa vain ne kohteet, joita se todella tarvitsee, kaikki muu estetään ja kirjataan. Hyökkääjille tulee näin selvästi vaikeampaa ladata työkaluja uudelleen tai viedä dataa, vaikka he voisivatkin suorittaa koodia.

Tie sinne alkaa tarvittavien kohteiden luettelosta, jonka johdatte yllä kerätyistä yhteyksistä. Sen jälkeen seuraa vaihe, jossa estetyt yhteydet vain kirjataan, ennen kuin esto kytketään voimaan. Maksupalvelut, päivityspalvelimet ja vaihtuvilla osoitteilla toimivat rajapinnat vaativat tässä erityistä huolellisuutta. Miten palomuuri verkkopalvelimille rakennetaan kokonaisuutena, kuvaa Palomuuri verkkopalvelimille: avatkaa vain tarvittavat portit.

Miten PHP SOS auttaa konkreettisesti?

  • Yhteyksien tarkistus: Yhdistämme kaikki aktiiviset yhteydet prosesseihin ja tarkoituksiin ja arvioimme tuntemattomat kohteet.
  • Tietovuodon arviointi: Arvioimme palomuurin ja verkon lokit ja selvitämme, onko tietoja siirretty ja milloin.
  • Lähtevän rajaus: Laadimme kanssanne luettelon sallituista kohteista ja otamme lähtösuodatuksen käyttöön vaiheittain.
  • Pysyvä seuranta: Tietoturvaseurannalla ilmoitamme uusista tai epätavallisista yhteyksistä.

Usein kysytyt kysymykset

Mitkä lähtevät yhteydet ovat verkkopalvelimella normaaleja?

Tyypillisiä ovat yhteydet tietokantaan, postipalvelimelle, maksu- ja toimituspalveluihin, päivityspalvelimille ja sovelluksen tunnettuihin rajapintoihin. Kaikki, mitä ei voi yhdistää johonkin näistä tarkoituksista, ansaitsee tarkemman katsauksen.

Miten näen, mikä prosessi on muodostanut yhteyden?

Komennolla ss -tunap tai lsof -i -n -P rootina. Molemmat näyttävät jokaisen yhteyden prosessitunnuksen ja ohjelman nimen. Näin tunnistatte, onko yhteys peräisin PHP:ltä, verkkopalvelimelta vai vieraalta ohjelmalta.

Tarkoittaako tuntematon yhteys, että tietoja on vuotanut?

Ei välttämättä. Se on kuitenkin vihje, joka on selvitettävä. Sen, onko tietoja siirretty ja mitä, voi usein selvittää vain palomuurin tai verkon lokeilla. Jos henkilötiedot ovat vaarantuneet, ilmoitusvelvollisuuksia voi olla.

Pitäisikö verkkopalvelimen saada ylipäätään muodostaa lähteviä yhteyksiä?

Vain niihin kohteisiin, joita se tarvitsee. Lähtösuodatus, joka estää kaiken muun, vaikeuttaa merkittävästi hyökkääjien mahdollisuuksia ladata työkaluja uudelleen ja viedä tietoja. Se on kuitenkin testattava huolellisesti.

Lähteet

Pikayhteys

Jokainen tunti on tärkeä. Kirjoittakaa meille nyt.

Kuvatkaa lyhyesti järjestelmä, PHP-versio ja havainnot. Otamme yhteyttä, selvitämme tilanteen ja työskentelemme etänä, kunnes tapaus on käsitelty loppuun ja dokumentoitu.

Pikaapu