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

Σύγκριση των βασικών αρχείων του CMS με το πρωτότυπο

Η σύγκριση με ένα καθαρό πρωτότυπο δείχνει κάθε τροποποιημένο αρχείο, ανεξάρτητα από το αν το γνωρίζει κάποιο εργαλείο σάρωσης. Δείτε πώς στήνετε τη σύγκριση για WordPress, έργα Composer και πακέτα συστήματος.

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

Εν ολίγοις: Για να ελέγξετε τα βασικά αρχεία του CMS, συγκρίνετε τα εγκατεστημένα αρχεία με ένα καθαρό πρωτότυπο της ίδιας έκδοσης: στο WordPress μέσω των επίσημων αθροισμάτων ελέγχου, σε άλλα συστήματα μέσω φρέσκιας λήψης ή ανακατασκευής από το composer.lock. Κάθε απόκλιση είναι εργασία ελέγχου. Η σύγκριση εντοπίζει και άγνωστο κακόβουλο κώδικα, καλύπτει όμως μόνο αρχεία για τα οποία υπάρχει πρωτότυπο.

Γιατί η σύγκριση βρίσκει περισσότερα από κάθε υπογραφή

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

Μετά το PHP2Shell αυτό έχει ιδιαίτερη αξία. Για τις ευπάθειες CVE-2026-109618 και CVE-2026-109619 δεν υπάρχουν δημοσιευμένοι, επιβεβαιωμένοι Indicators of Compromise. Τα εργαλεία σάρωσης δεν μπορούν επομένως να αναζητήσουν στοχευμένα ίχνη του PHP2Shell. Μια σύγκριση με το πρωτότυπο εντοπίζει αντίθετα κάθε αλλαγή στον πυρήνα, ανεξάρτητα από το πώς προέκυψε. Γιατί δεν αρκούν μόνα τους τα εργαλεία σάρωσης, εξηγεί το άρθρο Εργαλεία σάρωσης κακόβουλου λογισμικού για ιστότοπους: τι βρίσκουν και τι όχι.

Η αρχή: ίδια έκδοση, καθαρή πηγή

Μια σύγκριση αξίζει όσο και η αναφορά της. Πρέπει να πληρούνται τρεις προϋποθέσεις:

  1. Ακριβώς η ίδια έκδοση: Μια σύγκριση με νεότερη έκδοση δείχνει εκατοντάδες αθώες διαφορές. Εντοπίστε την εγκατεστημένη έκδοση από την εφαρμογή ή από το composer.lock.
  2. Επίσημη πηγή: Το πρωτότυπο προέρχεται από τον κατασκευαστή, από τον επίσημο κατάλογο πακέτων ή από το δικό σας σύστημα ελέγχου εκδόσεων. Όχι από παλιό αντίγραφο ασφαλείας του επηρεαζόμενου διακομιστή.
  3. Σύγκριση σε αντίγραφο: Εργαστείτε σε διασφαλισμένο αντίγραφο του φακέλου ιστού, ώστε να διατηρηθούν χρονοσημάνσεις και ίχνη.
Σύστημα Αναφορά Εργαλείο
Πυρήνας WordPress και plugins από τον κατάλογο αθροίσματα ελέγχου από το WordPress.org wp core verify-checksums, wp plugin verify-checksums
Έργα Composer (π.χ. Shopware 6, Laravel, Symfony, Drupal, TYPO3 σε λειτουργία Composer) ανακατασκευή από το composer.lock composer install σε κενό φάκελο, μετά diff
CMS με πακέτο λήψης πακέτο της ίδιας έκδοσης από τον κατασκευαστή diff -rq
Δικά σας έργα με Git τελευταίο γνωστό commit git status, git diff
Πακέτα συστήματος του διακομιστή βάση δεδομένων πακέτων της διανομής dpkg --verify, rpm -Va

WordPress: περισσότερα από το verify-checksums

Πώς ελέγχετε τον πυρήνα και τα plugins με το WP-CLI, αναφέρεται στον οδηγό Εύρεση κερκόπορτων στο WordPress. Αξίζει μια συμπλήρωση: σύμφωνα με την τεκμηρίωση του WP-CLI, η επιλογή --include-root ελέγχει όλα τα αρχεία και τους φακέλους στον κύριο φάκελο και προειδοποιεί για εγγραφές που δεν ανήκουν στο WordPress. Εκεί οι επιτιθέμενοι αποθέτουν συχνά αρχεία με ονόματα που θυμίζουν βασικά αρχεία.

# Πυρήνας έναντι επίσημων αθροισμάτων ελέγχου, μαζί με ξένα αρχεία στον κύριο φάκελο
wp core verify-checksums --include-root

Εμπορικά plugins και themes δεν καλύπτονται από αυτόν τον δρόμο. Γι' αυτά κατεβάζετε το αρχικό πακέτο της ίδιας έκδοσης από τον πάροχο και συγκρίνετε με diff.

Έλεγχος βασικών αρχείων CMS σε έργα Composer

Πολλές σύγχρονες εφαρμογές PHP αποτελούνται κατά το μεγαλύτερο μέρος από πακέτα που εγκαθιστά ο Composer, ο διαχειριστής πακέτων για την PHP. Πώς λειτουργεί, εξηγεί η σελίδα Composer: ο διαχειριστής πακέτων για την PHP. Το αρχείο composer.lock καταγράφει ακριβώς ποιες εκδόσεις είναι εγκατεστημένες. Σύμφωνα με την τεκμηρίωση του Composer, η εντολή composer install χρησιμοποιεί αυτές τις ακριβείς εκδόσεις. Έτσι μπορεί να ανακατασκευαστεί η κατάσταση παράδοσης:

