XRISOT/DATA STREAMNetwork Security · 01.09.2026
Network Infrastructure · Supply Chain · Rapid Report

BGP Hijack

Για 33 ώρες, ένας επιτιθέμενος «υιοθέτησε» το δρομολόγιο ενός ολόκληρου IP block μέσα στη Hetzner, πήρε στο χέρι την κίνηση των update servers της Softaculous μαζί με το client/billing portal, εξασφάλισε ψεύτικο TLS certificate και παρέδωσε δηλητηριασμένο update με root backdoor σε hypervisor nodes. Χωρίς να αγγίξει ούτε έναν server της εταιρείας.

xrisotblog18 λεπτά ανάγνωσηςData Stream edition
SOFTACULOUS UPDATE API HETZNER AS ROGUE AS ISP A ISP B FAKE UPDATE SERVER VPS HYPERVISOR NODES root backdoor: java-jre-update.service
PREFIX: 162.55.80.0/24 WINDOW: 28/08 20:57 UTC → 30/08 06:10 UTC CERT: FRAUDULENT — REVOKED UPDATE: POISONED
33hδιάρκεια hijack
/24prefix που υιοθετήθηκε
1 serviceroot backdoor marker
0κρυπτογραφικές υπογραφές πακέτων

Δεν χρειάστηκε να σπάσουν ούτε έναν server. Έκαναν το internet να πιστέψει ότι είναι αλλού.

Το απόγευμα της 28ης Αυγούστου, ώρα 20:57 UTC, ένας επιτιθέμενος άρχισε να διαφημίζει σε ολόκληρο το internet ένα δρομολόγιο που δεν του ανήκε: το 162.55.80.0/24, ένα IP block που φιλοξενείται στη Hetzner και εξυπηρετεί υποδομές της Softaculous — της εταιρείας πίσω από το Virtualizor, το control panel με το οποίο hosting providers σε όλο τον κόσμο δημιουργούν, πουλάνε και διαχειρίζονται VPS. Για 33 ώρες, μεγάλο μέρος της κίνησης προς τα update systems της Softaculous και προς το client/billing portal πήγαινε… αλλού. Όπου «αλλού» σημαίνει σε servers του επιτιθέμενου, με σωστό padlock στον browser.

Το αποτέλεσμα: ένα δηλητηριασμένο Virtualizor update package παραδόθηκε σε έναν περιορισμένο αριθμό installations που ζήτησαν update μέσα στο παράθυρο της επίθεσης. Το Virtualizor τρέχει σε hypervisor host nodes — δηλαδή ένα root compromise εδώ δεν είναι «ακόμα ένα server κάτω»: είναι ο εγκέφαλος που γεννά, κρατά και καταστρέφει ολόκληρα VPS. Η Softaculous δημοσίευσε επείγουσα ανακοίνωση, ζήτησε ανάκληση του ψεύτικου certificate, κυκλοφόρησε την έκδοση 3.2.9.9 με Security Analyzer και υποσχέθηκε κάτι που έπρεπε να υπήρχε από το 2010: κρυπτογραφική υπογραφή για όλα τα πακέτα.

Δεν χρειάστηκε vulnerability στο Virtualizor. Το bug ήταν στο ίδιο το internet — και λέγεται εμπιστοσύνη χωρίς επαλήθευση.

BGP 101: γιατί το routing του internet είναι μια προφορική συμφωνία

Το Border Gateway Protocol είναι ο τρόπος με τον οποίο τα δίκτυα του πλανήτη — τα Autonomous Systems, τα AS — συμφωνούν ποιος φτάνει πού. Κάθε AS ανακοινώνει (announce) τα prefixes που «κατέχει» και οι γείτονές του διαδίδουν την ανακοίνωση. Δεν υπάρχει κεντρική αρχή που να επιβεβαιώνει ότι αυτό που λες ότι είναι δικό σου, πράγματι είναι δικό σου. Υπάρχει μια προαιρετική μηχανή επαλήθευσης (RPKI) που τα περισσότερα δίκτυα είτε δεν έχουν ενεργοποιήσει είτε την εφαρμόζουν μισή. Ο πίνακας δρομολόγησης γεμίζει με αμοιβαίες ανακοινώσεις και κερδίζει, κατά κανόνα, το πιο συγκεκριμένο prefix: ένα /24 νικάει ένα /16 που το περιέχει.

