Εξετάζουμε το mcp-security-hub της FuzzingLabs: μια συλλογή ενσωματώσεων που συνδέει βοηθούς τεχνητής νοημοσύνης με εργαλεία αναγνώρισης, σάρωσης και ανάλυσης. Τι διευκολύνει, τι δείχνουν οι περιορισμένες εργαστηριακές δοκιμές της Audax και ποιοι έλεγχοι απαιτούνται πριν του δοθεί πρόσβαση σε πραγματικές υποδομές.
Εισαγωγή
TL;DR (EN): MCP Security Hub connects AI assistants to security tooling through MCP integrations. This article distinguishes advertised MCP capabilities from underlying applications, examines the reported Nmap and Nuclei lab checks, and separates metadata inspection from automated tool-poisoning detection. Containerization and a valid MCP response do not, by themselves, prove isolation or scan correctness.
Ένας βοηθός τεχνητής νοημοσύνης μπορεί να κάνει περισσότερα από το να συνοψίζει μια αναφορά: εφόσον του δοθεί η κατάλληλη πρόσβαση, μπορεί να ζητήσει την εκτέλεση εργαλείων και να επεξεργαστεί τα αποτελέσματά τους. Αυτό δημιουργεί δυνατότητες αυτοματοποίησης, αλλά και πρόσθετη ευθύνη για εκείνον που σχεδιάζει τη σύνδεση.
Το Model Context Protocol (MCP) είναι ένα ανοιχτό πρωτόκολλο επικοινωνίας εφαρμογών AI με εξωτερικές δυνατότητες. Στην περίπτωση των εργαλείων, ο server περιγράφει τις διαθέσιμες λειτουργίες και τις παραμέτρους τους και ο client υποβάλλει κλήσεις. Το μοντέλο μπορεί να προτείνει μια ενέργεια· η εφαρμογή και οι μηχανισμοί ελέγχου πρέπει να αποφασίζουν αν επιτρέπεται η εκτέλεσή της. Το πρωτόκολλο δεν εγγυάται από μόνο του ότι η ενέργεια είναι σωστή ή εξουσιοδοτημένη.[1][6][7]
Το mcp-security-hub της FuzzingLabs δεν αντικαθιστά το Nmap, το Nuclei ή το sqlmap. Παρέχει ενσωματώσεις και συσκευασία για την πρόσβαση σε εργαλεία αυτού του είδους μέσω MCP.
Το README αναφέρει 38 MCP servers και 300+ security tools. Ο αριθμός «300+» δεν πρέπει να μεταφέρεται ως «300 διαφορετικά εγκατεστημένα προγράμματα»: στη συλλογή προσμετρώνται λειτουργίες που εκτίθενται μέσω MCP, με περισσότερες από μία λειτουργίες ανά υποκείμενη εφαρμογή. Ο ακριβής αριθμός εξαρτάται από την έκδοση και χρειάζεται καταγραφή από τα πραγματικά tools/list, όχι μόνο αναπαραγωγή του README.[1]
Σκοπός της αξιολόγησης είναι να ξεχωρίσει η πρακτική χρησιμότητα από την υπερβολή. Μια λειτουργική σύνδεση AI–εργαλείων δεν ισοδυναμεί με ολοκληρωμένο penetration test ούτε με ασφαλή αυτόνομη λειτουργία.
Τι είναι το MCP Security Hub
Το αποθετήριο διατίθεται με άδεια MIT για τον δικό του κώδικα. Αυτό δεν αλλάζει τις άδειες χρήσης, τους εμπορικούς όρους ή τις απαιτήσεις λογαριασμού των εργαλείων και υπηρεσιών που ενσωματώνει.[1]
Η συλλογή περιλαμβάνει ενσωματώσεις για αναγνώριση υποδομών, ελέγχους εφαρμογών ιστού, ανάλυση εκτελέσιμων αρχείων, cloud, πηγαίο κώδικα, διαπιστευτήρια, πληροφορίες απειλών και άλλες εργασίες. Ενδεικτικά συναντάμε Nmap, Nuclei, sqlmap, ffuf, radare2, Semgrep, Gitleaks και BloodHound. Ορισμένες υλοποιήσεις περιέχονται στο έργο, ενώ άλλες αξιοποιούν ανεξάρτητα upstream projects.[1]
Δεν χρειάζεται να στηθεί ολόκληρη η συλλογή. Η επιλογή των απαραίτητων ενσωματώσεων περιορίζει τις εξαρτήσεις, τις απαιτήσεις συντήρησης και την πρόσβαση που παρέχεται στην εφαρμογή AI.
Μια σημαντική εξαίρεση είναι το meta/mcp-scan. Η δική του τεκμηρίωση το παρουσιάζει ως εργαλείο ελέγχου ρυθμίσεων MCP που συνήθως εκτελείται αυτόνομα, όχι ως έναν ακόμη MCP server που προσφέρει εργαλεία στο μοντέλο. Στο άρθρο το αποκαλούμε σαρωτή/εργαλείο επιθεώρησης MCP, όχι «meta server».[5]
Η εγκατάσταση ενός wrapper επίσης δεν εγγυάται ότι κάθε λειτουργία του θα είναι διαθέσιμη: μπορεί να απαιτούνται πρόσθετα αρχεία, ειδικά δικαιώματα, άδεια χρήσης, υπηρεσία backend ή API key.
Γιατί έχει αξία για επαγγελματίες κυβερνοασφάλειας
Ενοποιεί την πρόσβαση σε διαφορετικά εργαλεία. Μια ομάδα μπορεί να χρησιμοποιεί κοινό τρόπο ανακάλυψης λειτουργιών και υποβολής αιτημάτων, αντί για διαφορετική ειδική διασύνδεση με κάθε εφαρμογή. Αυτό είναι οφέλος ενοποίησης, όχι απόδειξη τεχνικής ορθότητας των αποτελεσμάτων.[1][7]
Μπορεί να μειώσει επαναλαμβανόμενη εργασία. Η επιλογή παραμέτρων, η ταξινόμηση αποτελεσμάτων και η σύνταξη πρώτης περίληψης είναι υποψήφιες εργασίες αυτοματοποίησης. Δεν παραθέτουμε ποσοστό εξοικονόμησης χρόνου, επειδή το συγκεκριμένο υλικό δεν περιλαμβάνει συγκριτική μέτρηση χειροκίνητης και AI-assisted διαδικασίας.
Προσφέρει αφετηρία για μελέτη της ασφάλειας AI ενσωματώσεων. Όταν το μοντέλο διαβάζει δεδομένα από εξωτερικά εργαλεία, περιγραφές ή ιστοσελίδες, πρέπει να αντιμετωπίζει αυτό το περιεχόμενο ως μη έμπιστο. Η διερεύνηση prompt injection και tool poisoning έχει νόημα, αρκεί να διαχωρίζεται η ορατότητα ενός ύποπτου κειμένου από την απόδειξη ότι εντοπίστηκε ή αποτράπηκε μια επίθεση.[15]
Η τεχνική ευθύνη παραμένει στην ομάδα που χρησιμοποιεί τα εργαλεία. Η φυσική γλώσσα δεν καταργεί την ανάγκη κατανόησης του στόχου, των παραμέτρων και των πιθανών επιπτώσεων.
Εγκατάσταση και αρχική παραμετροποίηση
Τι ακριβώς καλύπτει ο οδηγός
Τα παρακάτω βήματα αποτελούν αναθεωρημένη πρόταση για επανάληψη ενός περιορισμένου εργαστηριακού ελέγχου. Δεν είναι αυτούσιο αρχείο των παλαιότερων δοκιμών και δεν συνοδεύονται από νέα αποτελέσματα εκτέλεσης.
Η δοκιμή αφορά Nmap και Nuclei, όχι ολόκληρη τη συλλογή. Γίνεται σε αποκλειστική εργαστηριακή μηχανή, χωρίς εταιρικά διαπιστευτήρια και χωρίς πρόσβαση σε μη εξουσιοδοτημένους στόχους. Ελέγχουμε πρώτα τον κώδικα και τα images που πρόκειται να εκτελεστούν.
Προαπαιτούμενα
Χρειάζονται Docker, Git και, για το βοηθητικό παράδειγμα client, Python 3.11 ή νεότερη. Το Docker Compose χρειάζεται μόνο αν επιλεγεί η αντίστοιχη διαδρομή ανάπτυξης. Η υποστήριξη συγκεκριμένων λειτουργιών εξαρτάται από τη φιλοξενούσα πλατφόρμα, το δίκτυο και τα πραγματικά δικαιώματα της διεργασίας.
Για απλό έλεγχο υπηρεσίας δεν απαιτείται να δοθούν αυτομάτως δικαιώματα raw sockets. Τα SYN scans και άλλες λειτουργίες Nmap έχουν διαφορετικές απαιτήσεις από ένα TCP connect scan. Στο Docker Desktop τα Linux containers τρέχουν σε Linux VM· επομένως η απόλυτη διατύπωση «τα SYN scans απαιτούν native Linux host» δεν είναι σωστή. Χρειάζεται έλεγχος της συγκεκριμένης εγκατάστασης.[11][20]
Ο απαιτούμενος χώρος δεν μπορεί να εκτιμηθεί αξιόπιστα ως «200–400 MB ανά image» για όλη τη συλλογή. Μετρήστε τα images που θα χρησιμοποιηθούν, τα build caches, τις εξαρτήσεις, τα templates και τα αποτελέσματα. Τα κοινά layers επίσης επηρεάζουν το συνολικό μέγεθος.
Διαχωρίστε δύο φάσεις: προετοιμασία με ελεγχόμενη πρόσβαση στο Internet και εκτέλεση των σαρώσεων με περιορισμένη δικτυακή πρόσβαση. Η λήψη dependencies δεν πρέπει να συγχέεται με τον ισχυρισμό ότι όλη η διαδικασία ήταν offline.
Βήμα 1 — Απόκτηση κώδικα και καταγραφή έκδοσης
mkdir audax-mcp-review
cd audax-mcp-review
mkdir -p evidence
git clone https://github.com/FuzzingLabs/mcp-security-hub.git repo
git -C repo rev-parse HEAD | tee evidence/repository-commit.txt
docker version > evidence/docker-version.txt
git --version > evidence/git-version.txt
Για επανάληψη της ίδιας δοκιμής, κάντε checkout στο καταγεγραμμένο commit πριν από το build. Η παραπάνω εντολή καταγράφει ποια έκδοση κατεβάστηκε· δεν εγγυάται ότι ένα μελλοντικό clone θα δώσει τον ίδιο κώδικα. Απαιτείται επίσης σταθεροποίηση των base images και των εξαρτήσεων, επειδή μόνο το commit του αποθετηρίου δεν αρκεί για πλήρως αναπαραγώγιμο build.

