Τρέχουσα κατάσταση: PHP2Shell. Δύο κρίσιμες ευπάθειες της PHP (CVSS 9.2) επιτρέπουν κακόβουλο κώδικα χωρίς σύνδεση. Patches από τις 21/10/2026.Τι πρέπει να γίνει τώρα →

Εύρεση ύποπτων διεργασιών σε διακομιστές Linux

Οι κακόβουλες διεργασίες μεταμφιέζονται με αθώα ονόματα, τρέχουν από προσωρινούς φακέλους ή από διαγραμμένα αρχεία. Με λίγες εντολές ανάγνωσης βρίσκετε τα παράξενα και τα κατατάσσετε.

Ημερομηνία 6 λεπτά ανάγνωσηςΕντοπισμός και ψηφιακή εγκληματολογία

Εν ολίγοις: Τις ύποπτες διεργασίες σε διακομιστές Linux τις αναγνωρίζετε από λίγα χαρακτηριστικά: αρχείο προγράμματος διαγραμμένο ή στο /tmp, στο /dev/shm ή σε κατάλογο ιστού, όνομα που μιμείται διεργασία συστήματος, ασυνήθιστος χρήστης, μόνιμες συνδέσεις δικτύου ή υψηλό φορτίο χωρίς λόγο. Ελέγξτε με εντολές ανάγνωσης αν το αρχείο προγράμματος ανήκει σε εγκατεστημένο πακέτο και διασφαλίστε τα ευρήματα πριν τερματίσετε οτιδήποτε.

Τι σημαίνει «ύποπτη» για μια διεργασία

Σε έναν διακομιστή ιστού τρέχουν εκατοντάδες διεργασίες. Οι περισσότερες ανήκουν στο λειτουργικό σύστημα, στον διακομιστή ιστού, στη βάση δεδομένων ή στην PHP. Ένας επιτιθέμενος που μπόρεσε να εκτελέσει κώδικα μέσω ευπάθειας όπως το PHP2Shell προσπαθεί να μην ξεχωρίζει ανάμεσά τους. Επιλέγει διακριτικά ονόματα και τοποθετεί προγράμματα εκεί όπου ο χρήστης του διακομιστή ιστού επιτρέπεται να γράφει.

Για τον έλεγχο βοηθά να γνωρίζετε την κανονική κατάσταση. Όποιος ξέρει ποιες υπηρεσίες πρέπει να τρέχουν σε έναν διακομιστή, με ποιους χρήστες και με ποιο φορτίο, αναγνωρίζει πολύ πιο γρήγορα τις αποκλίσεις. Αν λείπει αυτή η γνώση, αξίζει να χρησιμοποιήσετε για σύγκριση τη λίστα διεργασιών ενός όμοιου, αδιάβλητου διακομιστή.

Ένα μεμονωμένο χαρακτηριστικό δεν είναι ακόμη απόδειξη. Καθοριστική είναι η συνδυασμένη εικόνα. Μια διεργασία με το όνομα ενός νήματος πυρήνα, που τρέχει κάτω από www-data, ξεκίνησε από το /dev/shm και κρατά σύνδεση προς το εξωτερικό, είναι σαφής περίπτωση. Πώς ελέγχετε την ειδική περίπτωση ενός shell κάτω από τον διακομιστή ιστού, περιγράφει το Προειδοποιητικό σημάδι: ο διακομιστής ιστού ξεκινά shell.

Πρώτη επισκόπηση σε πέντε εντολές

Όλες οι εντολές απλώς διαβάζουν. Εκτελέστε τις ως root, ώστε να βλέπετε όλες τις διεργασίες, και αποθηκεύστε τις εξόδους σε αρχείο εκτός του καταλόγου ιστού.

# 1. Όλες οι διεργασίες με χρήστη, PID γονέα, χρόνο εκκίνησης, CPU και γραμμή εντολών
ps -eo user,pid,ppid,lstart,%cpu,%mem,cmd --sort=-%cpu | head -40

# 2. Διεργασίες των οποίων το αρχείο προγράμματος διαγράφηκε
ls -l /proc/[0-9]*/exe 2>/dev/null | grep "(deleted)"