Αυτό σημαίνει ότι ένας επιτιθέμενος με πρόσβαση σε οποιοδήποτε AS (μέσω κακόβουλου ή απρόσεκτου provider, μέσω BGP session σε lease, ή απλώς παραβιάζοντας έναν φτωχά προστατευμένο router) μπορεί να δηλώσει: «εγώ εξυπηρετώ το 162.55.80.0/24». Αν η ανακοίνωση διαδοθεί αρκετά, ένα μέρος του παγκόσμιου κίνησης προς αυτό το prefix αρχίζει να καταλήγει σε εκείνον. Δεν χρειάζεται να πάρει ΟΛΗ την κίνηση — αρκεί ένα ποσοστό από τους χρήστες που την ώρα εκείνη ψάχνουν ακριβώς το update server. Η ιστορία αυτού του είδους των επιθέσεων έχει γραφτεί πολλές φορές: από το θρυλικό YouTube-Pakistan του 2008 μέχρι κλοπές crypto και κρατικές παρακολουθήσεις. Το Virtualizor περιστατικό απλώς το έφερε στο σπίτι κάθε hosting provider.

η λεπτομέρεια που κάνει τη διαφορά

Το /24 που νικάει το /16

Το 162.55.80.0/24 ανήκει σε εύρος που φιλοξενείται στη Hetzner. Η Hetzner διαφημίζει ευρύτερα prefixes (π.χ. /16, /20). Ένας επιτιθέμενος που ανακοινώνει το πιο συγκεκριμένο /24 κερδίζει τη δρομολόγηση σε δίκτυα που κάνουν longest-prefix match — δηλαδή σχεδόν παντού. Δεν χρειάστηκε να «σπάσει» τη Hetzner: τη σκίασε.

Ο χάρτης των 33 ωρών

28 Αυγούστου, 20:57 UTCΟ επιτιθέμενος αρχίζει να διαφημίζει το 162.55.80.0/24 μέσω δικού του AS. Μέρος του παγκόσμιου internet αρχίζει να δρομολογεί την κίνηση της Softaculous προς αυτόν.
κατά τη διάρκεια του παραθύρουΗ κίνηση προς τα update systems και το client/billing portal περνάει από attacker-controlled servers. Εκεί, ο επιτιθέμενος αποκτά έγκυρο (αλλά ψεύτικο) TLS certificate για τους τομείς — ο χρήστης βλέπει κανονικό padlock.
μέσα στο παράθυροVirtualizor installations που έκαναν check for updates λαμβάνουν δηλητηριασμένο package. Το vendor δεν έχει logs — η κίνηση δεν πέρασε ποτέ από τους δικούς του servers. Αποδεικτικά στοιχεία: υπάρχουν μόνο στα θύματα.
30 Αυγούστου, 06:10 UTCΤέλος του παραθύρου. Η δρομολόγηση επανέρχεται. Η Softaculous έχει πλέον την εικόνα του τι έγινε — χωρίς όμως να μπορεί να δει τι ακριβώς παρέλαβαν τα θύματα.
31 ΑυγούστουΗ εταιρεία δημοσιεύει security incident notice: επιβεβαιώνει την παράδοση κακόβουλου update σε «μικρό αριθμό installations», ζητά έλεγχο για συγκεκριμένο marker και ανάκληση του ψεύτικου certificate.
1 ΣεπτεμβρίουΚυκλοφορεί το Virtualizor 3.2.9.9 με νέο εργαλείο «Security Analyzer» στο admin panel, και ανακοινώνεται η μετάβαση σε κρυπτογραφική υπογραφή όλων των πακέτων.

Το ψεύτικο certificate: το στέμμα ολόκληρης της επιχείρησης

