Aktuālā situācija: PHP2Shell. Divas kritiskas PHP ievainojamības (CVSS 9.2) ļauj izpildīt ļaunprātīgu kodu bez pieteikšanās. Ielāpi kopš 21.10.2026.Kas jādara tagad →

Aizdomīgu procesu atrašana Linux serveros

Ļaunprātīgi procesi maskējas ar nekaitīgiem nosaukumiem, darbojas no pagaidu mapēm vai no izdzēstiem failiem. Ar dažām lasošām komandām atradīsiet novirzes un tās novērtēsiet.

Aktuāls uz 5 min lasīšanas laiksAtklāšana un forensika

Īsi sakot: Aizdomīgus procesus Linux serveros atpazīsit pēc dažām pazīmēm: programmas fails izdzēsts vai atrodas /tmp, /dev/shm vai tīmekļa direktorijā, nosaukums atdarina sistēmas procesu, neparasts lietotājs, pastāvīgi tīkla savienojumi vai augsta slodze bez iemesla. Ar lasošām komandām pārbaudiet, vai programmas fails pieder instalētai pakotnei, un atradumus nodrošiniet, pirms ko pārtraucat.

Ko procesam nozīmē „aizdomīgs”

Tīmekļa serverī darbojas simtiem procesu. Lielākā daļa pieder operētājsistēmai, tīmekļa serverim, datubāzei vai PHP. Uzbrucējs, kurš ar ievainojamību, piemēram, PHP2Shell, ir varējis izpildīt kodu, mēģina starp tiem neuzkrist acīs. Viņš izvēlas neuzkrītošus nosaukumus un novieto programmas tur, kur tīmekļa servera lietotājs drīkst rakstīt.

Pārbaudē palīdz zināt normālo stāvokli. Kas zina, kādiem pakalpojumiem serverī jādarbojas, zem kādiem lietotājiem un ar kādu slodzi, novirzes pamana daudz ātrāk. Ja šo zināšanu nav, vērts salīdzināšanai ņemt līdzīga, neaizdomīga servera procesu sarakstu.

Atsevišķa pazīme vēl nav pierādījums. Izšķirošs ir kopums. Process ar kodola pavediena nosaukumu, kas darbojas zem www-data, startēts no /dev/shm un tur savienojumu uz ārzemēm, ir skaidrs gadījums. Kā pārbaudīt īpašo gadījumu ar shell zem tīmekļa servera, apraksta Brīdinājuma pazīme: tīmekļa serveris startē shell.

Pirmais pārskats piecās komandās

Visas komandas tikai lasa. Izpildiet tās kā root, lai redzētu visus procesus, un izvadus saglabājiet failā ārpus tīmekļa direktorija.

# 1. Visi procesi ar lietotāju, vecāka PID, startēšanas laiku, CPU un komandrindu
ps -eo user,pid,ppid,lstart,%cpu,%mem,cmd --sort=-%cpu | head -40

# 2. Procesi, kuru programmas fails ir izdzēsts
ls -l /proc/[0-9]*/exe 2>/dev/null | grep "(deleted)"

# 3. Procesi, kas darbojas no pagaidu vai tīmekļa direktorijiem
ls -l /proc/[0-9]*/exe 2>/dev/null | grep -E " -> (/tmp|/var/tmp|/dev/shm|/var/www)"

# 4. Procesi ar tīkla savienojumiem
ss -tunap

# 5. Tīmekļa servera lietotāju procesu pārskats
ps -eo user,pid,ppid,lstart,cmd | grep -E "^(www-data|apache|nginx) "

Lietotājvārdi atšķiras pēc distributīva un paneļa; Plesk un citi paneļi PHP bieži izpilda zem attiecīgā klienta lietotāja. Pielāgojiet sarakstu savai videi.

Izvadus lasiet, ņemot vērā startēšanas laiku. Procesi, kas darbojas kopš servera pēdējās pārstartēšanas, parasti pieder sistēmai. Procesi, kas startēti nakts vidū vai dienās pēc 17. oktobra un neatbilst nevienam pakalpojumam, pelna uzmanību. Salīdziniet arī PHP procesu skaitu ar to, ko atļauj jūsu pūla konfigurācija; ievērojami vairāk procesu zem tīmekļa servera lietotāja ir norāde.

