sql >> Database >  >> RDS >> Sqlserver

Inzicht in SQL Server Lockdown naar beveiligde databaseomgeving

Beveiliging is tegenwoordig de belangrijkste zorg in elke sector. Databasebeveiliging is ook een grote zorg voor elke klant. SQL Server is ontworpen om al uw gegevens die zijn opgeslagen in de databases te beveiligen, maar soms slagen we er niet in om de juiste set configuraties toe te passen en laten we een gat in ons systeem achter. Hackers en onbevoegde buitenaardse wezens kunnen deze mazen gebruiken om uw systeem binnen te dringen. Uw gegevens kunnen worden aangetast of verguisd, uw systeembronnen kunnen worden verwijderd om een ​​storing te veroorzaken om uw zakelijke activiteiten te stoppen, de gegevens van uw klanten kunnen worden blootgesteld aan concurrenten, enz.

SQL Server Lockdown of Hardening

Het hele proces om uw databaseomgeving te beveiligen staat bekend als een database \ SQL Server-lockdown. Ik zal verschillende parameters en configuratiedetails beschrijven die u kunt toepassen om uw databaseomgeving te beveiligen.

Alleen vereiste componenten installeren

Laten we de vergrendelingspraktijken starten met de installatie van SQL Server. SQL Server biedt verschillende componenten en functies die DBA's kiezen voor verschillende vereisten. Enkele van deze componenten en functies worden hieronder gegeven:

  1. Database-engine
  2. Rapportagediensten
  3. Integratiediensten
  4. Analyseservice-engine
  5. Meldingsservices
  6. Documentatie en voorbeelden (voorbeelddatabases en codes)
  7. Zoeken in volledige tekst
  8. Andere functies zoals replicatie, machine learning-services, datakwaliteitsservices, enz.

Het is een goede gewoonte om alleen noodzakelijke functies te installeren, omdat u hierdoor de mogelijkheden van een oppervlakteaanval verkleint of beperkt. Bovendien zult u een laag gebruik van systeembronnen hebben.

Installeer de laatste updates

Zorg ervoor dat u uw systemen op tijd bijwerkt. Als er nieuwe kwetsbaarheden worden ontdekt, wordt dit door uw productleveranciers in beveiligingsbulletins geplaatst.

Ik heb het niet over het bijwerken van alleen SQL Server-patches, maar over alles wat op uw systeem wordt uitgevoerd, van het besturingssysteem tot elke andere toepassing die op uw computer is geïnstalleerd. Pas altijd patches toe om uw software up-to-date te houden en externe bedreigingen of aanvallen te voorkomen.

Windows-verificatiemodus gebruiken

Kies altijd de Windows-verificatiemodus voor gebruikersverbindingen als u geen afhankelijkheden hebt om de SQL Server-verificatiemodus te gebruiken. Het is veiliger en verifieert de Windows-aanmelding met de Windows Active-directory tijdens elke inlogpoging. SQL Server heeft twee soorten authenticatiemodi.

  • Windows-verificatie
  • Gemengde modus (Windows + SQL Server)

Windows-verificatiemodus: Dit is een standaard verificatiemodus voor SQL Server. De Windows-verificatiemodus maakt gebruik van lokale accounts, Active Directory-gebruikersaccounts en groepen bij het verlenen van toegang tot SQL Server. In deze modus kunt u als databasebeheerder domein- of lokale servergebruikers toegang verlenen tot de databaseserver zonder een afzonderlijk SQL Server-account aan te maken en te beheren.

Gemengde modus: De gemengde authenticatiemodus heeft beide opties. U kunt zowel op Windows gebaseerde authenticatie als op SQL Server-aanmelding gebaseerde authenticatie gebruiken. Het authenticatiemechanisme van SQL Server is gebaseerd op accounts die worden beheerd binnen de SQL Server, inclusief het wachtwoordbeleid. Gemengde authenticatie kan nodig zijn als je afhankelijk bent van legacy-applicaties.

