Υγιεινή της αλυσίδας εφοδιασμού

Έλεγχος ευπαθειών Homebrew σε macOS

Ένας Mac ανάπτυξης μαζεύει λογισμικό όπως ένα γκαράζ μαζεύει εργαλεία. Τα περισσότερα εγκαταστάθηκαν για μια δουλειά, πριν από χρόνια, και έκτοτε κανείς δεν τα ξανακοίταξε. Το Homebrew είναι πολύ καλό στο να βάζει αυτό το λογισμικό στο μηχάνημά σας. Για το τι του συμβαίνει μετά δεν έχει τίποτα να πει — και για κάποια από αυτά υπάρχουν πλέον δημοσιευμένα CVE.

Τι καλύπτει η γραμμή εντολών brew

Το brew outdated σας λέει τι έχει νεότερη έκδοση. Το brew doctor σας λέει πότε η ίδια η εγκατάστασή σας δεν είναι υγιής. Και τα δύο είναι πραγματικά χρήσιμα, και κανένα δεν είναι έλεγχος ασφάλειας — το «υπάρχει κάτι νεότερο» και το «αυτό που έχετε είναι ευάλωτο» είναι διαφορετικά ερωτήματα με διαφορετική επείγουσα φύση.

Τι δεν καλύπτει

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

Πώς λειτουργεί

Τι κάνει στην πραγματικότητα το EasyHomebrew όταν ελέγχει

01

Συλλογή

Κάθε εγκατεστημένη φόρμουλα και κάθε cask συγκεντρώνονται μαζί με την έκδοσή τους — η ίδια λίστα που θα σας έδινε το brew list --versions, χωρίς την αντιγραφή.

02

Αντιστοίχιση

Τα πακέτα αυτά αναζητούνται ομαδικά στο OSV. Η αναζήτηση γίνεται ζωντανά, οπότε ένας έλεγχος αποτυπώνει τις ανακοινώσεις μέχρι τη στιγμή που τον τρέχετε.

03

Κατάταξη

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

04

Δράση

Κάθε εύρημα οδηγεί στην επίσημη ανακοίνωση, και η λίστα των ξεπερασμένων πακέτων απέχει ένα κλικ — σχεδόν πάντα η λύση είναι απλώς η διορθωμένη έκδοση.

Η βάση δεδομένων: OSV

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

Διαβάζοντας ένα εύρημα

Τι σημαίνουν στην πράξη οι βαθμίδες σοβαρότητας

Κρίσιμη

Εκμεταλλεύσιμη εξ αποστάσεως, ή σχεδόν χωρίς κόπο. Αξίζει να το δείτε σήμερα.

Υψηλή

Σοβαρή, συνήθως υπό προϋποθέσεις. Αξίζει να το δείτε αυτή την εβδομάδα.

Μέτρια / χαμηλή

Υπαρκτή αλλά στενή — συχνά απαιτεί τοπική πρόσβαση ή ασυνήθιστη ρύθμιση.

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

Και όταν το πρόβλημα είναι η ίδια η εγκατάσταση

Το Brew Doctor καλύπτει το άλλο μισό της υγιεινής του μηχανήματος — την κατάσταση του Homebrew αντί για τα πακέτα μέσα του. Χωρίζεται σε δύο είδη προειδοποίησης, και η διαφορά είναι σκόπιμη:

Εκτελέσιμη

Μη συνδεδεμένα kegs, ελλείπουσες εξαρτήσεις, καταργημένες φόρμουλες, άκυρα μεταδεδομένα cask — γι' αυτά το brew προσφέρει εντολή, οπότε το Doctor σας δίνει κουμπί «Διόρθωση» και ξανατρέχει τον έλεγχο μετά.

Μόνο αντιγραφή

Μια εντολή sudo, μια αλλαγή στο PATH, μια κλήση xcode-select — αυτά ανήκουν στο κέλυφός σας, όχι σε μια εφαρμογή που εκτελεί εντολές για λογαριασμό σας. Το Doctor τα εμφανίζει ως αντιγράψιμες εντολές και αφήνει σε εσάς την απόφαση.

Ένας έλεγχος που πρέπει να θυμάστε να τρέξετε είναι ένας έλεγχος που δεν θα τρέξετε

