Έχουμε γράψει για PHP Packagist οικοσύστημα πριν.
Όπως το PyPI για τους Pythonistas, το Gems για τους οπαδούς της Ruby, το NPM για προγραμματιστές JavaScript ή το LuaRocks για το Luaphiles, το Packagist είναι ένα αποθετήριο όπου οι συνεισφέροντες της κοινότητας μπορούν να δημοσιεύουν λεπτομέρειες των πακέτων PHP που έχουν δημιουργήσει.
Αυτό διευκολύνει τους συναδέλφους κωδικοποιητές PHP να αποκτήσουν τον κώδικα της βιβλιοθήκης που θέλουν να χρησιμοποιήσουν στα δικά τους έργα και να διατηρούν αυτόν τον κώδικα αυτόματα ενημερωμένο, εάν το επιθυμούν.
Σε αντίθεση με το PyPI, ο οποίος παρέχει τους δικούς του διακομιστές όπου αποθηκεύεται ο πραγματικός κώδικας της βιβλιοθήκης (ή το LuaRocks, που μερικές φορές αποθηκεύει τον ίδιο τον πηγαίο κώδικα του έργου και μερικές φορές συνδέσμους σε άλλα αποθετήρια), το Packagist συνδέεται, αλλά δεν διατηρεί ο ίδιος αντίγραφα, τον κώδικα που πρέπει να κατεβάσετε.
Υπάρχει ένα θετικό στοιχείο για να γίνει αυτό με αυτόν τον τρόπο, ιδίως ότι τα έργα που διαχειρίζονται μέσω γνωστών υπηρεσιών πηγαίου κώδικα, όπως το GitHub, δεν χρειάζεται να διατηρούν δύο αντίγραφα των επίσημων εκδόσεων τους, κάτι που βοηθά στην αποφυγή του προβλήματος της "μετατροπής έκδοσης" μεταξύ των σύστημα ελέγχου πηγαίου κώδικα και το σύστημα συσκευασίας.
Και υπάρχει ένα μειονέκτημα, κυρίως ότι υπάρχουν αναπόφευκτα δύο διαφορετικοί τρόποι με τους οποίους τα πακέτα θα μπορούσαν να παγιδευτούν.
Ο ίδιος ο διαχειριστής πακέτων θα μπορούσε να παραβιαστεί, όπου η αλλαγή ενός μόνο URL θα μπορούσε να είναι αρκετή για να παραπλανήσει τους χρήστες του πακέτου.
Ή το αποθετήριο πηγαίου κώδικα με το οποίο είναι συνδεδεμένο θα μπορούσε να παραβιαστεί, έτσι ώστε οι χρήστες που ακολουθούσαν αυτό που έμοιαζε με το σωστό URL να καταλήξουν με αδίστακτο περιεχόμενο ούτως ή άλλως.
Παλιοί λογαριασμοί θεωρούνται επιβλαβείς
Αυτός ο διαλογισμός στα επίθεση (θα το ονομάσουμε έτσι, παρόλο που δεν δημοσιεύτηκε κανένας παγιδευμένος κώδικας από τον ενδιαφερόμενο χάκερ) χρησιμοποίησε αυτό που θα μπορούσατε να ονομάσετε υβριδική προσέγγιση.
Ο εισβολέας βρήκε τέσσερις παλιούς και ανενεργούς λογαριασμούς Packagist για τους οποίους είχε αποκτήσει με κάποιο τρόπο τους κωδικούς πρόσβασης σύνδεσης.
Στη συνέχεια, εντόπισαν 14 έργα GitHub που συνδέθηκαν με αυτούς τους ανενεργούς λογαριασμούς και τους αντέγραψαν έναν νέο λογαριασμό GitHub.
Τέλος, τροποποίησαν τα πακέτα στο σύστημα Packagist για να οδηγήσουν στα νέα αποθετήρια GitHub.
Η κλωνοποίηση έργων GitHub είναι απίστευτα συνηθισμένη. Μερικές φορές, οι προγραμματιστές θέλουν να δημιουργήσουν ένα γνήσιο πιρούνι (εναλλακτική έκδοση) του έργου υπό νέα διαχείριση ή προσφέροντας διαφορετικές δυνατότητες. Άλλες φορές, τα διχαλωτά έργα φαίνεται να αντιγράφονται για αυτό που θα μπορούσε να ονομαστεί διόλου «ογκομετρικοί λόγοι», κάνοντας τους λογαριασμούς GitHub να φαίνονται μεγαλύτεροι, καλύτεροι, πιο απασχολημένοι και πιο αφοσιωμένοι στην κοινότητα (αν συγχωρείτε το λογοπαίγνιο) από ό,τι είναι στην πραγματικότητα.
Παρόλο που ο χάκερ θα μπορούσε να είχε εισαγάγει αδίστακτο κώδικα στην κλωνοποιημένη πηγή GitHub PHP, όπως την προσθήκη trackers, keylogger, backdoors ή άλλου κακόβουλου λογισμικού, φαίνεται ότι το μόνο που άλλαξαν ήταν ένα μεμονωμένο στοιχείο σε κάθε έργο: ένα αρχείο που ονομάζεται composer.json
.
Αυτό το αρχείο περιλαμβάνει μια καταχώρηση με τίτλο description
, το οποίο συνήθως περιέχει ακριβώς αυτό που θα περιμένατε να δείτε: μια συμβολοσειρά κειμένου που περιγράφει το σκοπό του πηγαίου κώδικα.
Και αυτό είναι το μόνο που τροποποίησε ο χάκερ μας, αλλάζοντας το κείμενο από κάτι ενημερωτικό, όπως Project PPP implements the QQQ protocol so you can RRR
, έτσι ώστε τα έργα τους να ανέφεραν:
Δημιουργήθηκε από το XXX@XXXX.com. Ищу работу на позиции Ασφάλεια εφαρμογών, Ελεγκτής διείσδυσης, Ειδικός ασφάλειας στον κυβερνοχώρο.
Η δεύτερη πρόταση, γραμμένη μισή στα ρωσικά, μισή στα αγγλικά, σημαίνει:
Αναζητώ εργασία στην Ασφάλεια Εφαρμογών... κ.λπ.
Δεν μπορούμε να μιλήσουμε για όλους, αλλά όπως λένε τα βιογραφικά (βιογραφικά), δεν βρήκαμε αυτό το τρομερά πειστικό.
Επίσης, η Λέει η ομάδα Packagist ότι όλες οι μη εξουσιοδοτημένες αλλαγές έχουν πλέον επανέλθει και ότι τα 14 κλωνοποιημένα έργα GitHub δεν είχαν τροποποιηθεί με κανέναν άλλο τρόπο από το να συμπεριλάβουν την πρόσκληση απασχόλησης από τον ιδιοκτήτη.
Για ό,τι αξίζει, ο λογαριασμός GitHub του επίδοξου εμπειρογνώμονα της Ασφάλειας Εφαρμογών είναι ακόμα ζωντανός και εξακολουθεί να έχει αυτά τα «διχαλωτά» έργα σε αυτόν.
Δεν γνωρίζουμε αν το GitHub δεν έχει ακόμη καταφέρει να διαγράψει τον λογαριασμό ή τα έργα ή αν ο ιστότοπος αποφάσισε να μην τα καταργήσει.
Σε τελική ανάλυση, τα έργα διακλάδωσης είναι συνηθισμένα και επιτρεπτά (όπου οι όροι αδειοδότησης το επιτρέπουν, τουλάχιστον), και παρόλο που περιγράφει ένα μη κακόβουλο έργο κώδικα με το κείμενο Pwned by XXXX@XXXX.com
δεν είναι χρήσιμο, δεν είναι σχεδόν παράνομο.
Τι να κάνω;
- Μην το κάνεις αυτό. Σίγουρα δεν πρόκειται να προσελκύσετε το ενδιαφέρον κανενός νόμιμου εργοδότη και (αν είμαστε ειλικρινείς) δεν πρόκειται να εντυπωσιάσετε καν κανέναν κυβερνοαπατεώνα εκεί έξω.
- Μην αφήνετε ενεργούς λογαριασμούς που δεν χρησιμοποιούνται, αν μπορείτε να το βοηθήσετε. Όπως είπαμε χθες Παγκόσμια Ημέρα Κωδικού Πρόσβασης, εξετάστε το ενδεχόμενο να κλείσετε λογαριασμούς που δεν χρειάζεστε πια, με το σκεπτικό ότι όσο λιγότερους κωδικούς πρόσβασης έχετε, τόσο λιγότερους θα σας κλέψουν.
- Μην επαναχρησιμοποιείτε κωδικούς πρόσβασης σε περισσότερους από έναν λογαριασμούς. Η υπόθεση του Packagist είναι ότι οι κωδικοί πρόσβασης που χρησιμοποιήθηκαν σε αυτήν την περίπτωση βρίσκονταν σε αρχεία παραβίασης δεδομένων από άλλους λογαριασμούς όπου τα θύματα είχαν χρησιμοποιήσει τον ίδιο κωδικό πρόσβασης με τον λογαριασμό τους στο Packagist.
- Μην ξεχνάτε το 2FA σας. Οι Packagists προτρέπουν όλους τους δικούς τους χρήστες να ενεργοποιήσουν το 2FA, επομένως ένας κωδικός πρόσβασης από μόνος του δεν αρκεί για να συνδεθεί ένας εισβολέας στον λογαριασμό σας και συνιστά να κάνετε το ίδιο και στον λογαριασμό σας στο GitHub.
- Μην αποδέχεστε τυφλά ενημερώσεις της εφοδιαστικής αλυσίδας χωρίς να τις ελέγξετε για ορθότητα. Εάν έχετε έναν περίπλοκο ιστό εξαρτήσεων πακέτων, είναι δελεαστικό να παραμερίσετε τις ευθύνες σας και να αφήσετε το σύστημα να ανακτήσει όλες τις ενημερώσεις σας αυτόματα, αλλά αυτό απλώς θέτει εσάς και τους μεταγενέστερους χρήστες σας σε επιπλέον κίνδυνο.
ΑΥΤΗ ΕΙΝΑΙ Η ΣΥΜΒΟΥΛΗ ΑΠΟ ΤΗΝ ΠΑΓΚΟΣΜΙΑ ΗΜΕΡΑ ΚΩΔΙΚΟΥ
- SEO Powered Content & PR Distribution. Ενισχύστε σήμερα.
- PlatoAiStream. Web3 Data Intelligence. Ενισχύθηκε η γνώση. Πρόσβαση εδώ.
- Minting the Future με την Adryenn Ashley. Πρόσβαση εδώ.
- Αγορά και πώληση μετοχών σε εταιρείες PRE-IPO με το PREIPO®. Πρόσβαση εδώ.
- πηγή: https://nakedsecurity.sophos.com/2023/05/05/php-packagist-supply-chain-poisoned-by-hacker-looking-for-a-job/
- :έχει
- :είναι
- :δεν
- :που
- $UP
- 1
- 14
- 15%
- 2FA
- a
- Σχετικά
- Απόλυτος
- Αποδέχομαι
- Λογαριασμός
- Λογαριασμοί
- αποκτήθηκαν
- ενεργός
- προσθήκη
- Πρόσθετος
- συμβουλές
- Όλα
- επιτρέπουν
- alone
- εναλλακτική λύση
- Αν και
- an
- και
- κάθε
- Εφαρμογή
- ασφάλεια εφαρμογών
- πλησιάζω
- ΕΙΝΑΙ
- γύρω
- AS
- υπόθεση
- At
- συγγραφέας
- αυτόματη
- αυτομάτως
- αποφύγετε
- Κερκόπορτες
- background-image
- BE
- ήταν
- πριν
- Καλύτερα
- μεταξύ
- μεγαλύτερος
- BleepingComputer
- με κλειστά μάτια
- σύνορο
- Κάτω μέρος
- παραβίαση
- αλλά
- by
- κλήση
- που ονομάζεται
- CAN
- περίπτωση
- Κέντρο
- αλυσίδα
- άλλαξε
- Αλλαγές
- αλλαγή
- κλείσιμο
- κωδικός
- χρώμα
- COM
- δεσμεύεται
- Κοινός
- κοινότητα
- περίπλοκος
- ενδιαφερόμενος
- Εξετάστε
- θεωρούνται
- Περιέχει
- περιεχόμενο
- συνεισφέροντες
- έλεγχος
- αντίγραφα
- θα μπορούσε να
- κάλυμμα
- δημιουργία
- δημιουργήθηκε
- CVS
- στον κυβερνοχώρο
- κυβερνασφάλεια
- ημερομηνία
- παραβιάσεων δεδομένων
- Ημερομηνία
- αποφάσισε
- οπωσδηποτε
- καθέκαστα
- προγραμματιστές
- διαφορετικές
- Display
- do
- Όχι
- πράξη
- Μην
- κάτω
- κατεβάσετε
- μειονέκτημα
- κάθε
- εύκολος
- είτε
- εργοδότες
- εργασία
- τέλος
- Αγγλικά
- αρκετά
- καταχώριση
- κ.λπ.
- Even
- όλοι
- ακριβώς
- αναμένω
- ανεμιστήρες
- Χαρακτηριστικά
- σύντροφος
- λιγότερα
- Αρχεία
- Εύρεση
- ακολουθείται
- Για
- πιρούνι
- Δίκρανο
- Βρέθηκαν
- τέσσερα
- από
- γνήσια
- παίρνω
- GitHub
- Go
- μετάβαση
- hacked
- χάκερ
- είχε
- Ήμισυ
- Έχω
- ύψος
- βοήθεια
- βοηθά
- κρατήστε
- φτερουγίζω
- HTTPS
- Υβριδικό
- i
- προσδιορίζονται
- if
- παράνομος
- υλοποιεί
- in
- αδρανής
- περιλαμβάνουν
- περιλαμβάνει
- απίστευτα
- αναπόφευκτα
- πληροφοριακός
- αντί
- τόκος
- σε
- IT
- ΤΟΥ
- εαυτό
- το JavaScript
- Δουλειά
- μόλις
- Διατήρηση
- Ξέρω
- ελάχιστα
- Άδεια
- αριστερά
- νόμιμος
- Βιβλιοθήκη
- αδειοδότηση
- Μου αρέσει
- συνδέονται
- ΣΥΝΔΕΣΜΟΙ
- ζω
- κούτσουρο
- Σύνδεση
- ματιά
- κοίταξε
- κοιτάζοντας
- διατηρήσουν
- ΚΑΝΕΙ
- Κατασκευή
- malware
- διαχειρίζεται
- διαχείριση
- διευθυντής
- Περιθώριο
- max-width
- μέσα
- ενδέχεται να
- τροποποιημένο
- περισσότερο
- Ανάγκη
- Νέα
- Όχι.
- κανονικός
- ιδιαίτερα
- τώρα
- of
- προσφορά
- επίσημος ανώτερος υπάλληλος
- Παλιά
- on
- ONE
- or
- ΑΛΛΑ
- δικός μας
- έξω
- δική
- πακέτο
- Packages
- συσκευασία
- Κωδικός Πρόσβασης
- Κωδικοί πρόσβασης
- Παύλος
- διείσδυση
- PHP
- Πλάτων
- Πληροφορία δεδομένων Plato
- Πλάτωνα δεδομένα
- Σημείο
- θέση
- Δημοσιεύσεις
- ΣΔΙΤ
- Πρόβλημα
- Προγραμματιστές
- σχέδιο
- έργα
- πρωτόκολλο
- παρέχει
- δημοσιεύει
- δημοσιεύθηκε
- Βάζει
- πραγματικά
- συνιστά
- αρχεία
- Δελτία
- αφαιρέστε
- αναφέρθηκαν
- Αποθήκη
- ευθυνών
- επανεξέταση
- Κίνδυνος
- γύρος
- ρωσικός
- Είπε
- ίδιο
- Δεύτερος
- ασφάλεια
- δείτε
- φαίνομαι
- φαίνεται
- ποινή
- Υπηρεσίες
- ενιαίας
- ιστοσελίδα
- So
- παράκληση
- στέρεο
- κάτι
- Πηγή
- πρωτογενής κώδικας
- μιλούν
- ειδικός
- Ακόμη
- κλαπεί
- αποθηκεύονται
- καταστήματα
- Σπάγγος
- τέτοιος
- προμήθεια
- αλυσίδας εφοδιασμού
- SVG
- σύστημα
- όροι
- από
- ότι
- Η
- Οι εργασίες
- Η Πηγη
- τους
- Τους
- τότε
- Εκεί.
- Αυτοί
- αυτοί
- αυτό
- εκείνοι
- αν και?
- φορές
- προς την
- πολύ
- κορυφή
- τινάσσω
- trackers
- μετάβαση
- διαφανής
- ΣΤΡΟΦΗ
- δύο
- υπό
- αχρησιμοποίητος
- ενημερώσεις
- Άνω μέρος
- προτρέπει
- URL
- χρήση
- μεταχειρισμένος
- Χρήστες
- συνήθως
- εκδοχή
- μέσω
- θύματα
- θέλω
- ήταν
- Τρόπος..
- τρόπους
- we
- ιστός
- πολύ γνωστό
- ήταν
- Τι
- αν
- Ποιό
- Ο ΟΠΟΊΟΣ
- θα
- με
- χωρίς
- κόσμος
- αξία
- θα
- γραπτή
- ακόμη
- εσείς
- Σας
- zephyrnet