Translated ['src/pentesting-cloud/azure-security/az-services/az-sql.md']

This commit is contained in:
Translator
2025-03-21 09:02:16 +00:00
parent b26d5b24c5
commit e9c6870d17

View File

@@ -11,7 +11,7 @@ Azure SQL में चार मुख्य पेशकशें शामि
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 इंस्टेंस पर नियंत्रण चाहते हैं।
4. **Azure SQL Server on Azure VMs**: यह उन आर्किटेक्चर के लिए सबसे अच्छा है जहा आप **ऑपरेटिंग सिस्टम** और SQL Server इंस्टेंस पर नियंत्रण चाहते हैं।
### SQL Server सुरक्षा विशेषताएँ
@@ -20,7 +20,7 @@ Azure SQL में चार मुख्य पेशकशें शामि
- सार्वजनिक एंडपॉइंट (विशिष्ट नेटवर्कों तक पहुंच को सीमित कर सकता है)।
- निजी एंडपॉइंट।
- डोमेन नामों के आधार पर कनेक्शनों को प्रतिबंधित करना भी संभव है।
- Azure सेवाओं को इसे एक्सेस करने की अनुमति देना भी संभव है (जैसे पोर्टल में क्वेरी संपादक का उपयोग करने के लिए या Azure VM को कनेक्ट करने की अनुमति देने के लिए)।
- Azure सेवाओं को इसे एक्सेस करने की अनुमति देना भी संभव है (जैसे पोर्टल में क्वेरी संपादक का उपयोग करने के लिए या Azure VM को कनेक्ट करने की अनुमति देन)।
**प्रमाणीकरण विधियाँ:**
@@ -28,7 +28,7 @@ Azure SQL में चार मुख्य पेशकशें शामि
- **SQL और Microsoft Entra** दोनों प्रमाणीकरण: उपयोगकर्ता नाम और पासवर्ड के साथ पारंपरिक SQL प्रमाणीकरण Microsoft Entra के साथ।
- **केवल SQL** प्रमाणीकरण: केवल डेटाबेस उपयोगकर्ताओं के माध्यम से पहुंच की अनुमति दें।
ध्यान दें कि यदि कोई SQL प्रमाणीकरण अनुमति दी जाती है, तो एक व्यवस्थापक उपयोगकर्ता (उपयोगकर्ता नाम + पासवर्ड) को इंगित करने की आवश्यकता होती है और यदि Entra ID प्रमाणीकरण चुना गया है, तो यह भी आवश्यक है कि कम से कम एक प्रिंसिपल को व्यवस्थापक पहुंच के साथ इंगित किया जाए
ध्यान दें कि यदि कोई SQL प्रमाणीकरण अनुमति दी जाती है तो एक व्यवस्थापक उपयोगकर्ता (उपयोगकर्ता नाम + पासवर्ड) को इंगित करन आवश्यक है और यदि Entra ID प्रमाणीकरण चुना गया है तो कम से कम एक प्रिंसिपल को व्यवस्थापक पहुंच के साथ इंगित करना भी आवश्यक है
**एन्क्रिप्शन:**
@@ -42,7 +42,7 @@ Azure SQL में चार मुख्य पेशकशें शामि
- यदि एक से अधिक UMI असाइन किया गया है, तो उपयोग के लिए डिफ़ॉल्ट एक को इंगित करना संभव है।
- क्रॉस-टेनेंट एक्सेस के लिए एक संघीय क्लाइंट पहचान को कॉन्फ़िगर करना संभव है।
SQL डेटाबेस से एक ब्लॉब स्टोरेज के अंदर जानकारी तक पहुचने के लिए कुछ कमांड:
SQL डेटाबेस से एक ब्लॉब स्टोरेज के अंदर जानकारी तक पहुचने के लिए कुछ कमांड:
```sql
-- Create a credential for the managed identity
CREATE DATABASE SCOPED CREDENTIAL [ManagedIdentityCredential]
@@ -69,57 +69,57 @@ GO
```
**Microsoft Defender:**
- "संभावित डेटाबेस कमजोरियों को कम करने और असामान्य गतिविधियों का पता लगाने" के लिए उपयोगी
- हम Defender के बारे में अपनी एक पाठ में बात करेंगे (इसे कई अन्य Azure सेवाओं में सक्षम किया जा सकता है)
- संभावित डेटाबेस कमजोरियों को कम करने और असामान्य गतिविधियों का पता लगाने के लिए उपयोगी
- हम Defender के बारे में अपनी खुद की पाठ में बात करेंगे (इसे कई अन्य Azure सेवाओं में सक्षम किया जा सकता है)
**बैकअप:**
**Backups:**
- बैकअप की आवृत्ति को रिटेंशन नीतियों में प्रबंधित किया जाता है।
**हटाए गए डेटाबेस:**
**Deleted databases:**
- मौजूदा बैकअप से हटाए गए DBs को पुनर्स्थापित करना संभव है।
## Azure SQL Database
**Azure SQL Database** एक **पूर्ण रूप से प्रबंधित डेटाबेस प्लेटफ़ॉर्म के रूप में सेवा (PaaS)** है जो स्केलेबल और सुरक्षित संबंधपरक डेटाबेस समाधान प्रदान करता है। यह नवीनतम SQL Server तकनीकों पर आधारित है और अवसंरचना प्रबंधन की आवश्यकता को समाप्त करता है, जिससे यह क्लाउड-आधारित अनुप्रयोगों के लिए एक लोकप्रिय विकल्प बनता है।
SQL डेटाबेस बनाने के लिए यह आवश्यक है कि SQL सर्वर को इंगित किया जाए जहा इसे होस्ट किया जाएगा।
SQL डेटाबेस बनाने के लिए यह आवश्यक है कि SQL सर्वर को इंगित किया जाए जहा इसे होस्ट किया जाएगा।
### SQL डेटाबेस सुरक्षा सुविधाएँ
### SQL Database Security Features
- **हमेशा अद्यतित**: नवीनतम स्थिर संस्करण पर चलता है SQL Server का और नए फीचर्स और पैच स्वचालित रूप से प्राप्त करता है।
- **विरासत में प्राप्त SQL Server सुरक्षा सुविधाएँ:**
- **विरासत में प्राप्त SQL Server सुरक्षा विशेषताएँ:**
- प्रमाणीकरण (SQL और/या Entra ID)
- असाइन किए गए प्रबंधित पहचान
- नेटवर्क प्रतिबंध
- एन्क्रिप्शन
- बैकअप
-
- **डेटा पुनरावृत्ति:** विकल्प स्थानीय, क्षेत्र, भू-स्थान या भू-क्षेत्र पुनरावृत्त हैं।
- **डेटा पुनरावृत्ति:** विकल्प स्थानीय, क्षेत्र, भू-क्षेत्र या भू-क्षेत्र पुनरावृत्त हैं।
- **लेजर:** यह डेटा की अखंडता को क्रिप्टोग्राफिक रूप से सत्यापित करता है, यह सुनिश्चित करता है कि किसी भी छेड़छाड़ का पता लगाया जाए। वित्तीय, चिकित्सा और किसी भी संगठन के लिए उपयोगी जो संवेदनशील डेटा का प्रबंधन करता है।
एक SQL डेटाबेस एक **इलास्टिक पूल** का हिस्सा हो सकता है। इलास्टिक पूल कई डेटाबेस का प्रबंधन करने के लिए एक लागत-कुशल समाधान है, जो उनके बीच कॉन्फ़िगर करने योग्य कंप्यूट (eDTUs) और स्टोरेज संसाधनों को साझा करता है, जिसमें मूल्य निर्धारण केवल आवंटित संसाधनों के आधार पर होता है न कि डेटाबेस की संख्या के आधार पर।
#### Azure SQL कॉलम स्तर सुरक्षा (मास्किंग) और पंक्ति स्तर सुरक्षा
#### Azure SQL Column Level Security (Masking) & Row Level Security
**Azure SQL का गतिशील** डेटा मास्किंग एक विशेषता है जो **संवेदनशील जानकारी की सुरक्षा में मदद करती है** इसे अनधिकृत उपयोगकर्ताओं से छिपाकर। वास्तविक डेटा को बदलने के बजाय, यह प्रदर्शित डेटा को गतिशील रूप से मास्क करता है, यह सुनिश्चित करता है कि संवेदनशील विवरण जैसे क्रेडिट कार्ड नंबर अस्पष्ट हैं।
**Azure SQL का डायनामिक** डेटा मास्किंग एक विशेषता है जो **संवेदनशील जानकारी की सुरक्षा में मदद करती है** इसे अनधिकृत उपयोगकर्ताओं से छिपाकर। वास्तविक डेटा को बदलने के बजाय, यह प्रदर्शित डेटा को डायनामिक रूप से मास्क करता है, यह सुनिश्चित करता है कि संवेदनशील विवरण जैसे क्रेडिट कार्ड नंबर अस्पष्ट हैं।
**गतिशील डेटा मास्किंग** सभी उपयोगकर्ताओं पर प्रभाव डालती है सिवाय उन लोगों के जो अनमास्क किए गए हैं (इन उपयोगकर्ताओं को इंगित करने की आवश्यकता है) और प्रशासकों। इसमें वह कॉन्फ़िगरेशन विकल्प है जो निर्दिष्ट करता है कि कौन से SQL उपयोगकर्ता गतिशील डेटा मास्किंग से छूट प्राप्त हैं, **प्रशासक हमेशा बाहर होते हैं**
**डायनामिक डेटा मास्किंग** सभी उपयोगकर्ताओं पर प्रभाव डालती है सिवाय उन लोगों के जो अनमास्क किए गए हैं (इन उपयोगकर्ताओं को इंगित करने की आवश्यकता है) और प्रशासकों। इसमें वह कॉन्फ़िगरेशन विकल्प है जो निर्दिष्ट करता है कि कौन से SQL उपयोगकर्ता डायनामिक डेटा मास्किंग से छूट प्राप्त करते हैं, **प्रशासक हमेशा बाहर होते हैं**
**Azure SQL पंक्ति स्तर सुरक्षा (RLS)** एक विशेषता है जो **नियंत्रित करती है कि कौन स पंक्तियाँ एक उपयोगकर्ता देख या संशोधित कर सकता है**, यह सुनिश्चित करते हुए कि प्रत्येक उपयोगकर्ता केवल उनके लिए प्रासंगिक डेटा देखता है। फ़िल्टर या ब्लॉक प्रीडिकेट के साथ सुरक्षा नीतियाँ बनाकर, संगठन डेटाबेस स्तर पर बारीक पहुंच लागू कर सकते हैं।
**Azure SQL रो लेवल सुरक्षा (RLS)** एक विशेषता है जो **नियंत्रित करती है कि कौन स पंक्तियाँ एक उपयोगकर्ता देख या संशोधित कर सकता है**, यह सुनिश्चित करते हुए कि प्रत्येक उपयोगकर्ता केवल उनके लिए प्रासंगिक डेटा देखता है। फ़िल्टर या ब्लॉक प्रीडिकेट के साथ सुरक्षा नीतियाँ बनाकर, संगठन डेटाबेस स्तर पर बारीक पहुंच लागू कर सकते हैं।
### Azure SQL प्रबंधित उदाहरण
### Azure SQL Managed Instance
**Azure SQL प्रबंधित उदाहरण** बड़े पैमाने पर, पूरे SQL Server उदाहरण-स्कोप वाले तैनाती के लिए हैं। यह नवीनतम SQL Server ऑन-प्रिमाइसेस (Enterprise Edition) डेटाबेस इंजन के साथ लगभग 100% संगतता प्रदान करता है, जो सामान्य सुरक्षा चिंताओं को संबोधित करने के लिए एक स्वदेशी वर्चुअल नेटवर्क (VNet) कार्यान्वयन प्रदान करता है, और ऑन-प्रिमाइसेस SQL Server ग्राहकों के लिए अनुकूल व्यावसायिक मॉडल।
**Azure SQL Managed Instances** बड़े पैमाने पर, पूरे SQL Server इंस्टेंस-स्कोप्ड डिप्लॉयमेंट के लिए हैं। यह नवीनतम SQL Server ऑन-प्रिमाइसेस (Enterprise Edition) डेटाबेस इंजन के साथ लगभग 100% संगतता प्रदान करता है, जो सामान्य सुरक्षा चिंताओं को संबोधित करने के लिए एक स्वदेशी वर्चुअल नेटवर्क (VNet) कार्यान्वयन प्रदान करता है, और ऑन-प्रिमाइसेस SQL Server ग्राहकों के लिए एक व्यावसायिक मॉडल अनुकूल है
### Azure SQL वर्चुअल मशीनें
### Azure SQL Virtual Machines
**Azure SQL वर्चुअल मशीनें** **ऑपरेटिंग सिस्टम** और SQL Server उदाहरण को नियंत्रित करने की अनुमति देती हैं, क्योंकि एक VM SQL सर्वर चलाने वाली VM सेवा में उत्पन्न होगी।
**Azure SQL Virtual Machines** आपको **ऑपरेटिंग सिस्टम** और SQL Server इंस्टेंस को नियंत्रित करने की अनुमति देती हैं, क्योंकि एक VM SQL सर्वर चलाने वाली VM सेवा में उत्पन्न होगी।
जब एक SQL वर्चुअल मशीन बनाई जाती है, तो यह संभव है कि **VM क सभी सेटिंग्स का चयन किया जाए** (जैसा कि VM पाठ में दिखाया गया है) जो SQL सर्वर को होस्ट करेगा।
- इसका मतलब है कि VM कुछ VNet(s) तक पहुच प्राप्त करेगा, इसमें **प्रबंधित पहचानें संलग्न** हो सकती है, फ़ाइल शेयर माउंट किए जा सकते हैं... जिससे SQL से VM में **पिवोटिंग** करना बहुत दिलचस्प हो जाता है।
- इसके अलावा, यह एक ऐप आईडी और सीक्रेट को कॉन्फ़िगर करना संभव है ताकि **SQL को एक विशिष्ट की वॉल्ट** तक पहुचने की अनुमति दी जा सके, जिसमें संवेदनशील जानकारी हो सकती है।
जब एक SQL वर्चुअल मशीन बनाई जाती है, तो यह संभव है कि **VM क सभी सेटिंग्स का चयन किया जाए** (जैसा कि VM पाठ में दिखाया गया है) जो SQL सर्वर को होस्ट करेगा।
- इसका मतलब है कि VM कुछ VNet(s) तक पहुच प्राप्त करेगा, इसमें **प्रबंधित पहचान संलग्न** हो सकती है, फ़ाइल शेयर माउंट किए जा सकते हैं... जिससे SQL से VM में **पिवोटिंग** करना बहुत दिलचस्प हो जाता है।
- इसके अलावा, यह एक ऐप आईडी और सीक्रेट को कॉन्फ़िगर करना संभव है ताकि **SQL को एक विशिष्ट की वॉल्ट तक पहुचने की अनुमति दी जा सके**, जिसमें संवेदनशील जानकारी हो सकती है।
यह भी संभव है कि **स्वचालित SQL अपडेट**, **स्वचालित बैकअप**, **Entra ID प्रमाणीकरण** और अन्य SQL सेवाओं की अधिकांश सुविधाओं को कॉन्फ़िगर किया जाए।
यह भी संभव है कि **स्वचालित SQL अपडेट**, **स्वचालित बैकअप**, **Entra ID प्रमाणीकरण** और अन्य SQL सेवाओं की अधिकांश विशेषताओं को कॉन्फ़िगर किया जाए।
## Enumeration
@@ -209,7 +209,7 @@ az rest --method get \
# 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"
--uri "https://management.azure.com/subscriptions/<subscriptionId>/resourceGroups/<resourceGroupName>/providers/Microsoft.Sql/servers/<serverName>/databases/<databaseName>/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"
@@ -285,7 +285,7 @@ ON sp.object_id = sp2.object_id;
```
### Connect and run SQL queries
आप एक कनेक्शन स्ट्रिंग (जिसमें क्रेडेंशियल्स होते हैं) पा सकते हैं उदाहरण [enumerating an Az WebApp](az-app-services.md):
आप एक कनेक्शन स्ट्रिंग (जिसमें क्रेडेंशियल्स होते हैं) उदाहरण [enumerating an Az WebApp](az-app-services.md) से पा सकते हैं:
```bash
function invoke-sql{
param($query)
@@ -308,26 +308,26 @@ invoke-sql 'Select Distinct TABLE_NAME From information_schema.TABLES;'
```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
{{#endref}}
### स्थिरता
### Persistence
{{#ref}}
../az-persistence/az-sql-persistence.md