ACLs - DACLs/SACLs/ACEs

Reading time: 11 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Access Control List (ACL)

एक Access Control List (ACL) Access Control Entries (ACEs) का एक क्रमबद्ध सेट होता है जो किसी वस्तु और उसकी विशेषताओं के लिए सुरक्षा निर्धारित करता है। मूल रूप से, एक ACL यह परिभाषित करता है कि कौन से कार्य किस सुरक्षा प्रिंसिपल (उपयोगकर्ता या समूह) द्वारा किसी दिए गए वस्तु पर अनुमत या अस्वीकृत हैं।

ACLs के दो प्रकार होते हैं:

  • Discretionary Access Control List (DACL): यह निर्दिष्ट करता है कि कौन से उपयोगकर्ताओं और समूहों को किसी वस्तु तक पहुँच है या नहीं।
  • System Access Control List (SACL): यह किसी वस्तु पर पहुँच प्रयासों के ऑडिटिंग को नियंत्रित करता है।

एक फ़ाइल तक पहुँचने की प्रक्रिया में सिस्टम उपयोगकर्ता के पहुँच टोकन के खिलाफ वस्तु के सुरक्षा विवरण की जाँच करता है ताकि यह निर्धारित किया जा सके कि पहुँच दी जानी चाहिए या नहीं, और उस पहुँच की सीमा, ACEs के आधार पर।

Key Components

  • DACL: इसमें ACEs होते हैं जो उपयोगकर्ताओं और समूहों को किसी वस्तु के लिए पहुँच अनुमतियाँ प्रदान करते हैं या अस्वीकृत करते हैं। यह मूल रूप से मुख्य ACL है जो पहुँच अधिकारों को निर्धारित करता है।
  • SACL: इसका उपयोग वस्तुओं तक पहुँच के ऑडिटिंग के लिए किया जाता है, जहाँ ACEs सुरक्षा घटना लॉग में लॉग की जाने वाली पहुँच के प्रकारों को परिभाषित करते हैं। यह अनधिकृत पहुँच प्रयासों का पता लगाने या पहुँच समस्याओं को हल करने के लिए अमूल्य हो सकता है।

System Interaction with ACLs

प्रत्येक उपयोगकर्ता सत्र एक पहुँच टोकन से जुड़ा होता है जिसमें उस सत्र से संबंधित सुरक्षा जानकारी होती है, जिसमें उपयोगकर्ता, समूह पहचान और विशेषताएँ शामिल होती हैं। इस टोकन में एक लॉगिन SID भी शामिल होता है जो सत्र की अद्वितीय पहचान करता है।

स्थानीय सुरक्षा प्राधिकरण (LSASS) वस्तुओं के लिए पहुँच अनुरोधों को संसाधित करता है, DACL में ACEs की जाँच करके जो सुरक्षा प्रिंसिपल को पहुँच करने का प्रयास कर रहा है। यदि कोई प्रासंगिक ACE नहीं मिलती है, तो तुरंत पहुँच दी जाती है। अन्यथा, LSASS पहुँच टोकन में सुरक्षा प्रिंसिपल के SID के खिलाफ ACEs की तुलना करता है ताकि पहुँच की पात्रता निर्धारित की जा सके।

Summarized Process

  • ACLs: DACLs के माध्यम से पहुँच अनुमतियाँ और SACLs के माध्यम से ऑडिट नियमों को परिभाषित करते हैं।
  • Access Token: एक सत्र के लिए उपयोगकर्ता, समूह, और विशेषता जानकारी शामिल होती है।
  • Access Decision: DACL ACEs की तुलना पहुँच टोकन के साथ की जाती है; SACLs का उपयोग ऑडिटिंग के लिए किया जाता है।

ACEs

Access Control Entries (ACEs) के तीन मुख्य प्रकार होते हैं:

  • Access Denied ACE: यह ACE निर्दिष्ट उपयोगकर्ताओं या समूहों के लिए किसी वस्तु तक पहुँच को स्पष्ट रूप से अस्वीकृत करता है (DACL में)।
  • Access Allowed ACE: यह ACE निर्दिष्ट उपयोगकर्ताओं या समूहों के लिए किसी वस्तु तक पहुँच को स्पष्ट रूप से प्रदान करता है (DACL में)।
  • System Audit ACE: यह System Access Control List (SACL) के भीतर स्थित है, यह ACE उपयोगकर्ताओं या समूहों द्वारा किसी वस्तु पर पहुँच प्रयासों के दौरान ऑडिट लॉग उत्पन्न करने के लिए जिम्मेदार है। यह दस्तावेज करता है कि पहुँच अनुमत थी या अस्वीकृत और पहुँच की प्रकृति क्या थी।