Εδώ κρίνεται αν όλα τα υπόλοιπα λειτουργούν. Ο έλεγχος κατ' απαίτηση απαντά στο ερώτημα «είμαι εκτεθειμένος αυτή τη στιγμή;» — αλλά οι ανακοινώσεις δημοσιεύονται συνεχώς, και η έκθεση ζει ακριβώς στο κενό ανάμεσα στη δημοσίευση και στην ανακάλυψη. Μια ευπάθεια που τη μαθαίνετε τρεις μήνες αργότερα δεν διαφέρει ουσιαστικά από μία που δεν τη μάθατε ποτέ.

Γι' αυτό ο έλεγχος τρέχει εξ ορισμού στην εκκίνηση, και ένας βοηθός στη γραμμή μενού ξαναελέγχει με το διάστημα που ορίζετε και σημαδεύει τον εαυτό του όταν προκύψει κάτι. Δεν χρειάζεται να θυμάστε τίποτα. Αυτή είναι όλη η σχεδίαση: η ειδοποίηση βρίσκει εσάς, αντί να περιμένει να πάτε εσείς να την ψάξετε.

Απαιτεί macOS 14 (Sonoma) ή νεότερο, Apple Silicon ή Intel.

Ερωτήσεις για το Homebrew και τα CVE

Ελέγχει το brew audit για ευπάθειες ασφαλείας;
Όχι. Το `brew audit` επικυρώνει ότι μια φόρμουλα είναι σωστά διαμορφωμένη για υποβολή στο Homebrew — ύφος, άδειες χρήσης και κανόνες πακετοποίησης. Είναι έλεγχος της συνταγής, όχι του λογισμικού που εγκαταστήσατε, και δεν θα σας πει ότι η έκδοση στον δίσκο σας έχει δημοσιευμένο CVE.
Πώς ελέγχω ποια εγκατεστημένα πακέτα Homebrew έχουν γνωστές ευπάθειες;
Πρέπει να συγκρίνετε ό,τι έχετε εγκαταστήσει με μια βάση ευπαθειών. Το EasyHomebrew το κάνει αυτόματα: συγκεντρώνει τις εγκατεστημένες φόρμουλες και τα casks σας, αναζητά ομαδικά στη βάση OSV και παραθέτει κατά σοβαρότητα ό,τι επιστρέφει. Με το χέρι σημαίνει να τρέξετε `brew list --versions` και να ψάξετε κάθε πακέτο μόνοι σας.
Ποια βάση ευπαθειών χρησιμοποιεί το EasyHomebrew;
Την OSV (osv.dev), την ανοιχτού κώδικα βάση ευπαθειών που συντηρεί η Google. Συγκεντρώνει ανακοινώσεις από πολλά οικοσυστήματα και ερωτάται ζωντανά, οπότε ένας έλεγχος αποτυπώνει ό,τι είναι δημοσιευμένο τη στιγμή που τον τρέχετε, αντί για μια λίστα παγωμένη μέσα στην εφαρμογή τη μέρα της κυκλοφορίας.
Κάθε πότε ξαναελέγχει;
Εξ ορισμού ένας έλεγχος τρέχει στην εκκίνηση της εφαρμογής, και ο βοηθός της γραμμής μενού ξαναελέγχει με το διάστημα που επιλέγετε και σημαδεύει το εικονίδιο κατάστασης όταν προκύψει κάτι. Μπορείτε επίσης να ελέγξετε όποτε θέλετε από την οθόνη Ασφάλειας.
Στέλνεται η λίστα πακέτων μου σε κάποιον διακομιστή;
Τα ονόματα των πακέτων στέλνονται στο API του OSV για να αντιπαραβληθούν με τις ανακοινώσεις — αυτό απαιτεί μια ζωντανή αναζήτηση. Τίποτα δεν στέλνεται στη Wizhut.tech, δεν υπάρχει λογαριασμός, και ο έλεγχος δεν συνδέεται με κανένα προφίλ σας. Η πολιτική απορρήτου έχει τις λεπτομέρειες.

Μάθετε τι τρέχετε

Ένας έλεγχος σας λέει αν κάτι στον Mac σας έχει γνωστή ευπάθεια — και ο βοηθός της γραμμής μενού συνεχίζει να σας το λέει από εκεί και πέρα. Μία εφάπαξ αγορά 10 €.