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.

Audax Asset Discovery — επισκόπηση εξωτερικού attack surface ενός εργαστηριακού περιβάλλοντος.
Επισκόπηση εξωτερικού attack surface για εξουσιοδοτημένο lab περιβάλλον.

Κατηγορίες 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 από όλους τους χρήστες του διαδικτύου.

Ενδεικτική απεικόνιση terminal για passive recon με subfinder, amass, crt.sh και httpx σε ελεγχόμενο lab.
Synthetic terminal output από passive recon (subfinder, amass, CT logs, httpx, naabu) σε lab-only scope.

Επιπρόσθετα, στο 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.

Διάγραμμα 6-stage recon pipeline: passive, active, cloud, code, validate, triage — με συνδέσεις βελών.
Έξι στάδια του Asset Discovery workflow: passive → active → cloud → code → validate → triage.

Στο 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, η σωστή ηθική στάση είναι:

  1. Καταγραφή του finding με risk rating.
  2. Δεν γίνεται καμία απόπειρα εξαγωγής secrets ή credentials.
  3. Αν εντοπιστεί κατά λάθος credential ή secret, σταματάει αμέσως η συλλογή και ενημερώνεται ο πελάτης.
  4. Στο 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” Επιχειρησιακή ερμηνεία
Τοπολογία κατηγοριών assets γύρω από κεντρικό discovery hub: subdomains, IPs, ports, cloud, code, historic.
Κατηγορίες περιουσιακών στοιχείων που χαρτογραφούνται σε ένα ολοκληρωμένο Asset Discovery engagement.

Το 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:

  1. Σαφές Rules of Engagement (RoE) — υπογεγραμμένο, με ορισμένο scope, time window, contact points.
  2. Authorization in writing — μόνο σε targets που ανήκουν στον εξουσιοδοτημένο οργανισμό.
  3. Data minimization — συλλέγονται μόνο τα δεδομένα που χρειάζονται για το reporting.
  4. Στόχος-εκτός-scope handling — αν το passive enum επιστρέψει tangentially σχετιζόμενα assets, καταγράφονται αλλά δεν διερευνώνται.
  5. Secret handling — αν εντοπιστούν credentials σε public source, σταματάει η συλλογή και ενημερώνεται ο πελάτης.
  6. Storage & retention — τα discovery data αποθηκεύονται κρυπτογραφημένα και διαγράφονται μετά το reporting (ανάλογα με τη σύμβαση).
  7. 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 που περιλαμβάνει:

  1. Executive summary — 1-2 σελίδες με τα κύρια risk findings σε όρους που κατανοεί το business.
  2. Methodology — ποια εργαλεία, ποιες πηγές, ποιες χρονικές στιγμές.
  3. Asset inventory — το CSV/XLSX με όλα τα assets και τα μετα-δεδομένα.
  4. Triage view — High/Medium/Low pivot με recommended next steps ανά κατηγορία.
  5. Evidence appendix — screenshots, raw command outputs, source URLs, timestamps.
  6. Remediation tracker — με ownership, deadline, status.
  7. Detection gaps — ποιες ευκαιρίες monitoring/detection εντοπίστηκαν στην πλευρά του defender.

Σε επόμενη φάση engagement (vulnerability analysis / pentesting), το asset inventory είναι το input. Έτσι, η ποιότητα του Asset Discovery καθορίζει την ποιότητα ολόκληρου του pentesting cycle.

Σχετικό υλικό από την Ακαδημία

Για βαθύτερη εμβάθυνση, προτείνονται τα παρακάτω τεχνικά άρθρα της Audax Cybersecurity Academy:

Συμπέρασμα

Το 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 και πελάτη.

Στην Audax Cybersecurity Academy, η τεχνική γνώση συνδέεται με υπεύθυνη πρακτική, αμυντική σκέψη και πραγματική επιχειρησιακή αξία. Συνεχίστε την εκπαίδευσή σας μέσα από τα τεχνικά labs και τα ethical hacking άρθρα της Ακαδημίας.

Reviews

100 %

User Score

1 ratings
Rate This

Leave your comment

Your email address will not be published. Required fields are marked *