Ασφάλεια Databases, Data Layer και Query Engines — DedSec Project
Ασφάλεια Databases, Data Layer και Query Engines Ελληνική έκδοση — Μάθημα 090. Διατηρούνται οι διεθνείς τεχνικοί όροι όπου είναι ακριβέστεροι και ευκολότεροι στην αναζήτηση. Στόχος του…
Ελληνική έκδοση — Μάθημα 090. Διατηρούνται οι διεθνείς τεχνικοί όροι όπου είναι ακριβέστεροι και ευκολότεροι στην αναζήτηση.
Στόχος του μαθήματος
Να κατανοήσεις σε βάθος το Ασφάλεια Databases, Data Layer και Query Engines, να αναγνωρίζεις trust boundaries και failure states και να μπορείς να αποδείξεις ένα συμπέρασμα με ασφαλές, επαναλήψιμο evidence.
Βαθιές τεχνικές έννοιες
1. Query construction
Parameterized queries ή typed query APIs διαχωρίζουν data από query syntax. Dynamic table/field names χρειάζονται explicit allowlists και όχι απλή string escaping.
2. Database identity
Εφαρμογές και admins πρέπει να χρησιμοποιούν ξεχωριστές database identities με least privilege. Connection pool/service account authority καθορίζει blast radius ενός application bug.
3. Row and tenant isolation
Multi-tenant isolation μπορεί να εφαρμόζεται σε application, database row-level policy ή ξεχωριστά stores. Η τελική decision πρέπει να χρησιμοποιεί trusted tenant context και negative tests μεταξύ synthetic tenants.
4. Stored logic and triggers
Triggers, procedures και functions μπορούν να εκτελούν privileged logic εκτός application code. Review ownership/definer rights, side effects, migrations και auditability.
5. NoSQL and search engines
Document/search/query DSLs έχουν διαφορετικές injection και authorization semantics από SQL. Χρησιμοποίησε structured APIs, schema/field controls και resource limits.
6. Replication and backups
Replicas, exports και backups περιέχουν το ίδιο ή περισσότερο sensitive data από primary. Encryption, access, retention και restore tests πρέπει να καλύπτουν όλα τα copies.
7. Encryption boundaries
At-rest encryption προστατεύει storage media αλλά database/service identity μπορεί ακόμη να διαβάζει plaintext. Field-level ή application-layer encryption αλλάζει key/metadata/query tradeoffs και χρειάζεται συγκεκριμένο threat model.
8. Audit and anomaly detection
Database audit πρέπει να συνδέει identity, client/service, query/action, object, result και time χωρίς να γράφει passwords/secrets. Baselines βοηθούν να εντοπιστούν unusual bulk access ή admin changes.
Καθοδηγούμενο εργαστήριο
- Build a localhost SQLite or PostgreSQL toy application with separate migration and runtime roles; document which statements each role should be able to execute — εκτέλεσέ το μόνο στο isolated/owned lab και κατέγραψε before/after αποτέλεσμα.
- Create a tenant-isolation test matrix that covers API calls, background jobs, exports, caching, and administrative tools — εκτέλεσέ το μόνο στο isolated/owned lab και κατέγραψε before/after αποτέλεσμα.
- Take a harmless sample backup, restore it into an isolated lab, and verify the restore procedure includes permissions and secrets—not just data files — εκτέλεσέ το μόνο στο isolated/owned lab και κατέγραψε before/after αποτέλεσμα.