Βήμα 2 — Build των επιλεγμένων wrappers
docker build -t audax-nmap-mcp:lab repo/reconnaissance/nmap-mcp/
docker build -t audax-nuclei-mcp:lab repo/web-security/nuclei-mcp/
docker image inspect audax-nmap-mcp:lab audax-nuclei-mcp:lab
> evidence/scanner-images.json
Το tag :lab είναι τοπική ετικέτα, όχι αμετάβλητη έκδοση. Διατηρήστε τα image IDs, τα διαθέσιμα digests και τα build logs. Ένα μήνυμα επιτυχούς build αποδεικνύει ότι κατασκευάστηκε image, όχι ότι όλες οι λειτουργίες του server εκτελούνται σωστά.

Βήμα 3 — Προετοιμασία στόχων και templates
Στη φάση προετοιμασίας, πριν αποκλειστεί η πρόσβαση στο Internet:
docker pull httpd:2.4-alpine
docker pull curlimages/curl
# Legacy image που αναφέρεται στην αρχική δοκιμή.
# Μόνο για ελεγχόμενη αναπαραγωγή σε αναλώσιμη εργαστηριακή VM.
docker pull vulnerables/web-dvwa
docker image inspect httpd:2.4-alpine curlimages/curl vulnerables/web-dvwa
> evidence/target-images.json
docker volume create audax-nuclei-templates
docker run --rm
--cap-drop=ALL --security-opt=no-new-privileges:true
--mount type=volume,source=audax-nuclei-templates,target=/home/mcpuser/nuclei-templates
--entrypoint nuclei audax-nuclei-mcp:lab
-update-templates
-update-template-dir /home/mcpuser/nuclei-templates
Το vulnerables/web-dvwa διατηρείται εδώ για να μη συγχέεται η αρχική δοκιμή με διαφορετική εγκατάσταση. Δεν παρουσιάζεται ως η σημερινή επίσημη προτεινόμενη διανομή DVWA. Για νέο εργαστήριο, ακολουθήστε το επίσημο έργο και καταγράψτε τη διαφορετική έκδοση και διαμόρφωση. Δεν αναμένεται υποχρεωτικά το ίδιο πλήθος ευρημάτων.[13]
Στο Dockerfile του nuclei-mcp που εξετάστηκε υπάρχει φάκελος templates, χωρίς προφόρτωση της συλλογής κατά το build. Η αρχική καταγραφή αναφέρει 13.320 αρχεία YAML και διαφορετικό συνολικό πλήθος αντικειμένων λήψης. Αυτές οι ποσότητες δεν είναι κατ’ ανάγκη ταυτόσημες και δεν πρέπει να εμφανίζονται ως σταθερό χαρακτηριστικό του προϊόντος. Κρατήστε έκδοση της συλλογής, περιεχόμενα και hashes των templates που πράγματι εκτελέστηκαν.[12][14]
Αν ένα volume εμφανίσει πρόβλημα δικαιωμάτων, ελέγξτε ιδιοκτησία και UID πριν συνεχίσετε. Μη χρησιμοποιήσετε γενικό chmod 777 ως λύση.
Βήμα 4 — Περιορισμένα εργαστηριακά δίκτυα
docker network create --internal audax-mcp-lab
docker network create --internal audax-mcp-lab2
docker run -d --name audax-target
--network audax-mcp-lab httpd:2.4-alpine
docker run -d --name audax-dvwa
--network audax-mcp-lab2 vulnerables/web-dvwa
docker network inspect audax-mcp-lab audax-mcp-lab2
> evidence/lab-networks.json
docker run --rm --network audax-mcp-lab2 curlimages/curl
--max-time 10 -sS -o /dev/null
-w 'DVWA HTTP %{http_code}n' http://audax-dvwa/
Χρησιμοποιούμε το όνομα audax-dvwa, όχι μια IP που προήλθε από διαφορετικό Docker network. Η απόκριση HTTP δείχνει προσβασιμότητα της υπηρεσίας· δεν αποδεικνύει ολοκλήρωση της αρχικής ρύθμισης του DVWA ή ότι ενεργοποιήθηκαν οι επιθυμητές ευπάθειες.[9][13]
Ένα απλό docker network create δεν αρκεί για να δηλωθεί ότι το δίκτυο δεν έχει έξοδο στο Internet. Ούτε η απουσία -p εξασφαλίζει αποκλεισμό εξερχόμενης κίνησης. Το --internal περιορίζει την εξωτερική πρόσβαση, αλλά δεν είναι πλήρες air gap: η επικοινωνία με κατάλληλα ρυθμισμένες υπηρεσίες του host/gateway παραμένει πιθανή. Χρειάζονται ανεξάρτητοι κανόνες και έλεγχοι στη VM/στον host για το επιδιωκόμενο όριο απομόνωσης.[8][9]

