DedSec Project

Linux δικαιώματα: DAC, ACL και περιορισμοί mount — DedSec Project

Linux: διάγνωση πρόσβασης χωρίς επικίνδυνα chmod Περιέγραψε την ακριβή ενέργεια Το λειτουργικό εφαρμόζει διαφορετικούς ελέγχους στην ανάγνωση, στη δημιουργία αρχείου, στην είσοδο σε φάκελο…

Linux: διάγνωση πρόσβασης χωρίς επικίνδυνα chmod

Περιέγραψε την ακριβή ενέργεια

Το λειτουργικό εφαρμόζει διαφορετικούς ελέγχους στην ανάγνωση, στη δημιουργία αρχείου, στην είσοδο σε φάκελο και στην εκτέλεση προγράμματος. Ξεκίνα από το path, την ταυτότητα της διεργασίας και την πράξη που αποτυγχάνει. Το ls -l ενός αρχείου δεν αρκεί αν κάποιος γονικός κατάλογος δεν επιτρέπει προσπέλαση. ACL και επιλογές mount μπορούν να περιορίσουν επιπλέον την πρόσβαση.

id
namei -l ./example/path 2>/dev/null || true
ls -ld . ./example 2>/dev/null || true
findmnt -T . -o TARGET,FSTYPE,OPTIONS 2>/dev/null || true

Διαχώρισε προνόμια και συμπτώματα

Script που διαβάζεται μπορεί να μην εκτελείται απευθείας σε filesystem με noexec. Η εκκίνηση μέσω python script.py δεν ακολουθεί ακριβώς τους ίδιους ελέγχους με το ./script.py. Το getfacl βοηθά όπου είναι εγκατεστημένο, αλλά αν λείπει το εργαλείο δεν αποδεικνύεται ότι δεν υπάρχουν ACLs.

Μικρό ελεγχόμενο πείραμα

Σε προσωρινό φάκελο που σου ανήκει δημιούργησε απλό αρχείο και επιβεβαίωσε την ανάγνωση. Άλλαξε μόνο τα δικά του mode bits, εξέτασε το stat και σύγκρινε το αποτέλεσμα για τον ίδιο χρήστη. Επανέφερε τις αρχικές άδειες στο τέλος. Μην εφαρμόζεις chmod -R 777, μαζικό chown ή sudo σε όλο το project για να κρύψεις το πρόβλημα.

Κλείσε με ελάχιστα δικαιώματα

Η σωστή λύση μπορεί να είναι ένας user-owned φάκελος εξόδου, άδεια ανάγνωσης συγκεκριμένης ομάδας ή διόρθωση ιδιοκτησίας από εξουσιοδοτημένο διαχειριστή. Κράτησε το αποτέλεσμα της ίδιας ενέργειας πριν και μετά και αιτιολόγησε γιατί δεν δόθηκε ευρύτερη πρόσβαση.

Τα δικαιώματα φακέλου αλλάζουν τη σημασία της πράξης

Η ανάγνωση αρχείου απαιτεί read στο αρχείο και traversal στους γονικούς φακέλους. Η δημιουργία ή διαγραφή directory entry ελέγχει τον γονικό κατάλογο και δεν ισοδυναμεί με εγγραφή στα bytes του αρχείου. Τα sticky directories έχουν πρόσθετους κανόνες. Το ACL mask μπορεί να περιορίζει τα αποτελεσματικά δικαιώματα named users/groups, επομένως δες το effective αποτέλεσμα πριν προσθέσεις mode bits.

Επαναλήψιμο πείραμα δικαιωμάτων

Σε νέο προσωρινό directory δημιούργησε note.txt, σημείωσε το αρχικό mode, αφαίρεσε μόνο owner-read και επανάλαβε την ανάγνωση με τον ίδιο λογαριασμό. Επανέφερε το mode σε finally/cleanup. Αν εκτελείς ως root ή με σχετική capability, η ανάγνωση μπορεί να πετύχει: αυτό δείχνει διαφορετικό account context, όχι ότι τα modes δεν έχουν σημασία. Επανάλαβε με κανονικό λογαριασμό.

Το python note.py διαβάζει source μέσω interpreter, ενώ το ./note.py ζητά άμεση εκτέλεση. Η πρώτη περίπτωση χρειάζεται ακόμη readable source και λειτουργικό interpreter. Καμία δεν δίνει πρόσβαση έξω από το Android sandbox. Όταν project χρειάζεται Unix execution και symlinks, χρησιμοποίησε τον ιδιωτικό χώρο Termux αντί για κοινόχρηστο Android storage.