|

Αντέγραψες εντολές από ιστοσελίδα; Ας πρόσεχες


Tερματικό, κονσόλα, bash, γραμμή εντολών, όπως και να συνηθίζει να το αποκαλεί ο καθένας, είναι ένα παντοδύναμο εργαλείο που μέσω αυτού μπορείς να κάνεις τα πάντα στο σύστημά σου κυριολεκτικά. Έχουμε αναφερθεί σε αυτό εκτενώς (φυσικά) και όσο πιο αναλυτικά και επεξηγηματικά γίνεται, βλέποντας αυτό το παντοδύναμο εργαλείο απ' όλες τις πτυχές του: την λειτουργική και χρηστική, την αστεία του, μα και την άκρως επικίνδυνη.

Ίσως τα παραπάνω άρθρα αλλά και το παρόν, να βοηθήσουν όσους το φοβούνται και να το δουν με άλλο μάτι.
Όσοι έχετε Linux ή OSX, κάποια στιγμή σίγουρα θα θελήσατε να παίξετε με το τερματικό σας· είτε για να δοκιμάσετε κάτι είτε για να διορθώσετε ένα πρόβλημα είτε ακόμα και για να ενεργοποιήσετε μια λειτουργία. Είναι γεγονός βέβαια πως, πλέον, ό,τι μπορείς να κάνεις με το τερματικό σου, μπορείς να το κάνεις και με τον κλασικό τρόπο (κλικ, κλικ, και πάει λέγοντας). Μπορείς δηλαδή κάλλιστα να αγνοήσεις (επιδεικτικά :D) την γραμμή εντολών αφού, για τους περισσότερους χρήστες, το GUI είναι αρκετό.
Στα θρανία ξανά
Πόσες φορές δεν το έχουμε πει;
- Μάθημα 1ο: Τζιζ, καίει
ΔΕΝ εμπιστευόμαστε την οποιαδήποτε σελίδα. Μπορεί να γράφουν τα χίλια μύρια για οδηγούς που όμως αν επιχειρήσετε να τους εφαρμόσετε, ανάθεμα και αν θα δείτε κάποιο από τα σκρινσότς που δίνουν στα άρθρα τους.
- Μάθημα 2ο: Φοβού τους Δαναούς και δώρα φέροντας
ΔΕΝ αντιγράφουμε εντολές που βρίσκουμε από δω κι από κει. Μόνον αν εμπιστευόμαστε απόλυτα την ιστοσελίδα, τότε, και μόνον τότε επικολλάμε τις εντολές στο τερματικό μας.
- Μάθημα 3ο: Σε ήξερα κι από χθες;
ΔΕΝ δίνουμε την εντολή που μας λέει κάποιος αν πρώτα δεν μας εξηγήσει τι στο καλό κάνει αυτή η εντολή.
Πέραν του ότι αν αντιγράψουμε απλά την εντολή, χωρίς να μας εξηγήσουν τι κάνει η εν λόγω εντολή και για ποιον λόγο χρειάζεται να την δώσουμε, δεν θα μάθουμε ποτέ να την χρησιμοποιούμε στην πράξη, το σημαντικότερο:
- Τον ξέρουμε αυτόν που μας δίνει την εντολή;
- Πόσο καλά γνωρίζει τι μας λέει;
- Εμείς, πόσο καλά τον γνωρίζουμε;
- Τον εμπιστευόμαστε απόλυτα και τυφλά;
- Αν όχι, και είναι απλά ένας άγνωστος που έχουμε συνομιλήσει στο ιντερνέτ, πώς στο καλό κάνουμε ό,τι μας λέει στο κομπιούτερ μας, αφού δεν καταλαβαίνουμε τι είναι αυτό που μας λέει;
- Θα κάναμε το ίδιο αν ερχόταν κάποιος σπίτι μας και μας έλεγε να κάνουμε έστω και κάτι (φαινομενικά) «απλό» και «ακίνδυνο», όπως για παράδειγμα να μετακινήσουμε τους καναπέδες και τις πολυθρόνες (χωρίς να μας εξηγήσει τον λόγο -προς τι αυτή η αλλαγή);
Μην φοβάστε το τερματικό· να φοβάστε τις εντολές που αντιγράφετε από ιστοσελίδες
Και αφού τελειώσαμε την επανάληψη των SOS, ας μπούμε στο κυρίως μάθημα που είναι:
Τι μπορεί να κρύβεται κάποιες φορές πίσω από μία (φαινομενικά) εντολή.
Με μια λέξη;
Πολλές άλλες εντολές, που δεν φαίνονται, οι οποίες θα καταστρέψουν το μηχάνημά μας.
Αυτό το καταφέρνουν με το CSS.
Info: Η CSS (Cascading Style Sheets, ελληνιστί, Διαφορετικά Φύλλα Στυλ) είναι μια γλώσσα υπολογιστή που ανήκει στην κατηγορία των γλωσσών φύλλων στυλ που χρησιμοποιείται για τον έλεγχο της εμφάνισης ενός εγγράφου που έχει γραφτεί με μια γλώσσα σήμανσης. Χρησιμοποιείται για τον έλεγχο της εμφάνισης ενός εγγράφου που γράφτηκε στις γλώσσες HTML και XHTML, δηλαδή για τον έλεγχο της εμφάνισης μιας ιστοσελίδας και γενικότερα ενός ιστοτόπου.
Ένα παράδειγμα CSS κώδικα είναι το ακόλουθο:
<em>body</em>
<em>{</em>
<em>font-family: Arial,helvetica,sans-serif;</em>
<em>color: black;</em>
<em>background-color: white;</em>
<em>}</em>
Ο παραπάνω κώδικας ενημερώνει των περιηγητή διαδικτύου, πως όποιο στοιχείο γράφετε μεταξύ της ετικέτας και θα πρέπει να έχει ως γραμματοσειρά την Arial, χρώμα γραμματοσειράς το μαύρο και χρώμα φόντου το λευκό.
Το Css δηλαδή είναι απλά ένα σύνολο εντολών που γράφουμε για να μορφοποιήσουμε διάφορα «αντικείμενα» μέσα σε μία ιστοσελίδα. Τον κώδικα αυτόν τον βάζουμε είτε μέσα σε αρχεία HTML στο head τους και εκτελείται, μορφοποιώντας έτσι το περιεχόμενο, είτε μέσ- Δείτε τα εξής, ώστε να σχηματίσετε μια σωστή άποψη:α σε αρχεία με επέκταση .css και το συμπεριλαμβάνουμε στο html αρχείο ιστοσελίδας.
Με απλά λόγια, κάποιες ιστοσελίδες, μπορούν να χρησιμοποιήσουν την CSS για να κρύψουν εντολές έτσι ώστε η εντολή που θα κάνετε επικόλληση στο τερματικό σας να εμπεριέχει και άλλες (κρυφές) εντολές. Ως εκ τούτου, αυτό που θα κάνετε επικόλληση είναι εντελώς διαφορετικό από αυτό που εσείς βλέπετε.
Γι' αυτό δεν πρέπει ποτέ τυφλά να αντιγράφετε και να επικολλάτε στο τερματικό σας ό,τι εντολή σας δίνουν στο διαδίκτυο.
Όπως γράφει και ο Suresh Alse στο lifepluslinux, δοκιμάστε να επικολλήσετε την ακόλουθη εντολή στο τερματικό σας (μην την πάρετε από εδώ, επειδή εμείς δεν θέλουμε να την πειράξουμε και αυτός είναι και ένας από τους λόγους που δεν έχουμε και ολόλευκο φόντο στην σελίδα. Μας είχε τύχει παλιότερα και είχαμε πάρει κάποιες εντολές από αλλού και είχαμε δει κάτι σαν αυτά που αναφέρονται πιο πάνω):
ls -lat  
και θα δείτε - αντί της, μίας, εντολής - τι πραγματικά επικολλήθηκε στο τερματικό σας. (είναι ασφαλές να την εκτελέσετε / να την δώσετε στο τερματικό σας – η συγκεκριμένη, δεν θα κάνει κάτι που θα βλάψει το σύστημα ή το μηχάνημά σας παρά μόνον θα συνειδητοποιήσετε πόσο κινδυνεύετε κάθε φορά που επικολλάτε στα τυφλά μια εντολή):
- Δείτε τα εξής, ώστε να σχηματίσετε μια σωστή άποψη:
Καλά καταλάβατε. Η εντολή εμπεριέχει (όχι ακριβώς κακόβουλο, στο παράδειγμά μας, μα) ψευδή κώδικα μεταξύ ls και -lat που κρύβεται από τον χρήστη.
- Δείτε τα εξής, ώστε να σχηματίσετε μια σωστή άποψη: Αν την επικολλήσετε σε έναν κειμενογράφο, θα δείτε πως θα εμφανιστούν αυτά:
ls ; clear;- Δείτε τα εξής, ώστε να σχηματίσετε μια σωστή άποψη:
echo 'Haha! You gave me access to your computer with sudo!';
echo -ne 'h4cking ## (10%)\r'; sleep 0.3;
echo -ne 'h4cking ### (20%)\r'; sleep 0.3;
echo -ne 'h4cking ##### (33%)\r'; sleep 0.3;
echo -ne 'h4cking ####### (40%)\r'; sleep 0.3;
echo -ne 'h4cking ########## (50%)\r'; sleep 0.3;
echo -ne 'h4cking ############# (66%)\r'; sleep 0.3;
echo -ne 'h4cking ##################### (99%)\r'; sleep 0.3;
echo -ne 'h4cking ####################### (100%)\r';
echo -ne '\n';
echo 'Hacking complete.';
echo
'Use GUI interface using visual basic to track my IP'
ls -lat