Βήμα 5 — Σωστή αρχικοποίηση MCP
Η σωστή ακολουθία είναι:
client → server : initialize
server → client : initialize response / συμφωνία έκδοσης και δυνατοτήτων
client → server : notifications/initialized
client → server : tools/list ή tools/call
Η αρχικοποίηση γίνεται μία φορά ανά συνεδρία, όχι πριν από κάθε tools/list. Η αποστολή τριών γραμμών JSON χωρίς να αναμένεται η απάντηση του initialize δεν υλοποιεί σωστά τη διαπραγμάτευση του πρωτοκόλλου. Γι’ αυτό στον αναθεωρημένο οδηγό χρησιμοποιούμε MCP SDK αντί για printf, FIFO και αυθαίρετο sleep.[6]
Το συνοδευτικό mcp_lab_client.py διατηρεί μία συνεδρία, εκτελεί initialize(), καταγράφει τη λίστα εργαλείων και πραγματοποιεί σάρωση μόνο αν δοθεί --scan. Οι στόχοι και τα δίκτυα είναι προκαθορισμένα ονόματα του εργαστηρίου. Δεν δέχεται αυθαίρετο εξωτερικό στόχο.
# Αντιγράψτε το συνοδευτικό mcp_lab_client.py σε αυτόν τον φάκελο.
python3 -m venv .venv
# Έκδοση αναφοράς του API για το συνοδευτικό παράδειγμα,
# όχι δήλωση ότι αυτή είναι η νεότερη ή ανεξάρτητα ελεγμένη έκδοση.
.venv/bin/python -m pip install 'mcp==1.28.1'
.venv/bin/python -m pip freeze > evidence/client-python-packages.txt
# Χειραψία και κατάλογος λειτουργιών, χωρίς σάρωση:
.venv/bin/python mcp_lab_client.py nmap
.venv/bin/python mcp_lab_client.py nuclei
Η εγκατάσταση του SDK ανήκει στη φάση προετοιμασίας με πρόσβαση σε dependencies. Για αυστηρά αποσυνδεδεμένο εργαστήριο, μεταφέρετε προηγουμένως τις εγκεκριμένες εξαρτήσεις. Το API του παραδείγματος αντιπαραβλήθηκε με την επίσημη έκδοση αναφοράς· απαιτείται δοκιμή ολοκλήρωσης στην πραγματική εγκατάσταση.[17]

