ΕΛ/ΛΑΚ | creativecommons.gr | mycontent.ellak.gr |
freedom

Open Source Vulnerabilities: Ένα έργο για πιο γρήγορο εντοπισμό και διόρθωση κενών ασφάλειας στον ανοιχτό κώδικα

Tο έργο OSV (Open Source Vulnerabilities), είναι μια προσπάθεια που ξεκίνησε από την Google για την βελτίωση της ασφάλειας για προγραμματιστές και χρήστες λογισμικού ανοιχτού κώδικα.

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

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

Για τους χρήστες λογισμικού ανοιχτού κώδικα, είναι συχνά δύσκολο να χαρτογραφηθεί μια ευπάθεια όπως όταν υπάρχει μια καταχώριση Common Vulnerilities and Exposures (CVE) , ώστε να αντιστοιχηθεί στις εκδόσεις πακέτων που χρησιμοποιούν. Αυτό προέρχεται από το γεγονός ότι τα σχήματα εκδόσεων σε υπάρχοντα πρότυπα ευπάθειας (όπως το Common Platform Enumeration (CPE) δεν αντιστοιχούν καλά με τα πραγματικά σχήματα εκδόσεων ανοιχτού κώδικα, τα οποία είναι συνήθως εκδόσεις / ετικέτες και commit hashes. Το αποτέλεσμα είναι να υπάρχουν ευπάθειες πυ να εχουν διορθωθεί αλλά οι χρήστες να μην εχουν ενημερωθεί.

Παρομοίως, είναι χρονοβόρο για τους συντηρητές να προσδιορίσουν μια ακριβή λίστα των επηρεαζόμενων εκδόσεων ή commits σε όλα τα branches τους για toyw καταναλωτές μετά την επιδιόρθωση μιας ευπάθειας, εκτός από τη διαδικασία που απαιτείται για δημοσίευση. Δυστυχώς, πολλά έργα ανοιχτού κώδικα, συμπεριλαμβανομένων των έργων που είναι κρίσιμα για τις σύγχρονες υποδομές , δεν διαθέτουν αρκετούς πόρους . Οι συντηρητές δεν έχουν πάντα το εύρος banwidth για να δημιουργούν και να δημοσιεύουν λεπτομερείς, ακριβείς πληροφορίες σχετικά με τις ευπάθειές τους, ακόμα κι αν το θέλουν.

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

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

Αυτοματοποίηση

Το OSV στοχεύει στην απλοποίηση της διαδικασίας αναφοράς ευπάθειας για έναν συντηρητή πακέτου ανοιχτού κώδικα, προσδιορίζοντας με ακρίβεια τη λίστα των επηρεαζόμενων εκδόσεων και commits. Αυτό απαιτεί την παροχή τόσο των commits που εισάγουν και διορθώνουν τα σφάλματα. Εάν αυτές οι πληροφορίες δεν είναι διαθέσιμες, το OSV απαιτεί την παροχή reproduction test case και βήματα για τη δημιουργία μιας δημιουργίας εφαρμογών και στη συνέχεια εκτελεί ένα bisection για να εντοπίσει αυτά τα commits με αυτοματοποιημένο τρόπο. Το OSV μεριμνά για την υπόλοιπη ανάλυση για να καταλάβει τα commit ranges και τα versions/tags. που επηρεάζονται

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

Το OSV αυτοματοποιεί τη ροή εργασίας triage για έναν χρήστη πακέτου ανοιχτού κώδικα παρέχοντας ένα API για ερώτημα για ευπάθειες. Μια τυπική ροή εργασίας OSV για έναν χρήστη πακέτων μοιάζει με την παραπάνω εικόνα:

  1. Ένας καταναλωτής πακέτου στέλνει ένα ερώτημα στο OSV με μια έκδοση πακέτου ή ένα commit hash ως imput.
curl -X POST -d \
    '{"commit": "6879efc2c1596d11a6a6ad296f80063b558d5e0f"}' \
    'https://api.osv.dev/v1/query?key=$API_KEY'
    
  curl -X POST -d \
    '{"version": "1.0.0", "package": {"name": "pkg", "ecosystem": "pypi"}' \
    'https://api.osv.dev/v1/query?key=$API_KEY'    

  1. Το OSV αναζητά το σύνολο των τρωτών σημείων που επηρεάζουν τη συγκεκριμένη έκδοση και επιστρέφει μια λίστα τρωτών σημείων που επηρεάζουν το πακέτο. Τα μεταδεδομένα ευπάθειας επιστρέφονται σε μηχαναγνώσιμη μορφή JSON .
  1. Ο χρήστης του πακέτου χρησιμοποιεί αυτές τις πληροφορίες είτε για επιδιόρθωση ασφαλείας (βάσει ακριβών μεταδεδομένων διόρθωσης) είτε για ενημέρωση σε νεότερη έκδοση.

Το OSV παρέχει προς το παρόν πρόσβαση σε χιλιάδες ευπάθειες από 380+ κρίσιμα έργα OSS που είναι ενσωματωμένα στο OSS-Fuzz . Σχεδιάζει να συνεργαστεί με κοινότητες ανοιχτού κώδικα για να επεκτείνει δεδομένα από διάφορα γλωσσικά οικοσυστήματα (π.χ. NPM, PyPI) και να επεξεργαστεί ένα pipeline ώστε οι συντηρητές πακέτων να υποβάλουν τρωτά σημεία με ελάχιστη εργασία.

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

Μπορείτε να αποκτήσετε πρόσβαση στον ιστότοπο και την τεκμηρίωση του OSV στη διεύθυνση https://osv.dev . Μπορείτε να εξερευνήσετε το repo ανοιχτού κώδικα ή να συνεισφέρετε στο έργο στο GitHub και να συμμετάσχετε στη λίστα αλληλογραφίας για να ενημερώνεστε για το OSV και να μοιράζεστε τις σκέψεις σας σχετικά με την παρακολούθηση ευπάθειας.

Πηγή άρθρου: https://security.googleblog.com/

Leave a Comment