mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-03 00:09:59 -08:00
Translated ['src/pentesting-cloud/azure-security/az-privilege-escalation
This commit is contained in:
@@ -4,150 +4,98 @@
|
||||
|
||||
## Azure SQL
|
||||
|
||||
Azure SQL एक प्रबंधित, सुरक्षित और बुद्धिमान उत्पादों का परिवार है जो **Azure क्लाउड में SQL Server डेटाबेस इंजन का उपयोग करता है**। इसका मतलब है कि आपको अपने सर्वरों के भौतिक प्रशासन की चिंता करने की आवश्यकता नहीं है, और आप अपने डेटा के प्रबंधन पर ध्यान केंद्रित कर सकते हैं।
|
||||
Azure SQL एक प्रबंधित, सुरक्षित और बुद्धिमान उत्पादों का परिवार है जो **Azure क्लाउड में SQL Server डेटाबेस इंजन** का उपयोग करता है। इसका मतलब है कि आपको अपने सर्वरों के भौतिक प्रशासन की चिंता करने की आवश्यकता नहीं है, और आप अपने डेटा के प्रबंधन पर ध्यान केंद्रित कर सकते हैं।
|
||||
|
||||
Azure SQL में चार मुख्य पेशकशें शामिल हैं:
|
||||
|
||||
1. **Azure SQL Server**: Azure SQL Server एक प्रबंधित संबंधपरक डेटाबेस सेवा है जो SQL Server डेटाबेस के तैनाती और प्रबंधन को सरल बनाती है, जिसमें अंतर्निहित सुरक्षा और प्रदर्शन सुविधाएँ हैं।
|
||||
2. **Azure SQL Database**: यह एक **पूर्ण-प्रबंधित डेटाबेस सेवा** है, जो आपको Azure क्लाउड में व्यक्तिगत डेटाबेस होस्ट करने की अनुमति देती है। यह अंतर्निहित बुद्धिमत्ता प्रदान करती है जो आपके अद्वितीय डेटाबेस पैटर्न को सीखती है और अनुकूलित सिफारिशें और स्वचालित ट्यूनिंग प्रदान करती है।
|
||||
3. **Azure SQL Managed Instance**: यह बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड तैनातियों के लिए है। यह नवीनतम SQL Server ऑन-प्रिमाइसेस (Enterprise Edition) डेटाबेस इंजन के साथ लगभग 100% संगतता प्रदान करता है, जो सामान्य सुरक्षा चिंताओं को संबोधित करने के लिए एक स्वदेशी वर्चुअल नेटवर्क (VNet) कार्यान्वयन प्रदान करता है, और ऑन-प्रिमाइसेस SQL Server ग्राहकों के लिए अनुकूल व्यावसायिक मॉडल।
|
||||
4. **Azure SQL Server on Azure VMs**: यह इन्फ्रास्ट्रक्चर एज़ अ सर्विस (IaaS) है और उन माइग्रेशनों के लिए सबसे अच्छा है जहाँ आप **ऑपरेटिंग सिस्टम और SQL Server इंस्टेंस पर नियंत्रण** चाहते हैं, जैसे कि यह एक ऑन-प्रिमाइसेस सर्वर पर चल रहा हो।
|
||||
1. **Azure SQL Server**: SQL Server डेटाबेस के **तैनाती और प्रबंधन** के लिए एक सर्वर की आवश्यकता होती है।
|
||||
2. **Azure SQL Database**: यह एक **पूर्ण-प्रबंधित डेटाबेस सेवा** है, जो आपको Azure क्लाउड में व्यक्तिगत डेटाबेस होस्ट करने की अनुमति देती है।
|
||||
3. **Azure SQL Managed Instance**: यह बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड तैनातियों के लिए है।
|
||||
4. **Azure SQL Server on Azure VMs**: यह उन आर्किटेक्चर के लिए सबसे अच्छा है जहां आप **ऑपरेटिंग सिस्टम** और SQL Server इंस्टेंस पर **नियंत्रण** चाहते हैं।
|
||||
|
||||
### Azure SQL Server
|
||||
### SQL Server सुरक्षा विशेषताएँ
|
||||
|
||||
Azure SQL Server एक संबंधपरक डेटाबेस प्रबंधन प्रणाली (RDBMS) है जो डेटा संचालन के लिए Transact-SQL का उपयोग करती है और इसे उद्यम-स्तरीय प्रणालियों को संभालने के लिए बनाया गया है। यह प्रदर्शन, सुरक्षा, स्केलेबिलिटी, और विभिन्न Microsoft अनुप्रयोगों के साथ एकीकरण के लिए मजबूत सुविधाएँ प्रदान करता है। Azure SQL डेटाबेस इस सर्वर पर निर्भर करते हैं, क्योंकि ये इस सर्वर पर बनाए गए हैं और यह उपयोगकर्ता के लिए डेटाबेस तक पहुँचने का प्रवेश बिंदु है।
|
||||
**नेटवर्क एक्सेस:**
|
||||
|
||||
#### Network
|
||||
- सार्वजनिक एंडपॉइंट (विशिष्ट नेटवर्कों तक पहुंच को सीमित कर सकता है)।
|
||||
- निजी एंडपॉइंट।
|
||||
- डोमेन नामों के आधार पर कनेक्शनों को प्रतिबंधित करना भी संभव है।
|
||||
- Azure सेवाओं को इसे एक्सेस करने की अनुमति देना भी संभव है (जैसे पोर्टल में क्वेरी संपादक का उपयोग करने के लिए या Azure VM को कनेक्ट करने की अनुमति देना)।
|
||||
|
||||
**Network Connectivity**: सार्वजनिक अंत बिंदु या निजी अंत बिंदु के माध्यम से पहुँच सक्षम करने का चयन करें। यदि आप कोई पहुँच नहीं चुनते हैं, तो कोई अंत बिंदु तब तक नहीं बनाए जाते जब तक कि इसे मैन्युअल रूप से कॉन्फ़िगर नहीं किया जाता:
|
||||
- No access: कोई अंत बिंदु कॉन्फ़िगर नहीं किए जाते, मैन्युअल रूप से सेट होने तक आने वाले कनेक्शनों को अवरुद्ध करते हैं।
|
||||
- Public endpoint: सार्वजनिक इंटरनेट के माध्यम से सीधे कनेक्शनों की अनुमति देता है, फ़ायरवॉल नियमों और अन्य सुरक्षा कॉन्फ़िगरेशन के अधीन।
|
||||
- Private endpoint: एक निजी नेटवर्क के लिए कनेक्टिविटी को प्रतिबंधित करता है।
|
||||
**प्रमाणीकरण विधियाँ:**
|
||||
|
||||
**Connection Policy**: परिभाषित करें कि ग्राहक SQL डेटाबेस सर्वर के साथ कैसे संवाद करते हैं:
|
||||
- Default: Azure के अंदर सभी ग्राहक कनेक्शनों के लिए एक Redirect नीति का उपयोग करता है (प्राइवेट एंडपॉइंट का उपयोग करने वालों को छोड़कर) और Azure के बाहर से कनेक्शनों के लिए एक Proxy नीति।
|
||||
- Proxy: सभी ग्राहक कनेक्शनों को Azure SQL Database गेटवे के माध्यम से रूट करता है।
|
||||
- Redirect: ग्राहक सीधे डेटाबेस को होस्ट करने वाले नोड से कनेक्ट करते हैं।
|
||||
- Microsoft **Entra-only** प्रमाणीकरण: आपको उन Entra प्रिंसिपल को इंगित करने की आवश्यकता है जिनके पास सेवा तक पहुंच होगी।
|
||||
- **SQL और Microsoft Entra** दोनों प्रमाणीकरण: उपयोगकर्ता नाम और पासवर्ड के साथ पारंपरिक SQL प्रमाणीकरण Microsoft Entra के साथ।
|
||||
- **केवल SQL** प्रमाणीकरण: केवल डेटाबेस उपयोगकर्ताओं के माध्यम से पहुंच की अनुमति दें।
|
||||
|
||||
#### Authentication Methods
|
||||
Azure SQL विभिन्न प्रमाणीकरण विधियों का समर्थन करता है ताकि डेटाबेस पहुँच को सुरक्षित किया जा सके:
|
||||
ध्यान दें कि यदि कोई SQL प्रमाणीकरण अनुमति दी जाती है, तो एक व्यवस्थापक उपयोगकर्ता (उपयोगकर्ता नाम + पासवर्ड) को इंगित करने की आवश्यकता होती है और यदि Entra ID प्रमाणीकरण चुना जाता है, तो कम से कम एक प्रिंसिपल को व्यवस्थापक पहुंच के साथ इंगित करना भी आवश्यक है।
|
||||
|
||||
- **Microsoft Entra-only authentication**: केंद्रीकृत पहचान प्रबंधन और सिंगल साइन-ऑन के लिए Microsoft Entra (पूर्व में Azure AD) का उपयोग करता है।
|
||||
- **Both SQL and Microsoft Entra authentication**: आपको Microsoft Entra के साथ पारंपरिक SQL प्रमाणीकरण का उपयोग करने की अनुमति देता है।
|
||||
- **SQL authentication**: केवल SQL Server उपयोगकर्ता नाम और पासवर्ड पर निर्भर करता है।
|
||||
**एन्क्रिप्शन:**
|
||||
|
||||
#### Security features
|
||||
- इसे "पारदर्शी डेटा एन्क्रिप्शन" कहा जाता है और यह डेटाबेस, बैकअप और लॉग को स्थिरता पर एन्क्रिप्ट करता है।
|
||||
- हमेशा की तरह, डिफ़ॉल्ट रूप से Azure प्रबंधित कुंजी का उपयोग किया जाता है लेकिन ग्राहक प्रबंधित एन्क्रिप्शन कुंजी (CMEK) का भी उपयोग किया जा सकता है।
|
||||
**प्रबंधित पहचान:**
|
||||
|
||||
SQL सर्वरों में **Managed Identities** होती हैं। प्रबंधित पहचानें आपके सर्वर को अन्य Azure सेवाओं के साथ सुरक्षित रूप से प्रमाणीकरण करने की अनुमति देती हैं बिना क्रेडेंशियल्स को संग्रहीत किए। यह अन्य सेवाओं तक पहुँचने की अनुमति देती है जो सिस्टम असाइन की गई प्रबंधित पहचान होगी और अन्य पहचान के साथ अन्य सेवाओं द्वारा पहुँची जा सकती है जो उपयोगकर्ता असाइन की गई प्रबंधित पहचान है। SQL द्वारा पहुँचने वाली कुछ सेवाएँ हैं Azure Storage Account(V2), Azure Data Lake Storage Gen2, SQL Server, Oracle, Teradata, MongoDB या Cosmos DB API for MongoDB, Generic ODBC, Bulk Operations और S3-संगत वस्तु भंडारण।
|
||||
- सिस्टम और उपयोगकर्ता प्रबंधित MIs को असाइन करना संभव है।
|
||||
- एन्क्रिप्शन कुंजी (यदि CMEK का उपयोग किया जाता है) और डेटाबेस से अन्य सेवाओं तक पहुंच के लिए उपयोग किया जाता है।
|
||||
- यदि एक से अधिक UMI असाइन किए जाते हैं, तो उपयोग करने के लिए डिफ़ॉल्ट एक को इंगित करना संभव है।
|
||||
- क्रॉस-टेनेंट एक्सेस के लिए एक संघीय क्लाइंट पहचान को कॉन्फ़िगर करना संभव है।
|
||||
|
||||
SQL सर्वर की अन्य सुरक्षा सुविधाएँ हैं:
|
||||
**Microsoft Defender:**
|
||||
|
||||
- **Firewall Rules**: फ़ायरवॉल नियम आपके सर्वर तक पहुँच को नियंत्रित करते हैं, ट्रैफ़िक को प्रतिबंधित या अनुमति देकर। यह डेटाबेस की एक विशेषता भी है।
|
||||
- **Transparent Data Encryption (TDE)**: TDE आपके डेटाबेस, बैकअप और लॉग को विश्राम में एन्क्रिप्ट करता है ताकि आपके डेटा की सुरक्षा की जा सके, भले ही भंडारण से समझौता किया गया हो। इसे सेवा-प्रबंधित कुंजी या ग्राहक-प्रबंधित कुंजी के साथ किया जा सकता है।
|
||||
- **Microsoft Defender for SQL**: Microsoft Defender for SQL को सक्षम किया जा सकता है जो सर्वर के लिए भेद्यता आकलन और उन्नत खतरे की सुरक्षा प्रदान करता है।
|
||||
- "संभावित डेटाबेस कमजोरियों को कम करने और असामान्य गतिविधियों का पता लगाने" के लिए उपयोगी
|
||||
- हम Defender के बारे में अपनी खुद की पाठ में बात करेंगे (इसे कई अन्य Azure सेवाओं में सक्षम किया जा सकता है)
|
||||
|
||||
#### Deployment Models
|
||||
**बैकअप:**
|
||||
- बैकअप आवृत्ति को रिटेंशन नीतियों में प्रबंधित किया जाता है।
|
||||
|
||||
Azure SQL Database विभिन्न आवश्यकताओं के लिए लचीले तैनाती विकल्पों का समर्थन करता है:
|
||||
**हटाए गए डेटाबेस:**
|
||||
- यह संभव है कि हटाए गए DBs को मौजूदा बैकअप से पुनर्स्थापित किया जाए।
|
||||
|
||||
- **Single Database**:
|
||||
- एक पूरी तरह से अलग डेटाबेस जिसमें अपने स्वयं के समर्पित संसाधन होते हैं।
|
||||
- माइक्रोसर्विसेज या अनुप्रयोगों के लिए महान जो एकल डेटा स्रोत की आवश्यकता होती है।
|
||||
- **Elastic Pool**:
|
||||
- एक पूल के भीतर संसाधनों को साझा करने की अनुमति देता है।
|
||||
- कई डेटाबेस के बीच उतार-चढ़ाव वाले उपयोग पैटर्न के लिए लागत-कुशल।
|
||||
## Azure SQL Database
|
||||
|
||||
### Azure SQL Database
|
||||
**Azure SQL Database** एक **पूर्ण प्रबंधित डेटाबेस प्लेटफ़ॉर्म के रूप में सेवा (PaaS)** है जो स्केलेबल और सुरक्षित संबंधपरक डेटाबेस समाधान प्रदान करता है। यह नवीनतम SQL Server प्रौद्योगिकियों पर आधारित है और अवसंरचना प्रबंधन की आवश्यकता को समाप्त करता है, जिससे यह क्लाउड-आधारित अनुप्रयोगों के लिए एक लोकप्रिय विकल्प बनता है।
|
||||
|
||||
**Azure SQL Database** एक **पूर्ण प्रबंधित डेटाबेस प्लेटफ़ॉर्म एज़ अ सर्विस (PaaS)** है जो स्केलेबल और सुरक्षित संबंधपरक डेटाबेस समाधान प्रदान करता है। यह नवीनतम SQL Server तकनीकों पर आधारित है और इन्फ्रास्ट्रक्चर प्रबंधन की आवश्यकता को समाप्त करता है, जिससे यह क्लाउड-आधारित अनुप्रयोगों के लिए एक लोकप्रिय विकल्प बनता है।
|
||||
SQL डेटाबेस बनाने के लिए यह आवश्यक है कि SQL सर्वर को इंगित किया जाए जहां इसे होस्ट किया जाएगा।
|
||||
|
||||
#### Key Features
|
||||
### SQL डेटाबेस सुरक्षा विशेषताएँ
|
||||
|
||||
- **Always Up-to-Date**: नवीनतम स्थिर संस्करण पर चलता है SQL Server और स्वचालित रूप से नए फीचर्स और पैच प्राप्त करता है।
|
||||
- **PaaS Capabilities**: अंतर्निहित उच्च उपलब्धता, बैकअप, और अपडेट।
|
||||
- **Data Flexibility**: संबंधपरक और गैर-संबंधपरक डेटा (जैसे, ग्राफ, JSON, स्थानिक, और XML) का समर्थन करता है।
|
||||
- **हमेशा अद्यतित**: SQL Server के नवीनतम स्थिर संस्करण पर चलता है और स्वचालित रूप से नई सुविधाएँ और पैच प्राप्त करता है।
|
||||
- **विरासत में मिली SQL Server सुरक्षा विशेषताएँ:**
|
||||
- प्रमाणीकरण (SQL और/या Entra ID)
|
||||
- असाइन की गई प्रबंधित पहचान
|
||||
- नेटवर्क प्रतिबंध
|
||||
- एन्क्रिप्शन
|
||||
- बैकअप
|
||||
- …
|
||||
- **डेटा पुनरावृत्ति:** विकल्प स्थानीय, क्षेत्र, भू-स्थान या भू-क्षेत्र पुनरावृत्त हैं।
|
||||
- **लेजर:** यह डेटा की अखंडता को क्रिप्टोग्राफिक रूप से सत्यापित करता है, यह सुनिश्चित करता है कि किसी भी छेड़छाड़ का पता लगाया जाए। वित्तीय, चिकित्सा और किसी भी संगठन के लिए उपयोगी जो संवेदनशील डेटा का प्रबंधन करता है।
|
||||
|
||||
#### Network
|
||||
एक SQL डेटाबेस एक **इलास्टिक पूल** का हिस्सा हो सकता है। इलास्टिक पूल कई डेटाबेसों के प्रबंधन के लिए एक लागत-कुशल समाधान है, जो उनके बीच कॉन्फ़िगर करने योग्य कंप्यूट (eDTUs) और स्टोरेज संसाधनों को साझा करता है, जिसमें मूल्य निर्धारण केवल आवंटित संसाधनों के आधार पर होता है न कि डेटाबेसों की संख्या के आधार पर।
|
||||
|
||||
**Network Connectivity**: सार्वजनिक अंत बिंदु या निजी अंत बिंदु के माध्यम से पहुँच सक्षम करने का चयन करें। यदि आप कोई पहुँच नहीं चुनते हैं, तो कोई अंत बिंदु तब तक नहीं बनाए जाते जब तक कि इसे मैन्युअल रूप से कॉन्फ़िगर नहीं किया जाता:
|
||||
- No access: कोई अंत बिंदु कॉन्फ़िगर नहीं किए जाते, मैन्युअल रूप से सेट होने तक आने वाले कनेक्शनों को अवरुद्ध करते हैं।
|
||||
- Public endpoint: सार्वजनिक इंटरनेट के माध्यम से सीधे कनेक्शनों की अनुमति देता है, फ़ायरवॉल नियमों और अन्य सुरक्षा कॉन्फ़िगरेशन के अधीन।
|
||||
- Private endpoint: एक निजी नेटवर्क के लिए कनेक्टिविटी को प्रतिबंधित करता है।
|
||||
#### Azure SQL कॉलम स्तर सुरक्षा (मास्किंग) और पंक्ति स्तर सुरक्षा
|
||||
|
||||
**Connection Policy**: परिभाषित करें कि ग्राहक SQL डेटाबेस सर्वर के साथ कैसे संवाद करते हैं:
|
||||
- Default: Azure के अंदर सभी ग्राहक कनेक्शनों के लिए एक Redirect नीति का उपयोग करता है (प्राइवेट एंडपॉइंट का उपयोग करने वालों को छोड़कर) और Azure के बाहर से कनेक्शनों के लिए एक Proxy नीति।
|
||||
- Proxy: सभी ग्राहक कनेक्शनों को Azure SQL Database गेटवे के माध्यम से रूट करता है।
|
||||
- Redirect: ग्राहक सीधे डेटाबेस को होस्ट करने वाले नोड से कनेक्ट करते हैं।
|
||||
**Azure SQL का गतिशील** डेटा मास्किंग एक विशेषता है जो **अनधिकृत उपयोगकर्ताओं से संवेदनशील जानकारी की रक्षा करने में मदद करती है**। वास्तविक डेटा को बदलने के बजाय, यह प्रदर्शित डेटा को गतिशील रूप से मास्क करता है, यह सुनिश्चित करता है कि संवेदनशील विवरण जैसे क्रेडिट कार्ड नंबर अस्पष्ट हैं।
|
||||
|
||||
#### Security Features
|
||||
**गतिशील डेटा मास्किंग** उन सभी उपयोगकर्ताओं पर प्रभाव डालती है सिवाय उन लोगों के जो अनमास्क किए गए हैं (इन उपयोगकर्ताओं को इंगित करने की आवश्यकता होती है) और व्यवस्थापकों। इसमें वह कॉन्फ़िगरेशन विकल्प है जो यह निर्दिष्ट करता है कि कौन से SQL उपयोगकर्ता गतिशील डेटा मास्किंग से छूट प्राप्त करते हैं, **व्यवस्थापकों को हमेशा बाहर रखा जाता है**।
|
||||
|
||||
- **Microsoft Defender for SQL**: सक्षम किया जा सकता है जो भेद्यता आकलन और उन्नत खतरे की सुरक्षा प्रदान करता है।
|
||||
- **Ledger**: डेटा की अखंडता को क्रिप्टोग्राफिक रूप से सत्यापित करता है, यह सुनिश्चित करता है कि किसी भी छेड़छाड़ का पता लगाया जाए।
|
||||
- **Server Identity**: केंद्रीकृत पहुँच सक्षम करने के लिए सिस्टम-निर्धारित और उपयोगकर्ता-निर्धारित प्रबंधित पहचान का उपयोग करता है।
|
||||
- **Transparent Data Encryption Key Management**: बिना किसी परिवर्तन की आवश्यकता के डेटाबेस, बैकअप, और लॉग को विश्राम में एन्क्रिप्ट करता है। एन्क्रिप्शन को प्रत्येक डेटाबेस पर सक्षम किया जा सकता है, और यदि डेटाबेस स्तर पर कॉन्फ़िगर किया गया है, तो ये सेटिंग्स सर्वर-स्तरीय कॉन्फ़िगरेशन को ओवरराइड करती हैं।
|
||||
- **Always Encrypted**: उन्नत डेटा सुरक्षा सुविधाओं का एक सूट है जो डेटा स्वामित्व को डेटा प्रबंधन से अलग करता है। यह सुनिश्चित करता है कि उच्च विशेषाधिकार वाले प्रशासक या ऑपरेटर संवेदनशील डेटा तक पहुँच नहीं सकते।
|
||||
|
||||
#### Purchasing Models / Service Tiers
|
||||
|
||||
- **vCore-based**: स्वतंत्र रूप से कंप्यूट, मेमोरी, और स्टोरेज चुनें। सामान्य उद्देश्य, व्यवसायिक महत्वपूर्ण (OLTP ऐप्स के लिए उच्च लचीलापन और प्रदर्शन) के लिए, और 128 TB स्टोरेज तक स्केल करता है।
|
||||
- **DTU-based**: निश्चित स्तरों में कंप्यूट, मेमोरी, और I/O को बंडल करता है। सामान्य कार्यों के लिए संतुलित संसाधन।
|
||||
- Standard: सामान्य कार्यों के लिए संतुलित संसाधन।
|
||||
- Premium: मांग वाले कार्यभार के लिए उच्च प्रदर्शन।
|
||||
|
||||
#### Scalable performance and pools
|
||||
|
||||
- **Single Databases**: प्रत्येक डेटाबेस अलग है और इसके अपने समर्पित कंप्यूट, मेमोरी, और स्टोरेज संसाधन होते हैं। संसाधनों को गतिशील रूप से (ऊपर या नीचे) बिना डाउनटाइम के स्केल किया जा सकता है (1–128 vCores, 32 GB–4 TB स्टोरेज, और 128 TB तक)।
|
||||
- **Elastic Pools**: अधिकतम दक्षता और लागत बचाने के लिए एक पूल में कई डेटाबेस के बीच संसाधनों को साझा करें। पूरे पूल के लिए संसाधनों को भी गतिशील रूप से स्केल किया जा सकता है।
|
||||
- **Service Tier Flexibility**: सामान्य उद्देश्य स्तर में एकल डेटाबेस के साथ छोटे स्तर से शुरू करें। आवश्यकताओं के बढ़ने पर व्यवसायिक महत्वपूर्ण या हाइपरस्केल स्तरों में अपग्रेड करें।
|
||||
- **Scaling Options**: गतिशील स्केलिंग या ऑटोस्केलिंग विकल्प।
|
||||
|
||||
#### Built-In Monitoring & Optimization
|
||||
|
||||
- **Query Store**: प्रदर्शन मुद्दों को ट्रैक करता है, शीर्ष संसाधन उपभोक्ताओं की पहचान करता है, और कार्यान्वयन योग्य सिफारिशें प्रदान करता है।
|
||||
- **Automatic Tuning**: स्वचालित इंडेक्सिंग और क्वेरी योजना सुधार जैसी सुविधाओं के साथ प्रदर्शन को सक्रिय रूप से अनुकूलित करता है।
|
||||
- **Telemetry Integration**: अनुकूलित अंतर्दृष्टि के लिए Azure Monitor, Event Hubs, या Azure Storage के माध्यम से निगरानी का समर्थन करता है।
|
||||
|
||||
#### Disaster Recovery & Availability
|
||||
|
||||
- **Automatic backups**: SQL Database स्वचालित रूप से डेटाबेस के पूर्ण, विभेदक, और लेनदेन लॉग बैकअप करता है।
|
||||
- **Point-in-Time Restore**: बैकअप संरक्षण अवधि के भीतर किसी भी पिछले राज्य में डेटाबेस को पुनर्प्राप्त करें।
|
||||
- **Geo-Redundancy**
|
||||
- **Failover Groups**: क्षेत्रों के बीच स्वचालित फेलओवर के लिए डेटाबेस को समूहित करके आपदा वसूली को सरल बनाता है।
|
||||
**Azure SQL पंक्ति स्तर सुरक्षा (RLS)** एक विशेषता है जो **नियंत्रित करती है कि कौन सी पंक्तियाँ एक उपयोगकर्ता देख या संशोधित कर सकता है**, यह सुनिश्चित करते हुए कि प्रत्येक उपयोगकर्ता केवल उनके लिए प्रासंगिक डेटा देखता है। फ़िल्टर या ब्लॉक प्रीडिकेट के साथ सुरक्षा नीतियाँ बनाकर, संगठन डेटाबेस स्तर पर बारीक पहुंच लागू कर सकते हैं।
|
||||
|
||||
### Azure SQL Managed Instance
|
||||
|
||||
**Azure SQL Managed Instance** एक प्लेटफ़ॉर्म एज़ अ सर्विस (PaaS) डेटाबेस इंजन है जो SQL Server के साथ लगभग 100% संगतता प्रदान करता है और अधिकांश प्रबंधन कार्यों (जैसे, अपग्रेडिंग, पैचिंग, बैकअप, निगरानी) को स्वचालित रूप से संभालता है। यह न्यूनतम परिवर्तनों के साथ ऑन-प्रिमाइसेस SQL Server डेटाबेस को माइग्रेट करने के लिए एक क्लाउड समाधान प्रदान करता है।
|
||||
**Azure SQL Managed Instances** बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड तैनातियों के लिए हैं। यह नवीनतम SQL Server ऑन-प्रिमाइसेस (Enterprise Edition) डेटाबेस इंजन के साथ लगभग 100% संगतता प्रदान करता है, जो सामान्य सुरक्षा चिंताओं को संबोधित करने के लिए एक स्वदेशी वर्चुअल नेटवर्क (VNet) कार्यान्वयन प्रदान करता है, और ऑन-प्रिमाइसेस SQL Server ग्राहकों के लिए एक व्यावसायिक मॉडल अनुकूल है।
|
||||
|
||||
#### Service Tiers
|
||||
### Azure SQL वर्चुअल मशीनें
|
||||
|
||||
- **General Purpose**: मानक I/O और विलंबता आवश्यकताओं वाले अनुप्रयोगों के लिए लागत-कुशल विकल्प।
|
||||
- **Business Critical**: महत्वपूर्ण कार्यभार के लिए कम I/O विलंबता के साथ उच्च-प्रदर्शन विकल्प।
|
||||
**Azure SQL वर्चुअल मशीनें** आपको **ऑपरेटिंग सिस्टम** और SQL Server इंस्टेंस पर **नियंत्रण** करने की अनुमति देती हैं, क्योंकि एक VM SQL सर्वर चलाने वाली VM सेवा में उत्पन्न होगी।
|
||||
|
||||
#### Advanced Security Features
|
||||
जब एक SQL वर्चुअल मशीन बनाई जाती है, तो यह संभव है कि **VM की सभी सेटिंग्स का चयन किया जाए** (जैसा कि VM पाठ में दिखाया गया है) जो SQL सर्वर को होस्ट करेगा।
|
||||
- इसका मतलब है कि VM कुछ VNet(s) तक पहुंच प्राप्त करेगा, इसमें **प्रबंधित पहचानें संलग्न** हो सकती हैं, फ़ाइल शेयर माउंट किए जा सकते हैं... जिससे SQL से VM में **पिवोटिंग** करना बहुत दिलचस्प हो जाता है।
|
||||
- इसके अलावा, यह एक ऐप आईडी और सीक्रेट को कॉन्फ़िगर करना संभव है ताकि **SQL को एक विशिष्ट की वॉल्ट** तक पहुंचने की अनुमति दी जा सके, जिसमें संवेदनशील जानकारी हो सकती है।
|
||||
|
||||
* **Threat Protection**: संदिग्ध गतिविधियों और SQL इंजेक्शन हमलों के लिए उन्नत खतरे की सुरक्षा अलर्ट। अनुपालन के लिए डेटाबेस घटनाओं को ट्रैक और लॉग करने के लिए ऑडिटिंग।
|
||||
* **Access Control**: केंद्रीकृत पहचान प्रबंधन के लिए Microsoft Entra प्रमाणीकरण। ग्रैन्युलर एक्सेस नियंत्रण के लिए रो-लेवल सुरक्षा और डायनामिक डेटा मास्किंग।
|
||||
* **Backups**: बिंदु-इन-टाइम पुनर्स्थापना क्षमता के साथ स्वचालित और मैन्युअल बैकअप।
|
||||
यह भी संभव है कि **स्वचालित SQL अपडेट**, **स्वचालित बैकअप**, **Entra ID प्रमाणीकरण** और अन्य SQL सेवाओं की अधिकांश सुविधाओं को कॉन्फ़िगर किया जाए।
|
||||
|
||||
### Azure SQL Virtual Machines
|
||||
|
||||
**Azure SQL Virtual Machines** उन माइग्रेशनों के लिए सबसे अच्छा है जहाँ आप **ऑपरेटिंग सिस्टम और SQL Server इंस्टेंस पर नियंत्रण** चाहते हैं, जैसे कि यह एक ऑन-प्रिमाइसेस सर्वर पर चल रहा हो। इसमें विभिन्न मशीन आकार हो सकते हैं, और SQL Server के संस्करणों और संस्करणों का एक विस्तृत चयन हो सकता है।
|
||||
|
||||
#### Key Features
|
||||
|
||||
**Automated Backup**: SQL डेटाबेस के लिए बैकअप शेड्यूल करें।
|
||||
**Automatic Patching**: रखरखाव विंडो के दौरान Windows और SQL Server अपडेट के इंस्टॉलेशन को स्वचालित करता है।
|
||||
**Azure Key Vault Integration**: SQL Server VMs के लिए Key Vault को स्वचालित रूप से कॉन्फ़िगर करता है।
|
||||
**Defender for Cloud Integration**: पोर्टल में Defender for SQL सिफारिशों को देखें।
|
||||
**Version/Edition Flexibility**: VM को फिर से तैनात किए बिना SQL Server संस्करण या संस्करण मेटाडेटा बदलें।
|
||||
|
||||
#### Security Features
|
||||
|
||||
**Microsoft Defender for SQL**: सुरक्षा अंतर्दृष्टि और अलर्ट।
|
||||
**Azure Key Vault Integration**: क्रेडेंशियल्स और एन्क्रिप्शन कुंजियों का सुरक्षित भंडारण।
|
||||
**Microsoft Entra (Azure AD)**: प्रमाणीकरण और पहुँच नियंत्रण।
|
||||
|
||||
## Enumeration
|
||||
## एन्यूमरेशन
|
||||
|
||||
{{#tabs}}
|
||||
{{#tab name="az cli"}}
|
||||
@@ -216,6 +164,30 @@ az sql midb show --resource-group <res-grp> --name <name>
|
||||
# Lis all sql VM
|
||||
az sql vm list
|
||||
az sql vm show --resource-group <res-grp> --name <name>
|
||||
|
||||
# List schema by the database
|
||||
az rest --method get \
|
||||
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/schemas?api-version=2021-11-01"
|
||||
|
||||
# Get tables of a database with the schema
|
||||
az rest --method get \
|
||||
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/schemas/<schemaName>/tables?api-version=2021-11-01"
|
||||
|
||||
# Get columns of a database
|
||||
az rest --method get \
|
||||
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/columns?api-version=2021-11-01"
|
||||
|
||||
# Get columns of a table
|
||||
az rest --method get \
|
||||
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/schemas/<schemaName>/tables/<tableName>/columns?api-version=2021-11-01"
|
||||
|
||||
# Get DataMaskingPolicies of a database
|
||||
az rest --method get \
|
||||
--uri "https://management.azure.com/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.Sql/servers/getstorageserver/databases/masktest/dataMaskingPolicies/Default?api-version=2021-11-01"
|
||||
|
||||
az rest --method get \
|
||||
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/dataMaskingPolicies/Default/rules?api-version=2021-11-01"
|
||||
|
||||
```
|
||||
{{#endtab}}
|
||||
|
||||
@@ -260,9 +232,34 @@ Get-AzSqlVM
|
||||
{{#endtab}}
|
||||
{{#endtabs}}
|
||||
|
||||
### कनेक्ट करें और SQL क्वेरी चलाएँ
|
||||
इसके अतिरिक्त, यदि आप डेटाबेस के भीतर डायनामिक डेटा मास्किंग और रो लेवल नीतियों की गणना करना चाहते हैं, तो आप क्वेरी कर सकते हैं:
|
||||
```sql
|
||||
--Enumerates the masked columns
|
||||
SELECT
|
||||
OBJECT_NAME(mc.object_id) AS TableName,
|
||||
c.name AS ColumnName,
|
||||
mc.masking_function AS MaskingFunction
|
||||
FROM sys.masked_columns AS mc
|
||||
JOIN sys.columns AS c
|
||||
ON mc.object_id = c.object_id
|
||||
AND mc.column_id = c.column_id
|
||||
|
||||
आप एक कनेक्शन स्ट्रिंग (जिसमें क्रेडेंशियल्स शामिल हैं) उदाहरण [एक Az WebApp की गणना करना](az-app-services.md) से पा सकते हैं:
|
||||
--Enumerates Row level policies
|
||||
SELECT
|
||||
sp.name AS PolicyName,
|
||||
sp.is_enabled,
|
||||
sp.create_date,
|
||||
sp.modify_date,
|
||||
OBJECT_NAME(sp.object_id) AS TableName,
|
||||
sp2.predicate_definition AS PredicateDefinition
|
||||
FROM sys.security_policies AS sp
|
||||
JOIN sys.security_predicates AS sp2
|
||||
ON sp.object_id = sp2.object_id;
|
||||
|
||||
```
|
||||
### Connect and run SQL queries
|
||||
|
||||
आप एक कनेक्शन स्ट्रिंग (जिसमें क्रेडेंशियल्स होते हैं) उदाहरण [enumerating an Az WebApp](az-app-services.md) से पा सकते हैं:
|
||||
```bash
|
||||
function invoke-sql{
|
||||
param($query)
|
||||
@@ -281,24 +278,24 @@ $Connection.Close()
|
||||
|
||||
invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;'
|
||||
```
|
||||
आप sqlcmd का उपयोग करके डेटाबेस तक भी पहुँच सकते हैं। यह जानना महत्वपूर्ण है कि क्या सर्वर सार्वजनिक कनेक्शनों की अनुमति देता है `az sql server show --name <server-name> --resource-group <resource-group>` और यह भी कि क्या फ़ायरवॉल नियम हमारे IP को पहुँचने की अनुमति देता है:
|
||||
आप sqlcmd का उपयोग करके डेटाबेस तक भी पहुँच सकते हैं। यह जानना महत्वपूर्ण है कि क्या सर्वर सार्वजनिक कनेक्शन की अनुमति देता है `az sql server show --name <server-name> --resource-group <resource-group>` और यह भी कि क्या फ़ायरवॉल नियम हमारे IP को पहुँचने की अनुमति देता है:
|
||||
```bash
|
||||
sqlcmd -S <sql-server>.database.windows.net -U <server-user> -P <server-passworkd> -d <database>
|
||||
```
|
||||
## References
|
||||
## संदर्भ
|
||||
|
||||
- [https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/azure-sql-iaas-vs-paas-what-is-overview?view=azuresql)
|
||||
- [https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/database/single-database-overview?view=azuresql)
|
||||
- [https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/managed-instance/sql-managed-instance-paas-overview?view=azuresql)
|
||||
- [https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview?view=azuresql](https://learn.microsoft.com/en-us/azure/azure-sql/virtual-machines/windows/sql-server-on-azure-vm-iaas-what-is-overview?view=azuresql)
|
||||
|
||||
## Privilege Escalation
|
||||
## विशेषाधिकार वृद्धि
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-sql-privesc.md
|
||||
{{#endref}}
|
||||
|
||||
## Post Exploitation
|
||||
## पोस्ट एक्सप्लोइटेशन
|
||||
|
||||
{{#ref}}
|
||||
../az-post-exploitation/az-sql-post-exploitation.md
|
||||
|
||||
Reference in New Issue
Block a user