Εργασία με δυνατότητες Linux

Εισαγωγή

Οι δυνατότητες του Linux είναι ειδικά χαρακτηριστικά στον πυρήνα του Linux που εκχωρούν σε διεργασίες και σε δυαδικά εκτελέσιμα συγκεκριμένα δικαιώματα που κανονικά δεσμεύονται για διεργασίες των οποίων το πραγματικό αναγνωριστικό χρήστη είναι 0 (Ο χρήστης ρίζας και μόνο ο χρήστης ρίζας έχει UID 0).

Αυτό το άρθρο θα εξηγήσει ορισμένες από τις διαθέσιμες δυνατότητες, τις χρήσεις τους και τον τρόπο ρύθμισης και κατάργησής τους. Λάβετε υπόψη ότι η ρύθμιση δυνατοτήτων σε εκτελέσιμα αρχεία έχει τη δυνατότητα να θέσει σε κίνδυνο την ασφάλεια του συστήματός σας. Ως εκ τούτου, θα πρέπει να εξετάσετε το ενδεχόμενο δοκιμής σε ένα μη παραγωγικό σύστημα πριν εφαρμόσετε δυνατότητες στην παραγωγή.

Προαπαιτούμενα

  • Ένα σύστημα Linux στο οποίο έχετε πρόσβαση root (είτε μέσω του χρήστη root είτε ενός χρήστη με πρόσβαση sudo).

Εξήγηση

Ουσιαστικά, ο στόχος των δυνατοτήτων είναι να διαιρεθεί η ισχύς του «root» σε συγκεκριμένα προνόμια, έτσι ώστε αν γίνει εκμετάλλευση μιας διεργασίας ή δυαδικού αρχείου που έχει μία ή περισσότερες δυνατότητες, η πιθανή ζημιά είναι περιορισμένη σε σύγκριση με την ίδια διεργασία που εκτελείται με το root.

Οι δυνατότητες μπορούν να οριστούν σε διαδικασίες και εκτελέσιμα αρχεία. Μια διαδικασία που προκύπτει από την εκτέλεση ενός αρχείου μπορεί να αποκτήσει τις δυνατότητες αυτού του αρχείου.

Οι δυνατότητες που εφαρμόζονται στο Linux είναι πολλές και πολλές έχουν προστεθεί από την αρχική τους κυκλοφορία. Μερικές από αυτές είναι οι εξής:

  • CAP_CHOWN: Πραγματοποιήστε αλλαγές στο User ID και στο Group ID των αρχείων
  • CAP_DAC_OVERRIDE: Παράκαμψη DAC (Discretionary Access Control). Για παράδειγμα, vto παράκαμψη ελέγχου δικαιωμάτων ανάγνωσης/εγγραφής/εκτέλεσης.
  • CAP_KILL: Παράκαμψη ελέγχων αδειών για αποστολή σημάτων σε διεργασίες.
  • CAP_SYS_NICE: Αύξηση της ωραιότητας των διαδικασιών ( Μια εξήγηση της ωραιότητας μπορείτε να βρείτε εδώ )
  • CAP_SYS_TIME: Ρύθμιση του συστήματος και του ρολογιού υλικού σε πραγματικό χρόνο

Για την πλήρη λίστα, τρέξτε το man 7 capabilities.

Οι δυνατότητες εκχωρούνται σε σύνολα, δηλαδή "επιτρεπόμενο", "κληρονομούμενο", "αποτελεσματικό" και "περιβάλλον" για τα νήματα και "επιτρεπόμενο", "κληρονομούμενο" και "αποτελεσματικό" για αρχεία. Αυτά τα σύνολα ορίζουν διαφορετικές σύνθετες συμπεριφορές, η πλήρης εξήγησή τους ξεφεύγει από το πεδίο εφαρμογής αυτού του άρθρου.

Όταν ορίζουμε δυνατότητες στο αρχείο, σχεδόν πάντα θα χρησιμοποιούμε "επιτρεπόμενο" και "ενεργό", για παράδειγμα CAP_DAC_OVERRIDE+ep. Παρατηρήστε το +ep, που υποδηλώνει τα προαναφερθέντα σύνολα.

