CircleCI – η υπηρεσία δημιουργίας κώδικα υφίσταται πλήρη συμβιβασμό διαπιστευτηρίων

CircleCI – η υπηρεσία δημιουργίας κώδικα υφίσταται πλήρη συμβιβασμό διαπιστευτηρίων

CircleCI – η υπηρεσία δημιουργίας κωδικών υφίσταται πλήρη συμβιβασμό διαπιστευτηρίων PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Εάν είστε προγραμματιστής, είτε κωδικοποιείτε για ένα χόμπι είτε επαγγελματικά, θα γνωρίζετε ότι η δημιουργία μιας νέας έκδοσης του έργου σας – μια επίσημη έκδοση «έκδοσης» που θα εγκαταστήσετε εσείς οι ίδιοι ή οι φίλοι σας ή οι πελάτες σας και χρήση – είναι πάντα μια βόλτα με λευκές αρθρώσεις.

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

Με απλά λόγια, όσο πιο σύνθετο γίνεται ένα έργο, τόσο περισσότερους προγραμματιστές εργάζεστε πάνω του και τόσο πιο ξεχωριστά στοιχεία που πρέπει να λειτουργούν ομαλά με όλα τα άλλα…

…τόσο πιο πιθανό είναι το όλο θέμα να είναι πολύ λιγότερο εντυπωσιακό από το άθροισμα των μερών.

Ως ωμή αναλογία, θεωρήστε ότι η ομάδα στίβου με τους ταχύτερους μεμονωμένους σπρίντερ 100 μέτρων δεν κερδίζει πάντα τη σκυταλοδρομία 4x100 μέτρων.

CI στη διάσωση

Μια προσπάθεια να αποφευχθεί αυτό το είδος κρίσης «αλλά λειτούργησε καλά στον υπολογιστή μου» είναι μια τεχνική που είναι γνωστή στην ορολογία ως Συνεχής ολοκλήρωση, ή CI εν συντομία.

Η ιδέα είναι απλή: κάθε φορά που οποιοσδήποτε κάνει μια αλλαγή στο μέρος του έργου του, αρπάζετε τον νέο κωδικό αυτού του ατόμου και χτυπάτε μαζί του και τον νέο του κώδικα σε έναν πλήρη κύκλο build-and-test, ακριβώς όπως θα κάνατε πριν δημιουργήσετε μια τελική έκδοση εκδοχή.

Χτίστε νωρίς, χτίστε συχνά, χτίστε τα πάντα, χτίστε πάντα!

Σαφώς, αυτή είναι μια πολυτέλεια που δεν μπορούν να αντέξουν τα έργα στον φυσικό κόσμο: εάν κατασκευάζετε, ας πούμε, μια γέφυρα λιμανιού του Σίδνεϊ, δεν μπορείτε να ξαναχτίσετε μια ολόκληρη δοκιμαστική περίοδο, με ολοκαίνουργιες πρώτες ύλες, κάθε φορά που αποφασίστε να τροποποιήσετε τη διαδικασία καρφώματος ή να δείτε αν μπορείτε να τοποθετήσετε μεγαλύτερα κοντάρια σημαίας στην κορυφή.

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

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

Οι κατασκευές γίνονται όλη μέρα, κάθε μέρα, έτσι ώστε οι κωδικοποιητές να μπορούν να πουν πολύ νωρίτερα εάν κατά λάθος έχουν κάνει «βελτιώσεις» που επηρεάζουν αρνητικά όλους τους άλλους – σπάζοντας την κατασκευή, όπως θα μπορούσε να πει η ορολογία.

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

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

Οι πρώτες μέθοδοι ανάπτυξης λογισμικού συχνά αναφέρονται ως εξής: α μοντέλο καταρράκτη, όπου όλοι δούλευαν αρμονικά αλλά ανεξάρτητα καθώς το έργο παρέσυρε απαλά προς τα κάτω μεταξύ των προθεσμιών έκδοσης, μέχρι που όλα ενώθηκαν στο τέλος του κύκλου για να δημιουργήσουν μια νέα κυκλοφορία, έτοιμη να βουτήξει πάνω από τον ταραχώδη καταρράκτη μιας αναβάθμισης έκδοσης, για να αναδυθεί σε μια άλλη ήπια περίοδος καθαρού νερού κατάντη για περαιτέρω σχεδιασμό και ανάπτυξη. Ένα πρόβλημα με αυτούς τους «καταρράκτες», ωστόσο, ήταν ότι κατέληγε συχνά παγιδευμένος σε μια φαινομενικά ατελείωτη κυκλική δίνη ακριβώς στην άκρη του καταρράκτη, παρά τη βαρύτητα, ανίκανος να ξεπεράσεις το χείλος του γκρεμού έως ότου μακροχρόνιες αμυχές και τροποποιήσεις (και συνακόλουθες υπερβάσεις) κατέστησαν δυνατό το επόμενο ταξίδι.

