Αν διαθέτουμε κάποια ιστοσελίδα είναι
πολύ πιθανόν ότι κάποια στιγμή κάποιος χρήστης μπορεί να χρησιμοποιήσει
κάποιο scanner ή κάποιο bot προκειμένου να προσπαθήσει να ανακαλύψει
τις αδυναμίες του site μας.
Το πρόβλημα
Πολλά κακόβουλα bots κρύβονται πίσω από
ψεύτικα UA strings και αγνοούν εντελώς το αρχείο robots.txt.Οπότε ακόμα
και αν έχουμε μπλοκάρει μερικά μέσω του αρχείου .htaccess κάποια είναι
πιθανό να την παρακάμψουν αυτήν την προστασία χρησιμοποιώντας ονόματα
από γνήσια user-agent.
Επίσης ένα scanner ή ένα bot τραβάει από
το bandwidth της ιστοσελίδας μας και αυτό μπορεί να έχει σαν επακόλουθο
το site μας να αργεί να φορτώσει.
Δημιουργία της παγίδας
Το πρώτο πράγμα που θα πρέπει να κάνουμε
είναι να ρυθμίσουμε την παγίδα.Θα δημιουργήσουμε λοιπόν έναν φάκελο με
το όνομα trap μέσα στο root.Έτσι όταν ένα bot ή ένα scanner μπει σε
αυτόν τον φάκελο η IP του θα γίνει αυτόματα ban.Επίσης αυτό θα συμβεί
και για όλους τους χρήστες ή επισκέπτες της ιστοσελίδας που θα
προσπαθήσουν να μπούνε σε αυτόν τον φάκελο.
Θα πρέπει επίσης να σιγουρευτούμε ότι δεν
θα μπανάρουμε τα γνήσια bots όπως το Googlebot,Yahoobot κτλ.Μπορούμε να
το αποφύγουμε αυτό το σενάριο απλά προσθέτοντας το παρακάτω στο αρχείο
robots.txt:
User-agent: *Disallow: /trap/
Τα περισσότερα bots θα υπακούσουν σε αυτήν την ρύθμιση και δεν θα μπούνε στον φάκελο trap.
Το επόμενο βήμα είναι να δημιουργήσουμε το αρχείο index.php μέσα στον φάκελο με το όνομα trap και να προσθέσουμε το ακόλουθο:
<?php$agent = $_SERVER['$HTTP_USER_AGENT'];
$datum = date(“Y-m-d (D) H:i:s”,$tmestamp);
$ipad = $_SERVER['REMOTE_ADDR'];
$ban = “Deny from $ipad # /trap/ $agent – on $datum \r\n”;
$file = “../.htaccess”;
$search = file_get_contents($file);
$check = strpos($search, $ipad);
if ($check === FALSE) {
$open = @fopen($file, “a+”);
$write = @fputs($open, $ban);
echo “The IP <b>”.$ipad.”</b> has been blocked for an invalid access attempt to a file, directory, or a scanning atempt.;
@fclose($open);
} else {
echo “The IP <b>”.$ipad.”</b> has been blocked for an invalid access attempt to a file, directory, or a scanning atempt.”;
}
exit;
?>
Σημείωση:
$ban—>Ότι θα γραφτεί στο αρχείο .htaccess.Οτιδήποτε μετά τo σύμβολο # είναι σχόλιο.Επίσης το αρχείο .htaccess θα πρέπει να έχει δικαιώματα 666.
$file—->Βάζουμε την διαδρομή που βρίσκεται η παγίδα μας
Ενεργοποίηση της παγίδας
Τώρα που το σύστημα είναι τοποθετημένο θα πρέπει να ρυθμίσουμε το δόλωμα για τα bots.Τοποθετούμε λοιπόν τον παρακάτω κώδικα μέσα στο αρχείο index στον φάκελο root.
<a href=”/trap/”><img src=”images/pix.JPG” border=”0″ alt=” ” width=”1″ height=”1″></a>
Όταν ένα scanner ή ένα bot μπεί στην
αρχική σελίδα μας θα εντοπίσει το παραπάνω link και θα κατευθυνθεί προς
αυτό όπου και θα γίνει ban η IP του.
Αποτέλεσμα:Το αποτέλεσμα αυτής της παγίδας όταν κάποιο bot ή scanner εισέλθει στον φάκελο trap θα είναι το ακόλουθο:
Deny from ***.***.***.***,# /admin/ – on 2009-08-20 (Wed) 16:00:00