Βήμα 6 — Περιορισμένος έλεγχος Nmap
.venv/bin/python mcp_lab_client.py nmap --scan
Στη διορθωμένη διαδικασία το helper καλεί service_scan μόνο για τη θύρα 80 του audax-target. Επιλέγεται μικρότερο εύρος από το quick_scan της αρχικής καταγραφής, για απλή επιβεβαίωση της σύνδεσης. Η αλλαγή αυτή δεν παρουσιάζεται ως ιστορική εκτέλεση του ίδιου πειράματος.
Το helper αποθηκεύει πλήρη MCP response και ζητά τα διαθέσιμα ακατέργαστα αποτελέσματα στην ίδια συνεδρία. Κρατά επίσης το /app/output σε ξεχωριστό Docker volume, ώστε να μη χαθούν τα αρχεία όταν αφαιρεθεί το εφήμερο container. Ελέγξτε ότι τα αρχεία πράγματι δημιουργήθηκαν, πριν θεωρήσετε το αποδεικτικό υλικό πλήρες.
Η διεργασία σάρωσης εκτελείται με --cap-drop=ALL και no-new-privileges. Αυτό το παράδειγμα δεν προορίζεται για τις λειτουργίες raw packet/OS detection. Το -sV αφορά ανίχνευση υπηρεσίας, όχι εγγύηση ότι χρησιμοποιήθηκε SYN scan.[11]
Βήμα 7 — Περιορισμένος έλεγχος Nuclei
.venv/bin/python mcp_lab_client.py nuclei --scan
Το helper επιλέγει τον στόχο http://audax-dvwa/, συγκεκριμένα tags, χαμηλό όριο αιτημάτων και ρητό timeout. Προσαρτά τη συλλογή templates μόνο για ανάγνωση. Τα tags περιορίζουν μια επιλογή templates· δεν αποτελούν έλεγχο εξουσιοδότησης ή εγγύηση μη επεμβατικής συμπεριφοράς. Επιθεωρήστε τι επιλέγεται πριν την εκτέλεση.[14]
Η δυνατότητα ανάγνωσης των templates δεν σημαίνει απαγόρευση όλων των εξωτερικών επικοινωνιών. Ενημερώσεις, OAST/Interactsh και άλλες εξαρτήσεις πρέπει να αντιμετωπίζονται σύμφωνα με τα templates και τις παραμέτρους που χρησιμοποιούνται. Μη θεωρείτε ότι μια παράμετρος του Nuclei CLI εκτίθεται υποχρεωτικά και από τον MCP wrapper.[14]
Σημαντικό: στον ανακτημένο κώδικα του wrapper υπάρχει πρόβλημα στη λογική αναφοράς κατάστασης που εξηγείται παρακάτω. Το status: completed και ένα αποθηκευμένο MCP response δεν αποτελούν επαρκή κριτήρια επιτυχίας.
Βήμα 8 — Σύνδεση με εφαρμογή AI
Η δομή mcpServers χρησιμοποιείται στις σχετικές ρυθμίσεις που τεκμηριώνει το έργο. Η θέση του αρχείου, τα scopes ρύθμισης και οι εγκρίσεις εξαρτώνται από τον client. Μην αντικαταστήσετε ολόκληρο υπάρχον config· ενσωματώστε μόνο τις απαιτούμενες εγγραφές.[1]
{
"mcpServers": {
"audax-lab-nmap": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--network", "audax-mcp-lab",
"--user", "1000:1000",
"--cap-drop=ALL",
"--security-opt=no-new-privileges:true",
"--mount", "type=volume,source=audax-nmap-client-output,target=/app/output",
"audax-nmap-mcp:lab"
]
},
"audax-lab-nuclei": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"--network", "audax-mcp-lab2",
"--user", "1000:1000",
"--cap-drop=ALL",
"--security-opt=no-new-privileges:true",
"--mount", "type=volume,source=audax-nuclei-templates,target=/home/mcpuser/nuclei-templates,readonly",
"--mount", "type=volume,source=audax-nuclei-client-output,target=/app/output",
"audax-nuclei-mcp:lab"
]
}
}
}
Το συγκεκριμένο config δεν προσθέτει allowlist μέσα στον wrapper. Η πρόσβαση στους στόχους πρέπει να ελέγχεται επιπλέον και οι κλήσεις να εγκρίνονται. Η σύνδεση με hosted AI μπορεί να μεταφέρει αποτελέσματα στον πάροχο του μοντέλου: η εκτέλεση εργαλείων σε τοπικό Docker δεν κάνει αυτομάτως όλη τη ροή τοπική.
Βήμα 9 — Καθαρισμός και διατήρηση αποδεικτικών
Πρώτα τερματίστε τους clients, εξαγάγετε τα χρήσιμα αποτελέσματα και καταγράψτε τα hashes τους. Έπειτα αφαιρέστε μόνο τα αντικείμενα του συγκεκριμένου εργαστηρίου:
docker rm -f audax-target audax-dvwa
docker network rm audax-mcp-lab audax-mcp-lab2
Το helper κρατά ξεχωριστά volumes αποτελεσμάτων και εμφανίζει τα ονόματά τους. Αφαιρέστε τα μόνο αφού επιβεβαιώσετε την εξαγωγή τους. Αν ένα δίκτυο παραμένει σε χρήση, βρείτε ποιος client/container το χρησιμοποιεί· μην εκτελέσετε γενικό docker system prune σε μηχανή με άλλα έργα.
Αντιμετώπιση προβλημάτων
Αίτημα πριν ολοκληρωθεί η αρχικοποίηση: χρησιμοποιήστε client που περιμένει την απάντηση initialize. Η αρχική δοκιμή αναφέρει μήνυμα Received request before initialization was complete. Το μήνυμα αφορά το δοκιμαστικό πρωτόκολλο, όχι από μόνο του αποτυχία του scanner.[6]
Διακοπή πριν επιστραφεί αποτέλεσμα: ελέγξτε ξεχωριστά client timeout, wrapper timeout και διάρκεια υποκείμενης διεργασίας. Στο παλιό παράδειγμα υπήρχε sleep 400 με scanner timeout 420 δευτερολέπτων: η διατήρηση του stdin δεν κάλυπτε καν το δηλωμένο όριο. Ένα μεγαλύτερο σταθερό sleep πάλι δεν υποκαθιστά διαχείριση συνεδρίας.
Μηδενικά ευρήματα: μπορεί να είναι νόμιμο αποτέλεσμα για το επιλεγμένο εύρος. Μπορεί επίσης να προκύπτει από μη διαθέσιμα templates, ανεπαρκή πρόσβαση, λάθος στόχο, αποκλεισμένες εξαρτήσεις ή σφάλμα. Χρειάζονται native output, stderr και πραγματικό exit code, όχι μόνο η ένδειξη του wrapper.
Αδυναμία raw scan: ελέγξτε UID και effective capabilities του πραγματικού process. Η προσθήκη NET_RAW δεν αποτελεί γενική απόδειξη ότι ένα non-root πρόγραμμα θα το χρησιμοποιήσει επιτυχώς. Μην καταφύγετε αυτομάτως σε --privileged.[11]
Αλλαγή ονόματος ή συμπεριφοράς dependency: αντιμετωπίστε τη μετάβαση mcp-scan → snyk-agent-scan ως θέμα έκδοσης, συμβατότητας και εξαρτήσεων. Η εντολή pip install mcp-scan χωρίς συγκεκριμένη έκδοση δεν είναι pinned εγκατάσταση. Μια αλλαγή dependency δεν αποδεικνύει από μόνη της παραβίαση της αλυσίδας εφοδιασμού.
Το εργαστηριακό περιβάλλον και τα όρια των συμπερασμάτων
Η αρχική καταγραφή της Audax αναφέρει Ubuntu, Docker 29.1.3, Docker Compose 2.40.3, έναν στόχο Apache και έναν στόχο DVWA. Αυτές είναι πληροφορίες της συγκεκριμένης δοκιμής, όχι ελάχιστες απαιτήσεις του έργου. Το κείμενο μόνο του δεν παρέχει πλήρη στοιχεία για τις εκδόσεις του host, τα image digests ή τους κανόνες firewall.
Η απουσία δημοσιευμένων θυρών περιορίζει την έκθεση μέσω port mappings. Δεν αρκεί, όμως, για να χαρακτηριστεί το παλιό εργαστήριο «πλήρως απομονωμένο». Για τέτοιο συμπέρασμα πρέπει να εξεταστούν οι διαδρομές δικτύου και οι κανόνες πρόσβασης του πραγματικού host.[8][9]
Οι δύο wrappers που εξετάζονται εδώ χρησιμοποιούν stdio για το MCP. Αυτό δεν σημαίνει ότι το MCP γενικά χρησιμοποιεί μόνο stdio: η προδιαγραφή περιλαμβάνει και Streamable HTTP. Επίσης, η εκκίνηση ενός stdio server αφορά συνήθως τη διάρκεια μιας συνεδρίας, όχι ένα νέο container για κάθε κλήση εργαλείου. Πολλές κλήσεις και ανάκτηση αποτελεσμάτων μπορούν να γίνουν στην ίδια σύνδεση.[2][3][10]
Οι χειροκίνητες JSON-RPC κλήσεις που παρατίθενται στην αρχική δοκιμή αφορούν την αλυσίδα client → MCP server → εργαλείο. Χωρίς ξεχωριστή καταγραφή μοντέλου, παραμέτρων και συνομιλίας, δεν τεκμηριώνουν ότι αξιολογήθηκαν η αυτόνομη επιλογή εργαλείων, η κατανόηση φυσικής γλώσσας ή η αξιοπιστία των συμπερασμάτων ενός AI βοηθού.

