Meltdown και Spectre

Συζήτηση στην κατηγορία 'Γενικά' που ξεκίνησε ο χρήστης debianass, 6 Ιαν 2018.

  1. Να προσθέσω ότι από χτες διανέμεται η έκδοση 3.5 της διανομής Tails (Anonymous OS) η οποία, όπως λέει, περιλαμβάνει τον AMD microcode με τα patches για Spectre.

    https://tails.boum.org/
  2. asinoro Banned

    Ελάτε ρε ελάφια, εδώ δέκα χρόνια δεν μπορούσαν να τα βρουν προγραμματιστές, εταιρίες antivirus, κτλ, και τα κάλυψαν τώρα με μπαλώματα;
    Και οι μυστικές υπηρεσίες που κάνουν κουμπότρυπες τους υπολογιστές παγκοσμίως τι θα κάνουν μπρίκια θα κολλάνε;
  3. DarkGoth Παιδί για τις δουλειές του Forum

    ασινορε πραγματικα δεν τρωγεσαι πια. δεν καταλαβαινεις τιποτα. ελεος πια με τις ηλιθιες συνομοσιολογιες. ποιοι τα βρηκανε, πως τα βρηκανε. ναι, γιατι τους απειλουσαν να μην τα βρουν τοσα χρονια, και τωρα «επαναστατησαν»

    ασε τις εταιριες αντιβαιρους στον καδο, εκει που ειναι η θεση τους. ολοι ξερουμε τι ρολο βαρανε και δαυτες. του δηθεν προστατη. εμπλεκονται ακομα και οι ιδιες, στην κυκλοφορια σκουπιδιων, to stay relevant, οπως λενε και οι αγγλοι

    ο υπολογιστης δεν χρειαζεται καν να γινει κουμποτρυπα, σημερα που το ιντερνετς ειναι παντου. κουμποτρυπα ειναι ηδη το καλο σου ρουτερακι. πολυ πιο ευκολο, ανεξοδο, και αποτελεσματικο, για παρακολουθηση και τετοια
  4. Kernel 4.15
    Βγήκε ο νέος stable kernel 4.15 το περασμένο σ/κ με καθυστέρηση 1 εβδομάδας. Εμπεριέχει το patch του Meltdown και το retpoline για το Spectre τύπου 2. Το καλό νέο είναι ότι, σύμφωνα με feedback linuxάδων, o νέος kernel εμφανίζεται στις καταμετρήσεις 7 με 9% ταχύτερος από την προηγούμενη stable έκδοση 4.11.
    Αρκετοί χρήστες debian stable/testing συνιστούν να τον κατεβάσουμε και να τον μεταγλωττίσουμε άφοβα στο σύστημα μας.
    Προσωπικά τον δοκιμάζω σε stable/testing χωρίς κανένα πρόβλημα, σταθερές θερμοκρασίες σε cpu/gpu και αισθητά ταχύτερος. Ο kernel που δοκιμάζω είναι των αποθετηρίων της διανομής που χρησιμοποιώ (Sparky stable & testing).
    Στην stable η εντολή systemd-analyze μου δείχνει ότι φορτώνει σε 3.341" έναντι 4.232" (διαφορά 21%) που φορτώνει ο stable kernel της debian stretch έκδοσης 4.9.65-3+deb9u2.

    Διαγνωστικά
    Σε kernel 4.9.0-5 και νεότερο, οι προγραμματιστές του kernel προτείνουν να ελέγχουμε την ευπάθεια του συστήματός μας σε Meltdown/Spectre με την εντολή:
    Κώδικας:
    grep . /sys/devices/system/cpu/vulnerabilities/*
    Σε debian stretch με το νέο kernel 4.15 μου βγάζει:
    Ένα ακόμα εργαλείο που δεν ελέγχει την ευπάθεια του συστήματος αλλά εντοπίζει και καταγράφει τις επιθέσεις Meltdown που δέχεται, ονομάζεται Blacksmith (σιδεράς) και το διανέμει η εταιρία SentinelOne. Δεν πρόκειται για script αλλά για εκτελέσιμη (pre-compiled) σε linux εφαρμογή. Το εργαλείο διατίθεται για ελεύθερη χρήση σε συστήματα linux και έχει δοκιμαστεί σε ubuntu 17.04-17.10. H εταιρία δεν παρέχει καμιά εγγύηση και το χρησιμοποιούμε με δική μας ευθύνη. Τονίζω ότι ανιχνεύει και κρατάει logs για επιθέσεις Meltdown και όχι Spectre, σε πραγματικό χρόνο, τη στιγμή που εκδηλώνονται. Είναι ένα εργαλείο χρήσιμο σε διαχειριστές servers, γι αυτό το λόγο -όπως παραδέχεται η SentinelOne- το ανέπτυξε για linux.
    Για να το ενεργοποιήσουμε:
    1. Το κατεβάζουμε από τη SentinelOne
    Κώδικας:
    wget https://www.sentinelone.com/wp-content/uploads/2018/01/s1-blacksmith.zip
    2. Αποσυμπιέζουμε
    Κώδικας:
    unzip s1-blacksmith.zip
    Όπως βλέπω περιέχει κι ένα φάκελο __MACOSX ο οποίος δε θα χρειαστεί σε συστήματα linux, τον διαγράφουμε.

    3. Καθιστούμε εκτελέσιμο το s1-blacksmith
    Κώδικας:
    chmod +x s1-blacksmith
    4. Το εκτελούμε σαν διαχειριστές με την παράμετρο -v (--verbose) ή/και -s (--syslog).
    Κώδικας:
    sudo ./s1-blacksmith -v
    Η εφαρμογή θα ξεκινήσει και θα περιμένει την επόμενη επίθεση Meltdown για να μας ειδοποιήσει.
    Το δοκίμασα σε debian stretch και debian jessie. Τρέχει χωρίς σφάλματα αλλά δεν έχω δει πως συμπεριφέρεται σε επίθεση, αν την καταγράφει και πως.
  5. DarkGoth Παιδί για τις δουλειές του Forum

    χθες ειδα οτι και στον liquorix εχουν βγαλει update, που λενε οτι εχουν εξ'ορισμου ενεργο το retpoline (εκτος του PTI που ειναι ηδη ενεργο σε δαυτον). δεν τον εβαλα βεβαια ακομα, γιατι περιμενω να βγει (ΑΝ βγει) αναβαθμιση και για το σαπιο, να τους βαλω και τους 2 πυρηνες παρεα, να μην κανω 2 φορες αναβαθμιση. για cpu microcode (amd), δεν εχει βγει ακομα κατι αποσο ειδα. αν δεν βγει για το σαπιο, το πολυ-πολυ θα το σηκωνω με τον liquorix. τον δοκιμασα στον εξομοιωτη μονο προς το παρον, και παει μια χαρα. ειναι ελαχιστα πιο αργος απο τον generic (λιγοτερο απο μισο δευτερολεπτο)
  6. Η ταχύτητα που φορτώνει στην εκκίνηση ο kernel δε σημαίνει πάντα ότι θα τρέχει ανάλογα γρήγορα και κατα τη λειτουργία του. Είναι κάτι ενδεικτικό αλλά όχι σίγουρο. Π.χ. ο kernel του jessie (3.16) μου φορτώνει σημαντικά πιο γρήγορα από τον 4.9 του stretch, όμως οι εφαρμογές τρέχουν σαφώς πιο γρήγορα στη stretch.

    Οταν θα βγεί πλήρως πατσαρισμένος kernel για spectre θα τον κατεβάσω και θα του κάνω τοπικά compilation για τους AMD servers μου που τρέχουν jessie. Αν και είναι βέβαιο ότι οι προγραμματιστές του debian θα ανεβάσουν στα αποθετήρια πατσαρισμένο kernel και για τη jessie. Δεν είσαι (είμαστε) οι μόνοι που τη χρησιμοποιούμε, πρόσφατα διάβαζα ότι λόγω σταθερότητας πολλοί προκρίνουν τη χρήση της jessie και σε δορυφόρους.
  7. DarkGoth Παιδί για τις δουλειές του Forum

    το σαπιο σε δορυφορους;... εντυπωσιακο με ακουγεται αυτο. θυμαμαι σε καποιο αλλο θεμα που ελεγες για ενα σερβερακι, που ηθελες να το φτιαξεις μεσα σε κουτι πυρομαχικων. ελεγες οτι εχεις ηδη ενα debian lenny, που ανετα θα το εστελνες για δορυφορο. ε, αυτοι θα το κανουν και θα στειλουν το jessie :D ... αλλα μαλλον σε κλεψανε την ιδεα για τον δορυφορο :D

    οσο για τον πυρηνα, εγω θα τον παρω ετοιμο. μεχρι να βγει θα τρεχω τον liquorix, αν και με δαυτον καπουτ εξομοιωτης... γιατι με το compile δεν... οσες φορες εχω προσπαθησει, τελικα εσπαγε με διαφορα αοριστα σφαλματα (οτι «κατι λειπει» απο dependencies, το οποιο ποτε δεν εβρισκα για εγκατασταση. η, οτι «καπου παρουσιαστηκε καποιο σφαλμα»), και αφου δεν εβγαζα ποτε ακρη, ουτε που ξανασχοληθηκα
  8. Soulrain Falls Ο Αντμινιστράτορας

    Αν δε βαριέσαι καμιά μέρα, βάλε κάποιο σχετικό link. Το Debian (γενικά) είναι από τα πιο ακατάλληλα λειτουργικά για τέτοια χρήση. Πριν μερικά χρόνια σκέφτονταν να χρησιμοποιήσουν Pi (με Raspbian) σε κάποιους ερευνητικούς πυραύλους που πάνε μέχρι τη στρατόσφαιρα νομίζω αλλά και αυτό ήταν ακατάλληλο τότε.

    Ο πυρήνας που χρησιμοποιείται στο desktop είναι μόνο ένα υποσύνολο του κώδικα και δεν έχει κάποια άλλα χαρακτηριστικά (π.χ. δεν είναι real-time). Βάλε και τα πειράγματα που μπορεί να κάνει η κάθε διανομή. Το Debian όμως περιλαβάνεται σχεδόν πάντα στις αναφορές των προγραμματιστών του πυρήνα για ολιγωρία ορισμένων διανομών στα πατσαρίσματα και τις ενημερώσεις. Ειδικά ο καραφλός γίγαντας το λέει συνέχεια (όχι μόνο για το Debian).
  9. Σχετικά με τις δοκιμές μου στον kernel 4.15 σε debian stable:
    Παρατήρησα ότι ενώ αρχικά τρέχει ταχύτερα τις εφαρμογές, όσο περνάει ο χρόνος δεσμεύει μεγαλύτερο ποσοστό μνήμης, μέχρι και 100% περισσότερη.
    Έκανα ενημέρωση στην έκδοση 4.15.1, πάλι των αποθετηρίων του sparky, έκανε ακριβώς τα ίδια.
    Το virtualbox 5.2.2 που τρέχω εννοείται ότι δεν υποστηρίζει αυτή την έκδοση kernel, πιθανότατα η νέα έκδοση 5.2.6 να την υποστηρίζει αλλά δεν το δοκίμασα.

    Δε βρίσκω την κουβέντα περί του jessie, τη διάβαζα σ'ένα forum χρηστών χωρίς να έχει ιδιαίτερη βαρύτητα.Πάντως οι δοκιμές για λογισμικό δορυφόρων παίρνουν χρόνια, σίγουρα δεν πρόκειται να δούμε δορυφόρο με jessie σύντομα.
    Γενικότερα το ελεύθερο λογισμικό είναι πολύ νέο στους δορυφόρους, ο πρώτος είναι ο Upsat που εκτοξεύθηκε πέρυσι τον Απρίλη και κατασκευάστηκε από την πολυτεχνική σχολή του πανεπιστημίου Πάτρας σε συνεργασία με το hackerspace της Αθήνας (Περισσότερα: http://osarena.net/upsat-apo-hackerspace-sto-diastima).
    Η προσπάθεια ξεκίνησε 10 χρόνια νωρίτερα (από το 2007) και συνεχίζει ακάθεκτη.

    Εννοείται ότι δε θα χρησιμοποιήσει κανείς αυτούσια διανομή σε δορυφόρο. Ο Upsat χρησιμοποιεί freeRTOS (non-linux, non-freeBSD ελεύθερου κώδικα OS), ειδικά διαμορφωμένο για το δορυφόρο, ενώ έχει κι ένα υπο-σύστημα (arduino) που τρέχει ανεξάρτητα για να κατευθύνει τις κάμερες.
  10. Διαγνωστικό Debian
    To διαγνωστικό εργαλείο spectre-meltdown-checker συμπεριλαμβάνεται πλέον στα αποθετήρια Debian. Συγκεκριμενα είναι διαθέσιμο στα backports της stable (stretch), στην testing (buster) και στην unstable (sid). Σαν shell script είναι επίσης διαθέσιμο από εδώ (για προηγούμενες εκδόσεις debian). Στην ενημερωμένη έκδοσή του το εργαλείο του Sylvestre Ledru ανιχνεύει τόσο την ευπάθεια του επεξεργαστή όσο και τα εγκατεστημένα patches στον kernel.
    Για εγκατάσταση σε debian stretch θα πρέπει να προσθέσουμε τα αποθετήρια backports:
    Δημιουργούμε ένα αρχείο backports.list στο φάκελο /etc/apt/sources.list.d/ σαν διαχειριστές, προσθέτουμε την παρακάτω γραμμή και το αποθηκεύουμε:
    Σε testing, sid και stretch (στη stretch αφού έχουμε προσθέσει τα backports) κάνουμε update και εγκατάσταση:
    Κώδικας:
    sudo apt-get update
    sudo apt-get install spectre-meltdown-checker
    και τέλος το εκτελούμε:
    Κώδικας:
    sudo spectre-meltdown-checker
    Προαιρετικά απενεργοποιούμε τα backports (ούτως ή άλλως δεν παρεμβάλλονται στην ενημέρωση συστήματος) κάνοντας edit το /etc/apt/sources.list.d/backports.list και απενεργοποιώντας τη γραμμή που προσθέσαμε:

    Σε debian εκδόσεις που δεν περιλαμβάνεται στα backports (π.χ. jessie)
    το κατεβάζουμε:
    Κώδικας:
    wget https://salsa.debian.org/debian/spectre-meltdown-checker/blob/master/spectre-meltdown-checker.sh
    το καθιστούμε εκτελέσιμο:
    Κώδικας:
    sudo chmod +x spectre-meltdown-checker.sh
    και το εκτελούμε σαν shell script:
    Κώδικας:
    sudo sh spectre-meltdown-checker.sh
    Στη debian stretch και buster τρέχει κανονικά και επιστρέφει τα αναμενόμενα.
    Π.χ. στη stretch με τον επίσημο kernel 4.9.0.5 της διανομής:
    [IMG]

    Σε παλιότερες εκδόσεις δεν το έχω δοκιμάσει ακόμα.
  11. Kernel 4.15.2
    O linux kernel έκδοσης 4.15.2 σηματοδοτεί την αρχή του τέλους, τόσο του meltdown όσο και των 2 τύπων spectre στο linux.
    Στις δοκιμές που έκανα σε stretch/buster με τον kernel 4.15.2 των αποθετηρίων Sparky, το σύστημά μου εμφανίζεται χωρίς καμία σχετική ευπάθεια.

    1. Με την εντολή grep . /sys/devices/system/cpu/vulnerabilities/* (βλέπε παραπάνω σχόλιο) επιστρέφει (σε stretch):
    2. Το διαγνωστικό spectre-meltdown-checker από τα αποθετήρια επιστρέφει (στη stretch):
    [IMG]

    Επιπλέον, τα προβλήματα υπερκατανάλωσης μνήμης των προηγούμενων εκδόσεων kernel (4.15 & 4.15.1) δεν εμφανίζονται στη νέα έκδοση 4.15.2 μέχρι στιγμής, ενώ φαίνεται να τρέχει αισθητά πιο γρήγορα:

    [IMG]

    Το 15% μνήμης χρησιμοποιείται από τον browser (+ userspace daemons).
    Τα ίδια αποτελέσματα έχω και μετά από 2 ώρες λειτουργίας.

    Δεν έχω δοκιμάσει ακόμα όλες τις εφαρμογές και συγκεκριμένα τη νέα έκδοση virtualbox στο νέο kernel.
  12. Μόλις εγκατέστησα το virtualbox και τρέχει κανονικότατα με τον kernel 4.15.2 ως εξής:

    1. Εγκατέστησα τη νέα έκδοση virtualbox 5.2.6. Είτε την κατεβάζουμε από την ιστοσελίδα https://www.virtualbox.org/wiki/Linux_Downloads και την εγκαθιστούμε με dpkg -i είτε προσθέτουμε τα αποθετήρια:
    και ενημερώνει το συγκεκριμένο πακέτο. Εννοείται ότι αντί για "stretch" συμπληρώνουμε την ονομασία της debian έκδοσής μας (π.χ. jessie).

    2. Αφού εγκαταστάθηκε, δοκίμασα να το τρέξω και ζήτησε τη νέα έκδοση του extension pack. Μπορούμε να την κατεβάσουμε από εδώ https://download.virtualbox.org/vir...lBox_Extension_Pack-5.2.6-120293.vbox-extpack ή να κλικάρουμε ΟΚ και να την κατεβάσει η εφαρμογή.

    3. Εγκατέστησα το πακέτο libelf-dev που διατίθεται απ'τα αποθετήρια debian για όλες τις εκδόσεις.

    4. Έτρεξα την εντολή:
    Κώδικας:
    sudo /sbin/vboxconfig
    που μεταγλώττισε και προσάρτησε τα απαιτούμενα modules για το συγκεκριμένο kernel.

    Τώρα το virtualbox τρέχει σαν το μακαρίτη το Βέγγο :)
    [IMG]

    Αρχικά δοκίμασα να τρέξω το βήμα 4 χωρίς το 3 αλλά έβγαζε σφάλμα κατα τη μεταγλώττιση. Είδα το /var/log/vbox-install.log
    όπου έγραφε το εξής (μεταξύ άλλων):
    οπότε εγκατέστησα το libelf-dev (βήμα 3) κι όλα πήγαν όπως περίμενα.

    Οι υπόλοιπες εφαρμογές μου (native, wine, emulators κλπ) τρέχουν κανονικά, οπότε κρατάω τον kernel 4.15.2 και στη stretch (στη buster εννοείται), τουλάχιστον μέχρι να ενημερωθεί ο επίσημος kernel της διανομής.