Κάθε φορά που ακούμε για μια νέα ευπάθεια, εμφανίζεται ένας κρυπτικός κωδικός τύπου CVE-2021-41773 και μια βαθμολογία όπως «7.5 High». Πίσω από αυτά τα σύμβολα κρύβεται ένα ολόκληρο, τυποποιημένο σύστημα που μας επιτρέπει να μιλάμε όλοι την ίδια γλώσσα για τους κινδύνους. Σε αυτόν τον εισαγωγικό οδηγό μαθαίνουμε να διαβάζουμε ένα CVE ID, να αποκωδικοποιούμε ένα CVSS vector και να αντλούμε αξιόπιστη πληροφορία από το NVD — όλα μέσα σε ένα απομονωμένο lab, με στόχο την προτεραιοποίηση, την ανίχνευση και την άμυνα.
1. Γιατί έχει σημασία να διαβάζεις σωστά τις ευπάθειες
Όταν ένας scanner ή μια αναφορά ασφάλειας σου πετάξει δεκάδες ευρήματα, το ζητούμενο δεν είναι να τα κοιτάξεις όλα με τον ίδιο τρόμο, αλλά να καταλάβεις ποια πραγματικά απειλούν τον οργανισμό σου και ποια μπορούν να περιμένουν. Αυτή η ικανότητα προτεραιοποίησης (prioritization) στηρίζεται σε δύο θεμέλια: το CVE, που δίνει σε κάθε ευπάθεια ένα μοναδικό όνομα, και το CVSS, που της δίνει μια μετρήσιμη σοβαρότητα.
Χωρίς αυτά τα δύο, η επικοινωνία γύρω από την ασφάλεια θα ήταν χάος. Ένας κατασκευαστής θα την έλεγε «το bug του Οκτωβρίου», ένας ερευνητής «το path traversal του Apache», ένας άλλος «το CGI issue» — και κανείς δεν θα ήταν σίγουρος ότι μιλάνε για το ίδιο πράγμα. Το CVE λύνει ακριβώς αυτό: ένα αναγνωριστικό, μία ευπάθεια, παγκοσμίως. Το CVSS από την άλλη μετατρέπει την αίσθηση «αυτό φαίνεται σοβαρό» σε έναν αριθμό που μπορείς να συγκρίνεις και να ταξινομήσεις.
Για έναν αρχάριο στο ethical hacking, η δεξιότητα-κλειδί δεν είναι να απομνημονεύσεις CVEs, αλλά να ξέρεις πώς να τα ερμηνεύεις: τι σημαίνει το κάθε γράμμα σε ένα vector, γιατί μια βαθμολογία 9.8 απαιτεί άμεση δράση, και πού βρίσκεις την επίσημη, αξιόπιστη πληροφορία αντί για φήμες.
2. Βασικές έννοιες
Ας ξεκαθαρίσουμε το λεξιλόγιο πριν ανοίξουμε το terminal:
- CVE (Common Vulnerabilities and Exposures): το τυποποιημένο, μοναδικό αναγνωριστικό μιας δημόσια γνωστής ευπάθειας. Το εκδίδουν οργανισμοί που ονομάζονται CNAs (CVE Numbering Authorities) υπό την αιγίδα της MITRE.
- CVSS (Common Vulnerability Scoring System): το ανοιχτό πρότυπο βαθμολόγησης σοβαρότητας, με κλίμακα 0.0–10.0. Η τρέχουσα ευρέως χρησιμοποιούμενη έκδοση είναι η 3.1 (με την 4.0 σε σταδιακή υιοθέτηση).
- NVD (National Vulnerability Database): η βάση δεδομένων του NIST που εμπλουτίζει κάθε CVE με CVSS βαθμολογία, references και τεχνικές λεπτομέρειες. Είναι η πιο συνηθισμένη «επίσημη» πηγή.
- Base / Temporal / Environmental score: το CVSS χωρίζεται σε τρεις ομάδες μετρικών. Το Base (η αμετάβλητη, εγγενής σοβαρότητα) είναι αυτό που βλέπουμε σχεδόν πάντα· τα άλλα δύο το προσαρμόζουν στον χρόνο και στο δικό σου περιβάλλον.
Πώς διαβάζεται ένα CVE ID
Η μορφή είναι πάντα CVE-YYYY-NNNN... — πρόθεμα, έτος ανάθεσης και ένας αύξων αριθμός τουλάχιστον τεσσάρων ψηφίων. Προσοχή: το έτος δηλώνει πότε ανατέθηκε το αναγνωριστικό, όχι απαραίτητα πότε ανακαλύφθηκε ή δημοσιοποιήθηκε η ευπάθεια.
Η κλίμακα σοβαρότητας CVSS 3.1
- 0.0 — None
- 0.1–3.9 — Low
- 4.0–6.9 — Medium
- 7.0–8.9 — High
- 9.0–10.0 — Critical
3. Πρακτικό κομμάτι στο lab
Για παράδειγμα θα χρησιμοποιήσουμε μια πραγματική, πολύ γνωστή ευπάθεια: το CVE-2021-41773, ένα path traversal στον Apache HTTP Server 2.4.49. Όλα εκτελούνται από το Kali μηχάνημα του lab μας (10.10.10.5). Δεν επιτιθέμεθα σε κανένα σύστημα — απλώς διαβάζουμε δημόσια πληροφορία για την ευπάθεια.
Βήμα 1 — Αναγνωρίζοντας τη μορφή ενός CVE
Πρώτα βεβαιωνόμαστε ότι ξέρουμε πώς μοιάζει ένα έγκυρο CVE ID. Ένα απλό regular expression αρκεί για να επικυρώσουμε τη μορφή και να δούμε τα τρία μέρη της.
kali@lab:~/eh-lab$ echo "CVE-2021-41773" | grep -qE '^CVE-[0-9]{4}-[0-9]{4,}$' \
&& echo "valid CVE format"
Το αναγνωριστικό περνά τον έλεγχο. Τα σχόλια δείχνουν την ανατομία του: το πρόθεμα CVE, το έτος ανάθεσης 2021 και τον μοναδικό αύξοντα αριθμό 41773. Αυτή η αυστηρή μορφή είναι που επιτρέπει σε εργαλεία, βάσεις και ανθρώπους να αναφέρονται με βεβαιότητα στην ίδια ακριβώς ευπάθεια.
Βήμα 2 — Αναζήτηση στο NVD
Τώρα ρωτάμε την επίσημη πηγή. Το NVD προσφέρει δωρεάν REST API, οπότε με ένα curl και λίγο jq παίρνουμε την περιγραφή και —το πιο σημαντικό— τη βαθμολογία CVSS.
kali@lab:~/eh-lab$ curl -s \
"https://services.nvd.nist.gov/rest/json/cves/2.0?cveId=CVE-2021-41773" | jq ...
Το NVD επιστρέφει ένα δομημένο JSON. Βλέπουμε την ημερομηνία δημοσίευσης, μια σύντομη περιγραφή του path traversal στον Apache 2.4.49 και το κρίσιμο κομμάτι: base score 7.5, severity HIGH και το vector string CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N. Αυτός ο κωδικός δεν είναι διακοσμητικός — κωδικοποιεί ακριβώς πώς προέκυψε η βαθμολογία.
Βήμα 3 — Αποκωδικοποίηση του CVSS vector
Το vector string είναι η «απόδειξη» πίσω από τον αριθμό. Κάθε ζεύγος γράμματος:τιμή είναι μια μετρική. Μπορούμε να το επαληθεύσουμε προγραμματιστικά με τη βιβλιοθήκη cvss της Python και μετά να το διαβάσουμε μετρική προς μετρική.
kali@lab:~/eh-lab$ python3 -c "from cvss import CVSS3; \
c=CVSS3('CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N'); print(c.scores())"
Η βιβλιοθήκη επιβεβαιώνει 7.5 / High. Διαβάζοντας τις μετρικές: AV:N σημαίνει ότι η επίθεση γίνεται μέσω δικτύου (το χειρότερο δυνατό), AC:L ότι είναι εύκολη, ενώ PR:N και UI:N ότι δεν χρειάζονται ούτε δικαιώματα ούτε αλληλεπίδραση χρήστη. Η τιμή C:H δείχνει υψηλή διαρροή εμπιστευτικότητας (πρόσβαση σε αρχεία), ενώ I:N και A:N δείχνουν ότι από μόνη της αυτή η ευπάθεια δεν αλλοιώνει δεδομένα ούτε ρίχνει την υπηρεσία. Να γιατί μιλάμε για 7.5 και όχι για 9.8: το «καθαρό» path traversal διαβάζει, δεν εκτελεί.
Βήμα 4 — Υπάρχει δημόσιο exploit;
Μια βαθμολογία δείχνει τη δυνητική σοβαρότητα. Το πόσο επείγον είναι στην πράξη εξαρτάται και από το αν κυκλοφορεί έτοιμος κώδικας εκμετάλλευσης. Το searchsploit (offline αντίγραφο του Exploit-DB) μας το απαντά αμέσως.
kali@lab:~/eh-lab$ searchsploit --cve 2021-41773
Υπάρχουν δημόσια, έτοιμα exploits. Αυτό αλλάζει την εικόνα: μια ευπάθεια 7.5 με διαθέσιμο public exploit και ευρεία εκμετάλλευση «στο άγριο» (in the wild) πρέπει να αντιμετωπιστεί με προτεραιότητα ενός critical. Παρατήρησε επίσης ότι το ίδιο exploit αναφέρει και το CVE-2021-42013: ήταν η ελλιπής διόρθωση του πρώτου, που ξανάνοιξε το πρόβλημα με σκορ 9.8 — υπενθύμιση ότι πρέπει να διαβάζουμε τα σχετιζόμενα CVEs, όχι μόνο ένα.
4. Το εργαστηριακό περιβάλλον
Οι εντολές αυτού του άρθρου είναι κυρίως αναζητήσεις πληροφορίας, όμως τις εκτελούμε από ένα απομονωμένο lab ώστε κάθε μελλοντική δοκιμή εκμετάλλευσης να μένει ασφαλής και ελεγχόμενη:
- Επιτιθέμενος: μια εικονική μηχανή Kali Linux (
10.10.10.5) μεsearchsploit,jqκαι τη βιβλιοθήκηpython3-cvssεγκατεστημένα. - Στόχος για πρακτική: μια σκοπίμως ευάλωτη VM (π.χ. ένα container με Apache 2.4.49) στο ίδιο υποδίκτυο
10.10.10.0/24, ώστε να δοκιμάσεις την ευπάθεια μόνο τοπικά. - Δικτύωση: όλες οι VMs σε Host-Only ή Internal Network adapter — ποτέ bridged. Η αναζήτηση στο NVD απαιτεί Internet, αλλά οι επιθετικές δοκιμές μένουν εντός του απομονωμένου δικτύου.
5. Ηθικό & νομικό πλαίσιο
Το να διαβάζεις πληροφορία για CVEs και CVSS είναι απολύτως νόμιμο — πρόκειται για δημόσια, εκπαιδευτική γνώση. Η γραμμή χαράσσεται όταν περνάς από τη μελέτη στην εκμετάλλευση:
- Εξουσιοδότηση πρώτα: η δοκιμή ενός exploit επιτρέπεται μόνο σε συστήματα που σου ανήκουν ή για τα οποία έχεις ρητή, γραπτή άδεια (rules of engagement).
- Υπεύθυνη χρήση της πληροφορίας: το ίδιο CVSS vector που δείχνει σε έναν επιτιθέμενο πόσο «εύκολο» είναι ένα bug, δείχνει σε μια blue team πού να ρίξει πρώτα το βάρος της διόρθωσης.
- Οπτική άμυνας: η κατανόηση των CVE/CVSS τροφοδοτεί το vulnerability management — έγκαιρο patching των high/critical, παρακολούθηση threat feeds για ενεργή εκμετάλλευση και τεκμηριωμένη προτεραιοποίηση αντί για πανικό.
Ο στόχος του ethical hacking δεν είναι η επίθεση αλλά η θωράκιση. Το CVSS score είναι ένα ουδέτερο εργαλείο μέτρησης· η ερμηνεία του μέσα στο πραγματικό context του οργανισμού είναι δική σου ευθύνη.
6. Βασικά συμπεράσματα
- Το CVE δίνει σε κάθε ευπάθεια ένα μοναδικό όνομα (
CVE-YYYY-NNNN) ώστε όλοι να μιλάμε για το ίδιο πράγμα. - Το CVSS τη μετατρέπει σε αριθμό 0.0–10.0· θυμήσου τη ζώνη: 7.0+ High, 9.0+ Critical.
- Το vector string είναι η «απόδειξη» πίσω από τη βαθμολογία — μάθε να διαβάζεις τα AV/AC/PR/UI/S/C/I/A για να καταλαβαίνεις γιατί ένα bug είναι σοβαρό.
- Χρησιμοποίησε το NVD ως αξιόπιστη πηγή και το searchsploit για να δεις αν υπάρχει δημόσιο exploit — η διαθεσιμότητα exploit ανεβάζει την πραγματική προτεραιότητα.
- Το Base score δεν είναι όλη η ιστορία: το πραγματικό context (έκθεση στο Internet, ενεργή εκμετάλλευση, σχετιζόμενα CVEs) καθορίζει το πόσο επείγον είναι.
- Διάβαζε ελεύθερα, αλλά δοκίμαζε εκμετάλλευση μόνο σε απομονωμένο lab ή με γραπτή εξουσιοδότηση.
Από τη θεωρία στην πράξη. Η Audax Cybersecurity προσφέρει επαγγελματικές υπηρεσίες offensive security — penetration testing & offensive validation — ενώ για όσους ξεκινούν το ταξίδι τους στο ethical hacking, το #1 ελληνικό βιβλίο «Ethical Hacking — Η Κρυφή Γνώση» είναι ο ιδανικός οδηγός.
Θέλετε συνεχή επικύρωση της ασφάλειάς σας — όχι έλεγχο μία φορά τον χρόνο;
Το Erevos AI είναι η ετήσια, managed υπηρεσία CTEM της Audax — ενοποιεί exposure mapping, penetration testing, adversary emulation, detection validation & remediation σε έναν συνεχή, αποδεικτικό κύκλο. Human-led. Machine-scaled. Technically proven. Ευθυγραμμισμένο με NIS2 & DORA.
Ανακαλύψτε το Erevos AI →Χρειάζεστε Penetration Testing για τον οργανισμό σας;
Περιγράψτε το scope του ελέγχου μέσα από το δομημένο ερωτηματολόγιο και λάβετε εξατομικευμένη τεχνική & οικονομική προσφορά από την ομάδα Offensive Security της Audax. Χωρίς αυτόματη τιμή ή δέσμευση — η προσφορά αποστέλλεται μετά από τεχνική αξιολόγηση του scope.
Ζητήστε προσφορά Penetration Testing →
