Μονάδες
1. Εισαγωγή στην Τεχνητή Νοημοσύνη στην Κυβερνοασφάλεια: Ρόλοι, Όρια, Αμυντική Ηθική και Επαλήθευση 2. Ανάλυση καταγραφής και SIEM: Διαχωρισμός συμβάντος από θόρυβο με τεχνητή νοημοσύνη 3. Κυνήγι απειλών: Καθιέρωση υποθέσεων και αναζήτηση σημάτων με τεχνητή νοημοσύνη 4. Σάρωση ευπάθειας και ιεράρχηση: Σωστή ταξινόμηση με CVE, CVSS, EPSS και Context 5. Αντιμετώπιση περιστατικών: Ταχεία ανάλυση, βιβλίο και ελεγχόμενη απόφαση με τεχνητή νοημοσύνη 6. Ψάρεμα και Ανάλυση Κοινωνικής Μηχανικής: Αναθεώρηση ηλεκτρονικού ταχυδρομείου, διεύθυνσης URL και κεφαλίδας 7. Ασφαλής αναθεώρηση κώδικα και στατική ανάλυση: Εύρεση τρωτών σημείων με τεχνητή νοημοσύνη 8. Ευφυΐα απειλών: IOC, TTP, MITER ATT&CK και Sensemaking with Artificial Intelligence 9. Αναφορά και Επικοινωνία: Από τα ευρήματα στις τεχνικές εκθέσεις έως την περίληψη 10. Όρια, Απόρρητο, Δεοντολογία και Απαγόρευση Μη εξουσιοδοτημένης Χρήσης 11. Ροή εργασιών SOC από άκρο σε άκρο, αυτοματισμός (SOAR), διαχείριση ποιότητας και αυτοέλεγχος
Μονάδα 7 / 11

Ασφαλής αναθεώρηση κώδικα και στατική ανάλυση: Εύρεση τρωτών σημείων με τεχνητή νοημοσύνη

Κέρδη:

  • Δυνατότητα χρήσης τεχνητής νοημοσύνης ως δεύτερο μάτι και επισήμανση ευπαθειών της κατηγορίας OWASP (ένεση, σκληρό μυστικό, έλεγχος πρόσβασης) στον κώδικα δίνοντας πλαίσιο
  • Δυνατότητα εξάλειψης ψευδών θετικών στοιχείων που παράγονται από την τεχνητή νοημοσύνη με βάση το πλαίσιο και αποτροπή αντιμετώπισης κάθε ευρήματος ως πραγματικής ευπάθειας χωρίς την επικύρωσή του
  • Δυνατότητα αναγνώρισης ότι η διόρθωση που προτείνεται από την τεχνητή νοημοσύνη μπορεί να εισάγει νέα τρωτά σημεία/σφάλματα και να περάσει κάθε ενημέρωση κώδικα από την πύλη αναθεώρησης και δοκιμής

Τα τρωτά σημεία στο λογισμικό είναι από τα πιο ακριβά τρωτά σημεία επειδή είναι ενσωματωμένα στο προϊόν από την αρχή και διανέμονται σε εκατομμύρια χρήστες. Η ασφαλής αναθεώρηση κώδικα είναι η διαδικασία ανάγνωσης του πηγαίου κώδικα γραμμή προς γραμμή και εντοπισμού τρωτών σημείων — ένεση SQL, ευπάθεια ελέγχου ταυτότητας, κωδικοποιημένος κωδικός πρόσβασης, εσφαλμένη εξουσιοδότηση — προτού τεθούν σε παραγωγή. Όταν γίνεται με το χέρι, είναι αργό και κουραστικό. Είναι εύκολο να χάσετε μια ευπάθεια σε μια μεγάλη βάση κώδικα.