Aizdomīgi procesi Linux: tipiskas pazīmes

Pazīme Kāpēc tā uzkrīt Vai iespējams nekaitīgs skaidrojums?
Programmas fails „(deleted)” uzbrucēji pēc starta failus dzēš jā, pēc pakotņu atjauninājumiem līdz pārstartēšanai
Startēšanas vieta /tmp, /dev/shm, augšupielāžu mape tur rakstīt drīkst ikviens vai tīmekļa serveris reti
Nosaukums kantainajās iekavās, piemēram, [kworker] atdarina kodola pavedienus nē, ja aiz tā ir programmas fails
Pastāvīgi augsta CPU slodze bez iemesla tipiski kriptoieguves ļaunprogrammatūrai jā, pie pakešdarbiem vai indeksēšanas
Vecākprocess 1 un tīmekļa servera lietotājs atdalīts no tīmekļa servera, darbojas patstāvīgi reti
Savienojums ar nezināmu mērķi vadība vai datu aizplūde jā, pie atjauninājumiem un API

Īstiem kodola pavedieniem nav programmas faila; ls -l /proc/PID/exe tiem ceļu neuzrāda. Ja process ar kodola nosaukumu norāda uz failu, tas ir maskēts. Augstas slodzes gadījumā bez saprotama iemesla palīdz raksts Kriptoieguves ļaunprogrammatūra tīmekļa serverī.

Pretpārbaude: vai programmas fails pieder pakotnei?

Gandrīz visas likumīgās programmas serverī nāk no pakotņu pārvaldības. Programmas fails, kas nepieder nevienai pakotnei, nav automātiski ļaunprātīgs, bet pelna rūpīgu skatienu.

PID=12345
EXE=$(readlink /proc/$PID/exe); echo "$EXE"
dpkg -S "$EXE"        # Debian/Ubuntu: kurai pakotnei fails pieder?
rpm -qf "$EXE"        # RHEL saime
sha256sum /proc/$PID/exe   # kontrolsumma, darbojas arī izdzēstam failam
tr '\0' ' ' < /proc/$PID/environ | head -c 600; echo   # vides mainīgie

Ja programmas fails ir izdzēsts, sha256sum /proc/$PID/exe to tomēr nolasa no darbojošā procesa. Šī kontrolsumma jāiekļauj dokumentācijā. Faila kopiju drīkst izveidot tikai tas, kas zina, kā to droši glabāt.

Pārbaudes robežas darbojošā sistēmā

Visas iepriekš minētās komandas uzticas sistēmai, ko tikko pārbaudāt. Parastas ielaušanās gadījumā caur vietni ar tīmekļa servera lietotāja tiesībām tas ir pieļaujami. Ja uzbrucējs ieguvis root tiesības, viņš var slēpt procesus un viltot izvadus. Tad serveris rāda tikai to, ko uzbrucējs pieļauj.

Uz to norāda pretrunas: slodze bez redzama procesa, savienojumi, ko redz ugunsmūris, bet ss neredz, vai mainītas sistēmas programmas. Šādos gadījumos pārbaude jāveic uz nodrošināta attēla. Darbojošām sistēmām bieži klāt nāk operatīvās atmiņas kopija, jo dažas ļaunprogrammas pastāv tikai tur un uz cietā diska atstāj maz pēdu. Šī kopija jāveic pirms pārstartēšanas, un tai vajadzīgi piemēroti rīki un pieredze. Kāpēc to vajadzētu izveidot pirms pārinstalēšanas, izskaidro Saglabājiet pierādījumus, pirms uzstādāt no jauna.

Svarīgi

Aizdomīgus procesus nepārtrauciet kā pirmo soli. Bieži tos pārstartē cronjob vai pakalpojums, un kopā ar procesu no atmiņas pazūd komandrinda, savienojumi un izdzēstais programmas fails.

Automātiskā palaišana un nākamie soļi

