Trenutno stanje: PHP2Shell. Dve kritični ranljivosti PHP (CVSS 9,2) omogočata izvedbo škodljive kode brez prijave. Popravki od 21. 10. 2026.Kaj je zdaj treba storiti →

Preverjanje odhodnih povezav strežnika

Spletni strežnik predvsem odgovarja na zahteve. Če sam vzpostavlja povezave z neznanimi cilji, to lahko pomeni upravljanje s strani napadalcev ali odtekanje podatkov. Tako odhodni promet preverite in omejite.

Stanje 5 min branjaOdkrivanje in forenzika

Na kratko: Odhodne povezave strežnika preverite z ss -tunap ali lsof -i, ki vsako povezavo dodelita procesu. Običajne so povezave do podatkovne baze, poštnega strežnika, strežnikov za posodobitve in znanih vmesnikov. Povezave procesov PHP ali spletnega strežnika z neznanimi cilji, nenavadna vrata in trajne povezave brez povoda so opozorilni znaki za daljinsko upravljanje ali odtekanje podatkov. Trajno pomaga izhodno filtriranje, ki dovoli samo potrebne cilje.

Zakaj pogled navzven toliko pove

Pri iskanju vdora večina gleda datoteke. Toda napadalec s svojim dostopom želi nekaj početi: naložiti orodja, prejemati ukaze, spraviti ven podatke ali strežnik uporabiti za neželeno pošto ali napade na druge. Vse to potrebuje povezave navzven.

Spletni strežnik sam vzpostavi le malo povezav, večina je predvidljivih: poizveduje po podatkovni bazi, predaja pošto, kliče plačilne ali dostavne vmesnike in prenaša posodobitve. Zato tuje povezave tu še posebej izstopajo. Po poročilih, ki so nam na voljo, odhodne povezave sodijo med splošne opozorilne znake po vdoru; potrjenih indikatorjev ogroženosti (Indicators of Compromise) posebej za PHP2Shell ni. Nadaljnje znake povzema Ali smo že ogroženi?.

Naštejte odhodne povezave in jih dodelite procesom

Naslednji ukazi samo berejo. Izvedite jih kot root, sicer podatki o procesih manjkajo.

# Vse vzpostavljene povezave TCP s procesom
ss -tnp state established

# TCP in UDP vključno s poslušajočimi storitvami
ss -tunap

# Povezave po programu in uporabniku, brez razreševanja imen
lsof -i -n -P | grep -v LISTEN

# Samo povezave procesov uporabnikov spletnega strežnika
lsof -i -n -P -u www-data 2>/dev/null

V izpisu bodite pozorni na tri stolpce: proces, ciljni naslov z vrati in uporabnika. Povezava php-fpm do podatkovne baze na vratih 3306 je običajna. Povezava programa z neznanim imenom iz /tmp do tujega naslova na nenavadnih vratih ni. Pod katerim uporabnikom PHP teče, je odvisno od distribucije in nadzorne plošče.

Običajno ali sumljivo? Razvrstitev

Opazovanje Prej običajno Prej sumljivo
Cilj lastna podatkovna baza, poštni strežnik, znani API-ji, strežniki za posodobitve neznani naslovi brez povezave z aplikacijo
Proces php-fpm, spletni strežnik, poštne storitve in storitve posodobitev neznani programi, procesi iz /tmp ali /dev/shm
Vrata 443, 3306, 5432, 587 nenavadna visoka vrata, vrata, značilna za IRC
Trajanje kratko, ustreza zahtevam trajno odprto, tudi ponoči brez obiskovalcev
Količina majhna in enakomerna nenadni vrhovi v odhodnem obsegu podatkov
Poštni promet pošiljanje prek predvidenega poštnega strežnika veliko neposrednih povezav na vratih 25

Veliko povezav na vratih 25 kaže na pošiljanje neželene pošte; zanjo obstaja lasten prispevek, Strežnik pošilja neželeno pošto.

Ocena neznanega cilja

Tuj naslov na seznamu še ni dokaz. Preden odločite, razjasnite, kam povezava vodi in kdo jo je vzpostavil. Tudi ti koraki ničesar ne spremenijo:

  1. Določite proces: Vzemite PID iz ss in z ls -l /proc/PID/exe ter ukazno vrstico preverite, kateri program stoji za njim.
  2. Poiščite cilj: Z dig -x <IP> ugotovite ime, z whois <IP> omrežnega operaterja.
  3. Uskladite z aplikacijo: Vprašajte razvijalca ali izvajalca, ali vaša aplikacija uporablja to storitev.
  4. Preverite potek: Dnevniki požarnega zidu in omrežja pokažejo, od kdaj povezava obstaja in koliko podatkov je teklo.
  5. Zavarujte rezultate: Izpise shranite s časom, preden karkoli končate ali zaprete.

Računajte z dvoumnimi rezultati. Številne legitimne storitve tečejo pri velikih ponudnikih oblaka in CDN, katerih naslovi ne dovoljujejo sklepanja o stranki. Obratno tudi napadalci uporabljajo najete strežnike v oblaku. Znan omrežni operater torej ni niti razbremenitev niti dokaz; odločilno je, ali proces in namen ustrezata vaši aplikaciji.

