Back to top

Ολέθρια σφάλματα των υπολογιστών. Λάθη στο λογισμικό που έμειναν στην Ιστορία

27/08/2018 - 10:22

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

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

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

Ο παρ’ ολίγον πυρηνικός όλεθρος

Ένα σφάλμα στο λογισμικό του δορυφορικού συστήματος προειδοποίησης στη Σοβιετική Ένωση, θα μπορούσε ίσως να οδηγήσει στον πυρηνικό όλεθρο!

Στις 26 Σεπτεμβρίου του 1983, ο στρατιωτικός Stanislav Petrov βρίσκονταν σε ένα μυστικό καταφύγιο, κοντά στη Μόσχα, όντας υπεύθυνος για την εποπτεία του δορυφορικού συστήματος προειδοποίησης επιθέσεων. Λίγο μετά τα μεσάνυχτα, το σύστημα εμφάνισε προειδοποίηση για την εκτόξευση 5 αμερικανικών, διηπειρωτικών βαλλιστικών πυραύλων! Η προβλεπόμενη αντίδραση, θα ήταν η αντεπίθεση εκ μέρους της Σοβιετικής Ένωσης με επίσης εκτόξευση πυραύλων!

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

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

Therac-25

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

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

Στο Therac-25 το ρόλο αυτών των δικλείδων αναλάμβανε ένα λογισμικό. Ωστόσο, ένα σφάλμα συνέβαινε μερικές φορές κατά τη διάρκεια των αυτόματων ελέγχων. Αυτό είχε σαν αποτέλεσμα, το σύστημα να καταρρέει, ο μεταλλικός «στόχος» να μην μετακινείται στη θέση του και ο ασθενής να «βομβαρδιστεί» με δέσμες ισχύος 100 φορές μεγαλύτερης απ’ ό,τι θα έπρεπε κανονικά να δεχτεί. Αυτό συνέβη σε 6 περιπτώσεις από το 1985 έως το 1987, με 4 ανθρώπους να βρίσκουν το θάνατο!

Η αποτυχία του Πάτριοτ

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

Το σύστημα ανίχνευσης του αντιαεροπορικού συστήματος βασίζεται στην ταχύτητα του στόχου και το χρόνου προκειμένου να προβλέψει πού θα βρίσκεται ο στόχος κάθε στιγμή.

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

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

Όταν ένας ιρακινός πύραυλος εκτοξεύτηκε με στόχο το στρατιωτικό αεροδρόμιο στο Dhahran της Σαουδικής Αραβίας, ανιχνεύτηκε από το σύστημα Πάτριοτ. Ωστόσο, το εσωτερικό «ρολόι» είχε ήδη μια απόκλιση 0,34 του λεπτού. Όταν υπολογίστηκε η επόμενη θέση του πυραύλου, το σύστημα ανίχνευσης «κοιτούσε» σε μια περιοχή του ουρανού περίπου μισό χιλιόμετρο μακρύτερα από το σημείο που βρίσκονταν ο πύραυλος. Αυτό είχε σαν αποτέλεσμα, να «υποθέσει» ότι δεν υπήρχε απειλή και έτσι η αναχαίτιση ακυρώθηκε. Ο πύραυλος χτύπησε το στόχο του, σκοτώνοντας 28 στρατιώτες και τραυματίζοντας άλλους 98.

Η διαίρεση με το μηδέν παρέλυσε πλοίο του αμερικανικού στόλου

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

Αυτό το πασίγνωστο σφάλμα όμως, φαίνεται πως δεν είχαν λάβει υπόψη τους οι σχεδιαστές του λογισμικού στο σκάφος του αμερικανικού πολεμικού ναυτικού USS Yorktown. Στις 21 Σεπτεμβρίου του 1997 το Yorktown έμεινε ακυβέρνητο για σχεδόν 3 ώρες, όταν ένα μέλος του πληρώματος πληκτρολόγησε ένα μηδενικό στο σύστημα ελέγχου της βάσης δεδομένων, το οποίο έπειτα χρησιμοποιήθηκε σε μια διαίρεση με αποτέλεσμα να καταρρεύσει το σύστημα πρόωσης του πλοίου.

Το λογισμικό είχε εγκατασταθεί στο πλαίσιο προγράμματος για τη περιορισμό του ανθρώπινου παράγοντας στον έλεγχο πλοίων. Ευτυχώς, όταν το απρόοπτο συνέβη, το USS Yorktown πραγματοποιούσε ελιγμούς και δεν βρίσκονταν σε μάχη όποτε και ένα τέτοιο συμβάν θα μπορούσε να αποβεί μοιραίο.

Το μπλακ-άουτ που άφησε στο σκοτάδι 55 εκατ. ανθρώπους

Ένα από τα μεγαλύτερα μπλακ-άουτ στην ιστορία, ήταν αυτό που σημειώθηκε στις 14 Αυγούστου 2003, στις βορειοανατολικές ΗΠΑ και το Οντάριο του Καναδά και άφησε στο σκοτάδι 55 εκατ. ανθρώπους.

Όλα ξεκίνησαν όταν μια μονάδα παραγωγής ενέργειας στις νότιες ακτές της λίμνης Erie, στο Οχάιο, τέθηκε εκτός, εξαιτίας της αυξημένης ζήτησης. Αυτό έθεσε σε δοκιμασία το υπόλοιπο δίκτυο ηλεκτρισμού. Όμως, τα καλώδια μεταφοράς ενέργειας, όταν μεταφέρουν μεγαλύτερο φορτίο, θερμαίνονται και τα υλικά κατασκευής τους διαστέλλονται. Έτσι, αρκετές γραμμές ακούμπησαν πάνω σε δέντρα και προκλήθηκαν βλάβες, ζορίζοντας ακόμη περισσότερο το σύστημα ενέργειας. Το αποτέλεσμα ήταν εν τέλει το δίκτυο να μοιράζει μόλις το 20% της συνηθισμένης ισχύος.

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

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

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

Ο Ιός της Χιλιετίας

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

Το συγκεκριμένο σφάλμα είχε να κάνει με το γεγονός ότι σε πολλά υπολογιστικά συστήματα, χρησιμοποιούνταν δύο ψηφία για την ημερομηνία. Για παράδειγμα «99», αντί για «1999». Αυτό θα σήμαινε ότι το 2000 θα φαίνονταν σαν «00», κάτι που πιθανότατα να «μπέρδευε» τους υπολογιστές, κάνοντας τους να νομίζουν ότι πρόκειται για το 1900. Αυτό θα είχε σαν αποτέλεσμα την καταστροφή σε όσους υπολογισμούς θα περιελάμβαναν εύρος ετών που ξεπερνούσαν το 2000. Για παράδειγμα, κάποιος που γεννήθηκε το 1920 και πέθανε το 2001, θα εμφανίζονταν σαν -19 χρονών!

Προκειμένου να αντιμετωπίσουν το πρόβλημα, εταιρείες λογισμικού έσπευσαν να αναβαθμίσουν τα προϊόντα τους, που ήδη έλεγχαν από συστήματα τραπεζικής, μέχρι υπολογιστές νοσοκομείων. Επιπλέον, το Φεβρουάριου του ’99, συστάθηκε το Διεθνές Κέντρο Συνεργασίας Y2K ώστε να βοηθήσει στο συντονισμό των εργασιών κυβερνήσεων και οργανώσεων, πριν την έλευση του Μιλένιουμ.

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