Το AI είναι ισχυρό στην αναθεώρηση κώδικα για δύο λόγους: ο κώδικας είναι επίσης μια γλώσσα και το AI είναι καλό στην αναγνώριση προτύπων. Η τεχνητή νοημοσύνη μπορεί γρήγορα να επισημάνει επικίνδυνα μοτίβα σε ένα κομμάτι κώδικα (θέτοντας τα στοιχεία του χρήστη απευθείας στο ερώτημα, μη κρυπτογραφημένη αποθήκευση δεδομένων, έλλειψη επικύρωσης εισόδου), να εξηγήσει γιατί καθένα είναι επικίνδυνο και να προτείνει μια διόρθωση. Αλλά το AI δεν βλέπει ολόκληρο το λειτουργικό πλαίσιο του κώδικα (η είσοδος μπορεί να διαγραφεί σε άλλο επίπεδο), μπορεί να εφεύρει μια ευπάθεια που δεν υπάρχει (false positive) ή να χάσει μια πραγματική ευπάθεια (false negative) και το πιο σημαντικό, η "διόρθωση" που προτείνει μπορεί να εισάγει μια νέα ευπάθεια ή σφάλμα. Το AI είναι ένα δεύτερο μάτι και δείκτης στην αναθεώρηση κώδικα. Ο προγραμματιστής και ο ειδικός ασφαλείας αποφασίζουν εάν ένα εύρημα είναι μια πραγματική ευπάθεια και εάν η επιδιόρθωση είναι σωστή και ασφαλής.

Βήματα ελέγχου κώδικα

  1. Δώστε πεδίο εφαρμογής και πλαίσιο. Ποια γλώσσα, ποιο πλαίσιο, πού παίρνει είσοδο αυτός ο κώδικας, πού δίνει έξοδο, σε ποιο επίπεδο λειτουργεί; Η αναθεώρηση κώδικα χωρίς πλαίσιο παράγει ψευδώς θετικά αποτελέσματα.
  2. Σάρωση για επικίνδυνα μοτίβα. Αναζητήστε γνωστές κατηγορίες ευπάθειας AI (όπως το OWASP Top 10): ένεση, έλεγχος ταυτότητας, αποκάλυψη ευαίσθητων δεδομένων, έλεγχος πρόσβασης.
  3. Να δικαιολογείται κάθε εύρημα. Για κάθε σημαία: ποια γραμμή, ποια κατηγορία ευπάθειας, πώς μπορεί να αξιοποιηθεί, ποια είναι τα στοιχεία. Ένα αδικαιολόγητο εύρημα δεν λαμβάνεται σοβαρά υπόψη.
  4. Καταργήστε τα ψευδώς θετικά. Αν η είσοδος εκκαθαρίζεται πραγματικά, είναι αυτή η διαδρομή πραγματικά προσβάσιμη — ελέγξτε με το περιβάλλον.
  5. Επαληθεύστε την επιδιόρθωση. Επιβεβαιώστε ότι η ενημερωμένη έκδοση κώδικα που προτείνεται από την τεχνητή νοημοσύνη κλείνει πραγματικά την ευπάθεια, δεν εισάγει νέα τρωτά σημεία/σφάλματα και έχει περάσει τη δοκιμή.
  6. Ανθρώπινη έγκριση. Ο προγραμματιστής + ειδικός σε θέματα ασφάλειας εξετάζει το εύρημα και επιδιορθώνει. Έτσι μπαίνει στο αποθετήριο κωδικών.

Όροι: SAST (Static Application Security Testing — στατική δοκιμή ασφάλειας που αναλύει τον πηγαίο κώδικα χωρίς να τον εκτελεί). DAST (Dynamic — δυναμική δοκιμή που ελέγχει την εφαρμογή που εκτελείται εξωτερικά). Το OWASP Top 10 είναι η τυπική λίστα με τις πιο κοινές ευπάθειες εφαρμογών ιστού. Το Injection είναι ένα θέμα ευπάθειας που προκαλείται από την ερμηνεία της εισόδου χρήστη ως εντολή/ερώτημα (π.χ. injection SQL). Το παραμετροποιημένο ερώτημα είναι η σωστή μέθοδος που αποτρέπει την έγχυση διαχωρίζοντας την είσοδο από τον κώδικα.

Πίνακας κοινών τάξεων ευπάθειας