# 3. Διεργασίες που τρέχουν από προσωρινούς καταλόγους ή καταλόγους ιστού
ls -l /proc/[0-9]*/exe 2>/dev/null | grep -E " -> (/tmp|/var/tmp|/dev/shm|/var/www)"

# 4. Διεργασίες με συνδέσεις δικτύου
ss -tunap

# 5. Επισκόπηση των διεργασιών των χρηστών διακομιστή ιστού
ps -eo user,pid,ppid,lstart,cmd | grep -E "^(www-data|apache|nginx) "

Τα ονόματα χρηστών διαφέρουν ανά διανομή και πάνελ· το Plesk και άλλα πάνελ εκτελούν συχνά την PHP υπό τον χρήστη του εκάστοτε πελάτη. Προσαρμόστε τη λίστα στο περιβάλλον σας.

Διαβάστε τις εξόδους με το βλέμμα στον χρόνο εκκίνησης. Οι διεργασίες που τρέχουν από την τελευταία επανεκκίνηση του διακομιστή ανήκουν συνήθως στο σύστημα. Διεργασίες που ξεκίνησαν μέσα στη νύχτα ή τις ημέρες μετά τις 17 Οκτωβρίου και δεν ταιριάζουν σε καμία υπηρεσία, αξίζουν προσοχή. Συγκρίνετε και τον αριθμό των διεργασιών PHP με όσα επιτρέπει η διαμόρφωση του pool σας· σαφώς περισσότερες διεργασίες κάτω από έναν χρήστη διακομιστή ιστού αποτελούν ένδειξη.

Ύποπτες διεργασίες σε Linux: τυπικά χαρακτηριστικά

Χαρακτηριστικό Γιατί προκαλεί υποψία Πιθανή αθώα εξήγηση;
Αρχείο προγράμματος «(deleted)» Οι επιτιθέμενοι διαγράφουν αρχεία μετά την εκκίνηση ναι, μετά από ενημερώσεις πακέτων μέχρι την επανεκκίνηση
Τόπος εκκίνησης /tmp, /dev/shm, φάκελος upload εκεί επιτρέπεται να γράφει ο καθένας ή ο διακομιστής ιστού σπάνια
Όνομα σε αγκύλες όπως [kworker] μιμείται νήματα πυρήνα όχι, αν πίσω υπάρχει αρχείο προγράμματος
Μόνιμα υψηλό φορτίο CPU χωρίς αφορμή τυπικό για κρυπτοεξορύκτες ναι, σε batch jobs ή ευρετηρίαση
Γονική διεργασία 1 και χρήστης διακομιστή ιστού αποσπάστηκε από τον διακομιστή ιστού, συνεχίζει αυτόνομα σπάνια
Σύνδεση προς άγνωστο προορισμό έλεγχος ή διαρροή δεδομένων ναι, σε ενημερώσεις και APIs

Τα πραγματικά νήματα πυρήνα δεν έχουν αρχείο προγράμματος· το ls -l /proc/PID/exe δεν δίνει για αυτά διαδρομή. Αν μια διεργασία με όνομα πυρήνα δείχνει σε αρχείο, είναι συγκαλυμμένη. Για υψηλό φορτίο χωρίς εμφανή λόγο βοηθά το άρθρο Κρυπτοεξορύκτες στον διακομιστή ιστού.

Αντιπαραβολή: ανήκει το αρχείο προγράμματος σε πακέτο;

Σχεδόν όλα τα θεμιτά προγράμματα σε έναν διακομιστή προέρχονται από τη διαχείριση πακέτων. Ένα αρχείο προγράμματος που δεν ανήκει σε κανένα πακέτο δεν είναι αυτόματα κακόβουλο, αξίζει όμως προσεκτική ματιά.

PID=12345
EXE=$(readlink /proc/$PID/exe); echo "$EXE"
dpkg -S "$EXE"        # Debian/Ubuntu: σε ποιο πακέτο ανήκει το αρχείο;
rpm -qf "$EXE"        # οικογένεια RHEL
sha256sum /proc/$PID/exe   # άθροισμα ελέγχου, λειτουργεί και με διαγραμμένο αρχείο
tr '\0' ' ' < /proc/$PID/environ | head -c 600; echo   # μεταβλητές περιβάλλοντος

