Asset Discovery Lab: Passive Recon έως Attack Surface Mapping
Στη φάση Asset Discovery ενός penetration test ή ενός προγράμματος External Attack Surface Management (EASM), ο στόχος δεν είναι η εκμετάλλευση, αλλά η πλήρης χαρτογράφηση των περιουσιακών στοιχείων ενός εξουσιοδοτημένου scope: domains, subdomains, IP ranges, cloud assets, εκτεθειμένα ports και third-party εξαρτήσεις. Το άρθρο αυτό παρουσιάζει ένα ολοκληρωμένο, εργαστηριακό workflow Asset Discovery βασισμένο σε δημοφιλή open-source εργαλεία, με αυστηρή τήρηση των αρχών ethical hacking, εστιάζοντας τόσο στην offensive λογική όσο και στην αντίστοιχη αμυντική θεώρηση.
Όλες οι εντολές, οι έξοδοι και τα διαγράμματα που ακολουθούν αναφέρονται σε ένα fictional εργαστηριακό περιβάλλον με συνθετικά domains όπως academy-lab.local, lab.local και ενδεικτικές IP 10.10.10.0/24. Καμία διαδικασία δεν πρέπει να επαναλαμβάνεται έναντι πραγματικών οργανισμών χωρίς υπογεγραμμένο Rules of Engagement (RoE) και γραπτή άδεια.
Τι είναι το Asset Discovery και γιατί έχει σημασία
Το Asset Discovery (γνωστό και ως attack surface discovery ή reconnaissance phase) είναι η μεθοδική διαδικασία εντοπισμού όλων των εκτεθειμένων ψηφιακών περιουσιακών στοιχείων ενός οργανισμού — όχι μόνο των γνωστών production servers, αλλά και των ξεχασμένων staging environments, των subdomains που έχουν δημιουργηθεί χωρίς κεντρικό έλεγχο, των cloud buckets που μπορεί να έχουν κατά λάθος δημόσια ανάγνωση, και των third-party υπηρεσιών που μεταφέρουν data.
Από επιχειρησιακή σκοπιά, ένας οργανισμός δεν μπορεί να προστατεύσει αυτό που δεν γνωρίζει ότι υπάρχει. Αυτή είναι η βασική φιλοσοφία πίσω από το shadow IT πρόβλημα: ένα παλιό marketing subdomain που τρέχει ένα ευάλωτο WordPress, ένα staging API που μένει εκτεθειμένο, ένα GitHub repository που περιέχει αναφορές σε εσωτερικά endpoints — όλα αυτά αυξάνουν το attack surface χωρίς να εμφανίζονται σε κανένα asset inventory.
Για τον ethical hacker, το Asset Discovery αποτελεί τη θεμελιώδη πρώτη φάση κάθε engagement. Όσο πιο πλήρης η χαρτογράφηση, τόσο πιο ρεαλιστική η αξιολόγηση κινδύνου. Για τον Blue Team, αποτελεί τη βάση κάθε προγράμματος Continuous Threat Exposure Management (CTEM), καθώς η συνεχής παρακολούθηση του δικού του exposed perimeter είναι το πιο βασικό μέτρο πρόληψης.
Εκπαιδευτικό σενάριο — fictional lab
Για τους σκοπούς του άρθρου εργαζόμαστε σε εξουσιοδοτημένο εργαστηριακό περιβάλλον με τις παρακάτω συνθετικές παραδοχές:
- Target organization:
academy-lab.local(synthetic root domain) - In-scope subdomains:
*.academy-lab.local,*.demo.internal - In-scope IP ranges:
10.10.10.0/24,10.10.20.0/24 - Out-of-scope: Οτιδήποτε επιστραφεί από passive sources που δεν ανήκει στο παραπάνω scope
- Objective: Παραγωγή ενός validated asset inventory με risk triage
- Constraints: Όχι intrusive scans, όχι vulnerability exploitation, μόνο discovery & enumeration
- Authorization: Υπογεγραμμένο RoE με ορισμένο time window και contact points
Η μεθοδολογία ακολουθεί τα τέσσερα στάδια ενός σύγχρονου EASM workflow: Passive Discovery → Active Discovery → Validation → Triage & Reporting. Σε κάθε στάδιο τονίζονται οι αμυντικές παρατηρήσεις: ποια logs παράγονται στην πλευρά του υποτιθέμενου defender, ποιες είναι οι ευκαιρίες detection, ποια μέτρα μπορούν να μειώσουν το συνολικό attack surface.