Κατηγορία ευπάθειας

Σύμπτωμα (σε κωδικό)

σωστή λύση

παγίδα του AI

SQL injection

Σύνδεση εισόδου στο ερώτημα

Παραμετροποιημένο ερώτημα

Μπορεί να αγνοήσει την απολύμανση

σκληρά κωδικοποιημένο μυστικό

Κωδικός πρόσβασης/κλειδί σε κωδικό

Secret χρηματοκιβώτιο (θόλος), env

ψευδώς θετικό (δείγμα/τεστ)

Αδύναμος έλεγχος ταυτότητας

Λείπει/λάθος έλεγχος

Ισχυρός, κεντρικός έλεγχος

χάνει το πλαίσιο

Ελαττωματικός έλεγχος πρόσβασης

Χωρίς έλεγχο εξουσιοδότησης

Εξουσιοδότηση από την πλευρά του διακομιστή

Δεν κατανοεί πολύπλοκη ροή

Αποκάλυψη ευαίσθητων δεδομένων

Αποθήκευση/καταγραφή χωρίς κωδικό πρόσβασης

Κρυπτογράφηση, κάλυψη

Δεν μπορώ να γνωρίζω την κρισιμότητα

Ανασφαλής σειριοποίηση

Αποζωνοποίηση αναξιόπιστων δεδομένων

Ασφαλής ανάλυση

Λείπει το σπάνιο μοτίβο

τρεις μίνι θήκες

Περίπτωση 1 — Λήψη της πραγματικής ένεσης. Ένας προγραμματιστής έχει το AI να εξετάσει μια λειτουργία πρόσβασης δεδομένων. Το AI σηματοδοτεί τη γραμμή όπου η τιμή userId από τον χρήστη συνδέεται απευθείας στο κείμενο SQL και λέει "αυτή είναι η κλασική ένεση SQL, μετατρέψτε την σε παραμετροποιημένο ερώτημα". Παρέχει διόρθωση δείγματος. Ο προγραμματιστής επιβεβαιώνει ότι η είσοδος δεν έχει απολυμανθεί αλλού, επαληθεύει ότι πρόκειται για μια πραγματική ευπάθεια, εφαρμόζει το προτεινόμενο παραμετροποιημένο ερώτημα και γράφει μια δοκιμή. Η τεχνητή νοημοσύνη τόνισε την ευπάθεια. οι δοκιμές επαλήθευσης και διόρθωσης προήλθαν από τον προγραμματιστή.

Περίπτωση 2 — Ψευδώς θετικό σταθερό μυστικό. Το AI βλέπει τη γραμμή κωδικού πρόσβασης = "test1234" σε ένα αρχείο και λέει "κρίσιμος: σκληρός κωδικός πρόσβασης". Ο προγραμματιστής ελέγχει το πλαίσιο: αυτό είναι ένα αρχείο δοκιμής μονάδας, εικονικά δεδομένα δοκιμής, που δεν κυκλοφόρησε στην παραγωγή και δεν μεταφέρθηκε σε πραγματικό σύστημα. Το εύρημα είναι ψευδώς θετικό. Ο προγραμματιστής το τεκμηριώνει αυτό, αλλά δεν αναλαμβάνει δράση γιατί δεν είναι πραγματικό μυστικό. Μάθημα: Το σύμβολο "σκληρού μυστικού" της τεχνητής νοημοσύνης πρέπει να εξαλειφθεί ανάλογα με το πλαίσιο. Δεν είναι κάθε χορδή μυστικό.

Περίπτωση 3 — Νέα διόρθωση ευπάθειας. Το AI προτείνει μια επιδιόρθωση για μια ευπάθεια XSS (cross-site scripting). αλλά ο κώδικας που προτείνει διαγράφει την είσοδο σε λάθος μέρος και παρακάμπτει την κωδικοποίηση εξόδου σε άλλη περιοχή. Ως αποτέλεσμα, το κενό δεν κλείνει εντελώς. Ο ειδικός ασφαλείας εξετάζει την επιδιόρθωση, παρατηρεί την κωδικοποίηση που λείπει και τη διορθώνει στο σωστό επίπεδο. Μάθημα: Η ενημέρωση κώδικα που προτείνει η τεχνητή νοημοσύνη δεν είναι αυτόματα ασφαλής. Κάθε επιδιόρθωση ελέγχεται και δοκιμάζεται.