Εργασία με δυνατότητες αρχείων

Απαιτούμενα πακέτα

Υπάρχουν δύο βασικά εργαλεία, getcapκαι setcapη οποία μπορεί να αντιστοίχως δείτε και να ρυθμίσετε αυτά τα χαρακτηριστικά.

  • Στο Debian και στο Ubuntu, αυτά τα εργαλεία παρέχονται από το libcap2-binπακέτο, το οποίο μπορεί να εγκατασταθεί με:apt install libcap2-bin
  • Σε CentOS και Fedora, απαιτείται το libcapπακέτο:yum install libcap
  • Στο Arch Linux, παρέχονται libcapεπίσης από:pacman -S libcap

Δυνατότητες ανάγνωσης

Για να δείτε εάν ένα αρχείο έχει κάποιο σύνολο δυνατοτήτων, μπορείτε απλώς να εκτελέσετε το getcap /full/path/to/binary, για παράδειγμα:

 root@demo:~# getcap /usr/bin/ping
 /usr/bin/ping = cap_net_raw+ep
 root@demo:~# getcap /usr/bin/rcp
 /usr/bin/rcp = cap_net_bind_service+ep

Εάν θέλετε να μάθετε ποιες δυνατότητες είναι ήδη ρυθμισμένες στο σύστημά σας, μπορείτε να αναζητήσετε ολόκληρο το σύστημα αρχείων σας αναδρομικά με την ακόλουθη εντολή:

getcap -r /

Λόγω του γεγονότος ότι τα εικονικά συστήματα αρχείων (όπως το /proc) δεν υποστηρίζουν αυτές τις λειτουργίες, η παραπάνω εντολή θα παράγει χιλιάδες σφάλματα, επομένως για μια πιο καθαρή έξοδο χρησιμοποιήστε τα εξής:

getcap -r / 2>/dev/null 

Εκχώρηση και αφαίρεση δυνατοτήτων

Για να ορίσετε μια συγκεκριμένη δυνατότητα σε ένα αρχείο, χρησιμοποιήστε το setcap "capability_string" /path/to/file.

Για να καταργήσετε όλες τις δυνατότητες από ένα αρχείο, χρησιμοποιήστε το setcap -r /path/to/file.

Για επίδειξη, θα δημιουργήσουμε ένα κενό αρχείο στον τρέχοντα κατάλογο, θα του δώσουμε μια δυνατότητα και θα το αφαιρέσουμε. Ξεκινήστε με τα εξής:

root@demo:~# touch testfile
root@demo:~# getcap testfile

Η δεύτερη εντολή δεν παράγει έξοδο, που σημαίνει ότι αυτό το αρχείο δεν έχει καμία δυνατότητα.

Στη συνέχεια, ορίστε μια δυνατότητα για το αρχείο:

root@demo:~# setcap "CAP_CHOWN+ep" testfile
root@demo:~# getcap testfile
testfile = cap_chown+ep

Το "CAP_CHOWN+ep" χρησιμοποιήθηκε ως παράδειγμα, αλλά οποιοδήποτε άλλο μπορεί να εκχωρηθεί με αυτόν τον τρόπο.

Τώρα, καταργήστε όλες τις δυνατότητες από testfile:

root@demo:~# setcap -r testfile
root@demo:~# getcap testfile

Και πάλι, δεν θα υπάρχει έξοδος, επειδή το "CAP_CHOWN+ep" καταργήθηκε.

συμπέρασμα

Οι δυνατότητες έχουν πολλές πιθανές χρήσεις και μπορούν να βοηθήσουν στην ενίσχυση της ασφάλειας των συστημάτων σας. Εάν χρησιμοποιείτε το bit SUID στα εκτελέσιμα αρχεία σας, σκεφτείτε να το αντικαταστήσετε με τη συγκεκριμένη δυνατότητα που απαιτείται.

