Aug 01 2011

VIDEO: Οδηγός SQL Injection

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

Παρεπιπτόντως λόγω των δύο παραπάνω λόγων, πραγματοποιήθηκαν και οι επιθέσεις στην Sony πριν κάποιον καιρό, με τους χάκερς να κλέβουν πάνω από ένα εκατομμύριο λογαριασμούς χρηστών! Οι οποίοι λογαριασμοί (όνομα χρήστη, κωδικός, email, κλπ) κυκλοφόρησαν στο internet, με αποτέλεσμα βανδαλισμούς σε πολλά άλλα sites για τα οποία χρησιμοποιούνταν τα ίδια στοιχεία πρόσβασης (να και ένας ακόμα λόγος να μην χρησιμοποιούμε παντού τον ίδιο κωδικό).

Το παρακάτω βίντεο και εξήγηση είναι από την Acunetix. Σε αυτό το άρθρο περιγράφεται η SQL Injection και στο βίντεο γίνεται επίδειξη της επίθεσης χρησιμοποιώντας το εργαλείο της ίδιας της εταιρείας φυσικά.

Βέβαια, έχουν κάνει και λάθος στη λύση του προβλήματος, καθώς αυτή θα αποτρέψει μεν το SQL injection αλλά θα δημιουργήσει πρόβλημα στο site. To $_GET είναι πάντα string ενώ το is_int() τσεκάρει για ακέραιο αριθμό. Άρα to is_int(“1″) θα επιστρέφει πάντα false. Το σωστό λοιπόν δεν είναι is_int() αλλά is_numeric().

ΥΓ. Καλό μήνα! :)

Jul 23 2011

Script αναβάθμισης του BackTrack 5

Τις τελευταίες μέρες δοκίμασα τις λύσεις διαφόρων security enthusiasts οι οποίοι έγραψαν κάποια scripts για να αναβαθμίσουν το BackTrack και τα εργαλεία του στις τελευταίες εκδόσεις. Από ότι φαίνεται κάποια πραγματάκια έμειναν απ’ έξω οπότε καλώς ή κακώς υπάρχει η ανάγκη για τέτοιες custom λύσεις.

Στην αρχή κάθησα και έγραψα το δικό μου script αλλά στην πορεία ανακάλυψα δύο άλλα πολύ καλύτερα, συγκεκριμένα το [>] Update Script for Backtrack 5 από τον sickness, γραμμένο σε C, το οποίο έφτασε πλέον στην έκδοση 0.8, και δεύτερον το bt5-fixit.sh από τον Phillips321 ο οποίος παλαιότερα είχε χτίσει μια δική του security distro, το GnackTrack, την οποία και στάματησε με την κυκλοφορία του BackTrack 5. Τότε ήταν που έγραψε και το παραπάνω script το οποίο είναι γραμμένο σε shell.

Η επιλογή μου τελικώς ήταν το δεύτερο για λόγους πρακτικούς και για το γεγονός ότι περιέχει περισσότερες αλλαγές και αναβαθμίσεις εργαλείων. Έστειλα και τις προτάσεις μου μαζί με απλό κώδικα στον Phillips321 ο οποίος τις έκανε δεκτές και ενσωματώθηκαν στην έκδοση 1.4.

Στην ουσία το script αυτό είναι το πρώτο πράγμα που πρέπει να τρέξει κάποιος σε μια φρέσκια εγκατάσταση του BackTrack 5. Μένουν κάποια άλλα ζητήματα να λυθούν, και μπορεί να εξελιχθεί σε ένα πολύ χρήσιμο προγραμματάκι. Για να το κατεβάσετε:

svn checkout http://bt5-fixit.googlecode.com/svn/trunk/ bt5-fixit

PS. το έξτρα αρχείο bt5-nmap είναι ένα script του Phillips321 για την ευκολότερη χρήση του δημοφιλούς εργαλείου Nmap.

Jul 22 2011

Ασφάλεια κωδικών πρόσβασης

