Σκανάρετε το Linux για rootkits και ιούς – rkhunter

ΣΗΜΕΙΩΣΗ: ΑΥΤΗ Η ΔΗΜΟΣΙΕΥΣΗ ΕΧΕΙ ΓΙΝΕΙ ΠΑΝΩ ΑΠΟ ΕΝΑ ΧΡΟΝΟ ΠΡΙΝ!

Γενικά επικρατεί η άποψη πως το 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

Sample Output
rkhunter1

Αν κάτι δεν πάει καλά κατά τη διάρκεια της εγκατάστασης, ελέγχουμε τα μηνύματα στο τερματικό. Ίσως να λείπουν κάποια πακέτα που πρέπει να εγκαταστήσουμε (εξαρτάται από την διανομή που έχουμε).
Επίσης, αν το αρχείο rkhunter.conf δεν τοποθετηθεί αυτόματα σε μια από τις δυο διαδρομές: /etc/rkhunter.conf ή /usr/local/etc/rkhunter.conf , μπορούμε να το τοποθετήσουμε χειροκίνητα.

sudo cp rkhunter-1.4.2/files/rkhunter.conf /etc/

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

sudo rkhunter --versioncheck

Sample Output
rkhunter2

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

sudo sudo rkhunter --propupd &&  rkhunter --update

Sample Output
rkunter3

Πάμε τώρα να τρέξουμε για πρώτη φορά το rkhunter. Εδώ, είναι σχεδόν σίγουρο ότι θα πάρουμε warnings, καθότι όπως αναφέρθηκε και παραπάνω το rkhunter είναι κατασκευασμένο για γενικότερη χρήση σε Linux και όχι έχοντας στο μυαλό του(ο κατασκευαστής) κάποια συγκεκριμένη διανομή.

sudo rkhunter --check

Sample Output
rkhunter4
Αυτό που πρέπει να κάνουμε στη συνέχεια είναι να ελέγξουμε το αρχείο rkhunter.log. Μας ενδιαφέρουν κυρίως τα warnings, οπότε στοχεύουμε εκεί.

sudo cat /var/log/rkhunter.log | grep -i warning -A2 -B2

Sample Output
rkhunter5

Θα δούμε 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

rkhunter6
Αντί του vim, μπορούμε να χρησιμοποιήσουμε όποιον επεξεργαστή κειμενογράφου θέλουμε.
Στην συγκεκριμένη ενότητα στην παραπάνω εικόνα μπορούμε να προσθέσουμε εξαιρέσεις για όλα τα warnings που έχουν σχέση με scripts replacing. Για παράδειγμα, είχαμε πάρει ένα warning για την ldd ότι έχει αντικατασταθεί από ένα script..κλπ. Εδώ μπορούμε να προσθέσουμε την γραμμή

SCRIPTWHITELIST=/usr/bin/ldd

έτσι ώστε το συγκεκριμένο warning να παραλείπεται.
Παρακάτω θα δούμε άλλη ρύθμιση για κρυφούς φακέλους και αρχεία, είχαμε λάβει και τέτοια προειδοποίηση.
rkhunter7
Εδώ μπορούμε να προσθέσουμε εξαιρέσεις για κρυφούς φακέλους/καταλόγους/υποκαταλόγους. Παρακάτω υπάρχει παρόμοια ενότητα για κρυφά αρχεία.

Βλέπουμε ότι το 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), αν αλλάξουν για παράδειγμα κάποια αρχεία ρυθμίσεων, ίσως λάβουμε ειδοποίηση γι’ αυτά.

Συμβάλετε κι εσείς με ένα σχόλιο

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s