Επιθέσεις ευπάθειας, πρόληψη και ανίχνευση κατά της πειρατείας DLL

Το DLL(DLL) σημαίνει Βιβλιοθήκες Dynamic Link(Dynamic Link Libraries) και είναι εξωτερικά μέρη εφαρμογών που εκτελούνται σε Windows ή σε οποιοδήποτε άλλο λειτουργικό σύστημα. Οι περισσότερες εφαρμογές δεν είναι ολοκληρωμένες από μόνες τους και αποθηκεύουν τον κώδικα σε διαφορετικά αρχεία. Εάν υπάρχει ανάγκη για τον κώδικα, το σχετικό αρχείο φορτώνεται στη μνήμη και χρησιμοποιείται. Αυτό μειώνει το μέγεθος του αρχείου της εφαρμογής ενώ βελτιστοποιεί τη χρήση της μνήμης RAM(RAM) . Αυτό το άρθρο εξηγεί τι είναι το DLL Hijacking και πώς να το εντοπίσετε και να το αποτρέψετε.

Τι είναι τα αρχεία(Files) DLL ή οι βιβλιοθήκες δυναμικής σύνδεσης(Dynamic Link Libraries)

Παραβίαση DLL

Τα αρχεία DLL(DLL) είναι Βιβλιοθήκες Dynamic Link(Dynamic Link Libraries) και όπως φαίνεται από το όνομα, είναι προεκτάσεις διαφορετικών εφαρμογών. Οποιαδήποτε εφαρμογή χρησιμοποιούμε μπορεί να χρησιμοποιεί ή όχι συγκεκριμένους κωδικούς. Τέτοιοι κωδικοί αποθηκεύονται σε διαφορετικά αρχεία και καλούνται ή φορτώνονται στη μνήμη RAM(RAM) μόνο όταν απαιτείται ο σχετικός κώδικας. Έτσι, σώζει ένα αρχείο εφαρμογής από το να γίνει πολύ μεγάλο και να αποτρέψει την παραβίαση πόρων από την εφαρμογή.

Η διαδρομή για τα αρχεία DLL ορίζεται από το λειτουργικό σύστημα Windows . Η διαδρομή ορίζεται χρησιμοποιώντας τις καθολικές μεταβλητές περιβάλλοντος(Global Environmental Variables) . Από προεπιλογή, εάν μια εφαρμογή ζητήσει ένα αρχείο DLL , το λειτουργικό σύστημα κοιτάζει στον ίδιο φάκελο στον οποίο είναι αποθηκευμένη η εφαρμογή. Εάν δεν βρεθεί εκεί, πηγαίνει σε άλλους φακέλους όπως ορίζεται από τις καθολικές μεταβλητές. Υπάρχουν προτεραιότητες που συνδέονται με διαδρομές και βοηθά τα Windows(Windows) να προσδιορίσουν ποιους φακέλους θα αναζητήσουν τα DLL(DLLs) . Εδώ μπαίνει η πειρατεία DLL .

Τι είναι το DLL Hijacking

Δεδομένου ότι τα DLL(DLLs) είναι επεκτάσεις και είναι απαραίτητα για τη χρήση σχεδόν όλων των εφαρμογών στους υπολογιστές σας, υπάρχουν στον υπολογιστή σε διαφορετικούς φακέλους, όπως εξηγείται. Εάν το αρχικό αρχείο DLL αντικατασταθεί με ένα ψεύτικο αρχείο DLL που περιέχει κακόβουλο κώδικα, είναι γνωστό ως DLL Hijacking .

Όπως αναφέρθηκε προηγουμένως, υπάρχουν προτεραιότητες ως προς το πού αναζητά αρχεία DLL το λειτουργικό σύστημα . Αρχικά(First) , κοιτάζει στον ίδιο φάκελο με τον φάκελο της εφαρμογής και, στη συνέχεια, πραγματοποιεί αναζήτηση, με βάση τις προτεραιότητες που ορίζονται από τις μεταβλητές περιβάλλοντος του λειτουργικού συστήματος. Επομένως, εάν ένα αρχείο good.dll βρίσκεται στον φάκελο SysWOW64 και κάποιος τοποθετήσει ένα bad.dll σε έναν φάκελο που έχει μεγαλύτερη προτεραιότητα σε σύγκριση με το φάκελο SysWOW64 , το λειτουργικό σύστημα θα χρησιμοποιήσει το αρχείο bad.dll, καθώς έχει το ίδιο όνομα με το αρχείο DLL(DLL) ζητείται από την αίτηση. Μόλις μπει στη μνήμη RAM(RAM) , μπορεί να εκτελέσει τον κακόβουλο κώδικα που περιέχεται στο αρχείο και μπορεί να θέσει σε κίνδυνο τον υπολογιστή ή τα δίκτυά σας.

Πώς να εντοπίσετε την παραβίαση DLL

Η ευκολότερη μέθοδος για τον εντοπισμό και την αποτροπή της πειρατείας DLL είναι η χρήση εργαλείων τρίτων. Υπάρχουν μερικά καλά δωρεάν εργαλεία διαθέσιμα στην αγορά που βοηθούν στον εντοπισμό μιας προσπάθειας χακαρίσματος DLL και στην αποτροπή της.

