ΣΗΜΕΙΩΣΗ: ΑΥΤΗ Η ΔΗΜΟΣΙΕΥΣΗ ΕΧΕΙ ΓΙΝΕΙ ΠΑΝΩ ΑΠΟ ΕΝΑ ΧΡΟΝΟ ΠΡΙΝ! |
---|
Γενικά επικρατεί η άποψη πως το Linux είναι λιγότερο ευάλωτο σε κακόβουλο λογισμικό, ιούς, rootkits…κλπ. Αυτό έχει μια δόση αλήθειας, καθώς το μεγαλύτερο ποσοστό κακόβουλου λογισμικού κατασκευάζεται για το λειτουργικό σύστημα με το μεγαλύτερο ποσοστό οικιακών χρηστών.
Ωστόσο, υπάρχουν εργαλεία διαθέσιμα για εντοπισμό κακόβουλου λογισμικού σε Linux, ένα από αυτά θα εξετάσουμε παρακάτω.
Rkhunter
Το Rkhunter, όπως και το όνομά του προδίδει, κυνηγά. Κυνηγά και εντοπίζει κυρίως rootkits, αλλά όχι μόνο. Είναι κατασκευασμένο για γενικότερη χρήση σε Linux και δεν εξαρτάται από κάποια διανομή. Πάμε να το εγκαταστήσουμε και να το δουλέψουμε λίγο.
Η τελευταία διαθέσιμη έκδοση φιλοξενείται στο sourceforge και μπορούμε να την πάρουμε με την παρακάτω εντολή σε ένα τερματικό
wget "http://sourceforge.net/projects/rkhunter/files/rkhunter/1.4.2/rkhunter-1.4.2.tar.gz/download" -O rkhunter-1.4.2.tar.gz
Αποσυμπιέζουμε το αρχείο, μπαίνουμε στον φάκελο και κάνουμε την εγκατάσταση.
tar xvf rkhunter-1.4.2.tar.gz cd rkhunter-1.4.2/ sudo ./installer.sh --install
Αν κάτι δεν πάει καλά κατά τη διάρκεια της εγκατάστασης, ελέγχουμε τα μηνύματα στο τερματικό. Ίσως να λείπουν κάποια πακέτα που πρέπει να εγκαταστήσουμε (εξαρτάται από την διανομή που έχουμε).
Επίσης, αν το αρχείο rkhunter.conf δεν τοποθετηθεί αυτόματα σε μια από τις δυο διαδρομές: /etc/rkhunter.conf ή /usr/local/etc/rkhunter.conf , μπορούμε να το τοποθετήσουμε χειροκίνητα.
sudo cp rkhunter-1.4.2/files/rkhunter.conf /etc/
Η πρώτη εντολή θα είναι ένας έλεγχος για την τελευταία διαθέσιμη έκδοση, για να σιγουρευτούμε ότι την έχουμε εγκατεστημένη.
sudo rkhunter --versioncheck
Οι επόμενες εντολές έχουν σχέση με την αναβάθμιση της βάσης δεδομένων, καθώς και τη δημιουργία μιας βάσης δεδομένων αρχείων τοπικά στον υπολογιστή μας.
sudo sudo rkhunter --propupd && rkhunter --update
Πάμε τώρα να τρέξουμε για πρώτη φορά το rkhunter. Εδώ, είναι σχεδόν σίγουρο ότι θα πάρουμε warnings, καθότι όπως αναφέρθηκε και παραπάνω το rkhunter είναι κατασκευασμένο για γενικότερη χρήση σε Linux και όχι έχοντας στο μυαλό του(ο κατασκευαστής) κάποια συγκεκριμένη διανομή.
sudo rkhunter --check
Sample Output
Αυτό που πρέπει να κάνουμε στη συνέχεια είναι να ελέγξουμε το αρχείο rkhunter.log. Μας ενδιαφέρουν κυρίως τα warnings, οπότε στοχεύουμε εκεί.
sudo cat /var/log/rkhunter.log | grep -i warning -A2 -B2
Θα δούμε warnings όπως τα παραπάνω τα οποία πρέπει να εξετάσουμε. Γνωρίζοντας ότι για παράδειγμα το /usr/bin/ldd είναι εντάξει και ότι το κρυφό αρχείο /usr/share/man/man5/.k5identity.5.gz δεν αποτελεί πρόβλημα, θα επεξεργαστούμε κατάλληλα το αρχείο ρυθμίσεων του rkhunter (/etc/rkhunter.conf ή /usr/local/etc/rkhunter.conf) για να προσθέσουμε εξαιρέσεις για τα συγκεκριμένα αρχεία.
Ρυθμίσεις Rkhunter
Όλες οι ρυθμίσεις του rkhunter βρίσκονται στο αρχείο rkhunter.conf. Εκεί μπορούμε να ορίσουμε έξτρα λειτουργίες ή να εξαιρέσουμε κάποια αρχεία που γνωρίζουμε ότι δεν αποτελούν πρόβλημα. Για παράδειγμα.
sudo vim /etc/rkhunter.conf
Αντί του vim, μπορούμε να χρησιμοποιήσουμε όποιον επεξεργαστή κειμενογράφου θέλουμε.
Στην συγκεκριμένη ενότητα στην παραπάνω εικόνα μπορούμε να προσθέσουμε εξαιρέσεις για όλα τα warnings που έχουν σχέση με scripts replacing. Για παράδειγμα, είχαμε πάρει ένα warning για την ldd ότι έχει αντικατασταθεί από ένα script..κλπ. Εδώ μπορούμε να προσθέσουμε την γραμμή
SCRIPTWHITELIST=/usr/bin/ldd
έτσι ώστε το συγκεκριμένο warning να παραλείπεται.
Παρακάτω θα δούμε άλλη ρύθμιση για κρυφούς φακέλους και αρχεία, είχαμε λάβει και τέτοια προειδοποίηση.
Εδώ μπορούμε να προσθέσουμε εξαιρέσεις για κρυφούς φακέλους/καταλόγους/υποκαταλόγους. Παρακάτω υπάρχει παρόμοια ενότητα για κρυφά αρχεία.
Βλέπουμε ότι το rkhunter περιέχει ήδη κάποιες ρυθμίσεις, παράδειγμα για κρυφούς καταλόγους που πιθανών να πάρουμε warning, είναι όμως από προεπιλογή commented out. Πρέπει να αφαιρέσουμε την δίεση από μπροστά για να λάβει υπόψιν του το rkhunter την εξαίρεση.
Θα πρέπει να ψάξουμε καλά και να διαβάσουμε το αρχείο ρυθμίσεων για να πετύχουμε το επιθυμητό αποτέλεσμα. Δηλαδή, μια έξοδο χωρίς false warnings. Το αρχείο ρυθμίσεων είναι πολύ καλά τεκμηριωμένο και εύκολο στην κατανόηση.
MAIL-ON-WARNING
Άλλη μια χρήσιμη ρύθμιση που μπορούμε να βρούμε στο conf αρχείο είναι το mail-to-warning. Κάθε φορά που ανιχνευθεί κάποια προειδοποίηση στο σύστημά μας, θα μας στέλνει ένα e-mail με μια ειδοποίηση για να ελέγξουμε για τυχών κακόβουλο λογισμικό.
Το ευκολότερο εδώ είναι να αφαιρέσουμε την δίεση από το MAIL-ON-WARNING και να αντικαταστήσουμε τα παραδείγματα που έχει με το username@hostname. Αυτά τα βρίσκουμε με τις παρακάτω εντολές
echo $USER echo $HOSTNAME
Επίσης, μην ξεχάσουμε να αφαιρέσουμε την δίεση και από την αμέσως επόμενη ρύθμιση: MAIL_CMD.
Έτσι, όταν κάποιο warning ανιχνευθεί μόλις ανοίξουμε το τερματικό θα δούμε το μήνυμα: You have mail (ή κάτι παρόμοιο).
Θα πρέπει να είναι ρυθμισμένη η κατάλληλη υπηρεσία sendmail ή postfix στην διανομή που χρησιμοποιούμε για να λειτουργήσει σωστά το παραπάνω.
Cronjob
Αφού ρυθμίσουμε το rkhunter σωστά, μπορούμε να φτιάξουμε μια προγραμματισμένη εργασία σκαναρίσματος να τρέχει στο σύστημά μας. Ο συγκεκριμένος φάκελος cron.daily χρησιμοποιείται να καθημερινή χρήση.
sudo vim /etc/cron.daily/01rkhunter
και προσθέτουμε
#!/usr/bin/env bash /usr/local/bin/rkhunter --cronjob
Τα logs μπορούμε να τα κοιτάμε στο /var/log/rkhunter.log
Τέλος, μη ξεχάσουμε να αναφέρουμε πως αφού επεξεργαστούμε το rkhunter.conf αρχείο, πρέπει να τρέξουμε την εντολή
sudo rkhunter --propupd
διαφορετικά υπάρχει πιθανότητα να λάβουμε warning για αλλαγή του αρχείου.
Ας έχουμε υπόψιν μας πως το rkhunter ανιχνεύει και στέλνει warnings και για αρχεία που αλλάζουν, οπότε σε μια ενδεχόμενη αναβάθμιση του συστήματος (update), αν αλλάξουν για παράδειγμα κάποια αρχεία ρυθμίσεων, ίσως λάβουμε ειδοποίηση γι’ αυτά.