Αδύναμη προτροπή / Ισχυρή προτροπή

Αδύναμη προτροπή:

Υπάρχει κάποιο κενό σε αυτόν τον κώδικα, διορθώστε το: [code]

Αυτή η προτροπή δεν δίνει κανένα πλαίσιο (γλώσσα, πλαίσιο, πηγή εισόδου), δεν ζητά αιτιολόγηση, δεν αμφισβητεί το ψευδώς θετικό και είναι ανοιχτό στην τυφλή αποδοχή της διόρθωσης που παράγεται από την τεχνητή νοημοσύνη. Η τεχνητή νοημοσύνη ανάμειξε ενδείξεις τόσο πραγματικής ευπάθειας όσο και ανύπαρκτης.

Ισχυρή προτροπή:

Ο ρόλος σας: βοηθός που είναι το ΔΕΥΤΕΡΟ ΜΑΤΙ για τον προγραμματιστή σε ασφαλή έλεγχο κώδικα. Λήψη αποφάσεων. εξετάστε την άμεση εφαρμογή της επιδιόρθωσης. Κωδικός: [προσδιορίστε τη γλώσσα/πλαίσιο].Πλαίσιο: αυτή η συνάρτηση [πηγή εισαγωγής: π.χ. λαμβάνει [εξωτερικό αίτημα HTTP], γράφει στον [προορισμός εξόδου]. Η αποστολή σας: (1) επισημάνετε πιθανές ευπάθειες με την κλάση OWASP, δώστε τον αριθμό γραμμής + γιατί είναι επικίνδυνο + πώς γίνεται η εκμετάλλευση + στοιχεία για καθεμία, (2) γράψτε τουλάχιστον 1 ψευδώς θετικό σενάριο για κάθε εύρημα (π.χ. εάν η είσοδος έχει απολυμανθεί σε άλλο επίπεδο), (3) προτείνετε μια διόρθωση αλλά με το σύμβολο "[επανεξέταση + εγγραφή δοκιμής]". Αξιολογήστε επίσης εάν η επιδιόρθωση εισάγει νέα τρωτά σημεία/ σφάλματα. Προσθήκη ψεύτικης ευπάθειας.[code]

Η ισχυρή προτροπή δίνει το πλαίσιο, ζητά κλάση OWASP και αποδεικτικά στοιχεία, ερωτά ψευδώς θετικά και κινδύνους αποκατάστασης, αναγκάζει την ανθρώπινη επανεξέταση.

Αντιγράψιμα πρότυπα προτροπών

ΠΡΟΤΥΠΟ ΣΑΡΩΣΗΣ ΕΥΡΩΤΟΤΗΤΑΣ Εξετάστε τον κωδικό [γλώσσας/πλαισίου] για το OWASP Top 10. Για κάθε πιθανό εύρημα: αριθμός γραμμής, κατηγορία ευπάθειας, γιατί είναι επικίνδυνο, εκμετάλλευση δείγματος, ισχύς αποδεικτικών στοιχείων (βέβαιο/πιθανό/αδύναμο). Πλαίσιο: είσοδος [πηγή], έξοδος [στόχος]. Προσθήκη κατασκευασμένων ευρημάτων. Εάν δεν είστε σίγουροι, πληκτρολογήστε "[πρέπει να επαληθευτεί]". Κωδικός: [επικόλληση]

ΨΕΥΔΕΣ ΘΕΤΙΚΟ ΜΟΤΙΛΟ ΕΞΑΛΕΙΨΗΣ Για την ακόλουθη εύρεση κώδικα, παραθέστε τα σενάρια στα οποία ΔΕΝ υπάρχει πραγματική ευπάθεια: θα μπορούσε η είσοδος να διαγραφεί σε άλλο επίπεδο, είναι αυτή η διαδρομή προσβάσιμη, είναι αυτή η τιμή δοκιμή/δείγμα, είναι το πλαίσιο που προστατεύεται αυτόματα. Γράψτε πώς να επιβεβαιώσετε για κάθε ένα. Εύρεση: [επικόλληση]

ΕΠΙΔΙΟΡΘΩΣΗ ΠΡΟΤΥΠΟ ΑΞΙΟΛΟΓΗΣΗΣ Προτείνετε μια επιδιόρθωση για την ακόλουθη ευπάθεια. Στη συνέχεια, κάντε κριτική στη δική σας διόρθωση: (1) κλείνει πραγματικά την ευπάθεια, (2) εισάγει μια νέα ευπάθεια/σφάλμα, (3) ποια δοκιμή πρέπει να γράψω (θετική και αρνητική περίπτωση), (4) αντίκτυπος απόδοσης/λειτουργικότητας. Θα ελέγξω και θα δοκιμάσω την επιδιόρθωση. Ευπάθεια + κωδικός: [επικόλληση]

ΠΡΟΤΥΠΟ ΔΙΔΑΣΚΑΛΙΑΣ ΑΣΦΑΛΕΙΑΣ ΠΡΟΤΥΠΟΥ για την τάξη ευπάθειας [π.χ. SQL injection] εμφανίζουν συγκριτικά ασφαλές μοτίβο πληκτρολόγησης και κοινά λανθασμένα μοτίβα σε αυτήν τη γλώσσα/πλαίσιο. Γενικός κανόνας + δώστε παράδειγμα κώδικα. αλλά θέλω να ρωτήσετε το πλαίσιο πριν το εφαρμόσετε στον κώδικά μου. Γλώσσα/πλαίσιο: [γράψτε]

Συνήθη λάθη

  • Αναθεώρηση χωρίς πλαίσιο. Χωρίς γλώσσα, πλαίσιο και πλαίσιο εισόδου/εξόδου, η τεχνητή νοημοσύνη συγχέει τόσο τα πραγματικά όσο και τα ψευδή ευρήματα. Φροντίστε να δώσετε το πλαίσιο.
  • Μπερδεύοντας κάθε σημάδι με πραγματική αδυναμία. Η τεχνητή νοημοσύνη παράγει ψευδώς θετικά αποτελέσματα (δεδομένα δοκιμής, καθαρισμός εισόδου σε άλλο επίπεδο). Κοσκινίστε κάθε εύρημα με το πλαίσιο.
  • Εφαρμόζοντας τυφλά τη διόρθωση του AI. Η προτεινόμενη ενημέρωση κώδικα μπορεί να εισάγει νέα τρωτά σημεία/ σφάλματα. αναθεωρήστε και γράψτε τεστ.
  • Εμπιστεύοντας το ψευδώς αρνητικό. Ακόμα κι αν το AI λέει "χωρίς τρωτά σημεία", εξετάστε μόνοι σας τα κρίσιμα μονοπάτια. Η στατική σάρωση δεν εντοπίζει κάθε ευπάθεια.
  • Δίνοντας τον κωδικό/μυστικό στο εξωτερικό εργαλείο. Ο ιδιωτικός κώδικας και τα πραγματικά μυστικά (κλειδί, κωδικός πρόσβασης) είναι πνευματική ιδιοκτησία και ευπάθεια. ανωνυμοποιήστε ή χρησιμοποιήστε εταιρικά, μεμονωμένα εργαλεία.
Συμβουλή: Όταν έχετε τον κωδικό ελέγχου AI, το πιο αποτελεσματικό φίλτρο είναι να ζητάτε την «ισχύ των αποδεικτικών στοιχείων» (βέβαιο/πιθανό/αδύναμο) για κάθε εύρημα. Τα περισσότερα ευρήματα με την ένδειξη «αδύναμα» είναι ψευδώς θετικά. κατανέμεις την ενέργειά σου στους «σίγουρους».
Προσοχή: Η προτεινόμενη επιδιόρθωση ασφαλείας της τεχνητής νοημοσύνης δεν πρέπει να εισέρχεται στην αποθήκη χωρίς να ελεγχθεί. Μια εσφαλμένη "διόρθωση" μπορεί να αφήσει ανοιχτή την ευπάθεια και να οδηγήσει σε λειτουργικό σφάλμα στην παραγωγή. Κάθε ενημέρωση κώδικα περνά από την πύλη αναθεώρησης και δοκιμής.

Συνοπτικά

Η αναθεώρηση ασφαλούς κώδικα είναι ο φθηνότερος τρόπος για να συλλάβετε τα τρωτά σημεία προτού τεθούν σε παραγωγή, και δεδομένου ότι ο κώδικας είναι γλώσσα, η τεχνητή νοημοσύνη γίνεται ένα ισχυρό δεύτερο μάτι εδώ: επισημαίνει επικίνδυνα μοτίβα, εξηγεί τον κίνδυνο, προτείνει διορθώσεις. Ωστόσο, το AI δεν βλέπει ολόκληρο το λειτουργικό πλαίσιο, παράγει ψευδώς θετικά και ψευδώς αρνητικά και η ενημέρωση κώδικα που προτείνει μπορεί να εισάγει νέα τρωτά σημεία. Έτσι, η αναθεώρηση έχει έξι βήματα (πλαίσιο, έλεγχος, αιτιολόγηση, ψευδώς θετική εξάλειψη, επαλήθευση επιδιόρθωσης, ανθρώπινη έγκριση) και η απόφαση ανήκει στον προγραμματιστή και στον ειδικό σε θέματα ασφάλειας. Τρεις αρχές: κανένα εύρημα δεν ερμηνεύεται χωρίς πλαίσιο, κάθε σημάδι εξαλείφεται με το πλαίσιο, καμία επιδιόρθωση δεν μπαίνει στην αποθήκευση χωρίς δοκιμή. Και ο κώδικας/μυστικό δεν δίνεται ποτέ σε ένα εξωτερικό εργαλείο χωρίς ανωνυμοποίηση.

Εργασία εφαρμογής

Πάρτε ένα δείγμα απόσπασμα κώδικα (είτε αφαιρώντας ευαίσθητα μέρη από τον δικό σας κώδικα είτε ένα δείγμα κώδικα με τρωτά σημεία). Ζητήστε από το AI να το εξετάσει με το πρότυπο «Σάρωση ευπάθειας». Εφαρμόστε το πρότυπο "Εσφαλμένη θετική εξάλειψη" για κάθε εύρημα και εξαλείψτε τα πραγματικά. Κάντε τη διόρθωση του πιο σοβαρού ευρήματος με το πρότυπο "Αξιολόγηση αποκατάστασης", ελέγξτε το μόνοι σας και γράψτε ένα θετικό + ένα αρνητικό τεστ. Σημειώστε πόσα ευρήματα ήταν ψευδώς θετικά.

λίστα ελέγχου

  • [ ] Έδωσα τη γλώσσα, το πλαίσιο και το πλαίσιο εισόδου/εξόδου πριν ελέγξω τον κώδικα.
  • [ ] Ζήτησα τον αριθμό γραμμής, την κατηγορία ευπάθειας, τη διαδρομή εκμετάλλευσης και στοιχεία για κάθε εύρημα.
  • [ ] Έλεγξα κάθε εύρημα για ψευδώς θετικά με βάση το πλαίσιο.
  • [ ] Δεν εφάρμοσα τυφλά τη διόρθωση του AI. Εξέτασα και έγραψα ένα τεστ.
  • [ ] Παρά την έξοδο "Χωρίς ευπάθειες", εξέτασα μόνος μου τις κρίσιμες διαδρομές.
  • [ ] Ανωνυμοποίησα τον κώδικα/τα μυστικά ή χρησιμοποίησα εταιρικά απομονωμένα εργαλεία.
  • [ ] Πέρασα την ανακάλυψη και τη διόρθωση μέσω της έγκρισης προγραμματιστή + ασφαλείας.