Πρακτική δοκιμή Nmap: τι αναφέρει η αρχική καταγραφή
Η αρχική διαδικασία περιγράφει επιτυχή αρχικοποίηση και επιστροφή επτά λειτουργιών: port_scan, service_scan, os_detection, script_scan, quick_scan, get_scan_results και list_active_scans. Αυτός ο κατάλογος συμφωνεί με την υλοποίηση που ανακτήθηκε, παρότι ο συνοπτικός πίνακας του README αναφέρει οκτώ.[1][2]
Η ένδειξη nmap-mcp v1.28.1 χρειάζεται προσοχή. Ο wrapper δημιουργεί Server("nmap-mcp") χωρίς δική του έκδοση. Στο MCP Python SDK της αντίστοιχης έκδοσης, όταν δεν έχει δοθεί server version χρησιμοποιείται η έκδοση του πακέτου mcp. Συνεπώς το «1.28.1» δεν πρέπει να παρουσιάζεται ως επαληθευμένη έκδοση κυκλοφορίας του wrapper της FuzzingLabs.[2][18]
Η αρχική δοκιμή αναφέρει ολοκλήρωση quick_scan σε περίπου έξι δευτερόλεπτα και αναγνώριση HTTP στη θύρα 80. Χωρίς τα πρωτογενή αρχεία, ο χρόνος παραμένει αναφερόμενη μεμονωμένη μέτρηση, όχι benchmark.

Τι αποτελέσματα έδωσε — και πώς πρέπει να διαβάζονται
Στους εξεταζόμενους wrappers το JSON της σύνοψης επιστρέφεται ως κείμενο μέσα σε MCP TextContent. Είναι έγκυρη μορφή απάντησης, αλλά διαφέρει από τη χρήση του ξεχωριστού πεδίου structuredContent. Για να αναλυθεί, χρειάζεται να διαβαστεί το result.content[].text και να γίνει JSON parsing όπου το περιεχόμενο είναι πράγματι JSON.[2][3][7]
Ένα ενδεικτικό, απλοποιημένο σχήμα της σύνοψης υπηρεσίας είναι:
{
"target": "audax-target",
"status": "completed",
"hosts": [
{
"status": "up",
"open_ports": [
{
"port": "80",
"protocol": "tcp",
"service": "http",
"version": "2.4.x"
}
]
}
]
}
Το παραπάνω δεν είναι πραγματικό νέο αποτέλεσμα εκτέλεσης. Έχουν παραλειφθεί πεδία και η έκδοση είναι ενδεικτική. Στο αρχικό κείμενο αναφέρεται Apache 2.4.68· για να διατηρηθεί ως επιβεβαιωμένο αποτέλεσμα χρειάζονται το πραγματικό image digest, η έκδοση της υπηρεσίας και το πρωτογενές Nmap output.
Η αναγνώριση μιας υπηρεσίας δεν αποδεικνύει ύπαρξη εκμεταλλεύσιμης ευπάθειας. Μια πιθανή αντιστοίχιση έκδοσης με CVE είναι αφετηρία διερεύνησης, όχι επιβεβαιωμένη δυνατότητα εκμετάλλευσης. Ομοίως, η σωστή αναγνώριση ενός μόνο στόχου δεν δικαιολογεί γενική δήλωση «το εργαλείο δεν έχει ψευδώς θετικά».