Ļaunprātīgs process, kas pēc pārstartēšanas izzustu, uzbrucējiem būtu bezvērtīgs. Tāpēc pie katra procesa atradumā jāuzdod jautājums, kas to startē. Līdzās cronjobs galvenokārt jāapsver systemd pakalpojumi, ko uzbrucējs ar root tiesībām var izveidot. Uzkrītoši ir pakalpojumi ar vispārīgiem nosaukumiem, kuru programmas fails atrodas neparastā direktorijā, un unit faili, kas radušies pēc 17. oktobra.

# Darbojošies pakalpojumi un nesen mainīti unit faili
systemctl list-units --type=service --state=running --no-pager
find /etc/systemd /usr/lib/systemd /lib/systemd -type f -newerct "2026-10-17" -ls 2>/dev/null

# Vai katrā procesā tiek ievadīta bibliotēka? Fails parasti neeksistē.
ls -l /etc/ld.so.preload 2>/dev/null && cat /etc/ld.so.preload

Ieraksts /etc/ld.so.preload parastos tīmekļa serveros ir rets un spēcīga norāde uz manipulāciju ar root tiesībām. Kā pilnībā pārbaudīt ieplānotos uzdevumus, apraksta Slēpto cronjobs kā slēptās piekļuves atpazīšana.

Pēc tam nākamie soļi seko šādā secībā:

  1. Izvadus un kontrolsummas ar laiku nodrošināt.
  2. Meklēt noturību: cronjobs, systemd pakalpojumi un taimeri, SSH atslēgas.
  3. Noskaidrot izcelsmi: žurnāli no 20. oktobra, jauni faili tīmekļa direktorijā.
  4. Izolēt serveri un plānot attīrīšanu vai jaunbūvi.

Pārskatu par visām tipiskajām pazīmēm pēc PHP2Shell sniedz Vai esmu jau kompromitēts?.

Kā PHP SOS palīdz konkrēti?

  • Novērtēt procesus: Mēs pārbaudām procesu sarakstu, programmu failus un savienojumus un katru atradumu klasificējam.
  • Nodrošināt tiesu vajadzībām: Ar IT forensiku mēs nodrošinām operatīvo atmiņu un datu nesējus, pirms kaut kas tiek mainīts.
  • Atrast noturību: Mēs meklējam mehānismus, kas ļaunprātīgos procesus pārstartē.
  • Noslēgt: Mēs attīrām vai uzbūvējam no jauna un dokumentējam incidentu līdz noslēgumam.

Biežāk uzdotie jautājumi

Kā atpazīt aizdomīgu procesu Linux sistēmā?

Tipiskas pazīmes ir izdzēsts programmas fails, startēšanas vieta /tmp vai /dev/shm, nosaukums, kas atdarina sistēmas procesu, neparasts lietotājs un pastāvīgi tīkla savienojumi. Atsevišķas pazīmes ir norādes, vairākas kopā ir nopietnas aizdomas.

Ko nozīmē „(deleted)” pie /proc/PID/exe?

Procesa programmas fails pēc starta ir izdzēsts. Tas likumīgi notiek pēc pakotņu atjauninājumiem, līdz pakalpojums tiek pārstartēts. Procesiem no pagaidu mapēm vai zem tīmekļa servera lietotāja tā ir tipiska maskēšanās uzvedība.

Vai varu paļauties uz ps izvadi?

Parastas ielaušanās gadījumā parasti jā. Taču, ja uzbrucējs ieguvis root tiesības, viņš var manipulēt ar rīkiem un izvadiem. Tad uzticamāka ir pārbaude no ārpuses, piemēram, uz nodrošināta attēla.

Vai aizdomīgu procesu jāpārtrauc ar kill?

Ne kā pirmo. Vispirms nodrošiniet komandrindu, programmas failu, savienojumus un startēšanas laiku. Pārtraukts process vairs neko neatklāj, un bieži to tāpat pārstartē cronjob vai pakalpojums.

Avoti

Tūlītējs kontakts

Katra stunda ir svarīga. Rakstiet mums tūlīt.

Īsi aprakstiet sistēmu, PHP versiju un novēroto. Mēs sazināsimies, noskaidrosim situāciju un strādāsim attālināti, līdz incidents ir slēgts un dokumentēts.

Tūlītēja palīdzība