प्रत्येक ACE में चार महत्वपूर्ण घटक होते हैं:

  1. उपयोगकर्ता या समूह का Security Identifier (SID) (या उनके प्रिंसिपल नाम का ग्राफिकल प्रतिनिधित्व)।
  2. एक झंडा जो ACE प्रकार (अस्वीकृत, अनुमत, या सिस्टम ऑडिट) की पहचान करता है।
  3. Inheritance flags जो निर्धारित करते हैं कि क्या बाल वस्तुएँ अपने माता-पिता से ACE विरासत में ले सकती हैं।
  4. एक access mask, एक 32-बिट मान जो वस्तु के अनुमत अधिकारों को निर्दिष्ट करता है।

पहुँच निर्धारण प्रत्येक ACE की अनुक्रमिक जाँच करके किया जाता है जब तक:

  • एक Access-Denied ACE स्पष्ट रूप से पहुँच टोकन में पहचाने गए ट्रस्टी को अनुरोधित अधिकारों को अस्वीकृत करता है।
  • Access-Allowed ACE(s) स्पष्ट रूप से पहुँच टोकन में ट्रस्टी को सभी अनुरोधित अधिकार प्रदान करते हैं।
  • सभी ACEs की जाँच करने पर, यदि कोई अनुरोधित अधिकार स्पष्ट रूप से अनुमत नहीं किया गया है, तो पहुँच स्वचालित रूप से अस्वीकृत होती है।

Order of ACEs

ACEs (नियम जो यह कहते हैं कि कौन कुछ तक पहुँच सकता है या नहीं) को DACL में रखने का तरीका बहुत महत्वपूर्ण है। इसका कारण यह है कि एक बार जब सिस्टम इन नियमों के आधार पर पहुँच देता है या अस्वीकृत करता है, तो यह बाकी पर ध्यान देना बंद कर देता है।

इन ACEs को व्यवस्थित करने का एक सर्वोत्तम तरीका है, और इसे "canonical order" कहा जाता है। यह विधि सुनिश्चित करती है कि सब कुछ सुचारू और निष्पक्ष रूप से काम करे। यह Windows 2000 और Windows Server 2003 जैसे सिस्टम के लिए इस प्रकार है:

  • पहले सभी नियमों को रखें जो विशेष रूप से इस आइटम के लिए बनाए गए हैं, उन नियमों से पहले जो कहीं और से आते हैं, जैसे कि एक माता-पिता फ़ोल्डर।
  • उन विशेष नियमों में, "नहीं" (deny) कहने वाले नियमों को पहले रखें, फिर "हाँ" (allow) कहने वाले नियमों को।
  • जो नियम कहीं और से आते हैं, उन्हें सबसे निकटतम स्रोत से शुरू करें, जैसे कि माता-पिता, और फिर पीछे जाएँ। फिर से, "नहीं" को "हाँ" से पहले रखें।

यह सेटअप दो बड़े तरीकों से मदद करता है:

  • यह सुनिश्चित करता है कि यदि कोई विशेष "नहीं" है, तो इसे सम्मानित किया जाए, चाहे अन्य "हाँ" नियम कितने भी हों।
  • यह किसी आइटम के मालिक को यह अंतिम निर्णय लेने की अनुमति देता है कि कौन अंदर आता है, इससे पहले कि कोई नियम माता-पिता फ़ोल्डरों या आगे के नियमों में लागू हो।

इस तरह से करने पर, फ़ाइल या फ़ोल्डर के मालिक को यह सुनिश्चित करने में मदद मिलती है कि सही लोग पहुँच प्राप्त कर सकें और गलत लोग नहीं।

तो, यह "canonical order" सभी पहुँच नियमों को स्पष्ट और अच्छी तरह से काम करने के लिए सुनिश्चित करने के बारे में है, विशेष नियमों को पहले रखना और सब कुछ को एक स्मार्ट तरीके से व्यवस्थित करना।

