Praegune olukord: PHP2Shell. Kaks kriitilist PHP turvaauku (CVSS 9,2) lubavad kahjulikku koodi ilma sisselogimata. Paigad alates 21.10.2026.Mida nüüd teha →

Peidetud cron-tööde tuvastamine tagauksena

Ründajad kasutavad ajastatud ülesandeid, et pärast puhastamist tagasi tulla. Nii kontrollite crontabe, cron-katalooge, systemd taimereid ja at-ülesandeid täielikult ning tuvastate kahtlased kirjed.

Seis Lugemisaeg 5 minTuvastamine ja forensika

Lühidalt: Peidetud cron-töö on üks sagedasemaid tagauksi Linuxi serverites: see laadib kahjulikku koodi korrapäraselt juurde või käivitab protsesse uuesti, ka pärast PHP uuendust. Kontrollige kõiki ajastatud ülesannete kohti, mitte ainult crontab -l: kõigi kasutajate crontabe, /etc/crontab, /etc/cron.d, cron-katalooge, systemd taimereid ja at-ülesandeid. Kindlustage leiud enne nende eemaldamist.

Miks cron-tööd on tagauksena nii armastatud

Pärast edukat sissemurdmist on ründajal probleem: tema ligipääs on habras. Uuendus sulgeb turvaaugu, administraator kustutab veebishelli, taaskäivitus lõpetab protsessi. Cron-töö lahendab selle probleemi. See käivitab käske kindlatel aegadel, ilma et keegi sekkuks, ja taastab nii kaotatud ligipääsud.

PHP2Shelli kohta ei ole kinnitatud kompromiteerimistunnuseid (Indicators of Compromise). Uued cron-tööd kuuluvad meie käsutuses olevate aruannete kohaselt aga veebirakenduste kaudu toimunud sissemurdmiste järgsete üldiste hoiatusmärkide hulka. Kes on juba veebishelle otsinud, peaks ajastatud ülesanded kohe kaasa kontrollima. Järelhoolduse muud sammud loetleb Kontrollnimekiri pärast häkkimist.

Kus ajastatud ülesanded võivad peituda

Linux tunneb ajastatud ülesannete jaoks mitut mehhanismi. Paljud kontrollid ebaõnnestuvad, sest vaadatakse ainult ühte neist.

Koht Debian/Ubuntu RHEL-perekond Kes tohib kirjutada
Crontab kasutaja kohta /var/spool/cron/crontabs/ /var/spool/cron/ vastav kasutaja
Süsteemne crontab /etc/crontab /etc/crontab root
Üksikud failid /etc/cron.d/ /etc/cron.d/ root
Perioodilised kaustad /etc/cron.hourly kuni /etc/cron.monthly samuti root
systemd taimerid /etc/systemd/system/, kasutaja unitid samuti root, osaliselt kasutaja
at-ülesanded atd järjekord samuti kasutaja, kui lubatud

Veebiserverite jaoks oluline: veebiserveri kasutaja saab üldjuhul luua oma crontabi ilma root-õigusteta. Ründaja, kellel on www-data õigused, ei vaja selleks seega täiendavat turvaauku. Kirjed kataloogis /etc/cron.d või systemd unitid viitavad seevastu sellele, et ta on saanud root-õigused.

Majutuspaneelid nagu Plesk või cPanel pakuvad ajastatud ülesannete jaoks oma liidest. Selle taga on üldjuhul samuti vastavate süsteemikasutajate crontabid. Kes vaatab ainult liideses, ei tunne seetõttu ära iga kirjet, mis on loodud otse serveris. Kahtluse korral kontrollige mõlemat.

Nii kontrollite kõiki kohti täielikult

Järgmised käsud ainult loevad. Käivitage need root-na ja kindlustage väljundid kuupäevaga.

# Kõigi kasutajate crontabide väljastamine
for u in $(cut -d: -f1 /etc/passwd); do
  out=$(crontab -l -u "$u" 2>/dev/null) && printf '### %s\n%s\n' "$u" "$out"
done

# Süsteemsed kirjed ja muutmisajad
cat /etc/crontab
ls -la --time-style=full-iso /etc/cron.d /etc/cron.hourly /etc/cron.daily /etc/cron.weekly /etc/cron.monthly

# systemd taimerid ja at-ülesanded
systemctl list-timers --all
atq 2>/dev/null

# Tüüpiliste mustrite otsimine kõigist cron-failidest
grep -rnE "curl|wget|base64|/tmp/|/dev/shm|\| *(ba)?sh" /etc/crontab /etc/cron.* /var/spool/cron 2>/dev/null

Kaks nippi väärivad erilist tähelepanu. Mõned kirjed peidavad käsud paljude tühikute taha, nii et need jooksevad redaktoris paremalt pildist välja. Teised kasutavad juhtmärke, mis kuvamisel teksti üle kirjutavad. Käsuga cat -A muutuvad sellised märgid nähtavaks:

cat -A /var/spool/cron/crontabs/www-data 2>/dev/null | less

Teine vaatenurk on cron-teenuse protokollid. Paljudes süsteemides märgib cron iga täitmise kasutaja ja käsuga. Nii näete ka kirjeid, mille ründaja on vahepeal eemaldanud, ja tunnete ära, alates millest kahtlane käsk töötab:

# Veebiserveri kasutaja täidetud cron-käsud (Debian/Ubuntu või systemd päevik)
grep -h "CRON" /var/log/syslog* 2>/dev/null | grep -E "\((www-data|apache|nginx)\) CMD"
journalctl -u cron -u crond --since "2026-10-17" --no-pager 2>/dev/null | grep CMD | head -100