Ένα τέτοιο πρόγραμμα είναι το DLL Hijack Auditor αλλά υποστηρίζει μόνο εφαρμογές 32 bit. Μπορείτε να το εγκαταστήσετε στον υπολογιστή σας και να σαρώσετε όλες τις εφαρμογές των Windows για να δείτε ποιες είναι όλες οι εφαρμογές ευάλωτες στην παραβίαση DLL . Η διεπαφή είναι απλή και αυτονόητη. Το μόνο μειονέκτημα αυτής της εφαρμογής είναι ότι δεν μπορείτε να σαρώσετε εφαρμογές 64-bit.

Ένα άλλο πρόγραμμα, για τον εντοπισμό παραβίασης DLLτο DLL_HIJACK_DETECT,(DLL_HIJACK_DETECT,) είναι διαθέσιμο μέσω του GitHub . Αυτό το πρόγραμμα ελέγχει τις εφαρμογές για να δει εάν κάποια από αυτές είναι ευάλωτη σε παραβίαση DLL(DLL) . Εάν είναι, το πρόγραμμα ενημερώνει τον χρήστη. Η εφαρμογή έχει δύο εκδόσεις – x86 και x64 , ώστε να μπορείτε να τη χρησιμοποιήσετε για να σαρώσετε εφαρμογές 32 bit και 64 bit αντίστοιχα.

Θα πρέπει να σημειωθεί ότι τα παραπάνω προγράμματα απλώς σαρώνουν τις εφαρμογές στην πλατφόρμα των Windows για (Windows)ευπάθειες και στην πραγματικότητα δεν αποτρέπουν την παραβίαση αρχείων DLL .

Πώς να αποτρέψετε την παραβίαση DLL

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

Επιστρέφοντας στο τι μπορείτε να κάνετε, απλώς προσπαθήστε να κλιμακώσετε τα συστήματα ασφαλείας σας για να ασφαλίσετε καλύτερα το σύστημά σας των Windows(secure your Windows system) . Χρησιμοποιήστε ένα καλό τείχος προστασίας(firewall) . Εάν είναι δυνατόν, χρησιμοποιήστε ένα τείχος προστασίας υλικού ή ενεργοποιήστε το τείχος προστασίας του δρομολογητή. Χρησιμοποιήστε καλά συστήματα ανίχνευσης εισβολής, ώστε να γνωρίζετε εάν κάποιος προσπαθεί να παίξει με τον υπολογιστή σας.

Εάν ασχολείστε με την αντιμετώπιση προβλημάτων υπολογιστών, μπορείτε επίσης να εκτελέσετε τα ακόλουθα για να βελτιώσετε την ασφάλειά σας:

  1. Απενεργοποιήστε τη φόρτωση DLL από απομακρυσμένα κοινόχρηστα στοιχεία δικτύου
  2. Απενεργοποιήστε τη φόρτωση αρχείων DLL από το WebDAV
  3. Απενεργοποιήστε πλήρως την υπηρεσία WebClient ή ρυθμίστε την σε μη αυτόματο
  4. Αποκλεισμός(Block) των θυρών TCP 445 και 139 καθώς χρησιμοποιούνται περισσότερο για παραβιασμούς υπολογιστών
  5. Εγκαταστήστε τις πιο πρόσφατες ενημερώσεις για το λειτουργικό σύστημα και το λογισμικό ασφαλείας.

Η Microsoft(Microsoft) κυκλοφόρησε ένα εργαλείο για τον αποκλεισμό επιθέσεων πειρατείας φορτίου DLL . Αυτό το εργαλείο μετριάζει τον κίνδυνο επιθέσεων πειρατείας DLL αποτρέποντας τις εφαρμογές από το να φορτώνουν με ανασφάλεια κώδικα από αρχεία DLL .

Αν θέλετε να προσθέσετε κάτι στο άρθρο, παρακαλώ σχολιάστε παρακάτω.(If you would like to add anything to the article, please comment below.)



About the author

Είμαι προγραμματιστής λογισμικού με πάνω από 10 χρόνια εμπειρία. Ειδικεύομαι στον προγραμματισμό Mac και έχω γράψει πολλές χιλιάδες γραμμές κώδικα για διάφορες εφαρμογές Mac, συμπεριλαμβανομένων, ενδεικτικά, των: TextEdit, GarageBand, iMovie και Inkscape. Έχω επίσης εμπειρία με ανάπτυξη Linux και Windows. Οι δεξιότητές μου ως προγραμματιστής μου επιτρέπουν να γράφω υψηλής ποιότητας, ολοκληρωμένα σεμινάρια για διάφορες πλατφόρμες ανάπτυξης λογισμικού - από macOS έως Linux - καθιστώντας τα σεμινάρια μου την τέλεια επιλογή για όσους θέλουν να μάθουν περισσότερα για τα εργαλεία που χρησιμοποιούν.



Related posts