GUI Example

Example from here

यह एक फ़ोल्डर का क्लासिक सुरक्षा टैब है जो ACL, DACL और ACEs को दिखाता है:

http://secureidentity.se/wp-content/uploads/2014/04/classicsectab.jpg

यदि हम Advanced button पर क्लिक करते हैं, तो हमें विरासत जैसी अधिक विकल्प मिलेंगे:

http://secureidentity.se/wp-content/uploads/2014/04/aceinheritance.jpg

और यदि आप एक सुरक्षा प्रिंसिपल जोड़ते या संपादित करते हैं:

http://secureidentity.se/wp-content/uploads/2014/04/editseprincipalpointers1.jpg

और अंत में हमारे पास ऑडिटिंग टैब में SACL है:

http://secureidentity.se/wp-content/uploads/2014/04/audit-tab.jpg

Explaining Access Control in a Simplified Manner

संसाधनों, जैसे कि एक फ़ोल्डर, तक पहुँच प्रबंधित करते समय, हम Access Control Lists (ACLs) और Access Control Entries (ACEs) के रूप में जाने जाने वाले सूचियों और नियमों का उपयोग करते हैं। ये यह परिभाषित करते हैं कि कौन कुछ डेटा तक पहुँच सकता है या नहीं।

Denying Access to a Specific Group

कल्पना करें कि आपके पास एक फ़ोल्डर है जिसका नाम Cost है, और आप चाहते हैं कि सभी इसे एक्सेस कर सकें सिवाय एक मार्केटिंग टीम के। नियमों को सही तरीके से सेट करके, हम यह सुनिश्चित कर सकते हैं कि मार्केटिंग टीम को स्पष्ट रूप से पहुँच अस्वीकृत की गई है इससे पहले कि सभी को अनुमति दी जाए। यह मार्केटिंग टीम को पहुँच अस्वीकृत करने के नियम को सभी को अनुमति देने वाले नियम से पहले रखने के द्वारा किया जाता है।

Allowing Access to a Specific Member of a Denied Group

मान लीजिए कि बॉब, मार्केटिंग निदेशक, को Cost फ़ोल्डर तक पहुँच की आवश्यकता है, हालाँकि सामान्यतः मार्केटिंग टीम को पहुँच नहीं होनी चाहिए। हम बॉब के लिए एक विशिष्ट नियम (ACE) जोड़ सकते हैं जो उसे पहुँच प्रदान करता है, और इसे मार्केटिंग टीम को पहुँच अस्वीकृत करने वाले नियम से पहले रख सकते हैं। इस तरह, बॉब को उसकी टीम पर सामान्य प्रतिबंध के बावजूद पहुँच मिलती है।

Understanding Access Control Entries

ACEs ACL में व्यक्तिगत नियम होते हैं। वे उपयोगकर्ताओं या समूहों की पहचान करते हैं, यह निर्दिष्ट करते हैं कि कौन सी पहुँच अनुमत है या अस्वीकृत है, और यह निर्धारित करते हैं कि ये नियम उप-आइटम (विरासत) पर कैसे लागू होते हैं। ACEs के दो मुख्य प्रकार होते हैं:

  • Generic ACEs: ये व्यापक रूप से लागू होते हैं, सभी प्रकार की वस्तुओं को प्रभावित करते हैं या केवल कंटेनरों (जैसे फ़ोल्डर) और गैर-कंटेनरों (जैसे फ़ाइलें) के बीच भेद करते हैं। उदाहरण के लिए, एक नियम जो उपयोगकर्ताओं को एक फ़ोल्डर की सामग्री देखने की अनुमति देता है लेकिन फ़ाइलों तक पहुँचने की अनुमति नहीं देता।
  • Object-Specific ACEs: ये अधिक सटीक नियंत्रण प्रदान करते हैं, जिससे विशिष्ट प्रकार की वस्तुओं या यहां तक कि किसी वस्तु के भीतर व्यक्तिगत विशेषताओं के लिए नियम सेट किए जा सकते हैं। उदाहरण के लिए, उपयोगकर्ताओं के एक निर्देशिका में, एक नियम एक उपयोगकर्ता को अपना फोन नंबर अपडेट करने की अनुमति दे सकता है लेकिन उनके लॉगिन घंटों को नहीं।