Kuidas cron-tööga tagaust ära tunda

  1. Juurdelaadimine internetist: allalaadimine, mille tulemus antakse otse shellile.
  2. Kodeeritud sisu: pikad märgijadad, mis dekodeeritakse alles töö ajal.
  3. Ebatavalised teed: programmid kataloogides /tmp, /dev/shm, peidetud kaustades või üleslaadimiskataloogides.
  4. Vale kasutaja: ülesanded veebiserveri kasutaja all, kuigi rakendus ei vaja ühtegi.
  5. Silmatorkav tempo: täitmine iga minut või igal taaskäivitusel @reboot kaudu.
  6. Sobimatud ajatemplid: fail muudetud ajavahemikus, mil keegi serveris ei töötanud, näiteks pärast 17. oktoobrit.

Ärge unustage: ka rakendustel on omad ajakavad. WordPress haldab ajastatud ülesandeid näiteks andmebaasis. Kuidas seal kontrollida, kirjeldab Tagauste leidmine WordPressis.

Oluline

Cron-töö tuleb harva üksi. Kes on loonud ajastatud ülesande, on sageli ka SSH-võtmeid sisse seadnud või faile peitnud. Kontrollige lisaks võtmeid, nagu on kirjeldatud artiklis Tundmatute SSH-võtmete leidmine.

Leiu kindlustamine, mõistmine, siis eemaldamine

Kahjulik cron-töö on väärtuslik tõendusmaterjal. See näitab juurdelaadimise aadressi, loomise ajahetke ja sageli kasutajat, kelle kaudu ründaja tuli. Kindlustage fail kontrollsumma ja ajatemplitega enne eemaldamist. Ajatempel aitab hiljem kulgu rekonstrueerida; kuidas, näitab Intsidendi ajajoone koostamine. Ka võimaliku andmekaitseasutusele teavitamise või kindlustaja jaoks on leid oluline tõend selle kohta, alates millest ründajal ligipääs oli.

Üksi eemaldamisest ei piisa. Kui töötab veel protsess, mis kirje uuesti kirjutab, on see pärast järgmist minutit tagasi. Ja kuni algne turvauk on lahti, saab ründaja igal ajal uuesti alustada. Järjekord on seetõttu: kindlustada, sulgeda põhjus, eemaldada kõik osad, vahetada ligipääsud, jälgida.

Cron-tööde ennetav kaitsmine

Et cron-töö tagauks üldse ei tekiks või kiiresti silma jääks, aitavad kolm meedet. Esiteks saab kindlaks määrata, millised kasutajad tohivad üldse crontabi luua. Kui fail /etc/cron.allow on olemas, tohivad crontab-i kasutada ainult seal nimetatud kasutajad. Kui teie rakendus ei vaja veebiserveri kasutaja all cron-tööd, ei kuulu see kasutaja nimekirja. Kontrollige enne, millised ülesanded rakendus tegelikult vajab, ja looge need teadlikult eraldi kasutaja all.

Teiseks tasub failide jälgimine. Terviklikkuse kontrolli tööriist teatab, kui fail cron-kataloogides või kataloogis /var/spool/cron muutub. Kolmandaks kuuluvad ajastatud ülesanded serveri dokumentatsiooni: kes teab, millised kirjed peaksid olema, tunneb võõra kohe ära.

Kuidas PHP SOS konkreetselt aitab?

  • Täielik kontroll: Uurime kõiki ajastatud ülesannete mehhanisme, ka systemd taimereid, at-ülesandeid ja rakenduste ajakavasid.
  • Leidude hindamine: Hindame kahtlasi kirjeid neid käivitamata ja tuletame edasisi jälgi.
  • Puhas puhastamine: Kahjuliku tarkvara eemaldamisega eemaldame kõik osad ja sulgeme põhjuse.
  • Tagasituleku tuvastamine: Seadistame jälgimise, mis teatab uutest või muudetud ajastatud ülesannetest.

Korduma kippuvad küsimused

Miks ründajad cron-töid kasutavad?

Cron-töö käivitab käske korrapäraselt ja ilma edasise sekkumiseta. Ründajad laadivad sellega kahjulikku koodi juurde, loovad kustutatud faile uuesti või käivitavad protsesse uuesti. Nii elab nende ligipääs üle uuenduse ja sageli ka pealiskaudse puhastamise.

Kas crontab -l kontrolliks piisab?

Ei. crontab -l näitab ainult praeguse kasutaja crontabi. Ajastatud ülesanded asuvad lisaks teiste kasutajate crontabides, failis /etc/crontab, kataloogis /etc/cron.d, cron.daily kaustades, systemd taimerites ja at-ülesannetes.

Kuidas tunda ära kahjulik cron-töö?

Tüüpilised on allalaadimised internetist koos otsese käivitamisega, kodeeritud märgijadadega käsud, programmid ajutistes kaustades, ülesanded veebiserveri kasutaja all ja kirjed, mis töötavad iga minut. Üksik tunnus on vihje, mitu koos tõsine kahtlus.

Kas kahtlased cron-tööd võib lihtsalt kustutada?

Esmalt kindlustage, siis eemaldage. Kirje reedab sageli päritolu, juurdelaadimise aadressi ja muud osad. Ilma selgitamata, kuidas see tekkis, loob ründaja selle sageli uuesti.

Allikad

Kohene kontakt

Iga tund loeb. Kirjutage meile kohe.

Kirjeldage lühidalt süsteemi, PHP versiooni ja tähelepanekut. Võtame teiega ühendust, selgitame olukorra välja ja töötame kaugtööna, kuni intsident on lõpetatud ja dokumenteeritud.

Kohene abi