Αν το αρχείο προγράμματος έχει διαγραφεί, το sha256sum /proc/$PID/exe το διαβάζει παρ' όλα αυτά από τη διεργασία που τρέχει. Αυτό το άθροισμα ελέγχου ανήκει στην τεκμηρίωση. Αντίγραφο του αρχείου πρέπει να δημιουργήσει μόνο όποιος ξέρει πώς να το φυλάξει με ασφάλεια.

Όρια του ελέγχου στο σύστημα που τρέχει

Όλες οι παραπάνω εντολές εμπιστεύονται το σύστημα που ελέγχετε εκείνη τη στιγμή. Σε μια συνηθισμένη εισβολή μέσω του ιστότοπου με τα δικαιώματα του χρήστη του διακομιστή ιστού αυτό είναι δικαιολογημένο. Αν ο επιτιθέμενος απέκτησε δικαιώματα root, μπορεί να κρύψει διεργασίες και να παραποιήσει εξόδους. Τότε ο διακομιστής δείχνει μόνο ό,τι επιτρέπει ο επιτιθέμενος.

Ενδείξεις γι' αυτό είναι οι αντιφάσεις: φορτίο χωρίς ορατή διεργασία, συνδέσεις που βλέπει το firewall αλλά όχι το ss, ή αλλοιωμένα προγράμματα συστήματος. Σε τέτοιες περιπτώσεις ο έλεγχος ανήκει σε ασφαλισμένη εικόνα. Σε συστήματα που τρέχουν προστίθεται συχνά ένα αντίγραφο της κύριας μνήμης, επειδή ορισμένα κακόβουλα προγράμματα υπάρχουν μόνο εκεί και αφήνουν στον δίσκο ελάχιστα ίχνη. Αυτό το αντίγραφο πρέπει να γίνει πριν από την επανεκκίνηση και απαιτεί κατάλληλα εργαλεία και εμπειρία. Γιατί πρέπει να το δημιουργήσετε πριν από μια επανεγκατάσταση, εξηγεί το Διασφάλιση αποδεικτικών πριν από την επανεγκατάσταση.

Σημαντικό

Μη τερματίζετε τις ύποπτες διεργασίες ως πρώτο βήμα. Συχνά τις ξαναξεκινά ένα cronjob ή μια υπηρεσία και με τη διεργασία εξαφανίζονται από τη μνήμη η γραμμή εντολών, οι συνδέσεις και το διαγραμμένο αρχείο προγράμματος.

Έλεγχος αυτόματης εκκίνησης και επόμενα βήματα

Μια κακόβουλη διεργασία που θα εξαφανιζόταν μετά από μια επανεκκίνηση θα ήταν άχρηστη για τους επιτιθέμενους. Σε κάθε εύρημα διεργασίας ανήκει γι' αυτό το ερώτημα τι την ξεκινά. Εκτός από cronjobs έρχονται ιδίως υπηρεσίες systemd, που ένας επιτιθέμενος με δικαιώματα root μπορεί να δημιουργήσει. Προκαλούν υποψία υπηρεσίες με γενικά ονόματα, των οποίων το αρχείο προγράμματος βρίσκεται σε ασυνήθιστο κατάλογο, και αρχεία unit που δημιουργήθηκαν μετά τις 17 Οκτωβρίου.

# Υπηρεσίες που τρέχουν και πρόσφατα αλλαγμένα αρχεία unit
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

# Εισάγεται βιβλιοθήκη σε κάθε διεργασία; Το αρχείο κανονικά δεν υπάρχει.
ls -l /etc/ld.so.preload 2>/dev/null && cat /etc/ld.so.preload

Μια καταχώριση στο /etc/ld.so.preload είναι σπάνια σε κανονικούς διακομιστές ιστού και ισχυρή ένδειξη παραποίησης με δικαιώματα root. Πώς ελέγχετε πλήρως τις προγραμματισμένες εργασίες, περιγράφει το Αναγνώριση κρυφών cronjobs ως κερκόπορτας.

