Το πιο δύσκολο πρόγραμμα

Από τον μεταφραστή: Βρήκα μια ερώτηση στο Quora: Ποιο πρόγραμμα ή κώδικας μπορεί να ονομαστεί το πιο περίπλοκο που γράφτηκε ποτέ; Η απάντηση ενός από τους συμμετέχοντες ήταν τόσο καλή που αξίζει αρκετά άρθρο.

Δέστε τις ζώνες σας.

Το πιο περίπλοκο πρόγραμμα στην ιστορία γράφτηκε από μια ομάδα ανθρώπων των οποίων τα ονόματα δεν γνωρίζουμε.

Αυτό το πρόγραμμα είναι ένα σκουλήκι υπολογιστή. Το worm προφανώς γράφτηκε μεταξύ 2005 και 2010. Επειδή αυτό το σκουλήκι είναι τόσο περίπλοκο, μπορώ μόνο να δώσω μια γενική περιγραφή του τι κάνει.

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

Μόλις το worm εκτελείται σε έναν υπολογιστή, προσπαθεί να αποκτήσει δικαιώματα διαχειριστή. Δεν τον ενοχλεί ιδιαίτερα το εγκατεστημένο λογισμικό προστασίας από ιούς - μπορεί να αγνοήσει τα περισσότερα τέτοια προγράμματα. Στη συνέχεια, ανάλογα με την έκδοση των Windows στην οποία εκτελείται, ο ιός τύπου worm θα δοκιμάσει μία από τις δύο προηγουμένως άγνωστες μεθόδους απόκτησης δικαιωμάτων διαχειριστή στον υπολογιστή. Όπως πριν, κανείς δεν γνώριζε για αυτά τα κρυφά τρωτά σημεία πριν εμφανιστεί αυτό το σκουλήκι.

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

Στη συνέχεια, το worm ελέγχει εάν μπορεί να έχει πρόσβαση στο Διαδίκτυο. Αν μπορεί, προσπαθεί να επισκεφτεί ιστότοπους www.mypremierfutbol.com ή www.todaysfutbol.com. Εκείνη την εποχή αυτοί οι διακομιστές ήταν η Μαλαισία και η Δανία. Ανοίγει ένα κρυπτογραφημένο κανάλι επικοινωνίας και ενημερώνει αυτούς τους διακομιστές ότι ο νέος υπολογιστής έχει εξαγοραστεί με επιτυχία. Γιατί το σκουλήκι ενημερώνεται αυτόματα στην πιο πρόσφατη έκδοση;

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

Αργότερα, οι συντάκτες αυτού του προγράμματος οδήγησης άρχισαν να το υπογράφουν με ιδιωτικό κλειδί από την JMicron, μια άλλη μεγάλη εταιρεία της Ταϊβάν. Και πάλι, οι συγγραφείς μπόρεσαν να εισβάλουν στο πιο προστατευμένο μέρος αυτό εταιρεία και να κλέψει το πιο μυστικό κλειδί που έχει αυτό παρέα χωρίς να γνωρίζουν τίποτα γι' αυτό.

Το σκουλήκι για το οποίο μιλάμε πολύ περίπλοκο. Και ακόμα είμαστε ακόμα δεν ξεκίνησε.

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

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

Το σκουλήκι αναζητά συνδεδεμένους βιομηχανικούς ηλεκτρικούς κινητήρες από δύο συγκεκριμένες εταιρείες. Η μία από αυτές τις εταιρείες βρίσκεται στο Ιράν και η άλλη στη Φινλανδία. Οι κινητήρες που ψάχνει ονομάζονται «μεταβλητές συχνότητες». Χρησιμοποιούνται για τον έλεγχο βιομηχανικών φυγοκεντρητών. Οι φυγόκεντροι μπορούν να χρησιμοποιηθούν για τον καθαρισμό πολλών χημικών στοιχείων.

Για παράδειγμα, το ουράνιο.

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

Αλλά όχι. Αυτό πολύπλοκο σκουλήκι. Και το σκουλήκι έχει άλλα σχέδια.

Μόλις συλλάβει όλες τις φυγόκεντρες στο εργοστάσιό σας... το σκουλήκι απλώς κοιμάται.

Οι μέρες περνούν. Ή εβδομάδες. Ή δευτερόλεπτα.

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

Και μετά, σιγά σιγά, το σκουλήκι αρχίζει να περιστρέφει αυτές τις φυγόκεντρες... λίγο λανθασμένος. Καθόλου πολύ. Απλώς, ξέρεις, λίγο πολύ γρήγορα. Ή λιγάκι πολύ αργή. Μόνο немного εξωτερικές ασφαλείς παραμέτρους.

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

Στις φυγόκεντρες δεν αρέσει να τρέχουν πολύ γρήγορα ή πολύ αργά. Και δεν τους αρέσουν ούτε οι πέτρες.

Αλλά το σκουλήκι έχει ένα τελευταίο κόλπο. Και είναι λαμπρός.

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

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

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

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

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

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

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

Αυτό ακριβώς συνέβη στην πραγματικότητα

Δεν θα περίμενες ποτέ ότι όλα αυτά τα προβλήματα δημιουργήθηκαν από ένα σκουλήκι υπολογιστή, το πιο πανούργο και έξυπνο σκουλήκι υπολογιστή στην ιστορία, γραμμένο από κάποια απίστευτα μυστική ομάδα με απεριόριστα χρήματα και χρόνο. Το σκουλήκι σχεδιάστηκε για έναν μόνο σκοπό: περάστε από όλες τις γνωστές μεθόδους ψηφιακής ασφάλειας και καταστρέψτε το πυρηνικό πρόγραμμα της χώρας σας χωρίς να σας πιάσουν.
Η δημιουργία ενός προγράμματος που θα μπορούσε να κάνει ΕΝΑ από αυτά τα πράγματα είναι από μόνο του ένα μικρό θαύμα. Δημιουργήστε ένα πρόγραμμα που μπορεί να τα κάνει ΟΛΑ αυτά και πολλά άλλα...

… για αυτό Σκουλήκι Stuxnet έπρεπε να γίνει το πιο περίπλοκο πρόγραμμα που γράφτηκε ποτέ.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο