Dependency Confusion
Last updated
Last updated
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Συνοπτικά, μια ευπάθεια εξάρτησης συμβαίνει όταν ένα έργο χρησιμοποιεί μια βιβλιοθήκη με λάθος όνομα, ανύπαρκτη ή με μη καθορισμένη έκδοση και το χρησιμοποιούμενο αποθετήριο εξαρτήσεων επιτρέπει να συγκεντρωθούν ενημερωμένες εκδόσεις από δημόσια αποθετήρια.
Λάθος: Εισαγωγή reqests
αντί για requests
Ανύπαρκτη: Εισαγωγή company-logging
, μιας εσωτερικής βιβλιοθήκης που δεν υπάρχει πια
Μη καθορισμένη έκδοση: Εισαγωγή μιας εσωτερικής υπάρχουσας βιβλιοθήκης company-requests
, αλλά ο έλεγχος του repo κοιτάζει δημόσια repos για να δει αν υπάρχουν μεγαλύτερες εκδόσεις.
Σε όλες τις περιπτώσεις, ο επιτιθέμενος χρειάζεται απλώς να δημοσιεύσει ένα κακόβουλο πακέτο με το όνομα των βιβλιοθηκών που χρησιμοποιεί η εταιρεία-θύμα.
Αν η εταιρεία σας προσπαθεί να εισαγάγει μια βιβλιοθήκη που δεν είναι εσωτερική, είναι πολύ πιθανό το repo των βιβλιοθηκών να την αναζητά σε δημόσια αποθετήρια. Αν ένας επιτιθέμενος την έχει δημιουργήσει, ο κώδικάς σας και οι μηχανές που τρέχουν είναι πολύ πιθανό να έχουν παραβιαστεί.
Είναι πολύ συνηθισμένο για τους προγραμματιστές να μην καθορίζουν καμία έκδοση της βιβλιοθήκης που χρησιμοποιείται, ή να καθορίζουν μόνο μια μεγαλύτερη έκδοση. Στη συνέχεια, ο διερμηνέας θα προσπαθήσει να κατεβάσει την τελευταία έκδοση που πληροί αυτές τις απαιτήσεις.
Αν η βιβλιοθήκη είναι μια γνωστή εξωτερική βιβλιοθήκη (όπως η python requests
), ένας επιτιθέμενος δεν μπορεί να κάνει πολλά, καθώς δεν θα μπορεί να δημιουργήσει μια βιβλιοθήκη με το όνομα requests
(εκτός αν είναι ο αρχικός συγγραφέας).
Ωστόσο, αν η βιβλιοθήκη είναι εσωτερική, όπως η requests-company
σε αυτό το παράδειγμα, αν το repo της βιβλιοθήκης επιτρέπει να ελέγχει για νέες εκδόσεις και εξωτερικά, θα αναζητήσει μια νεότερη έκδοση που είναι διαθέσιμη δημόσια.
Έτσι, αν ένας επιτιθέμενος γνωρίζει ότι η εταιρεία χρησιμοποιεί τη βιβλιοθήκη requests-company
έκδοση 1.0.1 (επιτρέποντας μικρές ενημερώσεις). Μπορεί να δημοσιεύσει τη βιβλιοθήκη requests-company
έκδοση 1.0.2 και η εταιρεία θα χρησιμοποιήσει αυτή τη βιβλιοθήκη αντί της εσωτερικής.
Αυτή η ευπάθεια βρέθηκε στο AWS CodeArtifact (διαβάστε τα λεπτομέρειες σε αυτή την ανάρτηση blog). Η AWS το διόρθωσε επιτρέποντας να καθοριστεί αν μια βιβλιοθήκη είναι εσωτερική ή εξωτερική, για να αποφευχθεί η λήψη εσωτερικών εξαρτήσεων από εξωτερικά αποθετήρια.
Στην αρχική ανάρτηση σχετικά με την εξάρτηση σύγχυσης ο συγγραφέας αναζήτησε χιλιάδες εκτεθειμένα αρχεία package.json που περιέχουν τις εξαρτήσεις έργων javascript.
Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)