U kunt de onderstaande stappen volgen om de serververificatiemodus te selecteren of te wijzigen:

  1. Start SQL Server Management Studio en maak verbinding met uw doel-SQL Server-instantie.
  2. Klik in SQL Server Management Studio met de rechtermuisknop op de SQL Server-instantie en klik vervolgens op Eigenschappen .
  3. Klik op de Beveiliging pagina in het linkerdeelvenster, kunt u beide authenticatie-opties zien in het rechterdeelvenster onder de Serverauthenticatie sectie. Als u uw instantie wilt beveiligen, moet u overschakelen naar de Windows-verificatiemodus. U hoeft alleen maar op het keuzerondje van de Windows-verificatiemodus te klikken en vervolgens op OK . te klikken om de wijzigingen toe te passen.
  1. Klik in het dialoogvenster SQL Server Management Studio op OK om de noodzaak te erkennen om SQL Server opnieuw te starten.

De Windows-authenticatiemodus is een veiligere keuze. Als echter verificatie in gemengde modus vereist is, moet u complexe wachtwoorden opgeven voor SQL Server-aanmeldingen en beveiligings\lockout-beleid toepassen voor een betere beveiliging. Het wordt ook aanbevolen om het SQL Server sa-account uit te schakelen als u de gemengde authenticatiemodus gebruikt. Ik zal dit in het volgende gedeelte bespreken.

De naam van het sa-account wijzigen/uitschakelen

Login sa wordt standaard aangemaakt tijdens het installeren van SQL Server, dus dit kan een van de mogelijke redenen zijn voor aanvallers om dit account te hacken of de controle over te nemen. Onthoud dat deze login systeembeheerdersrechten heeft, zodat iedereen die toegang heeft tot dit account uw databases en SQL Server-instanties kan beheren.

Voer de onderstaande opdracht uit om het sa-account uit te schakelen.

--Disable sa login
USE MASTER
GO
ALTER LOGIN sa DISABLE;
GO

Je kunt de uitvoering ervan zien in de onderstaande afbeelding.

Voordat u de sa-account hernoemt of uitschakelt, moet u controleren of er een ander account met beheerdersrechten bestaat op de SQL Server-instantie.

Standaard SQL Server-poorten wijzigen

We weten allemaal dat SQL Server poort 1433 gebruikt voor alle clientverzoeken en communicatie. Aangezien deze configuratie zich in het publieke domein bevindt, kunnen hackers zich op deze configuratie richten om verbinding te maken met uw SQL Server-instantie.

U kunt de SQL Server-poort wijzigen door de onderstaande stappen te volgen.

  1. Log in op uw doelcomputer waarop SQL Server is geïnstalleerd.
  2. Start de Serverconfiguratiemanager hulpmiddel.
  3. Breid de SQL Server-netwerkconfiguratie uit knooppunt in het linkerdeelvenster en selecteer Protocollen om de SQL Server-instantie te configureren.
  4. Klik in het rechterdeelvenster met de rechtermuisknop op de protocolnaam TCP/IP en kies Eigenschappen .
  5. In de TCP/IP-eigenschappen dialoogvenster, selecteer de IP-adressen tabblad. Er is een corresponderend item voor elk IP-adres dat aan de server is toegewezen.
  6. Wis de waarden voor beide TCP Dynamic Ports en TCP-poort voor elk IP-adres behalve de IP-adressen onder IPAll .
  7. In de IPAll voor elke instantie, voert u een nieuwe poort in waarop u wilt dat SQL Server luistert.
  8. Klik op Toepassen en start de SQL Server Services opnieuw.

SQL-browserservice uitschakelen

SQL Server Browser-services worden geïnstalleerd met de installatie van het SQL Server-exemplaar. Deze service leidt uw verbinding om naar de poort waarop SQL Server draait. Als deze service actief is, is het een stap gemakkelijker voor aanvallers omdat ze hiermee verbinding kunnen maken met SQL Server zonder het poortnummer ervan door te geven. Het is dus beter om deze service uit te schakelen na het wijzigen van de poort.

Xp_cmdshell-optie uitschakelen

SQL Server biedt een uitgebreide opgeslagen procedure xp_cmdshell om besturingssysteemopdrachten uit te voeren en uit te voeren vanuit SQL Server. Het moet worden uitgeschakeld om elk beveiligingsrisico te voorkomen. U kunt deze uitgebreide opgeslagen procedure vinden in de configuraties op serverniveau of door sp_configure T-SQL opgeslagen procedure uit te voeren. U kunt de onderstaande T-SQL-instructies uitvoeren om deze configuratie uit te schakelen.

-- Enable advanced options to display configure xp_cmdshell
sp_configure 'show advanced options', '1'
RECONFIGURE