Η Gibson Research Corporation (που είχε βγάλει παλιά το γνωστό πρόγραμμα “Shoot the Messenger” για την αφαίρεση του Windows Messenger) έχει γράψει ένα ενδιαφέρον άρθρο σχετικά με την ασφάλεια των κωδικών εξετάζοντας το μέγεθος τους. Καταλήγει πως όσο μεγαλύτερο το μέγεθος των κωδικών τόσο δυσκολότερο το σπάσιμο τους. Αυτό συμβαίνει γιατί σε μια επίθεση ωμής βίας (brute force) όπου δοκιμάζονται όλοι οι δυνατοί συνδυασμοί, αυτό που παίζει ρόλο είναι ποιό είναι τελικά το πλήθος αυτών των συνδυασμών που θα πρέπει να δοκιμάσουμε.

Ας δώσω ένα παράδειγμα: ας υποθέσουμε πως μπορώ να διαλέξω ένα κωδικό χρησιμοποιώντας μόνο αριθμούς. Για κάθε ψηφίο του κωδικού μου δηλαδή έχω 10 δυνατές επιλογές (1 ως 9 και το 0). Οι διαφορετικοί συνδυασμοί κωδικών υπολογίζονται πολλαπλασιάζοντας μεταξύ τους το πλήθος των δυνατών επιλογών κάθε ψηφίου, για όσα ψηφία έχουμε. Αν διάλεξα τον κωδικό “54366” για παράδειγμα τότε στην ουσία ένας επίδοξος cracker θα έπρεπε να δοκιμάσει 10x10x10x10x10 = 10^5 = 10.000 διαφορετικούς κωδικούς μέχρι να τον βρει. Αν σε αυτόν τον κωδικό έβαζα μόλις ένα ψηφίο ακόμα και από μέγεθος 5 τον πήγαινα 6, έστω “543669”, τότε ο επίδοξος cracker θα έπρεπε να δοκιμάσει 100.000 συνδυασμούς! Καταλαβαίνουμε δηλαδή πως όντως το μέγεθος των κωδικών μετράει και μάλιστα πολύ.

ΑΛΛΑ ΠΡΟΣΟΧΗ, το παραπάνω έχει να κάνει με τα brute-force attacks όπου χρησιμοποιούμε κάποιο πρόγραμμα που δοκιμάζει με τη σειρά όλους αυτούς τους δυνατούς συνδυασμούς. Υπάρχουν και οι επιθέσεις λεξικού (dictionary attacks) όπου δοκιμάζουμε μήπως ο κωδικός ανήκει σε μια υπάρχουσα λίστα κωδικών (wordlist) από την οποία αντλούμε στοιχεία. Για παράδειγμα θα μπορούσα να φτιάξω μια λίστα με τους 500 χειρότερους κωδικούς και να δοκιμάσω μήπως κάποιος από αυτούς είναι αυτός που ψάχνω. Η αναζήτηση 500 μόνο συνδυασμών σε σχέση με τους 100.000 παραπάνω είναι σταγόνα στον ωκεανό. Σε αυτή την περίπτωση δεν μετράει τόσο το μέγεθος όσο το πόσο “καλός” είναι ο κωδικός. Έτσι ένας κωδικός με 4 ψηφία όπως ο “y#8Z” είναι πολύ καλύτερος από τον κωδικό “baseball” των 8 ψηφίων.

Σύμφωνα με τις προτάσεις της NASA, τρία είναι τα στοιχεία ενός καλού κωδικού:

α) πρέπει να αποτελούνται από τουλάχιστον 8 ψηφία
β) πρέπει να περιλαμβάνουν ένα μείγμα διαφόρων τύπων χαρακτήρων, όπως κεφαλαία και μικρά γράμματα, αριθμούς και ειδικά σύμβολα (όπως τα %^&$#^:)
γ) δεν πρέπει να είναι κάποιο όνομα, κάποια φράση ή κάποια λέξη ενός λεξικού και δεν πρέπει να περιλαμβάνει μέρος του ονόματος σας ή του email σας

Page 29 of 29« First...1020...2526272829