Αφήστε ένα σχόλιο

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Η Τεχνητή Νοημοσύνη δεν είναι στο μέλλον, είναι εδώ ακριβώς στο παρόν Σε αυτό το blog Διαβάστε πώς οι εφαρμογές Τεχνητής Νοημοσύνης έχουν επηρεάσει διάφορους τομείς.

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Επιθέσεις DDOS: Μια σύντομη επισκόπηση

Είστε επίσης θύμα των επιθέσεων DDOS και έχετε μπερδευτεί σχετικά με τις μεθόδους πρόληψης; Διαβάστε αυτό το άρθρο για να λύσετε τις απορίες σας.

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Έχετε αναρωτηθεί ποτέ πώς κερδίζουν χρήματα οι χάκερ;

Μπορεί να έχετε ακούσει ότι οι χάκερ κερδίζουν πολλά χρήματα, αλλά έχετε αναρωτηθεί ποτέ πώς κερδίζουν τέτοια χρήματα; ας συζητήσουμε.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Επαναστατικές εφευρέσεις από την Google που θα σας φέρουν εύκολη στη ζωή.

Θέλετε να δείτε επαναστατικές εφευρέσεις της Google και πώς αυτές οι εφευρέσεις άλλαξαν τη ζωή κάθε ανθρώπου σήμερα; Στη συνέχεια, διαβάστε στο blog για να δείτε τις εφευρέσεις της Google.

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Friday Essential: Τι συνέβη με τα αυτοκίνητα που κινούνται με AI;

Η ιδέα των αυτοκινούμενων αυτοκινήτων να βγαίνουν στους δρόμους με τη βοήθεια της τεχνητής νοημοσύνης είναι ένα όνειρο που έχουμε εδώ και καιρό. Όμως, παρά τις πολλές υποσχέσεις, δεν φαίνονται πουθενά. Διαβάστε αυτό το blog για να μάθετε περισσότερα…

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Τεχνολογική μοναδικότητα: Ένα μακρινό μέλλον του ανθρώπινου πολιτισμού;

Καθώς η Επιστήμη εξελίσσεται με γρήγορους ρυθμούς, αναλαμβάνοντας πολλές από τις προσπάθειές μας, αυξάνονται και οι κίνδυνοι να υποβάλλουμε τον εαυτό μας σε μια ανεξήγητη Ιδιότητα. Διαβάστε τι σημαίνει η μοναδικότητα για εμάς.

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Λειτουργίες Αρχιτεκτονικών Επιπέδων Αναφοράς Μεγάλων Δεδομένων

Διαβάστε το ιστολόγιο για να μάθετε διαφορετικά επίπεδα στην Αρχιτεκτονική Μεγάλων Δεδομένων και τις λειτουργίες τους με τον απλούστερο τρόπο.

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Εξέλιξη της αποθήκευσης δεδομένων – Infographic

Οι μέθοδοι αποθήκευσης των δεδομένων εξελίσσονται μπορεί να είναι από τη γέννηση των Δεδομένων. Αυτό το ιστολόγιο καλύπτει την εξέλιξη της αποθήκευσης δεδομένων με βάση ένα infographic.

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

6 εκπληκτικά οφέλη από την ύπαρξη έξυπνων οικιακών συσκευών στη ζωή μας

Σε αυτόν τον ψηφιακό κόσμο, οι έξυπνες οικιακές συσκευές έχουν γίνει κρίσιμο μέρος της ζωής. Ακολουθούν μερικά εκπληκτικά οφέλη των έξυπνων οικιακών συσκευών σχετικά με το πώς κάνουν τη ζωή μας να αξίζει και να απλοποιείται.

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Η ενημέρωση του συμπληρώματος macOS Catalina 10.15.4 προκαλεί περισσότερα προβλήματα από την επίλυση

Πρόσφατα, η Apple κυκλοφόρησε το macOS Catalina 10.15.4 μια συμπληρωματική ενημέρωση για την επιδιόρθωση προβλημάτων, αλλά φαίνεται ότι η ενημέρωση προκαλεί περισσότερα προβλήματα που οδηγούν σε bricking των μηχανών mac. Διαβάστε αυτό το άρθρο για να μάθετε περισσότερα