Trumpai: kriptokasėjas serveryje dažniausiai pasireiškia nuolat didele CPU apkrova be aiškios priežasties, svetimais procesais, dažnai po žiniatinklio serverio naudotoju, ir išeinančiais ryšiais su nežinomais tikslais. Proceso neskubėkite nutraukti: pirmiausia išsaugokite pėdsakus, suraskite mechanizmus, kurie jį paleidžia iš naujo, ir uždarykite vartus. Kasėjas reiškia, kad kažkas galėjo vykdyti kodą jūsų serveryje.
Kai pirmasis įspėjimas yra debesų teikėjo sąskaita
Dažnai kriptokasėjas išryškėja ne dėl saugumo aliarmo, o tarp kitko. Svetainė tampa vangi, hostingo teikėjas praneša apie skaičiavimo laiko viršijimą, savo duomenų centre nuolat dirba ventiliatorius arba debesų teikėjo sąskaita auga be naujų projektų. Užpuolikams kasėjas yra paprastas būdas iš pažeisto serverio uždirbti pinigų.
Kasimas reiškia svetimos sistemos skaičiavimo galios naudojimą kriptovaliutai generuoti. Žala atrodo nedidelė, nes duomenys neužšifruojami. Tai apgaulinga: kas gali paleisti kasėją, gali ir skaityti prisijungimo duomenis, kopijuoti duomenų bazes ir kurti kitas užpakalines duris.
Po PHP2Shell patikra ypač verta. Pažeidžiamumai CVE-2026-109618 ir CVE-2026-109619 leidžia vykdyti kenkėjišką kodą be prisijungimo. Patvirtintų kompromitavimo indikatorių (Indicators of Compromise) nėra, o kasėjas nėra specifinis šių pažeidžiamumų ženklas. Tačiau didelė apkrova dėl nežinomų procesų priklauso bendriesiems požymiams, aprašytiems puslapyje Ar jau esu pažeistas?.
Kriptokasėjo požymių teisingas aiškinimas
Didelė apkrova turi daug nekenksmingų priežasčių. Lentelė padeda pirmajam įvertinimui:
| Stebėjimas | Galimas nekenksmingas paaiškinimas | Ką patikrinti |
|---|---|---|
| CPU nuolat beveik pilnai apkrautas | atsarginė kopija, paveikslėlių apdorojimas, indekso kūrimas | Ar apkrova tolygi ir naktį bei savaitgalį? |
| Procesas su sistemos tarnybos pavadinimu | retai | Ar programos failas yra tikėtame sistemos kelyje? |
Procesas po www-data, apache ar nginx, kuris nėra PHP |
vos | Kas jį paleido, iš kokio aplanko? |
Programa /tmp, /var/tmp ar /dev/shm |
vos | Nuo kada failas egzistuoja, kam priklauso? |
| Nuolatinis išeinantis ryšys su nežinomu tikslu | stebėsena, atnaujinimai | Ar tikslas priklauso žinomai paslaugai? |
| Apkrova sumažėja, kai prisijungiate | retai | Kai kurios kenkėjiškos programos pristabdo, kai veikia stebėsenos įrankiai |
Kuo daugiau eilučių tinka, tuo labiau tikėtinas radinys. Tai, kad žiniatinklio serverio naudotojas apskritai paleidžia svetimas programas, savaime yra stiprus įspėjamasis ženklas, kaip rodo straipsnis Žiniatinklio serveris paleidžia apvalkalą (shell).
Kaip patikrinti procesus ir ryšius
Toliau pateiktos komandos tik skaito. Užsirašykite rezultatą ir laiką, prieš ką nors keisdami:
# Procesai pagal CPU sunaudojimą, su naudotoju, paleidimo laiku ir pilna komanda
ps -eo pid,ppid,user,lstart,%cpu,%mem,args --sort=-%cpu | head -20
# Įtartino proceso programos failas ir darbo katalogas (įrašyti PID)
sudo ls -l /proc/PID/exe /proc/PID/cwd
# Išeinantys ryšiai su procesu
sudo ss -tnp state established
# Vykdomieji failai laikinuosiuose aplankuose
sudo find /tmp /var/tmp /dev/shm -type f -perm -u+x -ls 2>/dev/null
Jei /proc/PID/exe rodo į failą su priedu (deleted), programa po paleidimo buvo ištrinta. Tai tipiškas maskavimosi bandymas. Procesas veikia toliau, ir kol jis veikia, programos failą dar galima išsaugoti per /proc. Tai turėtų atlikti tas, kas moka elgtis su kenkėjiška programine įranga; failo niekada nevykdykite.
Kaip procesus sistemingai peržiūrėti ne tik dėl kasėjo, aprašo Įtartinų procesų radimas Linux serveriuose.
Kodėl kasėjas vis sugrįžta
Daug operatorių procesą nutraukia, džiaugiasi sumažėjusia apkrova ir kitą dieną pamato, kad viskas prasideda iš naujo. Kasėjai beveik visada įdiegiami su paleidimo iš naujo mechanizmu. Tipinės vietos:
- Cron užduotys žiniatinklio serverio naudotojo arba sisteminės, kurios kas kelias minutes tikrina, ar kasėjas veikia, o jei ne, jį atsisiunčia.
- Sistemos tarnybos su nepastebimais pavadinimais, startuojančios paleidžiant sistemą.
- Webshell žiniatinklio kataloge, per kurią užpuolikas kasėją bet kada paleidžia iš naujo.
- Pakeisti paleidimo skriptai ar naudotojų profilio failai.
- Svetimi SSH raktai, su kuriais užpuolikas vėl tiesiogiai prisijungia.
# Žiniatinklio serverio naudotojo cron užduotys ir sisteminiai įrašai
sudo crontab -u www-data -l
ls -la /etc/cron.d /etc/cron.hourly /var/spool/cron 2>/dev/null
# Neseniai pakeisti systemd unit
sudo find /etc/systemd/system /lib/systemd/system -name '*.service' -newermt "2026-10-17" -ls
Tik radus visus mechanizmus serveris lieka ramus ilgam. Jei užpuolikas turėjo root teises, perkūrimas švarioje sistemoje dažniausiai patikimesnis nei kiekvienos slėptuvės paieška.
Teisinga eilės tvarka po radinio
Kasėjas atrodo kaip techninis nepatogumas, bet yra saugumo incidentas. Todėl elkitės tvarkingai:
- Išsaugoti: procesų sąrašą, ryšius, įtartinus failus ir žurnalus nukopijuoti su kontroline suma, prieš ką nors nutraukiant.
- Suvaldyti: serverį izoliuoti arba išeinančius ryšius užblokuoti, jei tai įmanoma be duomenų praradimo.
- Uždaryti priežastį: PHP atnaujinti į ištaisytą būseną (8.5.12, 8.4.27, 8.3.36, 8.2.35 arba patvirtintas atgalinis perkėlimas), paleisti iš naujo visus darbinius procesus (worker), atnaujinti CMS ir plėtinius.
- Išvalyti arba perkurti: pašalinti kasėją, paleidimo iš naujo mechanizmus ir užpakalines duris, abejojant diegti iš naujo.
- Patikrinti pasekmes: ar galėjo būti perskaityti prisijungimo duomenys ar asmens duomenys? Tuomet išsiaiškinti duomenų apsaugą ir, jei reikia, pranešimo pareigas.
Anksti įtraukite savo hostingo ar debesų teikėją. Daugelis teikėjų prevenciškai blokuoja serverius su krintančia į akis apkrova ar tinklo srautu. Kas pats informuoja teikėją ir suderina eigą, labiau išlaiko kontrolę dėl išjungimo laiko. Paklauskite ir apie teikėjo tinklo bei prieigos protokolus, nes jie yra už jūsų serverio ribų ir užpuolikui juos sunku pakeisti.
Vadovybei svarbus trumpas, sąžiningas įvertinimas: pats kasėjas kainuoja daugiausia skaičiavimo laiko ir našumo. Tikrasis klausimas tačiau, ką dar užpuolikas matė. Kol tai neišsiaiškinta, incidento nereikėtų laikyti baigtu, net jei apkrova vėl normali.
Kriptokasėjas rodo, kad jūsų serveryje buvo vykdomas kodas. Visus serveryje buvusius prisijungimo duomenis laikykite galbūt nutekėjusiais ir atnaujinkite po išvalymo.
Kaip PHP SOS padeda konkrečiai?
- Apkrovą įvertiname ir atskiriame nekenksmingas priežastis nuo svetimų procesų.
- Procesus, failus ir ryšius išsaugome, prieš kasėją nutraukiant.
- Ieškome visų paleidimo iš naujo mechanizmų ir užpakalinių durų ir serverį išvalome per kenkėjiškos programinės įrangos šalinimą arba perkuriame.
- Uždarome vartus, atnaujiname prieigas ir įrengiame apkrovos stebėseną, anksti pranešančią apie neįprastus šablonus.
Dažni klausimai
Kaip atpažinti kriptokasėją savo serveryje?
Tipiška nuolat didelė CPU apkrova, neatitinkanti lankytojų skaičiaus ar suplanuotų užduočių. Prisideda procesai su nežinomais ar nekenksmingai skambančiais pavadinimais, dažnai po žiniatinklio serverio naudotoju, ir išeinantys ryšiai su svetimais adresais. Vienas požymis dar nėra įrodymas.
Ar pakanka nutraukti kasimo procesą?
Ne. Kasėjai dažniausiai vėl ir vėl paleidžiami per cron užduotis, sistemos tarnybas ar webshell. Kas nutraukia tik procesą, jį dažnai pamato po trumpo laiko. Be to, lieka atviri vartai, per kuriuos kasėjas pateko į serverį.
Ar kriptokasėjas nekenksmingas, nes tik vagia skaičiavimo galią?
Ne. Kas galėjo įdiegti kasėją, galėjo serveryje vykdyti kodą. Taigi paprastai buvo pasiekiami ir konfigūracijos failai, prisijungimo duomenys ir duomenų bazės. Kasėjas yra matomas įsilaužimo simptomas.
Kokios yra nekenksmingos didelės serverio apkrovos priežastys?
Daug skaičiavimo laiko gali sunaudoti ir atsarginės kopijos, paveikslėlių apdorojimas, paieškos indekso kūrimas, agresyvūs vorai (crawler) ar klaidingas plėtinys. Šias priežastis paprastai galima priskirti žinomam procesui ir tvarkaraščiui. Jei apkrova lieka be paaiškinimo, tikrinkite atidžiau.