Δυνατά σημεία
Κοινό σημείο ενσωμάτωσης. Η συλλογή διευκολύνει την αξιοποίηση διαφορετικών εργαλείων από εφαρμογές που υποστηρίζουν MCP. Αυτό είναι το ουσιαστικό της αντικείμενο.[1]
Διακριτά components. Η δυνατότητα επιλογής μεμονωμένων wrappers βοηθά να περιοριστούν οι εξαρτήσεις που χρειάζεται να συντηρεί μια ομάδα. Η απομόνωση, όμως, εξαρτάται από τα πραγματικά δικαιώματα, mounts και δίκτυα, όχι από τον αριθμό των containers.
Πρόθεση περιορισμού δικαιωμάτων. Τα εξεταζόμενα Dockerfiles χρησιμοποιούν non-root χρήστη και το Compose περιέχει δικλείδες ασφαλείας. Κάθε υπηρεσία χρειάζεται δικό της έλεγχο· αυτά δεν αποτελούν απόδειξη ομοιόμορφης θωράκισης της συλλογής.[4][12][19]
Δυνατότητα επεξεργασίας αποτελεσμάτων. Οι μηχανικά αναγνώσιμες απαντήσεις μπορούν να αξιοποιηθούν από άλλη εφαρμογή. Η δομή των δεδομένων διευκολύνει την επεξεργασία· δεν εξασφαλίζει την ακρίβεια της σάρωσης ή της ερμηνείας της.
Περιορισμοί και αδυναμίες που χρειάζονται διόρθωση
Η εξουσιοδότηση στόχου δεν προκύπτει από το MCP
Στον εξεταζόμενο Nmap handler δεν υπάρχει ενσωματωμένη allowlist επιτρεπόμενων στόχων. Ο έλεγχος του σχήματος εισόδου δεν ισοδυναμεί με έλεγχο scope. Η εσωτερική συνάρτηση έχει παράμετρο extra_args, αλλά οι δημόσιοι handlers δεν την περνούν από το MCP αίτημα· επομένως δεν είναι ακριβές ότι εκτίθεται άμεσα στον client με αυτόν τον τρόπο.[2]
Ο κώδικας χρησιμοποιεί asyncio.create_subprocess_exec, όχι subprocess.exec. Η απουσία shell μειώνει συγκεκριμένο κίνδυνο ερμηνείας shell metacharacters, αλλά δεν αποδεικνύει ασφάλεια ορισμάτων, επιτρεπόμενων στόχων ή επιλογής scripts.[2][16]
Το completed του Nuclei δεν είναι αξιόπιστη απόδειξη επιτυχίας
Στον δημόσιο κώδικα που ανακτήθηκε εντοπίζεται η συνθήκη:
if process.returncode == 0 or len(result.findings) >= 0:
result.status = "completed"
Το μήκος μιας λίστας δεν είναι αρνητικό. Άρα, όταν η εκτέλεση φτάσει σε αυτόν τον έλεγχο, μπορεί να χαρακτηριστεί ολοκληρωμένη ακόμη και με μη μηδενικό exit code. Πρόκειται για στατικά διαπιστωμένο λογικό σφάλμα, όχι για νέο εργαστηριακό εύρημα στην υποδομή κάποιου πελάτη.[3]
Χρειάζεται διακριτή αναφορά exit code, σφάλματος, μερικών αποτελεσμάτων και σφάλματος parsing. Το πρόβλημα δεν διορθώνεται απαιτώντας «τουλάχιστον ένα εύρημα»: μια επιτυχής σάρωση μπορεί νόμιμα να έχει μηδενικά ευρήματα.
Η κατάσταση timeout δεν εγγυάται τερματισμό του εργαλείου
Η λήξη του asyncio.wait_for δεν σημαίνει από μόνη της ότι τερματίστηκε το υποκείμενο λειτουργικό process. Η ασφαλής διαχείριση πρέπει να περιλαμβάνει τερματισμό, αναμονή ολοκλήρωσης και καθαρισμό των σχετικών πόρων.[16]
Στα εξεταζόμενα τμήματα των wrappers δεν φαίνεται ρητή αντίστοιχη ενέργεια στα timeout handlers. Αυτό είναι σημείο που χρειάζεται δοκιμή με ελεγχόμενο timeout πριν από παρατεταμένη ή παράλληλη χρήση.[2][3]
Το Compose δεν είναι ίδιο με το απλό docker run
Οι επιλογές cap_drop, cap_add και security_opt του Compose δεν εφαρμόζονται αυτομάτως σε ένα ξεχωριστό docker run. Στο Compose που ανακτήθηκε, ο Nmap παίρνει NET_RAW και NET_ADMIN, ενώ η υπηρεσία Trivy περιλαμβάνει mount του Docker socket. Υπάρχουν επίσης port mappings. Άρα οι καθολικές διατυπώσεις «μόνο NET_RAW» και «κανένα mount του docker socket» δεν περιγράφουν το συγκεκριμένο αρχείο.[4]
Το :ro σε socket mount δεν αποτελεί φίλτρο μόνο για αναγνώσεις στο Docker API. Η δυνατότητα σύνδεσης εξαρτάται και από τα πραγματικά δικαιώματα του socket. Αν ένας process αποκτήσει πρόσβαση στο daemon API, απαιτείται πολύ αυστηρή αντιμετώπιση αυτού του προνομίου.[21]
Η δήλωση port mapping, από την άλλη, δεν αποδεικνύει από μόνη της ότι υπάρχει εφαρμογή που ακούει στη συγκεκριμένη θύρα. Πρέπει να εξετάζεται ο πραγματικός server και ο τρόπος εκκίνησης.
Οι εξαρτήσεις και η κατάσταση δεν είναι αμετάβλητες
Κινούμενα tags, απροσδιόριστες εκδόσεις πακέτων και ενημερώσεις templates μπορούν να αλλάξουν συμπεριφορά ή αποτελέσματα. Το --rm διαγράφει το container μετά την έξοδό του· δεν αναιρεί εξωτερικές ενέργειες, διαρροές δεδομένων ή αλλαγές σε προσαρτημένα volumes.
Μια αλλαγή API, άδειας ή συσκευασίας απαιτεί επανέλεγχο. Δεν πρέπει ούτε να αγνοείται ούτε να παρουσιάζεται αυτομάτως ως συμβάν παραβίασης.
Θέματα ασφάλειας κατά τη χρήση
Τα ακόλουθα είναι προϋποθέσεις σχεδιασμού μιας επαγγελματικής ροής, όχι δυνατότητες που θεωρούμε αυτομάτως ενεργές επειδή χρησιμοποιείται το hub:
Ρητό scope και έγκριση εκτέλεσης. Οι στόχοι, οι επιτρεπόμενες λειτουργίες, τα χρονικά όρια και οι περιορισμοί έντασης ορίζονται πριν από τη δοκιμή. Οι κρίσιμοι κανόνες εφαρμόζονται έξω από το μοντέλο, με validation, περιορισμένα δικαιώματα και δικτυακούς ελέγχους. Μια οδηγία στο prompt δεν είναι μηχανισμός επιβολής scope.
Μη έμπιστο περιεχόμενο. Περιγραφές εργαλείων, αποτελέσματα σαρώσεων και ανακτημένα αρχεία δεν πρέπει να αποκτούν εξουσία πάνω στις εγκεκριμένες οδηγίες. Άνθρωποι μπορούν να επιθεωρούν τα μεταδεδομένα· δεν είναι πληροφορία που εκ φύσεως «βλέπει μόνο το μοντέλο».[7][15]
Περιορισμένη πρόσβαση σε μυστικά. Μην προσαρτάτε προσωπικά home directories, SSH keys, cloud credentials ή το Docker socket για λόγους ευκολίας. Τα environment variables είναι τρόπος παροχής ρυθμίσεων, όχι μυστική θυρίδα που εγγυάται ότι τα δεδομένα δεν θα διαρρεύσουν σε logs, αποτελέσματα ή context.
Έλεγχος προορισμού δεδομένων. Διαχωρίστε τοπική εκτέλεση εργαλείων από επεξεργασία στον πάροχο AI και από αποστολή μεταδεδομένων σε εξωτερικό σαρωτή. Εξετάστε εκ των προτέρων ποια δεδομένα μπορούν να φύγουν από το εργαστήριο.
Καταγραφή πέρα από την περίληψη. Αποθηκεύστε την κλήση, τα ορίσματα, την έκδοση εργαλείου, το αποτέλεσμα, τον πραγματικό κωδικό εξόδου και τυχόν σφάλματα. Για εκτέλεση με AI, καταγράψτε και το μοντέλο, τις εγκρίσεις και τις αποφάσεις που οδήγησαν στην ενέργεια.
Πού μπορεί να χρησιμοποιηθεί επαγγελματικά
Σε εργαστήρια εξουσιοδοτημένων ελέγχων, ως βοηθητικό επίπεδο ενοποίησης, με επιλεγμένες λειτουργίες και άνθρωπο που ελέγχει το scope.
Σε μελέτη ανίχνευσης, για να εξεταστεί η τηλεμετρία συγκεκριμένων ενεργειών. Τα logs μιας σάρωσης δεν αποδεικνύουν από μόνα τους ότι η ενέργεια καθοδηγήθηκε από AI. Η διάκριση αυτή απαιτεί επιπλέον καταγραφή στο επίπεδο της ενορχήστρωσης.
Σε έρευνα ασφάλειας MCP/AI, για ελεγχόμενη επιθεώρηση μεταδεδομένων, permissions και χειρισμού μη έμπιστου περιεχομένου.
Στην εκπαίδευση, για κατανόηση της σύνδεσης client, server και υποκείμενων εργαλείων. Η εξοικείωση με τη διασύνδεση δεν αντικαθιστά τη μελέτη του ίδιου του Nmap ή του Nuclei.
Οι παραπάνω χρήσεις είναι προτεινόμενα πεδία αξιοποίησης, όχι αποτελέσματα αξιολόγησης όλων των επιμέρους integrations.
Πότε δεν πρέπει να χρησιμοποιηθεί με αυτή τη διαμόρφωση
Δεν είναι κατάλληλο για μη επιβλεπόμενη πρόσβαση σε παραγωγικά συστήματα, για εκτέλεση εντολών σε τρίτους χωρίς άδεια ή για εγκατάσταση με εταιρικά μυστικά και απεριόριστη δικτυακή πρόσβαση.
Δεν πρέπει επίσης να παρουσιάζεται ως λύση πλήρους offline ανίχνευσης MCP απειλών, όταν η επιλεγμένη λειτουργία απαιτεί εξωτερική υπηρεσία. Ούτε μια σάρωση Nuclei, ακόμη και μέσω AI, πρέπει να πωλείται ή να περιγράφεται ως πλήρες penetration test χωρίς το αντίστοιχο εύρος, την επιβεβαίωση και τη μεθοδολογία.
Δεύτερος γύρος δοκιμών: Nuclei και επιθεώρηση ύποπτων εργαλείων MCP
Η αρχική περιγραφή περιλαμβάνει δύο διαφορετικά πειράματα: σάρωση DVWA μέσω nuclei-mcp και επιθεώρηση ενός εργαστηριακού εργαλείου με ύποπτη περιγραφή. Τα συμπεράσματά τους πρέπει να παραμείνουν χωριστά.
Επιθετικό σενάριο: nuclei-mcp εναντίον DVWA
Η αρχική καταγραφή αναφέρει έξι εγγραφές ευρημάτων, από τις οποίες πέντε χαρακτηρίστηκαν πληροφοριακές και μία μεσαίας σοβαρότητας. Αναφέρονται τα IDs waf-detect, tech-detect, fingerprinthub-web-fingerprints, readme-md, exposed-gitignore και configuration-listing, με το τελευταίο να συνδέεται με listing στο /config/.
Αυτά διατηρούνται ως αποτελέσματα που αναφέρει η αρχική δοκιμή, όχι ως ανεξάρτητα επιβεβαιωμένα IDs, επίπεδα severity ή αναμενόμενο αποτέλεσμα κάθε εγκατάστασης DVWA. Η ακριβής παρουσίαση χρειάζεται το αρχείο JSONL και τα αντίστοιχα template files.