Κατηγορίες assets που χαρτογραφούνται
Πριν μπούμε στη μηχανική του workflow, αξίζει να ξεκαθαρίσουμε ποιες κατηγορίες περιουσιακών στοιχείων ψάχνουμε. Η σύγχρονη οπτική του Asset Discovery δεν περιορίζεται σε IPs και domains.
| Κατηγορία | Παραδείγματα | Γιατί έχει σημασία |
|---|---|---|
| Domains & Subdomains | academy-lab.local, mail.academy-lab.local, staging.academy-lab.local | Συχνά εκθέτουν παλιές υπηρεσίες ή dev environments χωρίς ίδιο επίπεδο hardening |
| IP ranges & ASNs | 10.10.10.0/24, BGP-published prefixes | Αποκαλύπτουν το συνολικό network footprint πέρα από DNS |
| Ports & Services | HTTP/443, SSH/22, RDP/3389, SMB/445 | Άμεσα εκτεθειμένα entry points για ένα attacker model |
| Cloud assets | S3 buckets, Azure Blobs, GCS, Spaces | Λάθος δημόσιες πολιτικές → information disclosure |
| Source code repos | GitHub orgs, GitLab projects, gists | Αναφορές σε εσωτερικά endpoints, hardcoded secrets, infrastructure-as-code leaks |
| Email / Identity | Δομές email, MX records, SPF/DMARC | Spoofing risk, employee enumeration για awareness simulations |
| Third-party / SaaS | CDN endpoints, marketing SaaS, ticketing | Επιφάνεια εκτός άμεσου ελέγχου, αλλά εντός risk perimeter |
| Historical artifacts | Wayback Machine snapshots, αρχειοθετημένα URLs | Παλιά endpoints που μπορεί ακόμη να απαντούν |
Η κάθε κατηγορία απαιτεί διαφορετικά εργαλεία και διαφορετική προσέγγιση. Στόχος του ώριμου ethical hacker δεν είναι να τρέξει «ένα tool που τα κάνει όλα», αλλά να συνδυάσει passive sources, ενεργές τεχνικές και validation σε ένα συνεκτικό workflow που παράγει αξιόπιστο asset inventory.
Εργαλεία και τεχνικές που χρησιμοποιούνται
Στο εργαστηριακό μας workflow συνδυάζουμε έξι κύρια εργαλεία και αρκετές τεχνικές OSINT. Όλα είναι open-source και ευρέως αποδεκτά στην ethical hacking κοινότητα.
| Εργαλείο / Τεχνική | Σκοπός | Lab χρήση | Defensive value |
|---|---|---|---|
| Amass (OWASP) | Passive & active subdomain enumeration με πολλαπλά data sources | Discovery υπο-domains του academy-lab.local από passive feeds | Defender μπορεί να τρέξει το ίδιο tool εσωτερικά για self-monitoring |
| Subfinder (ProjectDiscovery) | Γρήγορο passive subdomain enumeration | Συμπληρωματική πηγή για το Amass, ταχύτερο σε bulk runs | Καταγραφή των δικών μας subdomains στο πρόγραμμα CTEM |
| Certificate Transparency (crt.sh) | Ανίχνευση subdomains μέσω CT logs | SQL-style queries σε crt.sh για lab domain | Audit των δικών μας CT εγγραφών — εντοπισμός shadow certificates |
| httpx (ProjectDiscovery) | Probing για ενεργά HTTP/HTTPS endpoints | Validation ποια από τα subdomains που βρήκαμε απαντούν | Inventory των δημόσιων web entry points με tech stack info |
| Naabu / Nmap | Port discovery και service identification | Light, in-scope port scan για in-scope subnets | Inventory ports/services και comparison με expected baseline |
| Shodan / Censys (passive) | Internet survey data — χωρίς δικό σου scanning | Lookups με ASN ή lab IP για ιστορικά αποτελέσματα | Δείκτης εξωτερικής ορατότητας — what attackers see χωρίς να μας προσεγγίσουν |
| GitHub recon (manual dorking) | Αναζήτηση δημόσιων repos με αναφορές σε scope | Στοχευμένα queries σε advanced search (όχι secret hunting) | Πρόγραμμα secret scanning + DLP για αποτροπή leaks |
| Wayback Machine / archive.org | Ιστορικά snapshots | Εντοπισμός παλιών URLs που μπορεί να απαντούν ακόμη | Audit αρχειοθετημένου content + content takedown όπου απαιτείται |
Σημείωση μεθοδολογίας: όλα τα εργαλεία χρησιμοποιούνται μόνο σε scope-defined targets. Σε ένα πραγματικό engagement, η ίδια η passive φάση μπορεί να επιστρέψει αποτελέσματα εκτός scope — αυτά καταγράφονται για ενημέρωση του πελάτη, αλλά δεν αποτελούν αντικείμενο ενεργής διερεύνησης.
Φάση 1: Passive Discovery — OSINT χωρίς ενεργό αποτύπωμα
Στόχος του passive discovery είναι να συγκεντρώσουμε όσο το δυνατόν περισσότερες πληροφορίες χωρίς να στείλουμε ούτε ένα πακέτο στον πραγματικό στόχο. Αυτό σημαίνει: μόνο δημόσιες πηγές, third-party datasets, certificate transparency, search engines, αρχειοθετημένα data.
Στο εργαστήριο, οι κύριες πηγές που αξιοποιούμε είναι:
- Certificate Transparency logs μέσω crt.sh — οι CAs δημοσιεύουν κάθε νέο SSL/TLS certificate σε publicly verifiable logs.
- Passive DNS aggregators (Project Sonar, SecurityTrails-style APIs) — ιστορικά DNS resolutions.
- Internet survey datasets (Rapid7 Sonar, Scans.io) — πλήρη internet-wide scans που έχουν ήδη γίνει.
- Search engines (Google dorking με
site:operator). - Wayback Machine για ιστορικά endpoints.
# Passive subdomain enumeration — lab.local
$ subfinder -d academy-lab.local -all -silent -o subdomains_passive.txt
# Certificate Transparency query (crt.sh JSON output)
$ curl -s "https://crt.sh/?q=%25.academy-lab.local&output=json" | jq -r '.[].name_value' | sort -u >> subdomains_passive.txt
# OWASP Amass passive enumeration
$ amass enum -passive -d academy-lab.local -o subdomains_amass.txt
# Merge & deduplicate
$ cat subdomains_*.txt | sort -u > assets/subdomains_all.txt
$ wc -l assets/subdomains_all.txt
147 assets/subdomains_all.txt
Lab-only example — use only on systems you own or are authorized to test.
Το αποτέλεσμα είναι ένα candidate list 147 subdomains — προσοχή, αυτή είναι λίστα υποψηφίων. Πολλά από αυτά μπορεί να μην απαντούν πια, ή να ανήκουν σε wildcard DNS, ή να αναφέρονται σε internal-only ονόματα που εμφανίστηκαν κατά λάθος σε public sources.
Το πλεονέκτημα της passive προσέγγισης είναι ότι ο defender (στην προκειμένη περίπτωση, η ομάδα που τρέχει τα logs του lab) δεν βλέπει ούτε ένα πακέτο από εμάς. Στα logs εμφανίζεται μόνο φυσιολογική, νόμιμη χρήση CT logs και passive aggregators από όλους τους χρήστες του διαδικτύου.

