DEV Community

nikosst
nikosst

Posted on

4 ερωτήσεις για IT Systems Architect (Αρχιτέκτονας Συστημάτων Πληροφορικής). Τομέας: Ασφάλεια & Διαχείριση Πρόσβασης.

Ασφάλεια & Διαχείριση Πρόσβασης

Ποιες είναι οι αρχές του Zero Trust Architecture;

Η αρχιτεκτονική Zero Trust είναι μια σύγχρονη φιλοσοφία ασφάλειας που στηρίζεται στην αρχή «μην εμπιστεύεσαι ποτέ, επαλήθευσε τα πάντα». Παραδοσιακά, τα δίκτυα θεωρούσαν ότι όποιος βρίσκεται «μέσα» στο σύστημα είναι αξιόπιστος, ενώ οι απειλές προέρχονται απ’ έξω. Στο Zero Trust, αυτή η διάκριση παύει να ισχύει. Κάθε αίτημα, κάθε χρήστης και κάθε συσκευή θεωρείται εν δυνάμει μη αξιόπιστη μέχρι να αποδειχθεί το αντίθετο.

Οι βασικές αρχές είναι τρεις.
Πρώτον, η συνεχής επαλήθευση (continuous verification), κάθε ενέργεια πρέπει να επιβεβαιώνεται με βάση την ταυτότητα, τη συσκευή, τη θέση και τη συμπεριφορά του χρήστη.
Δεύτερον, η ελαχιστοποίηση δικαιωμάτων (least privilege), κανένας χρήστης ή υπηρεσία δεν έχει περισσότερα δικαιώματα από όσα είναι απολύτως απαραίτητα.
Και τρίτον, η διασφάλιση πρόσβασης ανάλογα με το περιεχόμενο (micro-segmentation), το δίκτυο χωρίζεται σε μικρότερα τμήματα, ώστε τυχόν παραβίαση ενός να μην επηρεάζει το υπόλοιπο σύστημα.

Το Zero Trust δεν είναι ένα προϊόν, αλλά μια στρατηγική αρχιτεκτονικής. Είναι η μετάβαση από το “έμπιστο εσωτερικό δίκτυο” στο “καμία εμπιστοσύνη χωρίς επαλήθευση”.

Πώς θα σχεδίαζες την ασφάλεια δεδομένων σε REST API;

Η ασφάλεια ενός REST API είναι κρίσιμο ζήτημα, γιατί αποτελεί το σημείο επικοινωνίας ανάμεσα σε διαφορετικά συστήματα και εφαρμογές. Ο σχεδιασμός της πρέπει να βασίζεται σε διαστρωμάτωση — κάθε επίπεδο να προσθέτει μια επιπλέον γραμμή άμυνας.

Η πρώτη απαίτηση είναι η ασφαλής μεταφορά δεδομένων, δηλαδή όλα τα αιτήματα να γίνονται αποκλειστικά μέσω HTTPS, ώστε η επικοινωνία να είναι κρυπτογραφημένη.
Στη συνέχεια, χρειάζεται έλεγχος ταυτότητας (authentication), που εξασφαλίζει ότι μόνο εξουσιοδοτημένοι χρήστες ή συστήματα έχουν πρόσβαση. Συνήθως αυτό γίνεται με OAuth 2.0 tokens ή με API keys που συνδέονται με συγκεκριμένους λογαριασμούς.

Επιπλέον, απαιτείται εξουσιοδότηση (authorization) — δηλαδή, να ορίζεται τι επιτρέπεται να κάνει κάθε χρήστης. Ένα API δεν πρέπει ποτέ να βασίζεται απλώς στο ότι κάποιος “μπήκε μέσα”. Κάθε endpoint πρέπει να ελέγχει αν ο χρήστης έχει δικαίωμα πρόσβασης σε συγκεκριμένα δεδομένα.

Η προστασία από επιθέσεις όπως το SQL injection, το rate limiting (περιορισμός συχνότητας αιτημάτων) και η καταγραφή συμβάντων (logging) είναι επίσης ουσιώδεις.
Στην πράξη, ένα ασφαλές API είναι αυτό που αντιμετωπίζει κάθε αίτημα ως ύποπτο μέχρι να αποδειχθεί αξιόπιστο, ακολουθώντας τη φιλοσοφία του Zero Trust στην πράξη.