Έπειτα ακολουθούν τα επόμενα βήματα με αυτή τη σειρά:

  1. Διασφαλίστε εξόδους και αθροίσματα ελέγχου με ώρα.
  2. Αναζητήστε μηχανισμούς διατήρησης: cronjobs, υπηρεσίες και timers systemd, κλειδιά SSH.
  3. Διευκρινίστε την προέλευση: logs από τις 20 Οκτωβρίου, νέα αρχεία στον κατάλογο ιστού.
  4. Απομονώστε τον διακομιστή και προγραμματίστε καθαρισμό ή αναδόμηση.

Μια επισκόπηση όλων των τυπικών ενδείξεων μετά το PHP2Shell δίνει το Έχω ήδη παραβιαστεί;.

Πώς βοηθά συγκεκριμένα η PHP SOS;

  • Αξιολόγηση διεργασιών: Ελέγχουμε τη λίστα διεργασιών, τα αρχεία προγραμμάτων και τις συνδέσεις και κατατάσσουμε κάθε εύρημα.
  • Διασφάλιση με αποδεικτική αξία: Με την ψηφιακή εγκληματολογία (IT-Forensik) διασφαλίζουμε μνήμη και φορείς δεδομένων πριν αλλάξει οτιδήποτε.
  • Εύρεση μηχανισμών διατήρησης: Αναζητούμε μηχανισμούς που επανεκκινούν κακόβουλες διεργασίες.
  • Ολοκλήρωση: Καθαρίζουμε ή ξαναχτίζουμε και τεκμηριώνουμε το περιστατικό μέχρι το κλείσιμο.

Συχνές ερωτήσεις

Πώς αναγνωρίζω μια ύποπτη διεργασία σε Linux;

Τυπικά χαρακτηριστικά είναι ένα διαγραμμένο αρχείο προγράμματος, τόπος εκκίνησης στο /tmp ή στο /dev/shm, όνομα που μιμείται διεργασία συστήματος, ασυνήθιστος χρήστης και μόνιμες συνδέσεις δικτύου. Τα μεμονωμένα χαρακτηριστικά είναι ενδείξεις, περισσότερα μαζί σοβαρή υπόνοια.

Τι σημαίνει το «(deleted)» στο /proc/PID/exe;

Το αρχείο προγράμματος της διεργασίας διαγράφηκε μετά την εκκίνηση. Αυτό συμβαίνει θεμιτά μετά από ενημερώσεις πακέτων, μέχρι να επανεκκινηθεί η υπηρεσία. Σε διεργασίες από προσωρινούς φακέλους ή κάτω από τον χρήστη του διακομιστή ιστού είναι τυπική συμπεριφορά συγκάλυψης.

Μπορώ να βασίζομαι στην έξοδο του ps;

Σε μια συνηθισμένη εισβολή συνήθως ναι. Αν όμως ο επιτιθέμενος απέκτησε δικαιώματα root, μπορεί να παραποιήσει εργαλεία και εξόδους. Τότε πιο αξιόπιστος είναι ένας έλεγχος απ' έξω, για παράδειγμα σε ασφαλισμένη εικόνα.

Να τερματίσω μια ύποπτη διεργασία με kill;

Όχι πρώτα. Διασφαλίστε πρώτα γραμμή εντολών, αρχείο προγράμματος, συνδέσεις και χρόνο εκκίνησης. Μια τερματισμένη διεργασία δεν αποκαλύπτει πια τίποτα και συχνά την ξαναξεκινά ούτως ή άλλως ένα cronjob ή μια υπηρεσία.

Πηγές

Άμεση επικοινωνία

Κάθε ώρα μετράει. Γράψτε μας τώρα.

Περιγράψτε σύντομα το σύστημα, την έκδοση PHP και ό,τι παρατηρείτε. Θα επικοινωνήσουμε μαζί σας, θα διευκρινίσουμε την κατάσταση και θα εργαστούμε εξ αποστάσεως μέχρι το περιστατικό να κλείσει και να τεκμηριωθεί.

Άμεση βοήθεια