प्रत्येक ACE में महत्वपूर्ण जानकारी होती है जैसे कि नियम किस पर लागू होता है (एक सुरक्षा पहचानकर्ता या SID का उपयोग करके), नियम क्या अनुमति देता है या अस्वीकृत करता है (एक पहुँच मास्क का उपयोग करके), और यह अन्य वस्तुओं द्वारा कैसे विरासत में लिया जाता है।

Key Differences Between ACE Types

  • Generic ACEs सरल पहुँच नियंत्रण परिदृश्यों के लिए उपयुक्त होते हैं, जहाँ एक ही नियम किसी वस्तु के सभी पहलुओं या एक कंटेनर के भीतर सभी वस्तुओं पर लागू होता है।
  • Object-Specific ACEs अधिक जटिल परिदृश्यों के लिए उपयोग किए जाते हैं, विशेष रूप से ऐसे वातावरण में जैसे कि Active Directory, जहाँ आपको किसी वस्तु की विशिष्ट विशेषताओं तक पहुँच को अलग-अलग नियंत्रित करने की आवश्यकता हो सकती है।

संक्षेप में, ACLs और ACEs सटीक पहुँच नियंत्रण को परिभाषित करने में मदद करते हैं, यह सुनिश्चित करते हैं कि केवल सही व्यक्तियों या समूहों को संवेदनशील जानकारी या संसाधनों तक पहुँच हो, और पहुँच अधिकारों को व्यक्तिगत विशेषताओं या वस्तु प्रकारों के स्तर तक अनुकूलित करने की क्षमता हो।

Access Control Entry Layout

ACE FieldDescription
Typeझंडा जो ACE के प्रकार को इंगित करता है। Windows 2000 और Windows Server 2003 छह प्रकार के ACE का समर्थन करते हैं: तीन सामान्य ACE प्रकार जो सभी सुरक्षा योग्य वस्तुओं से जुड़े होते हैं। तीन वस्तु-विशिष्ट ACE प्रकार जो Active Directory वस्तुओं के लिए हो सकते हैं।
Flagsविरासत और ऑडिटिंग को नियंत्रित करने वाले बिट झंडों का सेट।
SizeACE के लिए आवंटित मेमोरी के बाइट्स की संख्या।
Access mask32-बिट मान जिसका बिट्स वस्तु के लिए पहुँच अधिकारों से मेल खाते हैं। बिट्स को चालू या बंद किया जा सकता है, लेकिन सेटिंग का अर्थ ACE प्रकार पर निर्भर करता है। उदाहरण के लिए, यदि वह बिट जो अनुमति पढ़ने के अधिकार से मेल खाता है, चालू है, और ACE प्रकार अस्वीकृत है, तो ACE वस्तु के अनुमतियों को पढ़ने के अधिकार को अस्वीकृत करता है। यदि वही बिट चालू है लेकिन ACE प्रकार अनुमति है, तो ACE वस्तु के अनुमतियों को पढ़ने का अधिकार प्रदान करता है। पहुँच मास्क के अधिक विवरण अगले तालिका में दिखाई देते हैं।
SIDएक उपयोगकर्ता या समूह की पहचान करता है जिसका पहुँच इस ACE द्वारा नियंत्रित या मॉनिटर किया जाता है।

Access Mask Layout

Bit (Range)MeaningDescription/Example
0 - 15वस्तु विशिष्ट पहुँच अधिकारडेटा पढ़ें, निष्पादित करें, डेटा जोड़ें
16 - 22मानक पहुँच अधिकारहटाएँ, ACL लिखें, मालिक लिखें
23सुरक्षा ACL तक पहुँच सकता है
24 - 27आरक्षित
28सामान्य सभी (पढ़ें, लिखें, निष्पादित करें)सब कुछ नीचे
29सामान्य निष्पादित करेंएक प्रोग्राम निष्पादित करने के लिए आवश्यक सभी चीजें
30सामान्य लिखेंएक फ़ाइल में लिखने के लिए आवश्यक सभी चीजें
31सामान्य पढ़ेंएक फ़ाइल को पढ़ने के लिए आवश्यक सभी चीजें

References

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें