
Οι χάκερ χρησιμοποιούν συχνά αλεξικέραυνα για να αναζητήσουν ευπάθειες στο λογισμικό, εξετάζοντας το για αδυναμίες που μπορούν να εκμεταλλευτούν. Οι προγραμματιστές λογισμικού μπορούν να χρησιμοποιήσουν ένα αλεξικέραυνο για να προβλέψουν και να υπερασπιστούν αυτά τα είδη επιθέσεων.
Προέλευση
Το πρώτο fuzzer γράφτηκε στις αρχές της δεκαετίας του 1980 από τον προγραμματιστή Steve Capps για να δοκιμάσει την αδυναμία στα προγράμματα για τον υπολογιστή Macintosh. Κάλεσε το πρόγραμμά του "Το μαϊμού", αναφερόμενος στο κλασικό ρητό ενός πιθήκου πιέζοντας τυχαία πλήκτρα σε μια γραφομηχανή για ένα άπειρο χρονικό διάστημα. Η θεωρία είναι ότι δίνεται αρκετός χρόνος, ο πίθηκος τελικά θα γράψει τα πλήρη έργα του Σαίξπηρ. Παρόλο που αυτή η προσέγγιση για τις δοκιμές λογισμικού ονομάζεται συνήθως "fuzzing", ονομάζεται επίσης "δοκιμή μαϊμού" λόγω του προγράμματος Capps.
Κατάλογος των Fuzzers
Οι τεχνικές Fuzzing μπορούν να χρησιμοποιηθούν για τη δοκιμή του λογισμικού, και υπάρχουν πολλοί αλεξίσφαιροι για ειδικούς σκοπούς.
Παρακάτω είναι μια λίστα με αλεξικέραυνα, τα περισσότερα από τα οποία είναι ανοιχτού κώδικα και πολλά ακόμα βρίσκονται σε ενεργό ανάπτυξη.
Όνομα / URL Fuzzer | Περιγραφή |
---|---|
Google Sanitizers | Μια ομάδα τεσσάρων απολυμαντικών δεδομένων που αναπτύχθηκε στο Google, οι οποίες χρησιμοποιούν το fuzzing για την ανίχνευση σφαλμάτων προγράμματος:
|
afl-fuzz | American Fuzzy Lop, ένα εργαλείο που χρησιμοποιεί γενετικούς αλγόριθμους για να ελέγξει την ασφάλεια των μεταγλωττισμένων προγραμμάτων. |
Πίσω | Ένα πακέτο εργαλείων με παγωμένο πρωτόκολλο. |
BrundleFuzz | Ένα διανεμημένο fuzzer για Windows και Linux. |
CERT FOE | Failure Observation Engine, ένα εργαλείο που αναπτύχθηκε από το CERT, το οποίο χρησιμοποιεί μεταλλαγμένο fuzzing για την ανίχνευση τρωτών σημείων στα προγράμματα των Windows. |
CERTfuzz | Ο πηγαίος κώδικας του CERT FOE. |
Choronzon | Ένας εξελικτικός βασιστής της γνώσης. |
Διαφορετικά | Ένα εργαλείο που αναπτύχθηκε από το Twitter για να ανακαλύψει ευπάθειες στις υπηρεσίες web. |
Ζαλισμένος | Μία εύχρηστη βιβλιοθήκη για την Python |
dfuzzer | Ένα εργαλείο ασυμμετρίας για δοκιμές διεργασιών που επικοινωνούν μέσω του μηχανισμού D-Bus IPC και RPC. |
dotdotpwn | Ένα εργαλείο για τη δοκιμή εφαρμογών ιστού για ευπάθειες διαδρομής διαδρομής. |
Dranzer | Ένας ελεγκτής fuzz για τα στοιχεία ελέγχου ActiveX. |
EMFFuzzer | Ένας ενισχυμένος μετρητής fuzz Metafile. |
Αξιοποιήσιμη | Μια επέκταση για το GDB (το GNU debugger) που αναλύει τα εκτελέσιμα Linux και ταξινομεί τα σφάλματα τους με σοβαρότητα σύμφωνα με γνωστά εκμεταλλεύματα. Αρχικά αναπτύχθηκε στο CERT. |
Go-fuzz | Ένας δοκιμαστής fuzz για προγράμματα Go που συγκεντρώνει τα αντικείμενα τους με τυχαίες τιμές. |
grr | Μεταφράζει τα δυαδικά δυαδικά αρχεία 32-bit σε 64-bit, τα οποία τα συγχωνεύουν ως μέρος της διαδικασίας. |
honggfuzz | Εξελικτικός, ανατροφοδοτούμενος fuzzer για υλικό και λογισμικό. |
HTTP / 2 Fuzzer | Ένα fuzzer για εφαρμογές HTTP / 2, που είναι ακόμα διαθέσιμες για λήψη, αλλά δεν αναπτύσσονται πλέον. |
Hodor | Μια "λίγο περισσότερο από εντελώς χαζή" (brute force) fuzzer. |
iFuzzer | Ένας κόμβος γραμμένος σε Python που χρησιμοποιεί Mercurial και Valgrind. |
KEMUfuzzer | Ένα διανομέα για εικονικές μηχανές που εκτελούνται σε πλατφόρμες εξομοίωσης QEMU, VMware, VirtualBox ή BHOCS. |
KernelFuzzer | Ένας κόμβος για κλήσεις συστήματος πυρήνα |
LibFuzzer | Μια βιβλιοθήκη για την εξέλιξη, την εξελικτική, την καθοδηγούμενη από την κάλυψη ανάλυση. |
Netzob | Ένας ασαφιστήρας για πρωτόκολλα επικοινωνιών αντίστροφης μηχανικής. |
Νευρωνικό Fuzzer | Ένα διανομέα που χρησιμοποιεί μηχανική μάθηση (νευρωνικά δίκτυα) για να εκτελέσει τις δοκιμές του. |
Εφιάλτης | Ένα κατανεμημένο διανομέα με εργαλεία διαχείρισης μέσω διαδικτύου. |
Pathgrind | Δυναμική ανάλυση βάσει μονοπατιών για εφαρμογές 32-bit. |
Perf-fuzzer | Ένας κόμβος ειδικά σχεδιασμένος για να ελέγξει την κλήση συστήματος perf_event_open () στον πυρήνα του Linux. |
Pulsar | Ένα θρυμματισμό που "μαθαίνει" τα πρωτόκολλα. |
PyJFuzz | Ένας ψεκαστήρας Python JSON. |
QuickFuzz | Ένας πειραματικός γραμματικός fuzzer που γράφτηκε στο Haskell. |
Radamsa | Ένα γενικό σκοπό. |
Ράντι | Ένας απλός πυγμάχος Python που παράγει τυχαία είσοδο για το δοκιμασμένο πρόγραμμα. |
sfuzz | Απλό fuzz. "Ακριβώς ό, τι ακούγεται - ένας απλός θόρυβος." Περιλαμβάνεται ως μέρος του εργαλείου Kali Linux. |
skipfish | Ένας σαρωτής ασφάλειας εφαρμογών ιστού που αναπτύχθηκε στο Google. |
syntribios | Ένας αυτοματοποιημένος ελεγκτής fuzz για web API, γραμμένο σε Python και συντηρείται από την OpenStack Security Group. |
TriforceAFL | Ένα πλήρες σύστημα ασυρμάτου που χρησιμοποιεί το QEMU. |
Είδος ελάφου της Αμερικής | Ένας σαρωτής ευπάθειας web εφαρμογής. |
Wfuzz | Ένας κόμβος ωμής βίας για εφαρμογές ιστού. |
zzuf | Ένα ντετερμινιστικό, διαφανές fuzzer εισόδου εφαρμογών που αλλάζει τυχαία τα bits στις λειτουργίες εισαγωγής ενός αρχείου. |
Τα ακόλουθα είναι αμαυρώματα ή πλαίσια, τα οποία μπορούν να σας βοηθήσουν να διαχειριστείτε τις δοκιμές σας με αστραπές.
Fuzzing πλαίσιο | Περιγραφή |
---|---|
CERT BFF | Το BFF (Basic Fuzzing Framework), το οποίο αναπτύχθηκε από το CERT, έχει σχεδιαστεί για να εντοπίζει ευπάθειες σε εφαρμογές Windows, macOS και Linux. |
FuzzFlow | Ένα εύθραυστο πλαίσιο στο AngularJS. |
Fuzzinator | Ένα πλαίσιο για την τυχαία δοκιμασία fuzz. |
FuzzLabs | Ένα πλαίσιο δοκιμών γενικού σκοπού. |
Τραπεζίτης | Ένα αυτοματοποιητή / πλαίσιο ελέγχου για τη δοκιμή φυλλομετρητών ιστού. |
Γατούλα | Ένα πλαίσιο δοκιμής Fuzz γραμμένο στην Python. |
ofuzz | Ένα ασαφές πλαίσιο γραμμένο στο OCaml. |
Nodefuzz | Ένα πλαίσιο δοκιμών για web browsers, γραμμένο σε nodejs. |
PassiveFuzzFrameworkOSX | Ένας θόρυβος για τον έλεγχο τρωτών σημείων στον πυρήνα macOS. |
Ροδάκινο Fuzzer | Μια πλατφόρμα για δοκιμές fuzz που μπορούν να "δοκιμάσουν σχεδόν οποιοδήποτε σύστημα για άγνωστα τρωτά σημεία". |
RamFuzz | Ένας ασαφιστήρας για τη δοκιμή των μεμονωμένων παραμέτρων των μεθόδων αντικειμένου. |
Σουλλί | Ένα "πλήρως αυτοματοποιημένο και μη επιτηρούμενο, καθαρό πλαίσιο Python". |
FunFuzzer | Μια ιμάντα Python fuzzing για μηχανές JavaScript και εκδότες DOM, από το Mozilla. |
Bug, Προγραμματιστικοί όροι, Όροι ασφάλειας, Δοκιμές λογισμικού