Απλά η δουλειά για το σύννεφο

Όπως μπορείτε να φανταστείτε, η υιοθέτηση του CI σημαίνει να έχετε στη διάθεσή σας μια σειρά από ισχυρούς, έτοιμους διακομιστές κάθε φορά που οποιοσδήποτε από τους προγραμματιστές σας ενεργοποιεί μια διαδικασία δημιουργίας και δοκιμής, προκειμένου να αποφύγετε να παρασυρθείτε ξανά σε αυτό το «κολλημένο πολύ χείλος του καταρράκτη» κατάσταση.

Αυτό ακούγεται σαν δουλειά για το σύννεφο!

Και, πράγματι, είναι, με πολλές λεγόμενες υπηρεσίες cloud CI/CD (αυτό CD δεν είναι ένας δίσκος μουσικής με δυνατότητα αναπαραγωγής, αλλά συντομογραφία του συνεχής παράδοση) σας προσφέρει την ευελιξία να έχετε έναν συνεχώς μεταβαλλόμενο αριθμό διαφορετικών υποκαταστημάτων διαφορετικών προϊόντων που περνούν από διαφορετικά διαμορφωμένα build, ίσως ακόμη και σε διαφορετικό υλικό, ταυτόχρονα.

ΚύκλοςCI είναι μια τέτοια υπηρεσία που βασίζεται στο cloud…

…αλλά, δυστυχώς για τους πελάτες τους, έχουν μόλις υπέστη παραβίαση.

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

Το πρωτότυπο ανακοίνωση [2023-01-04] δήλωσε απλώς ότι:

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

Τι να κάνω;

Έκτοτε, το CircleCI παρέχει τακτικές ενημερώσεις και περαιτέρω συμβουλές, οι οποίες συνοψίζονται κυρίως σε αυτό:Περιστρέψτε όλα τα μυστικά που είναι αποθηκευμένα στο CircleCI."

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

Αυτό που σημαίνει το CircleCI είναι ότι πρέπει να ΑΛΛΑΞΕΤΕ όλους τους κωδικούς πρόσβασης, τα μυστικά, τα διακριτικά πρόσβασης, τις μεταβλητές περιβάλλοντος, τα δημόσια-ιδιωτικά κλειδιά και ούτω καθεξής, πιθανώς επειδή οι εισβολείς που παραβίασαν το δίκτυο είτε έκλεψαν τους δικούς σας είτε δεν μπορούν να αποδειχθούν ότι δεν να τα έχουν κλέψει.

Η εταιρεία έχει ένα παρείχε μια λίστα των διαφόρων ειδών ιδιωτικών δεδομένων ασφαλείας που επηρεάστηκαν από την παραβίαση και έχει δημιουργήσει ένα εύχρηστο σενάριο που ονομάζεται CircleCI-Env-Inspector που μπορείτε να χρησιμοποιήσετε για να εξαγάγετε μια λίστα με μορφή JSON με όλα τα μυστικά CI που πρέπει να αλλάξετε στο περιβάλλον σας.

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

Έτσι, το CircleCI συμβουλεύει:

Συνιστούμε επίσης στους πελάτες να ελέγχουν τα εσωτερικά αρχεία καταγραφής για τα συστήματά τους για τυχόν μη εξουσιοδοτημένη πρόσβαση από τις 2022-12-21 [μέχρι και 2023-01-04] ή μετά την ολοκλήρωση της [αλλαγής των μυστικών σας].

Παραδόξως, αν είναι κατανοητό, ορισμένοι πελάτες έχουν σημειώσει ότι η ημερομηνία που υπονοείται από το CircleCI κατά την οποία ξεκίνησε αυτή η παραβίαση [2022-12-21] απλώς συμπίπτει με μια ανάρτηση ιστολογίου το εταιρεία δημοσιεύτηκε σχετικά με τις πρόσφατες ενημερώσεις αξιοπιστίας.

Οι πελάτες ήθελαν να μάθουν, "Η παραβίαση σχετίζεται με σφάλματα που εισήχθησαν σε αυτήν την ενημέρωση;"

Δεδομένου ότι τα άρθρα ενημέρωσης αξιοπιστίας της εταιρείας φαίνεται να κυκλοφορούν περιλήψεις ειδήσεων, αντί για ανακοινώσεις μεμονωμένων αλλαγών που γίνονται σε συγκεκριμένες ημερομηνίες, η προφανής απάντηση είναι «Όχι»…

…και το CircleCI δήλωσε ότι η συμπτωματική ημερομηνία 2022-12-21 για την ανάρτηση ιστολογίου αξιοπιστίας ήταν ακριβώς αυτό: μια σύμπτωση.

Καλή αναγέννηση!


Σφραγίδα ώρας:

Περισσότερα από Γυμνή ασφάλεια