Ένα BGP hijack από μόνο του θα ήταν ορατό: ο browser θα ούρλιαζε για certificate error, ο χρήστης θα το έκλεινε. Το εντυπωσιακό σε αυτό το περιστατικό είναι ότι ο επιτιθέμενος εξασφάλισε έγκυρο TLS certificate για τους τομείς της Softaculous — δηλαδή το padlock της εμπιστοσύνης εμφανιζόταν κανονικά στα θύματα. Πώς; Το πιο πιθανό σενάριο είναι το κλασικό: με τον έλεγχο της δρομολόγησης, το domain validation του certificate authority (π.χ. HTTP-01 challenge του ACME/Let's Encrypt) περνάει διαμέσου της κίνησης που ο ίδιος ο επιτιθέμενος αναχαιτίζει. Ζητάς certificate, ο CA στέλνει challenge στο domain, το challenge καταλήγει στον επιτιθέμενο λόγω hijack, αυτός απαντά, παίρνει πιστοποιητικό που ο browser θεωρεί απόλυτα νόμιμο.

Αυτό είναι το πραγματικό δίδαγμα για κάθε sysadmin: το padlock αποδεικνύει κρυπτογράφηση, όχι ιδιοκτησία. Όταν η δρομολόγηση είναι δηλητηριασμένη, όλα τα στρώματα που βασίζονται σε «η κίνηση φτάνει στον σωστό server» καταρρέουν μαζί — certificate included. Η Softaculous ανέφερε ότι το ψεύτικο πιστοποιητικό αναφέρθηκε για ανάκληση, αλλά η ανάκληση είναι πάντα μετά τη μόλυνση.

Το padlock στον browser αποδεικνύει ότι η σύνδεση είναι κρυπτογραφημένη. Δεν αποδεικνύει ότι μιλάς με τον σωστό ακροατή.

java-jre-update.service: το backdoor που ντύνεται updater

Το δηλητηριασμένο package παραδόθηκε σε έναν «μικρό αριθμό installations» — η ορολογία του vendor. Δεν έχουμε δημόσια τεχνική ανάλυση του payload, αλλά η Softaculous έδωσε το πιο σημαντικό fingerprint: ένα systemd unit με όνομα java-jre-update.service στο /etc/systemd/system. Το όνομα είναι επιλογή μηχανικού: «Java runtime updater» ακούγεται τόσο αθώο που σχεδόν κάθε Linux server έχει κάτι παρόμοιο να τρέχει. Στην πραγματικότητα, το unit είναι το εργαλείο επιμονής — ένας τρόπος ώστε το backdoor να ξανασηκώνεται σε κάθε boot, με root δικαιώματα.

Και εδώ είναι το βαθύ μέρος: το Virtualizor δεν τρέχει σε ένα συνηθισμένο web server. Τρέχει σε hypervisor host nodes — τους φυσικούς/εικονικούς hosts πάνω στους οποίους ζουν τα VPS των τελικών πελατών. Ένα root backdoor εδώ σημαίνει: πλήρης έλεγχος σε κάθε VM που φιλοξενεί ο κόμβος, πρόσβαση σε δίσκους, μνήμες, snapshots, backups, και τη δυνατότητα να κρύβεις την παρουσία σου από τα guest λειτουργικά. Από εκεί και πέρα, οι επιλογές του επιτιθέμενου είναι οι κλασικές: κλοπή δεδομένων tenants, ransomware σε επίπεδο host, ή «quiet» υποδομή για μελλοντικές επιθέσεις. Η Softaculous ζήτησε από τους operators να ελέγξουν για το marker, να κάνουν rotate τα API credentials και να ελέγξουν SSH keys, accounts, scheduled tasks και outbound connections.

η ασυνέπεια της αλυσίδας

Ο vendor δεν έχει logs — τα θύματα ναι

Επειδή η κίνηση εκτράπηκε, η Softaculous δεν μπορεί να πει με βεβαιότητα ποιοι έλαβαν το δηλητηριασμένο πακέτο, από πού και πότε. Η μόνη πηγή αλήθειας είναι τα ίδια τα θύματα: journalctl, auditd, file integrity. Αν δεν τα κρατάς, το περιστατικό είναι αόρατο — και για σένα και για τον vendor.

Γιατί τα update servers είναι τα crown jewels του internet

Αυτό δεν ήταν το πρώτο χτύπημα σε κανάλι ενημερώσεων — και δεν θα είναι το τελευταίο. Η λογική είναι σταθερή: δεν χρειάζεσαι να σπάσεις χίλιους servers, αρκεί να δηλητηριάσεις το one tap από το οποίο όλοι πίνουν:

  • SolarWinds (2020): το θρυλικό supply chain attack — κακόβουλος κώδικας μέσα σε υπογεγραμμένες ενημερώσεις του Orion, ~18.000 οργανισμοί εκτεθειμένοι, μετέπειτα κατεύθυνση σε επιλεγμένα στόχους.
  • Codecov (2021): διόρθωση script στο bash uploader — κλοπή credentials από CI/CD pipelines χιλιάδων εταιρειών.
  • 3CX (2023): υπογεγραμμένο desktop VoIP app μολυσμένο downstream από θύμα του ίδιου του actor — double supply chain.
  • XZ Utils (2024): ο «μαραθώνιος» — επί χρόνια infiltration στο open-source project, backdoor στα liblzma που σχεδόν φτάνει στο sshd. Έπεσε από μία υποψία ενός engineer.
  • Kiali/npm/cargo γλίστρισματα (2024-2026): dependency confusion, poisoned crates, hijacked maintainer accounts — το ίδιο σχέδιο, μικρότερη κλίμακα.

Το Virtualizor περιστατικό προσθέτει ένα νέο κεφάλαιο: δεν χρειάστηκε καν να μπει ο επιτιθέμενος στην υποδομή του vendor. Χρειάστηκε μόνο να πείσει το internet ότι είναι η υποδομή του vendor. Το κόστος εκτέλεσης είναι χαμηλότερο από ένα APT campaign, το μέγεθος πλήγματος μπορεί να είναι παρόμοιο.

Τι έκανε η Softaculous — και τι έλειπε μέχρι χθες

Στην άμυνα της εταιρείας πρέπει να πούμε τα εξής: εντόπισε το πρόβλημα, δημοσίευσε ειδοποίηση με συγκεκριμένο IOC (το systemd unit), ζήτησε ανάκληση του ψεύτικου certificate, επανέφερε τη δρομολόγηση, και κυκλοφόρησε νέα έκδοση 3.2.9.9 με «Security Analyzer» στο admin panel. Δήλωσε επίσης ότι προχωρά σε κρυπτογραφική υπογραφή όλων των πακέτων και σε μεταφορά σε καλύτερη υποδομή.

Αλλά η πραγματική ερώτηση είναι: γιατί δεν υπήρχαν ήδη; Το update channel ενός προϊόντος που ελέγχει hypervisors δεν έχει κρυπτογραφική υπογραφή πακέτων το 2026. Το update traffic δεν πιστοποιούνταν με pinning ή έλεγχο authenticity πάνω από το TLS. Το BGP της υποδομής δεν προστατευόταν από RPKI validation στο side του vendor. Και το ίδιο το μέγεθος του παραθύρου — 33 ώρες — δείχνει ότι δεν υπήρχε monitoring για αλλαγές δρομολόγησης (BGPMon/RIPE RIS alerts θα το έπιαναν σε λεπτά). Το πακέτο των λύσεων είναι γνωστό εδώ και μια δεκαετία. Απλώς κανείς δεν το βάζει μέχρι να χτυπήσει το καμπανάκι.

Το supply chain security δεν είναι feature. Είναι ο μόνος λόγος που ο χρήστης σου εμπιστεύεται το κουμπί «Update».

Checklist: αν έχεις Virtualizor, VPS ή οποιοδήποτε self-hosted stack

  • Ψάξε το marker: /etc/systemd/system/java-jre-update.service. Αν υπάρχει, απομόνωσε τον host από το δίκτυο πριν κάνεις οτιδήποτε άλλο.
  • Rotate τα πάντα: API credentials του Virtualizor, SSH keys, passwords panel, tokens — και περιορισέ τα σε whitelists.
  • Audit: μη εξουσιοδοτημένοι χρήστες, SSH authorized_keys, cron/systemd timers, outbound connections που δεν αναγνωρίζεις.
  • Ανέβασε σε 3.2.9.9: η νέα έκδοση φέρνει Security Analyzer στο admin panel.
  • Αν χρησιμοποίησες το client/billing portal μέσα στο παράθυρο: reset password, έλεγχος account activity, παρακολούθηση κινήσεων κάρτας.
  • Γενικά για οποιοδήποτε update channel: υπηρεσίες που δεν κάνουν verify υπογραφές πακέτων είναι δολοφόνοι σε αναμονή. Απόφυγε vendors που δεν υπογράφουν — και απόφυγε RPKI-less hosting για κρίσιμη υποδομή.

Trust anchors: RPKI, signed updates και το τέλος της αφελής εμπιστοσύνης

Το BGP hijack της Softaculous είναι ένας μικρός, καθαρός δείκτης προς ένα μεγάλο πρόβλημα: το internet φτιάχτηκε για συνεργασία μεταξύ ομοτίμων που υποθέτουν καλή πίστη. Δουλεύει επειδή οι περισσότεροι παίζουν ωραία. Όταν κάποιος παίζει άσχημα, δεν υπάρχει «αστυνομία» — υπάρχει μόνο επαλήθευση που ή έγινε από πριν, ή δεν έγινε ποτέ. Οι τρεις στρώσεις που κρίνουν πια:

  • RPKI (Route Origin Validation): κρυπτογραφική απόδειξη ότι αυτός που διαφημίζει ένα prefix έχει δικαίωμα να το διαφημίζει. Σταδιακά γίνεται υποχρεωτικό σε μεγάλα networks — αλλά παραμένει holey σε πολλά σημεία του πλανήτη.
  • Signed updates: κάθε πακέτο φέρει υπογραφή που ελέγχεται από τον client με pinned keys — και το key management πρέπει να είναι εκτός του ίδιου channel που μπορεί να hijack-αρεί.
  • Monitoring δρομολόγησης: υπηρεσίες τύπου BGPMon/RIPE RIS/Cloudflare Radar στέλνουν alert όταν το prefix σου αρχίζει να διαφημίζεται από AS που δεν είναι το δικό σου. Χωρίς αυτό, 33 ώρες περνούν σαν ανύδειτες.

Και κάτι τελευταίο που αφορά κάθε dev που στήνει update mechanism: το TLS από μόνο του δεν είναι supply chain security. Πιστοποιητικά κλέβονται (ή εκδίδονται κατά λάθος στους λάθος), domains παίρνονται, routing εκτρέπεται. Η μοναδική άμυνα που δεν εξαρτάται από το DNS/BGP/TLS stack είναι η κρυπτογραφική υπογραφή του περιεχομένου, με κλειδί που δεν ζει μέσα στο ίδιο σύστημα με το update server.

Το internet δέχεται ό,τι του πεις με αρκετή πειθαρχία στο BGP.

Το περιστατικό της Softaculous είναι σχολικό σε καθαρότητά του: κανένα zero-day, κανένα malware prize, κανένας insider. Απλώς κάποιος έμαθε να λέει στο internet ψέματα με δρομολόγηση και το internet τον πίστεψε για 33 ώρες — αρκετά για να τροφοδοτήσει root backdoors σε hypervisors. Αν είσαι hosting provider, sysadmin ή απλώς άνθρωπος που πατάει «check for updates», το μάθημα είναι ένα: το update channel είναι η πιο πολυτιμότερη γραμμή της αλυσίδας σου και προστατεύεται με υπογραφές, όχι με υποθέσεις.

Και το πιο ανησυχητικό; Η Softaculous είχε την τύχη ότι ο επιτιθέμενος χτύπησε «μικρό αριθμό installations». Η επόμενη εκδοχή αυτής της επίθεσης — σε vendor που δεν υπογράφει πακέτα και σε υποδομή χωρίς RPKI — δεν θα έχει την ίδια τύχη με το δείγμα. Το κόστος πρόληψης είναι μερικές μέρες δουλειάς. Το κόστος του «δεν πρόλαβα» μετράται σε ολόκληρα clusters.

BG
P

Ετυμηγορία: το πιο επικίνδυνο attack surface του internet είναι η υπόσχεση ότι θα φτάσεις στον σωστό προορισμό.

Το BGP hijack της Softaculous δεν έσπασε ούτε ένα vulnerability. Χρησιμοποίησε το θεμελιώδες design choice του internet — την αφελή εμπιστοσύνη στη δρομολόγηση — για να μετατρέψει ένα ρουτίνα update check σε root compromise hypervisors. RPKI, signed packages, monitoring routing, out-of-band verification: τέσσερις λέξεις που πρέπει να βρίσκονται στο RFP κάθε vendor που στέλνει updates. Γιατί το επόμενο hijack δεν θα είναι 33 ώρες — και δεν θα σερβίρει backdoor σε «μικρό αριθμό installations».

Πηγές

  1. BleepingComputer — "Hackers push malicious Virtualizor update in BGP hijacking attack" (1/9/2026).
  2. Softaculous — Security Incident: BGP Hijacking (επίσημη ανακοίνωση).
  3. Virtualizor — Security Incident notice.
  4. Virtualizor 3.2.9.9 — release notes με Security Analyzer.
  5. The Register — "33-hour BGP hijack of Softaculous traffic prompts security scramble".
  6. Security Online — Virtualizor Supply-Chain Attack via BGP Hijack.
  7. Cyber Security News — BGP Hijack Diverts Softaculous Traffic.

Σημείωση: η έρευνα της Softaculous βρίσκεται σε εξέλιξη· λεπτομέρειες για το payload (πέραν του systemd marker) και τον ακριβή αριθμό θυμάτων δεν έχουν δημοσιοποιηθεί. Η εξήγηση για την απόκτηση του ψεύτικου certificate αποτελεί την πιο πιθανή τεχνική εκτίμηση, όχι επίσημη επιβεβαίωση.

Εξερεύνησε ανά θέμα

Networks & Cloud Cybersecurity & Privacy Artificial Intelligence Quantum Computing Biotech & MedTech Web3 & Blockchain Greek Tech Ecosystem