Μια εγγραφή αναγνώρισης τεχνολογίας ή παρουσίας WAF δεν είναι αυτομάτως ευπάθεια. Το directory listing και η πρόσβαση σε ένα .gitignore αξιολογούνται με βάση το πραγματικό περιεχόμενο και το επιχειρησιακό πλαίσιο, όχι μόνο τον τίτλο του template.
Το αρχικό κείμενο δηλώνει χειροκίνητη επιβεβαίωση του .gitignore και του /config/. Αυτό δεν αποδεικνύει έλεγχο όλων των εγγραφών ούτε γενικό μηδενικό ποσοστό ψευδώς θετικών. Η κατάλληλη διατύπωση είναι ότι τα συγκεκριμένα αναφερόμενα σημεία ελέγχθηκαν χειροκίνητα, εφόσον υπάρχουν τα αντίστοιχα αποδεικτικά.
Το συμπέρασμα του πειράματος είναι περιορισμένο: περιγράφεται επιστροφή αποτελεσμάτων από Nuclei μέσω MCP. Δεν τεκμηριώνεται πλήρης κάλυψη των ευπαθειών DVWA ή αξιολόγηση όλων των κατηγοριών templates.
Αμυντικό σενάριο: επιθεώρηση περιγραφής με tool poisoning
Το tool poisoning μπορεί να ενσωματώνει οδηγίες χειραγώγησης μέσα στην περιγραφή ή σε άλλα μεταδεδομένα ενός εργαλείου. Ένα μοντέλο που αντιμετωπίζει αυτές τις οδηγίες ως έμπιστες μπορεί να οδηγηθεί σε ανεπιθύμητες ενέργειες. Η επικινδυνότητα εξαρτάται και από τις πραγματικές προσβάσεις του host/client και των διαθέσιμων εργαλείων.[15]
Στην αρχική δοκιμή αναφέρεται ένα τοπικό εργαλείο add με σκόπιμα ύποπτη περιγραφή και έλεγχός του με το mcp-scan/Snyk Agent Scan. Δεν παρατίθενται εδώ λειτουργικές οδηγίες εξαγωγής διαπιστευτηρίων· το ζητούμενο είναι η εξέταση μεταδεδομένων με συνθετικά δεδομένα.

Χρειάζονται τρεις σαφείς διακρίσεις:
Επιθεώρηση: η εντολή inspect εμφανίζει περιγραφές χωρίς επαλήθευση, σύμφωνα με την τεκμηρίωση. Η εκτύπωση του ύποπτου κειμένου δεν ισοδυναμεί με αυτόματη διάγνωση tool poisoning.[15]
Ανάλυση από Snyk: η τεκμηρίωση περιγράφει συνδυασμό τοπικών ελέγχων και Agent Scan API, με κοινοποίηση σχετικών μεταδεδομένων. Η απαίτηση token δεν αποδεικνύει από μόνη της ότι απαιτείται πληρωμένη συνδρομή. Η ακριβής διαθεσιμότητα ελέγχεται για την έκδοση και τον λογαριασμό που χρησιμοποιούνται.[15]
Τοπικός ευρετικός έλεγχος Audax: η αρχική καταγραφή αναφέρει επτά ενδείξεις σε σκόπιμα κατασκευασμένο δείγμα. Αυτό αποτελεί ξεχωριστή εκπαιδευτική δοκιμή, όχι επιτυχία του scanner της Snyk. Χωρίς σύνολο καλοήθων και κακόβουλων δειγμάτων, τυφλή δοκιμή και αποτελέσματα false positives/false negatives, δεν τεκμηριώνεται γενική αποτελεσματικότητα ανίχνευσης.

