← Όλα τα άρθρα

SSRF σε custom εφαρμογές: τι ρίσκο έχουν URLs, webhooks και imports από τρίτες πηγές

Όταν μια εφαρμογή δέχεται URLs ή καλεί webhooks, μπορεί να ανοίξει SSRF ρίσκο. Δείτε πώς βοηθούν allowlists, validation, redirects και network controls.

SSRF σε custom εφαρμογές: τι ρίσκο έχουν URLs, webhooks και imports από τρίτες πηγές

Πολλές custom εφαρμογές δέχονται URLs από χρήστες ή συστήματα. Ένα portal μπορεί να κατεβάζει εικόνα από link, ένα automation να καλεί webhook, ένα CMS να κάνει import περιεχόμενο από URL ή ένα dashboard να τραβά δεδομένα από τρίτη υπηρεσία.

Αυτές οι λειτουργίες είναι χρήσιμες, αλλά χρειάζονται προσοχή. Αν ο server κάνει requests προς διευθύνσεις που ελέγχει ο χρήστης, μπορεί να εμφανιστεί SSRF, δηλαδή Server-Side Request Forgery.

Τι είναι SSRF

Στο SSRF, ο επιτιθέμενος προσπαθεί να κάνει τον server να στείλει request σε διεύθυνση που δεν θα έπρεπε. Το πρόβλημα δεν είναι ότι ο browser του χρήστη ανοίγει ένα URL. Το πρόβλημα είναι ότι το κάνει ο server, συχνά από δίκτυο με πρόσβαση σε εσωτερικές υπηρεσίες.

Το OWASP περιγράφει SSRF ως επίθεση όπου ο server εξαναγκάζεται να κάνει ανεπιθύμητα requests προς εσωτερικά ή εξωτερικά συστήματα.

Πού εμφανίζεται

Συνηθισμένα σημεία:

  • import image from URL
  • webhook callbacks
  • PDF generation από remote HTML
  • preview generator για links
  • integrations που δέχονται endpoint από πελάτη
  • AI automations που ανοίγουν URLs
  • server-side fetch για metadata
  • file upload by URL

Αν μια εφαρμογή παίρνει URL ως input και ο backend server το καλεί, πρέπει να θεωρηθεί security-sensitive λειτουργία.

Γιατί δεν αρκεί απλό regex

Τα URLs έχουν πολλές παραλλαγές. Μπορεί να υπάρχουν redirects, encoded χαρακτήρες, διαφορετικά protocols, IPv6, internal IP ranges ή DNS tricks.

Ένα απλό regex που λέει «ξεκινάει με https» δεν αρκεί. Χρειάζεται πιο αυστηρή λογική:

  • επιτρεπόμενα protocols μόνο HTTP/HTTPS όπου χρειάζεται
  • allowlist domains όταν είναι δυνατό
  • DNS resolution και έλεγχος IP ranges
  • blocking private, loopback και metadata IPs
  • απενεργοποίηση ή αυστηρός έλεγχος redirects
  • timeouts και size limits
  • network egress controls

Το OWASP προτείνει allowlist όταν η εφαρμογή πρέπει να καλεί μόνο γνωστές και έμπιστες υπηρεσίες.

Webhooks

Τα webhooks είναι χρήσιμα για integrations, αλλά πρέπει να σχεδιαστούν σωστά.

Για outgoing webhooks:

  • περιορίστε ποια URLs επιτρέπονται
  • υπογράψτε τα requests
  • βάλτε retry policy με όρια
  • καταγράψτε αποτυχίες χωρίς secrets
  • προστατέψτε από SSRF σε custom endpoints

Για incoming webhooks:

  • επαληθεύστε signature
  • κάντε idempotency checks
  • περιορίστε payload size
  • καταγράψτε events
  • αποφύγετε άμεση εκτέλεση επικίνδυνων ενεργειών χωρίς validation

AI agents και URL tools

Σε agentic AI workflows, ένα tool που ανοίγει URLs ή καλεί APIs μπορεί να αυξήσει SSRF και data exposure ρίσκο αν δεν έχει όρια.

Πρακτικές ασφαλείας:

  • ο agent να χρησιμοποιεί μόνο server-side tools με πολιτικές πρόσβασης
  • domain allowlists όπου γίνεται
  • human approval για κρίσιμες ενέργειες
  • logs για κάθε external request
  • περιορισμός πρόσβασης σε internal services
  • αποφυγή αποστολής secrets σε τρίτα URLs

Η AI δεν πρέπει να έχει ανοιχτή δυνατότητα να καλεί οποιοδήποτε URL χωρίς έλεγχο.

Πώς το κάνει η Ai Foundry

Στην Ai Foundry σχεδιάζουμε custom εφαρμογές, portals και AI automations με ξεκάθαρα όρια στα external requests. Όταν μια εφαρμογή χρειάζεται imports, webhooks ή URL previews, ορίζουμε validation, allowlists, permissions, logging και network controls πριν η λειτουργία βγει σε production.

Αυτό είναι κρίσιμο για εφαρμογές που συνδέονται με CRM, CMS, payments, dashboards ή AI agents. Στόχος είναι η λειτουργικότητα να παραμένει πρακτική χωρίς να ανοίγει πρόσβαση σε εσωτερικά συστήματα ή secrets.

Checklist

Ελέγξτε αν η εφαρμογή σας:

  • δέχεται URLs από χρήστες ή τρίτα συστήματα
  • κάνει server-side fetch σε αυτά τα URLs
  • επιτρέπει μόνο συγκεκριμένα protocols
  • χρησιμοποιεί domain allowlist όπου γίνεται
  • μπλοκάρει private και loopback IP ranges
  • ελέγχει redirects
  • έχει timeouts και size limits
  • καταγράφει external requests
  • προστατεύει webhooks με signatures

Όπου ο server καλεί URL που δίνει ο χρήστης, υπάρχει πιθανό SSRF ρίσκο. Η σωστή άμυνα ξεκινά πριν μπει η λειτουργία στην παραγωγή.