Posnetek z ss pokaže samo to, kar je ravno odprto. Kratke povezave, ki se vzpostavljajo v minutnem taktu, vidite samo v dnevnikih. Zato so dnevniki požarnega zidu ali pretoka za vprašanje odtekanja podatkov pogosto pomembnejši od pogleda na sam strežnik.

Pomembno

Če so podatki morda zapustili vaš strežnik in so prizadeti osebni podatki, lahko praviloma v 72 urah obstaja obveznost prijave po GDPR. To zgodaj razjasnite s pooblaščencem za varstvo podatkov; ozadje pod Obveznost prijave po GDPR v 72 urah. To ni pravno svetovanje.

Ne pozabite DNS in vsebnikov

Vsako odtekanje podatkov ne potrebuje vidne povezave do tujega naslova. Razreševanje imen prek DNS gre na razreševalnik vašega podatkovnega centra in na seznamu ss komaj izstopa. Napadalci lahko podatke zapakirajo v dolge, naključno videti poddomene in jih tako spravijo ven prek poizvedb DNS. Namige dajo dnevniki razreševalnika: nenavadno veliko poizvedb po isti tuji domeni, zelo dolga imena ali poizvedbe ob časih, ko spletne strani nihče ne uporablja.

Če vaše aplikacije tečejo v vsebnikih, gostitelj povezave vsebnikov pogosto vidi samo kot promet omrežja vsebnikov. Tedaj preverite vsak vsebnik posebej, če so tam orodja na voljo, ali povezave ovrednotite na ravni gostitelja in požarnega zidu.

# Povezave znotraj vsebnika (če je ss v sliki)
docker exec <container> ss -tnp 2>/dev/null

# Na gostitelju: povezave, ki jih spremlja jedro, če je conntrack nameščen
sudo conntrack -L 2>/dev/null | head -50

Odhodni promet trajno omejite

Najučinkovitejša preventiva je izhodno filtriranje: strežnik sme doseči samo cilje, ki jih res potrebuje, vse ostalo je zaprto in zabeleženo. Napadalcem je s tem bistveno težje nalagati orodja ali odtegovati podatke, tudi če lahko izvajajo kodo.

Pot do tega se začne s seznamom potrebnih ciljev, ki ga izpeljete iz zgoraj zbranih povezav. Sledi faza, v kateri se zaprte povezave samo beležijo, preden zaporo vklopite. Plačilne storitve, strežniki za posodobitve in vmesniki s spreminjajočimi se naslovi pri tem zahtevajo posebno skrbnost. Kako se požarni zid za spletne strežnike gradi v celoti, opisuje Požarni zid za spletne strežnike: odprite samo potrebna vrata.

Kako PHP SOS pomaga konkretno?

  • Preverjanje povezav: Vse aktivne povezave dodelimo procesom in namenom ter ocenimo neznane cilje.
  • Ocena odtekanja podatkov: Ovrednotimo dnevnike požarnega zidu in omrežja ter razjasnimo, ali in kdaj so bili podatki preneseni.
  • Omejitev izhoda: Z vami pripravimo seznam dovoljenih ciljev in postopoma vzpostavimo izhodno filtriranje.
  • Trajen nadzor: Z varnostnim nadzorom javljamo nove ali nenavadne povezave.

Pogosta vprašanja

Katere odhodne povezave so pri spletnem strežniku običajne?

Tipične so povezave do podatkovne baze, poštnega strežnika, plačilnih in dostavnih storitev, strežnikov za posodobitve in znanih vmesnikov aplikacije. Vse, kar ni mogoče razvrstiti pod noben od teh namenov, zasluži natančnejši pogled.

Kako vidim, kateri proces je vzpostavil povezavo?

Z ss -tunap ali lsof -i -n -P kot root. Oba za vsako povezavo pokažeta ID procesa in ime programa. Tako prepoznate, ali povezava izvira iz PHP, spletnega strežnika ali tujega programa.

Ali neznana povezava pomeni, da so podatki odtekli?

Ne nujno. Je pa namig, ki ga je treba razjasniti. Ali in kateri podatki so bili preneseni, je pogosto mogoče ugotoviti samo z dnevniki požarnega zidu ali omrežja. Če so prizadeti osebni podatki, lahko obstajajo obveznosti prijave.

Ali bi spletni strežnik sploh smel imeti odhodne povezave?

Samo do ciljev, ki jih potrebuje. Izhodno filtriranje, ki zapre vse ostalo, napadalcem bistveno otežuje nalaganje orodij in odtekanje podatkov. Vendar ga je treba skrbno preizkusiti.

Viri

Takojšnji stik

Vsaka ura šteje. Pišite nam zdaj.

Na kratko opišite sistem, različico PHP in opažanje. Odzovemo se, razjasnimo stanje in delamo na daljavo, dokler incident ni zaključen in dokumentiran.

Takojšnja pomoč