Τι είναι encryption in transit και encryption at rest;

Η κρυπτογράφηση είναι ο τρόπος με τον οποίο προστατεύουμε τα δεδομένα από μη εξουσιοδοτημένη πρόσβαση, είτε αυτά ταξιδεύουν είτε αποθηκεύονται.

Το encryption in transit αναφέρεται στην προστασία των δεδομένων κατά τη μεταφορά τους μέσα στο δίκτυο — για παράδειγμα, όταν ένας χρήστης στέλνει δεδομένα από το browser του προς έναν server ή όταν δύο υπηρεσίες ανταλλάσσουν πληροφορίες μέσω API.
Αυτή η κρυπτογράφηση επιτυγχάνεται συνήθως μέσω TLS (Transport Layer Security), που διασφαλίζει ότι κανείς ενδιάμεσος δεν μπορεί να διαβάσει ή να αλλοιώσει τα δεδομένα.

Το encryption at rest, αντίθετα, αφορά την προστασία των δεδομένων όταν βρίσκονται αποθηκευμένα — σε δίσκους, βάσεις δεδομένων ή backup συστήματα. Ακόμα κι αν κάποιος αποκτήσει φυσική πρόσβαση στα αρχεία, δεν μπορεί να τα διαβάσει χωρίς το κατάλληλο κλειδί αποκρυπτογράφησης.
Αυτό εφαρμόζεται με μηχανισμούς όπως AES-256 encryption ή με κλειδιά που διαχειρίζονται υπηρεσίες όπως το AWS KMS (Key Management Service).

Στην πράξη, ένα ώριμο σύστημα εφαρμόζει και τα δύο: τα δεδομένα είναι ασφαλή τόσο όταν κινούνται όσο και όταν μένουν ακίνητα.

Τι είναι το OAuth 2.0 και το OpenID Connect; Πώς δουλεύουν;

Το OAuth 2.0 είναι ένα πρωτόκολλο εξουσιοδότησης (authorization), όχι ταυτοποίησης. Επιτρέπει σε μια εφαρμογή να αποκτήσει περιορισμένη πρόσβαση σε πόρους ενός χρήστη που φυλάσσονται αλλού, χωρίς να χρειάζεται να γνωρίζει τον κωδικό του.

Ένα κλασικό παράδειγμα είναι όταν μια εφαρμογή τρίτου ζητά να συνδεθείς μέσω του λογαριασμού σου στο Google ή στο Facebook. Η εφαρμογή δεν βλέπει ποτέ τον κωδικό σου, παίρνει μόνο ένα “token” που της δίνει πρόσβαση σε ό,τι της επιτρέψεις (π.χ. μόνο στο email σου).
Το OAuth βασίζεται στην ιδέα των “access tokens” και “refresh tokens” που έχουν συγκεκριμένη διάρκεια και επιτρέπουν ελεγχόμενη πρόσβαση.

Το OpenID Connect (OIDC) είναι μια επέκταση του OAuth 2.0 που προσθέτει επαλήθευση ταυτότητας (authentication). Ενώ το OAuth απαντά στο “τι επιτρέπεται να κάνει η εφαρμογή”, το OIDC απαντά στο “ποιος είναι ο χρήστης που συνδέεται”.
Έτσι, όταν συνδέεσαι με το κουμπί “Sign in with Google”, το OIDC είναι αυτό που επιβεβαιώνει την ταυτότητά σου, ενώ το OAuth είναι αυτό που επιτρέπει στην εφαρμογή να χρησιμοποιήσει τα δεδομένα σου υπό συγκεκριμένους όρους.

Στην ουσία, το OAuth 2.0 είναι το κλειδί της πόρτας και το OpenID Connect είναι η απόδειξη ποιος κρατά το κλειδί.


Δείτε και τις 20 ερωτήσεις για IT Systems Architect (Αρχιτέκτονας Συστημάτων Πληροφορικής)


nikosst

Top comments (0)