-- Disable xp_cmdshell
sp_configure 'xp_cmdshell', '0' 
RECONFIGURE
GO

Gegevensversleuteling of maskering gebruiken

SQL Server biedt verschillende coderingsmethoden om uw gegevens te beschermen. Versleuteling wordt aanbevolen als uw gebruikers toegang krijgen tot gegevens via het openbare netwerk. SQL Server heeft meerdere opties om de juiste set versleutelingen te implementeren, rekening houdend met uw zakelijke behoeften. Dit is de lijst met opties voor versleuteling of gegevensmaskering die we kunnen gebruiken om onze gegevens te beveiligen:

  • TDE (transparante gegevenscodering)
  • Beveilig gegevens met versleutelingssleutels
  • Altijd versleutelen
  • Dynamische gegevensmaskering

Verwijder BUILTIN\Administrators van SQL Server

We moeten altijd het BUILTIN\Administrators-account van het SQL Server-exemplaar verwijderen om ongewenste toegang tot het database-exemplaar te beperken. De beste manier is om de gebruikers individueel toegang te verlenen tot SQL Server. U kunt ook een groep mensen toevoegen aan de Windows-groep en hen toegang verlenen tot SQL Server. U kunt de onderstaande T-SQL-instructie gebruiken om deze aanmelding uit de SQL Server-instantie te verwijderen.

U kunt deze login ook laten vallen met behulp van GUI via SQL Server Management Studio. U hoeft alleen maar verbinding te maken met uw SQL Server-instantie en vervolgens de beveiligingsmap op instantieniveau uit te vouwen. Hier kunt u met de rechtermuisknop op deze login klikken om deze uit de SQL Server-instantie te verwijderen.

--DROP Login
DROP LOGIN [BUILTIN\Administrators]

Sterke wachtwoorden en voldoende gebruikersrechten

Wijs altijd voldoende rechten toe aan elke gebruiker, deze zouden minimaal moeten zijn, gezien hun rol bij het benaderen van de databases. We mogen ook nooit zwakke wachtwoorden gebruiken voor een login of dezelfde login en hetzelfde wachtwoord. Gebruik altijd het wachtwoordbeleid voor elke SQL-aanmelding.

SQL Server-aanmeldingscontrole configureren

SQL Server heeft een controlefunctie voorzien om details over alle mislukte en geslaagde aanmeldingen vast te leggen. Dit is een zeer nuttige configuratie als u wilt controleren wie verbinding maakt of probeert verbinding te maken met uw databases. We kunnen de SQL Server-waarschuwing configureren die een e-mailmelding verzendt bij elke mislukte en succesvolle aanmelding bij SQL Server. U kunt de onderstaande stappen volgen om aanmeldingscontrole in te schakelen.

  • Maak verbinding met uw doel-SQL Server-instantie in SQL Server Management Studio
  • Klik met de rechtermuisknop op de naam van de SQL Server-instantie en klik vervolgens op Eigenschappen .
  • Klik op de Beveiliging tabblad in het linkerdeelvenster. U krijgt Inlogcontrole in het rechterdeelvenster zoals werd getoond in de eerste schermafbeelding van dit artikel
  • Kies de gewenste optie en sluit de Servereigenschappen pagina
  • Start de SQL Server-service opnieuw om deze wijziging toe te passen

Ongebruikte SQL Server-aanmeldingen verwijderen

Houd altijd uw SQL Server-aanmeldingen in de gaten. U moet oplettend zijn bij het verwijderen van alle inlogaccounts die niet meer in gebruik zijn. Ik weet dat het moeilijk is om het handmatig te beheren, maar je kunt een e-mailwaarschuwing configureren om een ​​e-mail te sturen over alle SQL Server-aanmeldingen en hun privileges.

Conclusie

Ik heb enkele van de mogelijke configuraties uitgelegd die we kunnen toepassen om onze databases te beveiligen tegen externe bedreigingen. Houd rekening met alle bovenstaande punten bij het implementeren van het databaseverhardingsbeleid voor de omgeving.

Deel dit artikel en geef uw feedback in de commentaarsectie zodat we kunnen verbeteren.


  1. Een SQL Server Monitoring Tool kiezen die aan uw behoeften voldoet

  2. tnsnames.ora ontleden in Visual C# 2008

  3. Is er een .NET-equivalent van SQL Server's newsequentialid()

  4. Hoe te testen op overlappende datums in PostgreSQL