Επιπρόσθετα, στο stage αυτό κάνουμε passive lookups σε Shodan και Censys με το ASN του υποθετικού οργανισμού. Επιστρέφουν IPs που έχουν ήδη σαρωθεί από αυτές τις πλατφόρμες, με τις υπηρεσίες που τρέχουν, banners και geolocation. Σημαντικό: δεν τρέχουμε δικά μας scans εδώ — απλά διαβάζουμε αποθηκευμένα δεδομένα.
Φάση 2: Active Discovery — Validation και βαθύτερη ορατότητα
Μετά τη συλλογή των candidate assets, μπαίνουμε στη φάση active discovery: επικοινωνία με τα ίδια τα assets για να επιβεβαιώσουμε ότι υπάρχουν και να συγκεντρώσουμε επιπλέον μετα-δεδομένα. Αυτό το βήμα γίνεται μόνο μέσα στο επιτρεπτό scope και πάντα με συντηρητικές παραμέτρους ρυθμού για αποφυγή service disruption.
Τα βασικά εργαλεία εδώ είναι το httpx για HTTP/HTTPS probing και το naabu ή Nmap για port discovery.
# HTTP probing — επιβεβαίωση ποια subdomains απαντούν
$ httpx -l assets/subdomains_all.txt -title -tech-detect -status-code -o assets/httpx_live.txt -rate-limit 50
# Output δείγμα (lab-only synthetic):
https://api.academy-lab.local [200] [JSON API] [Apache]
https://staging.academy-lab.local [200] [Login] [nginx,PHP]
https://docs.academy-lab.local [200] [Documentation] [MkDocs]
https://old-marketing.academy-lab.local [200] [Welcome] [WordPress 5.2]
https://mail.academy-lab.local [403] [-] [Postfix-Admin]
https://internal-tools.academy-lab.local [301] [-] [nginx]
# Light port scan για in-scope subnet (top-100 ports)
$ naabu -host 10.10.10.0/24 -top-ports 100 -rate 1000 -o assets/ports.txt
$ wc -l assets/ports.txt
23 assets/ports.txt
Lab-only example — use only on systems you own or are authorized to test.
Το httpx output αμέσως αποκαλύπτει σημαντικές παρατηρήσεις σε επίπεδο triage:
old-marketing.academy-lab.localτρέχει WordPress 5.2 — παλιά έκδοση, πιθανώς εκτός κεντρικού patching cycle.staging.academy-lab.localεκθέτει login portal — staging environment δεν θα έπρεπε να είναι δημόσια προσβάσιμο.internal-tools.academy-lab.localκάνει 301 redirect — αξίζει follow-up: πού οδηγεί και γιατί είναι δημόσιο.
Σημαντικό: στη φάση αυτή δεν εκτελούμε vulnerability scanning ή exploitation. Καταγράφουμε απλά τι βρήκαμε. Το reasoning είναι ότι το discovery output από μόνο του έχει επιχειρησιακή αξία — και αν συνδυαστεί με aggressive scanning σε early stage, μπορεί να προκαλέσει service degradation ή false positives στα defensive controls.

Στο active discovery, ο defender αρχίζει να βλέπει τα πρώτα logs: HTTP request entries στα reverse proxies, connection attempts στα firewalls, αυξημένο rate από μία IP source. Καλά καλιμπραρισμένοι sensors θα παρατηρήσουν patterns όπως: ταχεία διαδοχή HEAD requests σε πολλά διαφορετικά subdomains από την ίδια IP, ή scanning patterns στα top ports. Αυτό αποτελεί ευκαιρία για early-warning detection ενός recon engagement.
Φάση 3: Cloud & Source Code Discovery
Η σύγχρονη επιφάνεια ενός οργανισμού επεκτείνεται πέρα από on-prem υποδομές. Στο εργαστηριακό σενάριο εξετάζουμε δύο επιπλέον κατηγορίες assets: cloud storage εκθέσεις και δημόσιες αναφορές σε source code.
Cloud asset enumeration (read-only)
Στόχος είναι ο εντοπισμός ονομάτων cloud buckets (S3, Azure Blob, GCS) που μπορεί να έχουν συσχέτιση με τον target organization, και ο έλεγχος ορατότητας. Δεν προσπαθούμε ποτέ να ανεβάσουμε ή να διαγράψουμε content. Διαβάζουμε μόνο public listings, αν υπάρχουν.
# Συνθετικός έλεγχος για πιθανά bucket names με βάση το lab brand
# (lab-only enumeration — όχι σε πραγματικά clouds)
$ for prefix in academy academy-lab academylab academy-staging academy-prod; do
for suffix in "" -static -media -uploads -logs -backup; do
name="${prefix}${suffix}"
echo "[probe] s3://${name}"
done
done > assets/bucket_candidates.txt
# Επιβεβαίωση μέσω read-only API call (HTTP HEAD only)
# Όχι ανάκτηση content, μόνο status code
$ while read bucket; do
code=$(curl -s -o /dev/null -w "%{http_code}" "https://${bucket}.s3.amazonaws.com/")
echo "${bucket} → ${code}"
done < assets/bucket_candidates.txt > assets/bucket_results.txt
# Παράδειγμα output (lab synthetic):
academy-lab-static → 200
academy-lab-uploads → 403
academy-lab-backup → 404
Lab-only example — use only on systems you own or are authorized to test.
Ένα 200 response σε bucket listing υποδηλώνει πιθανή λάθος ρύθμιση δικαιωμάτων. Στο πλαίσιο του lab καταγράφεται ως finding με risk rating, αλλά δεν γίνεται καμία απόπειρα ανάγνωσης αρχείων. Στο reporting tab, το finding προτείνει remediation: αναθεώρηση bucket policy, ενεργοποίηση Block Public Access, audit μέσω AWS Config Rules.
Source code aggregator recon
Η δεύτερη επιφάνεια αφορά δημόσια code repositories που μπορεί να περιέχουν αναφορές σε εσωτερικά endpoints, hostnames, ή τεχνικές λεπτομέρειες. Στο εργαστήριο εκτελούμε μόνο advanced search queries με δημόσια interface, χωρίς αυτοματοποιημένο scraping ή secret extraction.
# GitHub advanced search — αναφορές στο lab domain
# (εκτελείται manually στο github.com/search/advanced)
"academy-lab.local" in:file # γενικές αναφορές
"api.academy-lab.local" in:file # συγκεκριμένο endpoint
filename:.env "academy-lab" # config files
extension:yml "academy-lab" # IaC αρχεία
Lab-only example — use only on systems you own or are authorized to test.
Σημαντικό: όταν το lab δείχνει ότι ένα δημόσιο repo περιέχει αναφορά σε εσωτερικό endpoint, η σωστή ηθική στάση είναι:
- Καταγραφή του finding με risk rating.
- Δεν γίνεται καμία απόπειρα εξαγωγής secrets ή credentials.
- Αν εντοπιστεί κατά λάθος credential ή secret, σταματάει αμέσως η συλλογή και ενημερώνεται ο πελάτης.
- Στο report προτείνεται secret scanning policy (π.χ. GitHub secret scanning, GitLab security dashboard, custom pre-commit hooks).
Αυτή η ηθική στάση δεν είναι προαιρετική — αποτελεί βασικό χαρακτηριστικό του ώριμου ethical hacker που αντιδιαστέλλεται με κακόβουλους actors.
Φάση 4: Validation, Triage και Risk Scoring
Μετά τις φάσεις discovery, καταλήγουμε με ένα σύνολο raw findings που χρειάζονται validation και triage. Το αντικειμενικό κριτήριο για ένα asset είναι: (α) ανήκει στο scope, (β) είναι ενεργό, (γ) εκτίθεται σε δίκτυο ή internet.
Στο lab συνθέτουμε ένα assets_inventory.csv με τις παρακάτω στήλες:
| Πεδίο | Παράδειγμα | Σκοπός |
|---|---|---|
| asset_type | subdomain / IP / bucket / repo | Κατηγοριοποίηση |
| identifier | staging.academy-lab.local | Μοναδική αναφορά |
| resolved_ip | 10.10.10.52 | Network mapping |
| ports | 80, 443, 22 | Service exposure |
| tech_stack | nginx, PHP 7.4, WordPress 5.2 | Σύνδεση με γνωστά CVEs (στο επόμενο stage, εκτός Asset Discovery) |
| discovery_source | crt.sh + httpx | Reproducibility |
| first_seen | 2026-05-23 09:42 | Timeline |
| risk_tier | High / Medium / Low | Triage |
| notes | “Staging exposed — should be IP-restricted” | Επιχειρησιακή ερμηνεία |

Το risk_tier δεν είναι vulnerability score — είναι exposure score. Ένα staging environment που εκτίθεται δημόσια μπορεί να μην έχει γνωστή ευπάθεια αυτή τη στιγμή, αλλά αποτελεί elevated exposure γιατί συνήθως δεν έχει το ίδιο επίπεδο hardening και monitoring με production. Η triage matrix που χρησιμοποιούμε:
| Tier | Κριτήρια | Action |
|---|---|---|
| High | Εκτεθειμένο admin panel, παρωχημένο CMS, staging με credentials prompt, δημόσιο bucket με listing | Άμεση ενημέρωση πελάτη, προτεινόμενη remediation πριν την επόμενη φάση testing |
| Medium | Παλιά τεχνολογία χωρίς γνωστή ευπάθεια, εκτεθειμένα ports πέρα από baseline, αναφορές σε public repos | Καταγραφή και inclusion στο final report με προτεινόμενη χρονική γραμμή |
| Low | Νόμιμα εκτεθειμένα production services με σύγχρονο stack, γνωστά στον organization | Inventory entry χωρίς ενεργή ένδειξη |
Παράδειγμα ολοκληρωμένου workflow
Για να συνδέσουμε όλα τα παραπάνω σε ένα συνεκτικό workflow, παραθέτουμε τις χρονικές φάσεις ενός 4ωρου lab session.
# 09:00 — Setup & scope confirmation
$ cat assets/scope.txt
academy-lab.local
demo.internal
10.10.10.0/24
10.10.20.0/24
# 09:15 — Passive enumeration (Φάση 1)
$ subfinder -d academy-lab.local -all -silent -o passive/subfinder.txt
$ amass enum -passive -d academy-lab.local -o passive/amass.txt
$ curl -s "https://crt.sh/?q=%25.academy-lab.local&output=json" | jq -r '.[].name_value' | sort -u > passive/ct.txt
$ cat passive/*.txt | sort -u > assets/candidates.txt
$ wc -l assets/candidates.txt
147 assets/candidates.txt
# 10:00 — Active validation (Φάση 2)
$ httpx -l assets/candidates.txt -title -tech-detect -status-code -o assets/live.txt -rate-limit 50
$ wc -l assets/live.txt
34 assets/live.txt
# 10:45 — Light port discovery (Φάση 2)
$ naabu -host 10.10.10.0/24 -top-ports 100 -rate 1000 -o assets/ports.txt
# 11:30 — Cloud asset enumeration (Φάση 3)
$ bash scripts/cloud_probe.sh > assets/buckets.txt
# 12:00 — Triage & risk scoring (Φάση 4)
$ python3 scripts/triage.py --live assets/live.txt --ports assets/ports.txt --buckets assets/buckets.txt --out assets/inventory.csv
# 12:30 — Summary
$ python3 scripts/summary.py assets/inventory.csv
[Summary]
Total assets discovered: 89
Subdomains (live): 34
IPs in scope: 8
Open ports: 23
Cloud buckets (public): 1
Code repos (mention): 3
Risk distribution:
High: 4 (staging exposed, WordPress 5.2, public bucket, leaked endpoint)
Medium: 12
Low: 73
Lab-only example — use only on systems you own or are authorized to test.
Το αποτέλεσμα είναι ένα asset inventory που μπορεί να μεταφερθεί σε επόμενες φάσεις vulnerability analysis και reporting. Παρατηρήστε ότι ποτέ δεν αγγίξαμε vulnerability scanning ή exploitation — αυτό είναι σκοπίμως εκτός της φάσης Asset Discovery. Η αρχή είναι πρώτα ξέρω τι έχω, μετά ξέρω αν είναι ασφαλές.
Blue Team Perspective — τι βλέπει ο defender
Από την οπτική του defender, ένα Asset Discovery engagement αφήνει διαφορετικά ίχνη ανά φάση. Η passive phase είναι σχεδόν αόρατη — μόνο νόμιμα queries σε CT logs και public datasets. Η active phase αφήνει σαφή αποτυπώματα: HTTP requests στα reverse proxies, connection attempts στα firewalls, ίσως αυξημένο rate από συγκεκριμένη IP source.
| Φάση recon | Παρατηρήσιμη ένδειξη | Πηγή log | Detection idea |
|---|---|---|---|
| Passive (CT, OSINT) | Καμία άμεση — έμμεσα: νέες CT entries | Δικό μας CT log monitoring | Alert όταν εμφανίζεται νέο cert για unexpected subdomain |
| HTTP probing (httpx) | Πολλαπλά HEAD/GET / από ίδια IP σε διαφορετικά FQDNs | Reverse proxy / WAF logs | Rate-based rule + UA fingerprinting (httpx default UA) |
| Port scanning (naabu) | SYN scans σε σειρά ports από ίδια source | Firewall / IDS logs (Suricata, Zeek) | Suricata rule για >50 ports σε <60s από μία IP |
| Bucket probing | Καμία ένδειξη στον target (3rd party cloud) | Cloud provider logs (CloudTrail-style) | Audit Public Access events στο S3 |
| Source code recon | Καμία ένδειξη στον target | 3rd party (GitHub audit logs αν IDP) | Secret scanning + organization-wide policy |
Παράδειγμα Suricata-style ενδεικτικού κανόνα (high-level pseudocode, όχι production rule):
# Pseudo-rule — port scan detection from single source
alert tcp $EXTERNAL_NET any -> $HOME_NET any (
msg:"Asset Discovery — possible port scan";
flow:to_server;
threshold: type both, track by_src, count 50, seconds 60;
classtype:network-scan;
sid:90020001; rev:1;
)
Lab-only example — use only on systems you own or are authorized to test.
Για ώριμα SOC, η ανάλυση δεν είναι μόνο στο IDS layer. Συνδυάζονται:
- Web Application Firewall logs — προφίλ user-agents και IP reputation.
- Reverse proxy / load balancer logs — pattern analysis σε requests.
- DNS server logs — αυξημένα queries σε πολλαπλά subdomains από εσωτερικό network (αν αυτό συμβαίνει).
- CT log monitoring — με υπηρεσίες σαν crt.sh ή ιδιωτικά solutions, ο defender ειδοποιείται όταν εκδίδεται πιστοποιητικό για ασυνήθιστο subdomain.
Αμυντική σκοπιά: μείωση του attack surface
Το Asset Discovery δεν είναι μόνο εργαλείο για ethical hackers. Είναι θεμελιώδες κομμάτι του Blue Team προγράμματος Continuous Threat Exposure Management. Στο εργαστηριακό σενάριο, οι defensive συστάσεις που προκύπτουν από τα ευρήματα ομαδοποιούνται σε επτά κατηγορίες.
| Κατηγορία | Παρατήρηση | Προτεινόμενο μέτρο |
|---|---|---|
| Subdomain hygiene | 147 candidate subdomains, 34 ενεργά | Κεντρικό registry, decommission process, periodic DNS audit |
| Staging exposure | staging.academy-lab.local δημόσιο | IP allow-listing, VPN-only access, basic auth gate |
| Outdated tech stack | WordPress 5.2 σε παλιό subdomain | Patching SLA, automated dependency scanning, decommission unused subdomains |
| Bucket exposure | 1 public bucket με listing enabled | S3 Block Public Access org-wide, AWS Config rule, IAM least-privilege review |
| Source code leaks | Αναφορές σε εσωτερικά endpoints σε public repo | GitHub secret scanning, pre-commit hooks, security training |
| CT log monitoring | Έλλειψη proactive CT alerting | Υλοποίηση CT-watcher για όλα τα brand domains |
| Inventory automation | Manual asset inventory δεν συντηρείται | Αυτοματοποιημένη EASM ροή με weekly snapshot και diff alerts |
Το μεγαλύτερο συμπέρασμα: η μείωση του attack surface αρχίζει από το να γνωρίζεις τι έχεις. Σε πολλούς οργανισμούς το EASM ξεκινάει ως μια άσκηση reactive — μετά από incident — και εξελίσσεται σε proactive, αυτοματοποιημένη ροή.
MITRE ATT&CK mapping
Η φάση Asset Discovery αντιστοιχεί στο πρώτο tactic του ATT&CK Enterprise framework: Reconnaissance (TA0043). Παρακάτω αντιστοιχίζουμε τα εργαστηριακά παρατηρούμενα στις σχετικές τεχνικές.
| ATT&CK Tactic | Technique | Lab observation | Detection idea |
|---|---|---|---|
| Reconnaissance | T1595 Active Scanning | naabu top-ports + httpx probing | IDS rate-based alerts + WAF UA fingerprinting |
| Reconnaissance | T1592 Gather Victim Host Information | tech-detect στο httpx, banner grabbing | WAF rules κατά γνωστών recon UA strings |
| Reconnaissance | T1590 Gather Victim Network Information | subdomain enumeration μέσω CT logs, passive DNS | CT monitoring + DNS analytics στο public DNS provider |
| Reconnaissance | T1593 Search Open Websites/Domains | GitHub advanced search, Wayback Machine queries | Secret scanning policy + content takedown automations |
| Reconnaissance | T1596 Search Open Technical Databases | Shodan/Censys passive lookups | Δικό μας Shodan monitoring για own assets |
| Resource Development | T1583 Acquire Infrastructure (defensive view) | Παρακολούθηση brand-similar domains | Brand monitoring, typosquat detection |
Παρατήρηση: το mapping δίνεται σε defensive context — αντί να περιγράψουμε «πώς ένας attacker εκτελεί T1595», περιγράφουμε τι παρατηρείται από την άμυνα και πώς να το ανιχνεύσουμε.
Συχνά λάθη και καλύτερες πρακτικές
| Συχνό λάθος | Γιατί έχει σημασία | Καλύτερη πρακτική |
|---|---|---|
| Επιθετικό scanning στην πρώτη φάση | Trip detection rules, διαστρέβλωση δεδομένων, πιθανή service disruption | Passive first — active μόνο μετά από scope confirmation και rate-limit |
| Εκτέλεση discovery εκτός scope | Νομικό και ηθικό πρόβλημα | Αυστηρή τήρηση scope.txt, ξεχωριστή λίστα για out-of-scope returns |
| Μη validation των passive findings | Inventory γεμίζει με dead entries | httpx validation πριν την triage |
| Συλλογή secrets που εντοπίζονται σε public repos | Παράβαση ethics και πιθανώς νομοθεσίας | Άμεση παύση συλλογής, ενημέρωση πελάτη |
| Όχι reproducibility | Δεν μπορεί να γίνει verification ή follow-up | Καταγραφή command lines, timestamps, sources σε log |
| Στατικό inventory | Το attack surface αλλάζει συνεχώς | Διαρκές EASM — εβδομαδιαία snapshots + diff alerts |
Ηθικά και νομικά όρια
Παρόλο που η passive φάση μοιάζει «αόρατη», ισχύουν οι ίδιες αρχές όπως σε κάθε pentesting engagement:
- Σαφές Rules of Engagement (RoE) — υπογεγραμμένο, με ορισμένο scope, time window, contact points.
- Authorization in writing — μόνο σε targets που ανήκουν στον εξουσιοδοτημένο οργανισμό.
- Data minimization — συλλέγονται μόνο τα δεδομένα που χρειάζονται για το reporting.
- Στόχος-εκτός-scope handling — αν το passive enum επιστρέψει tangentially σχετιζόμενα assets, καταγράφονται αλλά δεν διερευνώνται.
- Secret handling — αν εντοπιστούν credentials σε public source, σταματάει η συλλογή και ενημερώνεται ο πελάτης.
- Storage & retention — τα discovery data αποθηκεύονται κρυπτογραφημένα και διαγράφονται μετά το reporting (ανάλογα με τη σύμβαση).
- Compliance awareness — οι κανόνες GDPR, NIS2, και τομεακών οδηγιών (DORA για χρηματοοικονομικό κλάδο) εφαρμόζονται πλήρως.
Σε πολλές δικαιοδοσίες, ακόμη και «passive» αναζητήσεις μπορούν να θεωρηθούν αναζήτηση ευπαθειών σε τρίτα συστήματα όταν ο στόχος δεν είναι εξουσιοδοτημένος. Η ασφαλής στάση είναι: χωρίς γραπτή άδεια, δεν τρέχει τίποτα.
Operational considerations για συνεχή Asset Discovery
Όταν ο οργανισμός θέλει να μεταβεί από ad-hoc Asset Discovery σε συνεχή EASM, ορισμένες πρακτικές παρατηρήσεις βοηθούν:
- Cadence: εβδομαδιαία ή ημερήσια discovery snapshot με diff alerting αντί για ετήσια άσκηση.
- Integration: τα ευρήματα ροβολούν σε ticketing (Jira/ServiceNow) ή σε SOAR workflow για αυτόματο triage.
- Tagging: κάθε asset taggάρεται με owner (team, business unit), criticality, και exposure tier.
- SLA: οριζόμενες χρονικές γραμμές για mitigation ανά risk tier — π.χ. High = 48h, Medium = 14d, Low = 30d.
- Vendor management: διαφορετική κατηγορία assets, με τους δικούς της κανόνες (3rd party risk management framework).
- Threat intelligence: ενσωμάτωση brand-protection feeds για typosquats και phishing infrastructure.
Σε ώριμους οργανισμούς, η ομάδα Asset Management δεν είναι ξεχωριστή από την ομάδα ασφάλειας — αποτελούν ένα ολοκληρωμένο πρόγραμμα Exposure Management.
Reporting και evidence collection
Το τελικό deliverable μιας φάσης Asset Discovery δεν είναι μόνο μια λίστα assets. Είναι ένα reporting package που περιλαμβάνει:
- Executive summary — 1-2 σελίδες με τα κύρια risk findings σε όρους που κατανοεί το business.
- Methodology — ποια εργαλεία, ποιες πηγές, ποιες χρονικές στιγμές.
- Asset inventory — το CSV/XLSX με όλα τα assets και τα μετα-δεδομένα.
- Triage view — High/Medium/Low pivot με recommended next steps ανά κατηγορία.
- Evidence appendix — screenshots, raw command outputs, source URLs, timestamps.
- Remediation tracker — με ownership, deadline, status.
- Detection gaps — ποιες ευκαιρίες monitoring/detection εντοπίστηκαν στην πλευρά του defender.
Σε επόμενη φάση engagement (vulnerability analysis / pentesting), το asset inventory είναι το input. Έτσι, η ποιότητα του Asset Discovery καθορίζει την ποιότητα ολόκληρου του pentesting cycle.
Σχετικό υλικό από την Ακαδημία
Για βαθύτερη εμβάθυνση, προτείνονται τα παρακάτω τεχνικά άρθρα της Audax Cybersecurity Academy:
- Information Gathering — όλα τα άρθρα της Ακαδημίας για reconnaissance και OSINT.
- Attack Surface — άρθρα EASM/CTEM methodology.
- External Attack Surface Management — Methodology, Discovery & Validation.
- Attack Surface για Αρχάριους — Τι Βλέπει ο Επιτιθέμενος.
- Multi-Tool Ethical Hacking Workflow — Recon to Report.
Συμπέρασμα
Το Asset Discovery είναι περισσότερο από μια λίστα subdomains. Είναι μια στρατηγική άσκηση γνώσης του ίδιου του οργανισμού — τι εκτίθεται, σε ποιον, πώς, και ποια είναι η σχετική επικινδυνότητα. Για τον ethical hacker, αποτελεί τη θεμελιώδη πρώτη φάση που καθορίζει την ποιότητα ολόκληρου του engagement. Για τον Blue Team, αποτελεί τη βάση κάθε exposure management προγράμματος.
Το εργαστηριακό workflow που παρουσιάσαμε — passive → active → cloud/code → triage → reporting — είναι μεταφέρσιμο σε πραγματικά engagements υπό την προϋπόθεση πάντοτε αυστηρού scope και γραπτής εξουσιοδότησης. Η συνδυασμένη χρήση open-source εργαλείων (Amass, Subfinder, httpx, Naabu) με passive δημόσιες πηγές (CT logs, Shodan, Censys, Wayback) προσφέρει μια ολοκληρωμένη εικόνα του attack surface χωρίς να βασίζεται σε επιθετικές, υψηλού ρίσκου τεχνικές.
Το πιο σημαντικό συμπέρασμα: η ηθική στάση δεν περιορίζει την τεχνική αποτελεσματικότητα — την ενισχύει. Ένα Asset Discovery engagement που γίνεται με σεβασμό στο scope, στους χρήστες, και στην προστασία δεδομένων, παράγει πιο αξιόπιστα αποτελέσματα και θεμελιώνει μακροχρόνια σχέση εμπιστοσύνης μεταξύ ethical hacker και πελάτη.

