Αρκετά αυτά που διαβάζουμε τελευταία για κενά ασφαλείας στον πυρήνα Linux κάτι που έχει αρχίσει να γίνεται flame war σε διάφορα forums και ΜΜΔ.
Και πολύ εύλογα, μπορεί να αναρωτηθεί ο καθένας:
Γιατί τώρα και γιατί μαζεμένα;
Πολύ απλά, επειδή οι ερευνητές ασφαλείας χρησιμοποιούν εργαλεία ανάλυσης κώδικα που βασίζονται σε LLMs και συμπληρώνουν υπάρχουσες τεχνικές όπως fuzzing, static analysis και formal verification (“συμπληρώνουν”, το τονίζω).
Και αυτό είναι για καλό επειδή έτσι μπορούν να αναλύουν πολύ περισσότερο κώδικα και να εντοπίζουν ύποπτα μοτίβα ταχύτερα και συνεπώς να βρίσκουν και να διορθώνουν προβλήματα νωρίτερα.
Και γιατί υπάρχουν αυτές οι ευπάθειες;
Αρχικά, να ξεκαθαρίσουμε ότι οι ευπάθειες θα συνεχίζουν να εμφανίζονται και, φυσικά, να γνωστοποιούνται συνοδευόμενες ΠΑΝΤΑ από τις απαραίτητες διορθώσεις.
Στα γιατί τώρα:
-
Επειδή ο Linux kernel, εκτός από τιτανοτεράστιος, είναι και τεράστιος σε μέγεθος λόγω του ότι περιέχει δεκάδες εκατομμύρια γραμμές κώδικα και χιλιάδες drivers. και εδώ θα πρέπει, επίσης, να λάβουμε υπόψιν ότι ακόμα και αν το βασικό υποσύστημα είναι πολύ ώριμο, οι λιγότερο χρησιμοποιούμενοι drivers συχνά κρύβουν προβλήματα.
-
Επίσης, επειδή βρίσκεται υπό συνεχή ανάπτυξη (ταχύτερη και μεγαλύτερη από τα άλλα maistream Λειτουργικά Συστήματα) καθώς η κάθε έκδοση προσθέτει νέα χαρακτηριστικά και νέο κώδικα. Και ως γνωστόν νέος κώδικας = νέες πιθανές ευπάθειες (και αυτό ισχύει για τα πάντα ).
-
Η έλευση της Τεχνητής Νοημοσύνης συμβάλει δραστικά τους ρυθμούς ανακάλυψης και έτσι πιθανότατα θα βρεθούν bugs που παλαιότερα, ίσως, να έμεναν κρυμμένα για χρόνια. Απλή λογική είναι εδώ και όχι οι χαζομάρες που κατά κόρον γράφονται. ΔΕΝ χειροτερεύει η ασφάλεια. Όχι. Αυτό που συμβαίνει στην πραγματικότητα είναι ότι τα προβλήματα απλώς εντοπίζονται πιο γρήγορα.
-
Δεν βρίσκω πιο κατάλληλο όρο, αλλά για να το πω απλά, τα εύκολα bugs εξαντλούνται αφού πάρα πολλά από τα κλασικά buffer overflows και use-after-free έχουν ήδη αντιμετωπιστεί σε τεράστιο βαθμό. Έτσι, οι εναπομείνασες ευπάθειες τείνουν να είναι πιο περίπλοκες λογικές αστοχίες ή αλληλεπιδράσεις μεταξύ υποσυστημάτων.
Τι πρέπει να κάνω;
Τίποτα περισσότερο, τίποτα λιγότερο από τα updates που σου δίνει η διανομή σου. Και αμέσως επανεκκίνηση αν το ζητήσει λόγω kernel fixes ή νέου (kernel).
Εναλλακτικά, και μέσω bash (πχ, για Debian, Ubuntu, Mint και based διανομές):
sudo apt update
sudo apt upgrade
Επίσης, ένα εργαλείο όπως το Topgrade βοηθάει σε μεγάλο βαθμό (όχι απόλυτα).
Και φυσικά, δεν εγκαθιστούμε ποτέ των ποτών, μ@λ@κίες που βρίσκουμε δεξιά και αριστερά από μη έμπιστες ιστοσελίδες.
ΔΕΝ τρέχουμε εντολές και scripts που δεν ξέρουμε και δεν επαληθεύουμε με μια ερώτηση σε forums όπως αυτό για παράδειγμα.
Επίσης, μην εμπιστεύεστε και τόσο τα LLMs μοντέλα (chatGPT, Gemini κλπ) με εντολές. Και, κυρίως, ΠΟΤΕ μην δώσετε πρόσβαση σε πιο ειδικευμένα LLMs τα οποία έχουν την δυνατότητα να τρέξουν εντολές στο σύστημά σας (ναι, υπάρχουν και τέτοια μοντέλα αλλά είναι πολύ νωρίς ακόμα για να πούμε ποια είναι αξιόπιστα και ποια όχι. Και για προλάβω σχετικές απορίες, όποιος θέλει, μπορεί σε ένα live στικάκι ή σε Virual Machine να δοκιμάσει το hackerai.co).
-Εν κατακλείδι:
Ας μη ξεχνάμε ότι ο kernel, σταδιακά, γίνεται πιο ανθεκτικός μέσω τεχνολογιών όπως τα Control Flow Integrity (CFI), Kernel Address Space Layout Randomization (KASLR), Memory Tagging και κυρίως λόγω χρήσης της γλώσσας Rust σε τμήματα του kernel για μείωση memory-safety σφαλμάτων.
Το μόνο βέβαιο είναι ότι βραχυπρόθεσμα η ΤΝ θα αυξήσει σημαντικά τον αριθμό των ανακαλυπτόμενων ευπαθειών. Μακροπρόθεσμα όμως, αν συνδυαστεί με καλύτερα εργαλεία ελέγχου και πιο ασφαλείς γλώσσες (όπως η Rust), ο συνολικός αριθμός των σοβαρών exploitable bugs αναμφίβολα θα μειωθεί. Αυτό που, μάλλον, θα αλλάξει πρώτο είναι ο χρόνος μεταξύ «εισαγωγής bug» και «ανακάλυψης bug» κάτι που είναι γενικότερα καλό για την ασφάλεια.
Νομίζω, ότι με τα παραπάνω ξεκαθαρίζει λίγο το τοπίο και γίνεται σαφές ότι τα πράγματα δεν είναι τόσο σκοτεινά όσο παρουσιάζονται.