Πώς έγινε αυτό;
Το χρώμα του κακόβουλου κώδικα έχει οριστεί να είναι ίδιο με εκείνο του φόντου, και το μέγεθος της γραμματοσειράς έχει οριστεί σε 0, έχει αλλάξει από τον υπόλοιπο κώδικα και γίνεται μη επιλέξιμο (αυτό το μπλε χρώμα δεν τον αποκαλύπτει) για να είναι απολύτως βέβαιον ότι λειτουργεί σε όλα τα πιθανά λειτουργικά συστήματα, σε όλους του browsers (προγράμματα περιήγησης) και σε όλα τα μεγέθη οθόνης.
CSS 0.43 KB
.<span style="color:#0000FF;">malicious</span> <span style="color:#696969;">{</span>
&nbsp; color: #f3f5f6; // set it to that of the page
&nbsp; font-size: 0px; // make it small
&nbsp; // move it out of the way
&nbsp; position: absolute;
&nbsp; left: -100px;
&nbsp; top: -100px;
&nbsp; height: 0px;
&nbsp; z-index: -100;
&nbsp; display: inline-block;
&nbsp; // make it un-selectable
&nbsp; -webkit-touch-callout: none;
&nbsp; -webkit-user-select: none;
&nbsp; -khtml-user-select: none;
&nbsp; -moz-user-select: none;
&nbsp; -ms-user-select: none;
&nbsp; user-select: none; &nbsp;
}
.<span style="color:#B22222;">malicious</span> <span style="color:#696969;">{<br />&nbsp; color: #f3f5f6; // set it to that of the page
  font-size: 0px; // make it small
  // move it out of the way
  position: absolute;
  left: -100px;
  top: -100px;
  height: 0px;
  z-index: -100;
  display: inline-block;
  // make it un-selectable
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -khtml-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

Και τα πράγματα μπορεί να είναι ακόμα χειρότερα. Αν το απόσπασμα του κώδικα έχει μια εντολή με sudo, για παράδειγμα, ο κακόβουλος κώδικας θα έχει και sudo πρόσβαση.
Ή, μπορεί εν αγνοία σας να εγκαταστήσετε και ένα κακόβουλο πρόγραμμα keylogger που καταγράφει και στέλνει ό,τι πληκτρολογείτε και ό,τι κλικ κάνετε (στον υπολογιστή σας) στους σέρβερ της αστυνομίας.
Όπως καταλαβαίνετε, οι εν δυνάμει βλάβες που μπορεί να προκαλέσει η αντιγραφή μιας εντολής είναι ατελείωτες.
Πώς μπορώ να προφυλαχθώ από κακόβουλο κώδικα εντολών
Δεν έχετε παρά να επικολλάτε πρώτα σε κειμενογράφο, πριν την δώσετε στο τερματικό σας, την εντολή· έτσι, θα δείτε αν, εκτός από την εντολή, επικολλάτε και άλλες εντολές (οι οποίες, όπως είπαμε, δεν φαίνονται χάρη στην χρήση του CSS).
Καθώς αυτές είναι οι διεργασίες, που θα έδειχνε η πραγματική εντολή
ls -lat
- Δείτε τα εξής, ώστε να σχηματίσετε μια σωστή άποψη:
Τέλος μαθήματος για σήμερα, ελπίζοντας πως το εμπεδώσατε καλά και θα προσέχετε πολύ πλέον τις πηγές σας και δη όταν πάτε να επικολλήσετε κώδικα από την κάθε ιστοσελίδα.
Κρατάμε λοιπόν πως δεν υπάρχει καμία «συνταγή» εδώ, μα μπορεί να ακολουθηθεί κάποια στοιχειώδης λογική:
1. Υπάρχει χρόνια η συγκεκριμένη σελίδα που ενημερωνόσαστε και αντιγράφετε εντολές;
2. Ασχολείται μόνο με το Linux ή έχει τουρλού-τουρλού θεματολογία;

[via]