# Σε καθαρό σύστημα, όχι στον επηρεαζόμενο διακομιστή
mkdir /tmp/referenz && cd /tmp/referenz
cp /pfad/zur/kopie/composer.json /pfad/zur/kopie/composer.lock .
composer install --no-scripts --no-plugins --no-autoloader

# Εμφάνιση των διαφορών στον φάκελο vendor
diff -rq /tmp/referenz/vendor /pfad/zur/kopie/vendor

Οι επιλογές --no-scripts και --no-plugins εμποδίζουν την εκτέλεση σεναρίων από τα πακέτα κατά την ανακατασκευή. Αν η παραγωγή εγκαταστάθηκε με --no-dev, χρησιμοποιήστε την επιλογή και στην ανακατασκευή, αλλιώς τα πακέτα ανάπτυξης θα εμφανιστούν ως διαφορά. Προσέξτε δύο είδη αποτελεσμάτων: αρχεία που διαφέρουν και αρχεία που υπάρχουν μόνο στον διακομιστή. Η δεύτερη ομάδα είναι συχνά η πιο ενδιαφέρουσα. Πώς ελέγχετε επιπλέον τα εγκατεστημένα πακέτα για γνωστές ευπάθειες, περιγράφει ο οδηγός Έλεγχος των εξαρτήσεων Composer για ευπάθειες.

Σύγκριση και του λειτουργικού συστήματος

Αν ο επιτιθέμενος είχε δικαιώματα root, μπορεί να έχει αντικαταστήσει και προγράμματα συστήματος. Οι διαχειριστές πακέτων διαθέτουν δική τους σύγκριση:

# Debian, Ubuntu: αρχεία των οποίων το περιεχόμενο διαφέρει από το πακέτο
sudo dpkg --verify

# RHEL, AlmaLinux, Rocky: έλεγχος όλων των πακέτων
sudo rpm -Va

Ένα 5 στην τρίτη θέση της εξόδου σημαίνει ότι άλλαξε το περιεχόμενο ενός αρχείου. Σύμφωνα με το εγχειρίδιο του dpkg, η σύγκριση περιεχομένου είναι εκεί προς το παρόν ο μόνος αποτελεσματικός έλεγχος. Τα αλλαγμένα αρχεία διαμόρφωσης είναι φυσιολογικά και επισημαίνονται με c. Ένα τροποποιημένο πρόγραμμα στο /usr/bin είναι αντίθετα σοβαρό σημάδι συναγερμού. Προσέξτε: ένας επιτιθέμενος με δικαιώματα root μπορεί να παραποιήσει και τη βάση δεδομένων πακέτων. Σε υποψία πρόσβασης root, η ανακατασκευή είναι πιο αξιόπιστη από κάθε σύγκριση.

Συμβουλή

Ένα σύστημα ελέγχου εκδόσεων για τον κώδικα της εφαρμογής μετατρέπει τις μελλοντικές συγκρίσεις σε υπόθεση δευτερολέπτων. Το git status δείχνει τότε κάθε απόκλιση από την εγκεκριμένη κατάσταση.

Αξιολόγηση των αποκλίσεων και γνώση των ορίων

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

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

Τα uploads, τα αρχεία διαμόρφωσης όπως wp-config.php ή .env, οι δικές σας προσαρμογές και οι κρυφές μνήμες δεν έχουν πρωτότυπο. Πρέπει να ελεγχθούν στοχευμένα, όπως και η βάση δεδομένων, τα cronjobs, οι λογαριασμοί χρηστών και τα κλειδιά SSH. Μια καθαρή σύγκριση είναι επομένως σημαντικό δομικό στοιχείο, αλλά όχι αθώωση για ολόκληρο τον διακομιστή.

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

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

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

Πώς ελέγχω αν έχουν τροποποιηθεί τα βασικά αρχεία του WordPress;

Με το WP-CLI και την εντολή wp core verify-checksums. Συγκρίνει τα αρχεία με τα αθροίσματα ελέγχου που δημοσιεύει το WordPress.org για την εγκατεστημένη έκδοση. Με την επιλογή --include-root το WP-CLI προειδοποιεί επιπλέον για αρχεία στον κύριο φάκελο που δεν ανήκουν στο WordPress.

Τι κάνω με ένα CMS χωρίς ενσωματωμένη λειτουργία ελέγχου;

Κατεβάζετε ακριβώς την ίδια έκδοση από την επίσημη πηγή του κατασκευαστή και συγκρίνετε τους δύο φακέλους με diff. Στα έργα Composer ανακατασκευάζετε την κατάσταση από το composer.lock σε κενό φάκελο και συγκρίνετε τον φάκελο vendor.

Εντοπίζει η σύγκριση και κακόβουλο κώδικα σε plugins και themes;

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

Αντικαθιστά η σύγκριση ένα εργαλείο σάρωσης κακόβουλου λογισμικού;

Το συμπληρώνει. Η σύγκριση εντοπίζει κάθε αλλαγή σε γνωστά αρχεία, ακόμη και άγνωστο κακόβουλο κώδικα. Δεν λέει όμως τίποτα για αρχεία χωρίς πρωτότυπο, για τη βάση δεδομένων, τα cronjobs ή τις προσβάσεις.

Πηγές

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

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

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

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