Η λειτουργία επιθεώρησης μπορεί να χρειάζεται εκκίνηση των stdio commands που ορίζονται στο config. Η συγκατάθεση πριν από την εκτέλεση είναι χρήσιμη δικλείδα, αλλά δεν δημιουργεί sandbox και δεν κάνει έναν άγνωστο server ασφαλή. Χρησιμοποιήστε ελεγχόμενη μηχανή χωρίς πραγματικά μυστικά.[15]
Τέλος, η παλιότερη αποτυχία προς mcp.invariantlabs.ai δεν αποδεικνύει απόσυρση της υπηρεσίας. Το HTTP 000 δεν είναι πραγματικός HTTP status code απομακρυσμένου server. Χρειάζονται το exit code και το stderr του curl για να διακριθούν προβλήματα DNS, σύνδεσης, TLS, proxy ή timeout. Χωρίς επίσημη ανακοίνωση ή άλλη τεκμηρίωση, η αιτία παραμένει μη επιβεβαιωμένη.[22]

Τελική αξιολόγηση
Το MCP Security Hub αποτελεί ενδιαφέρουσα βάση ενοποίησης και εργαστηριακής μελέτης. Οι αναφερόμενες δοκιμές Nmap και Nuclei έχουν αξία ως περιορισμένοι έλεγχοι λειτουργίας, αλλά δεν τεκμηριώνουν την αξιοπιστία ολόκληρης της συλλογής ή ασφαλή παραγωγική χρήση.
Δεν αποδίδουμε αριθμητική βαθμολογία χωρίς κριτήρια, βάρη και συγκριτικό πλαίσιο. Η τεχνική κρίση είναι πιο χρήσιμη όταν ξεχωρίζει συγκεκριμένα:
- Τι ελέγχθηκε και με ποια έκδοση.
- Τι μπορεί να αξιοποιηθεί στο συγκεκριμένο εργαστήριο.
- Ποια σφάλματα ή περιορισμοί πρέπει να αντιμετωπιστούν.
- Τι παραμένει μη δοκιμασμένο.
Πριν από επιχειρησιακή χρήση, προέχουν η σωστή αναφορά κατάστασης εκτέλεσης, ο έλεγχος scope, η επιβολή δικαιωμάτων και δικτύου, η σταθεροποίηση των εξαρτήσεων και η καταγραφή των πραγματικών αποτελεσμάτων. Οι παρατηρήσεις του στατικού ελέγχου πρέπει να αντιπαραβληθούν με το συγκεκριμένο commit της εγκατάστασης και να αναπαραχθούν με μικρές, ελεγχόμενες δοκιμές.
Συμπέρασμα
Το MCP διευκολύνει τη σύνδεση εφαρμογών AI με εργαλεία. Δεν μεταφέρει μαζί του την τεχνογνωσία του χειριστή ούτε εγγυάται την ασφάλεια της εκτέλεσης.
Στο mcp-security-hub, η πρακτική αξία βρίσκεται στην ενοποίηση. Η επαγγελματική αξιοπιστία προκύπτει μόνο όταν ελέγχονται οι πραγματικές κλήσεις, οι στόχοι, τα δικαιώματα, τα σφάλματα και τα αποτελέσματα.
Ένα επιτυχημένο αίτημα MCP αποδεικνύει ότι λειτούργησε η επικοινωνία. Η ορθότητα και η ασφάλεια της ενέργειας χρειάζονται ξεχωριστή απόδειξη.
Από το εργαστήριο στη δική σας επιχείρηση
Η Audax Cybersecurity πραγματοποιεί τεχνικές αξιολογήσεις που συνδέουν τα ευρήματα με πραγματικό κίνδυνο και συγκεκριμένες προτεραιότητες διόρθωσης.
Για έναν στοχευμένο έλεγχο, περιγράψτε τις ανάγκες σας στο ερωτηματολόγιο Penetration Testing. Για επαναλαμβανόμενους ελέγχους και παρακολούθηση της αποκατάστασης, δείτε το Erevos AI.
Η τεχνική τεκμηρίωση υποστηρίζει την αξιολόγηση της ασφάλειας. Δεν αποτελεί από μόνη της πιστοποίηση ή εγγύηση κανονιστικής συμμόρφωσης.
Πηγές τεχνικής τεκμηρίωσης
Οι παρακάτω είναι πρωτογενείς πηγές που χρησιμοποιήθηκαν στην επιμέλεια. Οι σύνδεσμοι σε master είναι μεταβαλλόμενοι. Η ανάκτηση μιας δημόσιας σελίδας δεν ταυτοποιεί το commit της αρχικής εργαστηριακής δοκιμής. Για δημοσίευση αναπαραγώγιμων συμπερασμάτων, διατηρήστε και συνδέσμους στα αντίστοιχα immutable commits.
- FuzzingLabs — MCP Security Hub, README και κατάλογος ενσωματώσεων
- FuzzingLabs — κώδικας nmap-mcp
- FuzzingLabs — κώδικας nuclei-mcp
- FuzzingLabs — docker-compose.yml
- FuzzingLabs — τεκμηρίωση meta/mcp-scan
- MCP — Lifecycle, έκδοση προδιαγραφής 2025-11-25
- MCP — Tools και μορφή αποτελεσμάτων
- Docker — network create / internal mode
- Docker — Bridge network driver
- MCP — Transports
- Nmap — Port scanning techniques και απαιτούμενα δικαιώματα
- FuzzingLabs — Dockerfile nuclei-mcp
- DVWA — επίσημο αποθετήριο και οδηγίες εγκατάστασης
- ProjectDiscovery — Running Nuclei
- Snyk — Agent Scan, inspect, scan και μοντέλο ανάλυσης
- Python — asyncio subprocesses και διαχείριση timeout
- MCP Python SDK v1.28.1 — ClientSession
- MCP Python SDK v1.28.1 — low-level Server / initialization options
- FuzzingLabs — Dockerfile nmap-mcp
- Docker — Networking on Docker Desktop
- Docker — Protect access to the daemon
- curl — εγχειρίδιο, write-out και exit codes
Θέλετε συνεχή επικύρωση της ασφάλειάς σας — όχι έλεγχο μία φορά τον χρόνο;
Το Continuous Exposure Management της Audax ενοποιεί attack surface discovery, attack surface testing και παρακολούθηση αναδυόμενων απειλών σε έναν συνεχή, αποδεικτικό κύκλο — εκτελούμενο από τους certified offensive operators μας. Human-led. Technically proven. Ευθυγραμμισμένο με NIS2 & DORA.
Δείτε το Continuous Exposure Management →Χρειάζεστε Penetration Testing για τον οργανισμό σας;
Περιγράψτε το scope του ελέγχου μέσα από το δομημένο ερωτηματολόγιο και λάβετε εξατομικευμένη τεχνική & οικονομική προσφορά από την ομάδα Offensive Security της Audax. Χωρίς αυτόματη τιμή ή δέσμευση — η προσφορά αποστέλλεται μετά από τεχνική αξιολόγηση του scope.
Ζητήστε προσφορά Penetration Testing →