Bescherming van informatie in databases. Het terugdraaien en afwikkelen van een transactie. Basisaspecten van het creëren van veilige databases

5.1. Beveiligingsmethoden

IN moderne DBMS steunt een van de twee algemeen aanvaarde benaderingen van gegevensbeveiliging, namelijk een selectieve benadering of een verplichte benadering. In beide benaderingen kan de gegevenseenheid of het 'gegevensobject' waarvoor het beveiligingssysteem moet worden gemaakt, een hele database zijn of een reeks relaties, of een gegevenswaarde voor een bepaald attribuut binnen een tupel in een bepaalde relatie. Deze benaderingen verschillen in de volgende eigenschappen:

1. Bij selectieve controle heeft een bepaalde gebruiker verschillende rechten (privileges of bevoegdheden) bij het werken met verschillende objecten. Bovendien hebben verschillende gebruikers doorgaans verschillende toegangsrechten tot hetzelfde object. Daarom worden verkiezingsstelsels gekenmerkt door een aanzienlijke flexibiliteit.

2. Bij verplicht beheer daarentegen krijgt elk data-object een bepaald classificatieniveau toegewezen en heeft elke gebruiker een bepaald toegangsniveau. Daarom hebben met deze aanpak alleen gebruikers met het juiste beveiligingsniveau toegang tot een bepaald dataobject. Daarom zijn de verplichte regelingen behoorlijk rigide en statisch.

Ongeacht welke regelingen er worden gebruikt (selectief of verplicht), alle beslissingen met betrekking tot de toelating van gebruikers tot het uitvoeren van bepaalde handelingen worden op strategische basis genomen en niet technisch niveau. Daarom liggen ze buiten het bereik van het DBMS zelf, en het enige wat het DBMS in een dergelijke situatie kan doen is eerder genomen beslissingen implementeren. Op basis hiervan kan het volgende worden opgemerkt:

Ten eerste. Resultaten strategische beslissingen moet bekend zijn bij het systeem (d.w.z. gemaakt op basis van uitspraken die zijn gespecificeerd met behulp van some geschikte taal) en daar opgeslagen (door ze in een map op te slaan als beveiligingsregels, ook wel machtigingen genoemd).

Ten tweede. Uiteraard moet er een manier zijn om toegangsverzoeken te reguleren in relatie tot de overeenkomstige beveiligingsregels. (Hier verwijst “verzoek, toegang” naar de combinatie van de aangevraagde bewerking, het aangevraagde object en de verzoekende gebruiker.) Deze controle wordt uitgevoerd door het beveiligingssubsysteem van het DBMS, ook wel het autoriteitssubsysteem genoemd.

Ten derde. Om te begrijpen welke beveiligingsregels van toepassing zijn op welke toegangsverzoeken, moet het systeem manieren bieden om de bron van dit verzoek te identificeren, d.w.z. identificatie van de aanvragende gebruiker. Daarom moet de gebruiker bij het inloggen doorgaans niet alleen zijn identificatiecode (bijvoorbeeld zijn naam of functie) invoeren, maar ook een wachtwoord (om zijn rechten op de eerder opgegeven identificatiegegevens te bevestigen). Normaal gesproken wordt ervan uitgegaan dat het wachtwoord alleen bekend is bij het systeem en bij bepaalde personen met speciale rechten.



Met betrekking tot laatste punt Het is vermeldenswaard dat verschillende gebruikers dezelfde groepsidentificatie kunnen hebben. Op deze manier kan het systeem groepen gebruikers ondersteunen en gelijke toegangsrechten bieden voor gebruikers van dezelfde groep, bijvoorbeeld voor alle personen van de facturatieafdeling. Daarnaast het toevoegen van bewerkingen individuele gebruikers leden in of uit een groep kunnen worden verwijderd, ongeacht de werking van het instellen van rechten voor die groep. Houd er echter rekening mee dat waar groepslidmaatschapsinformatie wordt opgeslagen, dat ook het geval is systeemmap(of misschien een database).

De hierboven genoemde toegangscontrolemethoden maken eigenlijk deel uit van meer algemene classificatie beveiligingsniveaus. Allereerst definiëren deze documenten vier beveiligingsklassen: D, C, B en A. Hiervan is klasse D het minst veilig, klasse C is veiliger dan klasse D, enz. Klasse D biedt minimale bescherming, Klasse C biedt selectieve bescherming, Klasse B biedt verplichte bescherming en Klasse A biedt bewezen bescherming.

Selectieve bescherming. Klasse C is verdeeld in twee subklassen, C1 en C2 (waarbij subklasse C1 minder veilig is dan subklasse C2), die selectieve toegangscontrole ondersteunen in de zin dat toegangscontrole wordt bepaald door de eigenaar van de gegevens.

Volgens de eisen van klasse C1 is het noodzakelijk om de gegevens en de gebruiker te scheiden, d.w.z. Naast het ondersteunen van het concept van wederzijdse toegang tot data, is het ook mogelijk om gescheiden gebruik van data door gebruikers te organiseren.

Volgens de vereisten van klasse C2 is het noodzakelijk om de boekhouding bovendien te organiseren op basis van procedures voor inloggen op het systeem, auditing en isolatie van bronnen.

Verplichte bescherming. Klasse B bevat vereisten voor verplichte toegangscontrolemethoden en is onderverdeeld in drie subklassen: B1, B2 en B3 (waarbij B1 de minst veilige en B3 de veiligste subklasse is).

Klasse B1 vereist "gelabelde beveiliging" (wat betekent dat elk gegevensobject moet worden gelabeld met zijn classificatieniveau, bijvoorbeeld geclassificeerd, bedrijfseigen, enz.) evenals een informele communicatie over de geldende beveiligingsstrategie.

Volgens de vereisten van klasse B2 is het noodzakelijk om bovendien een formele verklaring af te geven van de huidige beveiligingsstrategie, en om slecht beveiligde informatietransmissiekanalen te detecteren en te elimineren.

Volgens de vereisten van klasse B3 is het noodzakelijk om bovendien ondersteuning te bieden voor auditing en gegevensherstel, evenals de aanstelling van een beheerder van de beveiligingsmodus.

Bewezen bescherming. Klasse A is het veiligst en vereist wiskundig bewijs dat een bepaalde beveiligingsmethode compatibel is en geschikt is voor de gespecificeerde beveiligingsstrategie.

Hoewel sommige commerciële DBMS'en verplichte beveiliging op B1-niveau bieden, bieden ze doorgaans selectieve controle op C2-niveau.

5.2. Selectieve toegangscontrole

Selectieve toegangscontrole wordt door veel DBMS'en ondersteund. Selectieve toegangscontrole wordt ondersteund in de SQL-taal.

Over het algemeen is het beveiligingssysteem van dergelijke DBMS's gebaseerd op drie componenten:

1. Gebruikers. Het DBMS voert namens een gebruiker alle acties met de database uit. Aan elke gebruiker wordt een identificatie toegewezen: een korte naam die de gebruiker op unieke wijze identificeert in het DBMS. Om te bevestigen dat de gebruiker met de ingevoerde identificatie kan werken, wordt een wachtwoord gebruikt. Met behulp van een identificatie en wachtwoord wordt de gebruiker dus geïdentificeerd en geauthenticeerd. Bij de meeste commerciële DBMS'en kunnen gebruikers met dezelfde rechten worden gegroepeerd om het beheerproces te vereenvoudigen.

2. Databaseobjecten. Volgens de SQL2-standaard zijn de beveiligbare objecten in de database tabellen, views, domeinen en door de gebruiker gedefinieerde tekensets. De meeste commerciële DBMS'en breiden de lijst met objecten uit door opgeslagen procedures en andere objecten toe te voegen.

3. Voorrechten. Rechten tonen een reeks acties die op een bepaald object kunnen worden uitgevoerd. Een gebruiker heeft bijvoorbeeld het recht om een ​​tabel te bekijken.

5.3. Verplichte toegangscontrole

Verplichte toegangscontrolemethoden worden toegepast op databases waarin de gegevens een tamelijk statische of rigide structuur hebben, zoals typisch is voor overheids- of militaire organisaties. Zoals al opgemerkt is het basisidee dat elk dataobject een bepaald classificatieniveau heeft, bijvoorbeeld: geheim, topgeheim, voor officieel gebruik, enz., en dat elke gebruiker een goedkeuringsniveau heeft met dezelfde gradaties als in de niveauclassificaties. Er wordt aangenomen dat deze niveaus een strikte hiërarchische volgorde vormen, bijvoorbeeld: topgeheim®geheim® voor officieel gebruik, enz. Op basis van deze informatie kunnen we er vervolgens twee formuleren eenvoudige regels beveiliging:

1. De gebruiker heeft alleen toegang tot een object als zijn toegangsniveau groter is dan of gelijk is aan het classificatieniveau van het object.

2. De gebruiker kan een object alleen wijzigen als zijn goedkeuringsniveau gelijk is aan het classificatieniveau van het object.

Regel 1 ligt vrij voor de hand, maar regel 2 behoeft verdere verduidelijking. Allereerst moet worden opgemerkt dat de tweede regel als volgt anders kan worden geformuleerd: alle informatie die door een bepaalde gebruiker wordt vastgelegd, krijgt automatisch een niveau dat gelijk is aan het classificatieniveau van deze gebruiker. Een dergelijke regel is bijvoorbeeld nodig om te voorkomen dat een gebruiker met een geheime toestemming geheime gegevens naar een bestand met een lager classificatieniveau schrijft, wat het hele beveiligingssysteem zou schenden.

Onlangs zijn verplichte toegangscontrolemethoden wijdverbreid geworden. De vereisten voor een dergelijke toegangscontrole zijn vastgelegd in twee documenten, informeel het Oranjeboek en het Lavendelboek genoemd. Het "oranje" boek vermeldt een reeks beveiligingsvereisten voor een bepaalde "vertrouwde" computerbasis" (Trusted Computing Base), en het roze boek geeft een interpretatie van deze vereisten voor databasebeheersystemen.

5.4. Gegevensversleuteling

Tot nu toe is in dit hoofdstuk aangenomen dat een vermeende frauduleuze gebruiker illegaal probeert in te breken in een database met behulp van de normale toegangshulpmiddelen die op het systeem beschikbaar zijn. Nu moeten we het geval overwegen waarin een dergelijke gebruiker probeert in te breken in de database zonder het systeem te omzeilen, d.w.z. door een deel van de database fysiek te verplaatsen of er verbinding mee te maken communicatie kanaal. De meest effectieve methode om dergelijke bedreigingen te bestrijden is gegevensversleuteling. opslag en verzending van bijzonder belangrijke gegevens in gecodeerde vorm.

Om de basisconcepten van datacodering te bespreken, moeten enkele nieuwe concepten worden geïntroduceerd. De originele (ongecodeerde) gegevens worden platte tekst genoemd. De leesbare tekst wordt gecodeerd met behulp van een speciaal coderingsalgoritme. De invoergegevens voor een dergelijk algoritme zijn platte tekst en de coderingssleutel, en de uitvoer is de gecodeerde vorm leesbare tekst, die de cijfertekst wordt genoemd. Als details van het versleutelingsalgoritme mogen worden gepubliceerd of, door ten minste, mag niet verborgen zijn, dan moet de coderingssleutel geheim worden gehouden. Het is de cijfertekst, die onbegrijpelijk is voor degenen die niet over de coderingssleutel beschikken, die in de database wordt opgeslagen en via het communicatiekanaal wordt verzonden.

5.5. Audittrail van uitgevoerde bewerkingen

Het is belangrijk om te begrijpen dat geen enkel beveiligingssysteem onkwetsbaar is, aangezien een hardnekkige potentiële aanvaller altijd een manier zal kunnen vinden om alle controlesystemen te omzeilen, vooral als hiervoor een voldoende hoge beloning wordt geboden. Daarom wordt het bij het werken met zeer belangrijke gegevens of bij het uitvoeren van kritische handelingen noodzakelijk om een ​​audit trail van de uitgevoerde handelingen vast te leggen. Als inconsistentie in de gegevens bijvoorbeeld leidt tot het vermoeden dat er ongeoorloofd geknoeid is in de database, moet een audittrail worden gebruikt om de situatie te verduidelijken en te bevestigen dat alle processen onder controle zijn. Als dit niet het geval is, kan een audit trail in ieder geval helpen de dader te identificeren.

Om een ​​audit trail bij te houden, wordt meestal een speciaal bestand gebruikt waarin het systeem automatisch alle handelingen registreert die gebruikers uitvoeren bij het werken met een reguliere database. Een typische invoer in een audittrailbestand kan de volgende informatie bevatten:

2. terminal van waaruit de operatie werd aangeroepen;

3. gebruiker die de handeling heeft gespecificeerd;

4. datum en tijdstip waarop de operatie is gestart;

5. basisrelaties, tupels en attributen die betrokken zijn bij het proces van uitvoering van de operatie;

6. oude waarden;

7. nieuwe waarden.

Zoals eerder vermeld is zelfs het feit dat een bepaald systeem bewakingsmonitoring ondersteunt in sommige gevallen van groot belang bij het voorkomen van ongeoorloofde toegang tot het systeem.

5.6. Ondersteuning voor SQL-beveiliging

In de huidige standaard SQL-taal Er wordt alleen selectieve toegangscontroleondersteuning geboden. Het is gebaseerd op twee min of meer onafhankelijke delen van SQL. Een daarvan heet de view-engine, die (zoals hierboven besproken) kan worden gebruikt om zeer gevoelige gegevens voor ongeautoriseerde gebruikers te verbergen. De andere heet het machtigingensubsysteem, dat sommige gebruikers de mogelijkheid geeft om selectief en dynamisch verschillende machtigingen aan andere gebruikers toe te wijzen, en deze machtigingen indien nodig in te trekken.

5.7. GRANT- en REVOKE-richtlijnen

De SQL-view-engine maakt dit mogelijk op verschillende manieren verdeel de database in delen, zodat bepaalde informatie verborgen blijft voor gebruikers die geen toegangsrechten hebben. Deze modus wordt echter niet gespecificeerd met behulp van bedrijfsparameters op basis waarvan geautoriseerde gebruikers bepaalde acties uitvoeren met een bepaald gegeven. Deze functie (zoals hierboven weergegeven) wordt uitgevoerd met behulp van de GRANT-richtlijn.

Houd er rekening mee dat de maker van elk object automatisch alle rechten voor dat object krijgt.

De SQL1-standaard definieert de volgende rechten voor tabellen:

1. SELECTEER – hiermee kunt u gegevens uit een tabel of weergave lezen;

INSERT – hiermee kunt u nieuwe records in een tabel of weergave invoegen;

UPDATE – hiermee kunt u records vanuit een tabel of weergave wijzigen;

VERWIJDEREN – hiermee kunt u records uit een tabel of weergave verwijderen.

De SQL2-standaard heeft de lijst met rechten voor tabellen en weergaven uitgebreid:

1. INSERT op individuele kolommen, vergelijkbaar met het UPDATE-recht;

2. REFERENTIES – voor ondersteuning van externe sleutels.

Naast de hierboven genoemde rechten is het USAGE-recht toegevoegd voor andere databaseobjecten.

Bovendien ondersteunen de meeste commerciële DBMS'en extra rechten, bijvoorbeeld:

1. ALTER – hiermee kunt u de tabelstructuur wijzigen (DB2, Oracle);

2. UITVOEREN – hiermee kunt u opgeslagen procedures uitvoeren.

De maker van het object krijgt ook het recht om toegangsrechten te verlenen aan een andere gebruiker met behulp van de GRANT-instructie. Het volgende is de syntaxis van een GRANT-instructie:

GRANT (SELECT|INSERT|DELETE|(UPDATE kolom, ...)), ...

AAN tafel TO (gebruiker | OPENBAAR)

INSERT- en UPDATE-privileges (maar niet SELECT-privileges, wat heel vreemd is) kunnen worden ingesteld op specifiek gedefinieerde kolommen.

Als de WITH GRANT OPTION-richtlijn is opgegeven, betekent dit dat gespecificeerde gebruikers waarvoor speciale bevoegdheden zijn verleend gegeven voorwerp– het recht om bevoegdheden te verlenen. Dit betekent op zijn beurt dat ze andere gebruikers toestemming kunnen geven om met dit object te werken

Bijvoorbeeld: geef de gebruiker Ivanov toestemming om achternamen in de tabel Studenten te selecteren en te wijzigen, met het recht om toestemming te verlenen.

SUBSIDIE SELECTEREN, UPDATE StName

OVER Studenten AAN Ivanov MET SUBSIDIEOPTIE

Als gebruiker A bepaalde rechten toekent aan een andere gebruiker B, kan hij die rechten later intrekken voor gebruiker B. Het intrekken van rechten gebeurt met behulp van de REVOKE-instructie met de volgende syntaxis.

INTREKKEN ((SELECTIE | INVOEGEN | VERWIJDEREN | BIJWERKEN),...|ALLE PRIVILEGES)

ON table,… FROM (gebruiker | PUBLIC),… (CASCADE | RESTRICT)

Aangezien de gebruiker aan wie een privilege wordt ingetrokken, dit aan een andere gebruiker had kunnen verlenen (als hij het verleende privilege had), kan er een situatie ontstaan ​​waarin privileges worden opgegeven. Het belangrijkste doel van de parameters RESTRICT en CASCADE is het voorkomen van verlaten privilege-situaties. Door de parameter RESTRICT in te stellen, is een bewerking voor het intrekken van bevoegdheden niet toegestaan ​​als dit resulteert in een verlaten privilege. De CASCADE-parameter specificeert de opeenvolgende verwijdering van alle rechten die hiervan zijn afgeleid.

Bijvoorbeeld: verwijder de rechten van gebruiker Ivanov om achternamen in de tabel Studenten te wijzigen. Verwijder dit recht ook voor alle gebruikers aan wie het door Ivanov is verleend.

OVER Studenten VAN Ivanov CASCADE

Als u een domein, tabel, kolom of weergave verwijdert, worden automatisch alle rechten op die objecten voor alle gebruikers verwijderd.

5.8. Uitzicht en veiligheid

Door een weergave te maken en gebruikers toestemming te geven om deze te openen in plaats van de oorspronkelijke tabel, kunt u de gebruikerstoegang beperken tot alleen gespecificeerde kolommen of records. Representaties stellen ons dus in staat te implementeren volledige controle over welke gegevens beschikbaar zijn voor een bepaalde gebruiker.

Conclusie

Om het risico op verliezen tot een minimum te beperken, is het noodzakelijk om in de eerste plaats een reeks regelgevende, organisatorische en technische beschermingsmaatregelen te implementeren: de introductie van op rollen gebaseerde toegangscontrole, het organiseren van gebruikerstoegang op vertoon van een digitaal certificaat, en in de nabije toekomst - een industriële oplossing voor selectieve versleuteling en het gebruik van GOST-algoritmen voor het versleutelen van geselecteerde segmentbases.

Om het probleem van gegevensbescherming volledig op te lossen, moet de beveiligingsbeheerder de acties van gebruikers kunnen monitoren, inclusief degenen met beheerdersrechten. Sinds standaard systeem audit niet over voldoende beschermingsmiddelen beschikt, is dit noodzakelijk onafhankelijk systeem, waardoor het bedrijfsnetwerk niet alleen van buitenaf, maar ook van binnenuit wordt beschermd. In de toekomst moeten er ook standaardmethoden verschijnen alomvattende oplossing databasebeschermingstaken voor ondernemingen verschillende schalen– van klein tot geografisch verspreid.

Databases zijn ook bestanden, maar het werken ermee verschilt van het werken met andere typen bestanden die door andere toepassingen zijn gemaakt. We zeiden hierboven dat het besturingssysteem al het werk van het onderhouden van het bestandssysteem op zich neemt.

Voor databases, gelieve in te dienen speciale vereisten vanuit veiligheidsoogpunt, dus implementeren ze een andere benadering van het opslaan van gegevens.

Wanneer we met conventionele applicaties werken om gegevens op te slaan, specificeren we de juiste opdracht, specificeren we de bestandsnaam en vertrouwen we op het besturingssysteem. Als we het bestand sluiten zonder het op te slaan, gaat al het werk aan het maken of bewerken van het bestand voor altijd verloren.

Databases zijn speciale structuren. De informatie die ze bevatten is vaak van publieke waarde. Vaak werken duizenden mensen door het hele land met dezelfde database (bijvoorbeeld met de autoregistratiedatabase bij de verkeerspolitie). Het welzijn van veel mensen kan afhangen van de informatie in sommige databases. Daarom kan en mag de integriteit van de database-inhoud niet afhankelijk zijn van de specifieke acties van een bepaalde gebruiker die vergat een bestand op te slaan voordat hij de computer uitschakelde, of van stroomstoringen.

Het probleem van databasebeveiliging wordt opgelost door het feit dat het DBMS een dubbele benadering gebruikt voor het opslaan van informatie. Bij sommige bewerkingen is, zoals gewoonlijk, het besturingssysteem van de computer betrokken, maar bij sommige opslagbewerkingen wordt het besturingssysteem omzeild.

Bewerkingen voor het wijzigen van de databasestructuur, het maken van nieuwe tabellen of andere objecten vinden plaats tijdens het opslaan van het databasebestand. Het DBMS waarschuwt de gebruiker voor deze bewerkingen. Dit zijn, om zo te zeggen, mondiale operaties. Ze worden nooit uitgevoerd op een database die commercieel wordt gebruikt - alleen op een kopie ervan. In dit geval zijn eventuele fouten in de werking van computersystemen niet verschrikkelijk.

Aan de andere kant zijn bewerkingen om de inhoud van gegevens te wijzigen die de structuur van de database niet beïnvloeden, zo geautomatiseerd mogelijk en worden ze zonder waarschuwing uitgevoerd. Als we tijdens het werken met een gegevenstabel daarin iets veranderen als onderdeel van de gegevens, dan worden de wijzigingen onmiddellijk en automatisch opgeslagen.

Als u heeft besloten wijzigingen in een document te weigeren, sluit u het doorgaans eenvoudigweg zonder het op te slaan en opent u het opnieuw vorig exemplaar. Deze techniek werkt in vrijwel alle applicaties, maar niet in een DBMS. Alle wijzigingen in de databasetabellen worden zonder ons medeweten op schijf opgeslagen, dus proberen de database “zonder op te slaan” te sluiten levert niets op, aangezien alles al is opgeslagen. Door databasetabellen te bewerken, nieuwe records aan te maken en oude te verwijderen, is het dus alsof we rechtstreeks met de harde schijf werken en het besturingssysteem omzeilen.

Om bovengenoemde redenen kun je geen onderwijsexperimenten uitvoeren op databases die in gebruik zijn. Om dit te doen, moet u speciale trainingsdatabases maken of kopieën maken van de structuur van echte databases (zonder deze daadwerkelijk met gegevens te vullen).

        1. Databasemodi

Doorgaans werken twee categorieën artiesten met databases. Eerste categorie – ontwerpers of ontwikkelaars. Hun taak is om de structuur van de databasetabellen te ontwikkelen en deze af te stemmen met de klant. Naast tabellen ontwikkelen ontwerpers ook andere databaseobjecten die enerzijds bedoeld zijn om het werken met de database te automatiseren en anderzijds de functionaliteit van het werken met de database te beperken (als dit om veiligheidsredenen nodig is).

Ontwerpers vullen de database niet met specifieke gegevens (de klant mag deze als vertrouwelijk beschouwen en niet aan derden verstrekken). De uitzondering hierop is het experimenteel vullen met testgegevens in de fase van het debuggen van databaseobjecten.

De tweede categorie artiesten die met databases werken is gebruikers. Zij ontvangen de initiële database van de ontwerpers en zijn verantwoordelijk voor het vullen en onderhouden ervan. In het algemeen hebben gebruikers geen toegang tot het beheer van de structuur van de database - alleen tot gegevens, en dan nog niet tot alle gegevens, maar tot de gegevens die bedoeld zijn om op een specifieke werkplek mee te werken. Dienovereenkomstig heeft het databasebeheersysteem twee werkingsmodi: ontwerp En aangepast. De eerste modus is bedoeld voor het maken of wijzigen van de structuur van de database en het maken van de objecten ervan. In de tweede modus worden eerder voorbereide objecten gebruikt om de database te vullen of er gegevens uit te verkrijgen.

Databasebeheersystemen zijn het belangrijkste hulpmiddel geworden voor het opslaan van grote hoeveelheden informatie. Modern informatie toepassingen zijn voornamelijk afhankelijk van DBMS'en voor meerdere gebruikers. In dit verband wordt momenteel veel aandacht besteed aan de problemen bij het waarborgen van informatiebeveiliging, die bepalend is voor de mate van beveiliging van de organisatie en instelling als geheel.

Informatiebeveiliging verwijst naar de bescherming van informatie tegen toevallige en opzettelijke effecten van natuurlijke of kunstmatige aard die schade kunnen veroorzaken aan eigenaren of gebruikers van informatie.

Om informatie in databases te beschermen zijn de volgende aspecten van informatiebeveiliging het belangrijkst (Europese criteria):

toegangsvoorwaarden (de mogelijkheid om een ​​bepaalde vereiste informatiedienst te verkrijgen);

integriteit (consistentie van informatie, de bescherming ervan tegen vernietiging en ongeoorloofde wijzigingen);

vertrouwelijkheid (bescherming tegen ongeoorloofd lezen).

Het probleem van het garanderen van informatiebeveiliging is complex en daarom moet de oplossing ervan worden overwogen verschillende niveaus: wetgevend, administratief, procedureel, softwarematig en technisch. Momenteel is het probleem van de ontwikkeling wetgevend kader, waardoor het veilige gebruik van informatiesystemen wordt gewaarborgd.

De belangrijkste software- en hardwaremaatregelen, waarvan het gebruik enkele van de bovengenoemde problemen zal oplossen, zijn onder meer:

gebruikersauthenticatie en -identificatie;

toegangscontrole tot databases;

het handhaven van de gegevensintegriteit;

opnemen en auditeren;

bescherming van communicatie tussen client en server;

weerspiegeling van bedreigingen die specifiek zijn voor het DBMS.

Gebruikersauthenticatie van databaseapplicaties wordt meestal bereikt via de juiste mechanismen van het besturingssysteem of via een specifieke SQL-instructie: de gebruiker wordt geïdentificeerd aan de hand van zijn naam en het authenticatiehulpmiddel is een wachtwoord. Een dergelijk systeem schept aanzienlijke problemen bij herhaalde controles en elimineert dergelijke controles vóór elke transactie.

Toegangscontrole voor databases is gebaseerd op de implementatie van de volgende minimale reeks acties:

willekeurige toegangscontrole;

beveiliging hergebruiken voorwerpen;

gebruik van beveiligingslabels;

gedwongen toegangscontrole.

Willekeurige toegangscontrole is een methode om de toegang tot objecten te beperken, waarbij rekening wordt gehouden met de identiteit van het subject of de groepen waartoe het subject behoort. Met deze technologie kan de eigenaar van een object (view, databaseserver, procedure, tabel) naar eigen goeddunken rechten overdragen aan een andere persoon. Deze persoon in deze situatie kan een gebruikersonderwerp zijn of een groep gebruikers.

Het belangrijkste voordeel van willekeurige toegangscontrole is flexibiliteit. Bijkomende kenmerken zoals gedistribueerd beheer en de complexiteit van gecentraliseerde controle zorgen echter voor veel uitdagingen bij het garanderen van gegevensbeveiliging.

Er moet ook aandacht worden besteed aan het waarborgen van de veiligheid van hergebruik van databases door proefpersonen. Dit betekent dat alle gebruikers die de organisatie verlaten het recht worden ontzegd om toegang te krijgen tot het informatiesysteem.

Een beveiligingslabel bestaat uit twee delen: een beveiligingsniveau en een lijst met categorieën. Het eerste onderdeel is afhankelijk van de toepassing en standaard versie kan lijken op een spectrum van waarden, van topgeheim tot niet-geclassificeerd. Met de tweede component kunnen we beschrijven vakgebied, waarbij informatie in compartimenten wordt verdeeld, wat bijdraagt ​​aan een betere beveiliging. Het beveiligingslabelmechanisme heft de willekeurige toegangscontrole niet op, maar vormt een aanvulling: gebruikers kunnen nog steeds alleen met tabellen werken binnen hun bevoegdheden en slechts een deel van de gegevens ontvangen. De grootste uitdaging bij het gebruik van beveiligingslabels is het behouden van hun integriteit. Dit betekent dat alle objecten en onderwerpen moeten worden gelabeld en dat bij alle bewerkingen op de gegevens de labels correct moeten blijven.

Afgedwongen toegangscontrole is gebaseerd op het matchen van de beveiligingslabels van het onderwerp en het object. Om de informatie over een object te kunnen lezen, moet het label van het onderwerp het label van het object domineren. Bij het uitvoeren van de handeling waarbij informatie naar een object wordt geschreven, moet het beveiligingslabel van het object domineren over het label van het onderwerp. Deze methode van toegangscontrole wordt geforceerd genoemd, omdat deze niet afhankelijk is van de wil van de proefpersonen. Het heeft toepassing gevonden in DBMS'en met verbeterde beveiligingsmaatregelen.

Het waarborgen van de gegevensintegriteit is niet minder belangrijk dan toegangscontrole. Vanuit het oogpunt van DBMS-gebruikers zijn beperkingen en regels de belangrijkste middelen om de gegevensintegriteit te behouden. Beperkingen kunnen rechtstreeks zijn opgenomen in relationeel model gegevens, of kunnen worden opgegeven tijdens het maken van de tabel. Tabelbeperkingen kunnen van toepassing zijn op een groep kolommen of individuele attributen. Referentiële beperkingen zijn verantwoordelijk voor het handhaven van de integriteit van relaties tussen tabellen. Beperkingen worden opgelegd door de eigenaar van de tabel en zijn van invloed op de resultaten van daaropvolgende bewerkingen met de gegevens. Met regels kunt u specifieke procedures uitvoeren wanneer bepaalde veranderingen databases. In tegenstelling tot beperkingen, die controle bieden over eenvoudige voorwaarden Met regels kunt u relaties van enige complexiteit tussen gegevenselementen in de database controleren en onderhouden. Wanneer regels echter worden gebruikt als hulpmiddel voor informatiebeveiliging, heeft een fout in een complex systeem van regels echter onvoorspelbare gevolgen voor de hele database.

Opname en auditing bestaan ​​uit het volgende:

detectie van ongebruikelijke en verdachte activiteiten gebruikers en identificatie van personen die deze acties hebben uitgevoerd;

cijfer mogelijke gevolgen overtreding heeft plaatsgevonden;

het verlenen van hulp;

organisatie van passieve bescherming van informatie tegen illegale gebruikersacties.

Het probleem van het beschermen van de communicatie tussen client en server in informatiesystemen is niet specifiek voor DBMS. Om de bescherming van informatie te garanderen, wordt een beveiligingsdienst aangeboden, waarvan de functies authenticatie, codering en autorisatie omvatten.

De belangrijkste bron van bedreigingen voor DBMS'en ligt echter in de aard van databases. Vaak noodzakelijke, maar ontoegankelijke informatie per status, kan worden verkregen via logische gevolgtrekking. Door bijvoorbeeld de add-bewerking te gebruiken in plaats van de select-bewerking (waarvoor u geen rechten heeft), kunt u de voltooiingscodes van SQL-instructies analyseren. Om dergelijke bedreigingen te bestrijden, wordt een mechanisme voor rijvermenigvuldiging voor het DBMS gebruikt dat beveiligingslabels ondersteunt. Aggregatie - wijze van verkrijgen nieuwe informatie door gegevens die legaal zijn verkregen uit verschillende databasetabellen te combineren. Aggregatie kan worden tegengegaan door het datamodel zorgvuldig te ontwerpen en te optimaliseren maximale limiet gebruikerstoegang tot informatie.

IN financiële sector en staatsgrenzen, eisen voor databasebescherming worden opgelegd door toezichthouders, en de veiligheid van DBMS van commerciële bedrijven blijft op het geweten van bedrijfseigenaren. Hoewel de kwestie van databasebeveiliging op het eerste gezicht vrij duidelijk lijkt, universele oplossing Er is geen DBMS om te beschermen. Geautomatiseerd banksystemen ABS, CRM, ERP, documentbeheersystemen, internetbankieren, systemen voor bankieren op afstand (RBS) - na de eerste poging om de “dierentuin” te begrijpen diverse systemen In één bedrijf denkt elke specialist na over een gespecialiseerde oplossing voor het beschermen van databases.

Basisdatabasebeveiliging

De eerste lijn van databasebeveiliging moet afkomstig zijn van de IT-afdeling van het bedrijf en in het bijzonder van databasebeheerders. Basisbescherming DB is een instelling firewalls voor het DBMS om alle toegangspogingen van dubieuze bronnen te blokkeren, het wachtwoordbeleid en het op rollen gebaseerde toegangsmodel in te stellen en bij te houden. Dit zijn effectieve mechanismen die aandacht verdienen. De volgende fase van het beschermen van informatie in databases is het controleren van gebruikersacties, de directe taak van de afdeling informatiebeveiliging. Het belang van de audit wordt verklaard door het feit dat industrieel systeem Het is moeilijk om de toegangsrechten tot gegevens nauwkeurig af te stemmen, en er zijn ook uitzonderlijke situaties.

Zo had een medewerker van afdeling “A” tijdelijk toegang nodig tot een klant van afdeling “B”. Het is zeer waarschijnlijk dat wijzigingen in de gegevenstoegangsmatrix niet ongedaan zullen worden gemaakt, wat uiteindelijk resulteert in zeer bevoorrechte accounts die moeten worden gecontroleerd op gebruik.

Regelmatige database-audit

Om dergelijke monitoring uit te voeren, maken veel organisaties gebruik van ‘reguliere audits’: databasebeschermingstools die deel uitmaken van commerciële DBMS’en. De normale beveiligingsmodus omvat het loggen van de verbinding met het DBMS en het uitvoeren van zoekopdrachten door bepaalde gebruikers. Kortom, het werkingsprincipe reguliere audit- dit is de opname en configuratie van triggers en het creëren van specifieke functies - procedures die worden geactiveerd bij het verkrijgen van toegang tot gevoelige informatie en het invoeren van gegevens over dergelijke toegang (wie, wanneer, welk verzoek is gedaan) in een speciale audittabel. Dit kan voldoende zijn om te voldoen aan een aantal industriële regelgevingsvereisten, maar zal weinig of geen voordeel opleveren voor interne informatiebeveiligingstaken zoals onderzoek naar incidenten.

Belangrijkste nadelen van reguliere audits als databasebescherming:

  • Extra belasting van databaseservers (10-40% afhankelijk van de volledigheid van de audit).
  • Betrokkenheid van databasebeheerders bij het opzetten van auditing (onvermogen om beheerders te controleren - de belangrijkste bevoorrechte gebruikers).
  • Afwezigheid gebruiksvriendelijke interface producten en mogelijkheden gecentraliseerde instellingen auditregels (vooral relevant voor grote gedistribueerde bedrijven, wier beveiligingstaken een hele lijst DBMS omvatten).
  • Onvermogen om gebruikersacties te controleren in applicaties met een drielaagse architectuur (de aanwezigheid van een WEB- en SQL-segment, dat nu overal wordt gebruikt om veiligheidsredenen).

Geautomatiseerde databasebeschermingssystemen

Een effectievere aanpak is het gebruik van gespecialiseerde informatiebeveiligingssystemen op het gebied van databasebescherming - oplossingen van de DAM- en DBF-klassen.

DAM (monitoring van database-activiteit)- dit is de oplossing onafhankelijke monitoring gebruikersacties in het DBMS. Onafhankelijkheid betekent hier de afwezigheid van de noodzaak om het DBMS zelf opnieuw te configureren en aan te passen. Systemen van deze klasse kunnen passief worden geïnstalleerd, werkend met een kopie van het verkeer en zonder enige impact te hebben op bedrijfsprocessen waarvan databases deel uitmaken.

Met dergelijke systemen kunt u het verkeer van gebruikersinteractie met databases analyseren en SQL-query's classificeren op basis van waartoe ze behoren bepaalde groepen. Voer een volledige audit uit van SQL-query's en de antwoorden daarop. Bovendien zijn de oplossingen diep systeem filtering, waarmee potentiële incidenten uit honderden miljoenen verzoeken kunnen worden geïdentificeerd en een compleet archief van gebruikersacties kan worden onderhouden, zowel om te voldoen aan de eisen van toezichthouders als voor retrospectieve analysetaken bij het onderzoeken van incidenten. Bovendien maken gespecialiseerde DAM-systemen synchronisatie met beveiligde databases mogelijk om:
  • Classificaties– het bepalen van de locatie van informatie die cruciaal is voor het bedrijf. Met deze optie kunt u het DBMS scannen en de namen zien van tabellen en velden die mogelijk persoonlijke gegevens van klanten bevatten. Dit is uiterst belangrijk voor het vereenvoudigen van de daaropvolgende configuratie van beveiligingsbeleid.
  • Kwetsbaarheidscontroles – naleving van de DBMS-configuratie en -instellingen met best practices.
  • De gegevenstoegangsmatrix ophalen– het probleem is opgelost door uitgebreide toegangsprivileges, ongebruikte rechten en de aanwezigheid van zogenaamde “dode” accounts te identificeren die kunnen blijven bestaan ​​nadat een werknemer het bedrijf heeft verlaten.

Het voordeel van systemen van deze klasse is flexibel systeem rapportage en integratie met SIEM-systemen van de meeste leveranciers, voor dieper correlatie analyse uitgevoerde verzoeken.

DBF (databasefirewall) is een gerelateerde oplossing die ook de mogelijkheid heeft om informatie “proactief” te beschermen. Dit wordt bereikt door ongewenste verzoeken te blokkeren. Om dit probleem op te lossen is het niet langer voldoende om met een kopie van het verkeer te werken, maar is het nodig om de componenten van het beveiligingssysteem “in de opening” te installeren.

Gezien de vrij grote risico's die aan deze implementatiemethode zijn verbonden, komt het uiterst zelden voor dat bedrijven kiezen voor actieve bescherming van industriële DBMS'en en zich beperken tot monitoringfuncties. Dit gebeurt vanwege de mogelijkheid van een niet-optimale configuratie van blokkeerregels. In dit geval ligt de verantwoordelijkheid voor ten onrechte geblokkeerde verzoeken op de schouders van deis. Een andere reden is dat in netwerkdiagram er verschijnt een extra storingsknooppunt, wat de belangrijkste blokkerende factor is bij het kiezen van deze methode voor het implementeren van een oplossing.

Op Russische markt een DAM-klasse-oplossing "Garda DB" van het bedrijf "Garda Technologies" wordt gepresenteerd. Dit is een software- en hardwarecomplex dat continu alle aanvragen aan databases en webapplicaties realtime monitort en voor opslag opslaat lange termijn. Het systeem scant en identificeert DBMS-kwetsbaarheden, zoals ontgrendelde accounts, eenvoudige wachtwoorden, verwijderde patches. Op incidenten wordt direct gereageerd in de vorm van waarschuwingen via e-mail en het SIEM-systeem.

Het databasebeveiligingssysteem wordt passief geïnstalleerd, dat wil zeggen dat het geen invloed heeft op de prestaties van het bedrijfsnetwerk. Intelligent systeem Met opslag kunt u voor elke periode een archief van vragen en antwoorden op databases creëren voor verdere analyse en onderzoek achteraf van incidenten. Dit is het eerste DAM-klassesysteem dat is opgenomen in het register van binnenlandse software en is geïnstalleerd bij een aantal grote Russische banken.

In het volgende artikel gaan we dieper in op de taken waarmee DAM-systemen vaak worden geconfronteerd, vertellen we waarom de mogelijkheid om met http/http-verkeer te werken zo belangrijk is voor DAM, en hoe we bescherming tegen SQL-injecties kunnen garanderen.

Beveiliging betekent dat een gebruiker bepaalde acties mag uitvoeren.
DBMS moet voldoen aan 3 hoofdaspecten van informatiebeveiliging:
1. Privacy
2. Integriteit
3. Beschikbaarheid

In dit bericht zullen we het hebben over privacy
A) Beveiligingsbeheer
Moderne DBMS'en ondersteunen zowel selectieve als verplichte benaderingen van gegevensbeveiliging.

Bij selectieve controle heeft een bepaalde gebruiker verschillende rechten (privileges) en bevoegdheden bij het werken met verschillende objecten. Omdat verschillende gebruikers verschillende toegangsrechten tot hetzelfde object kunnen hebben, zijn dergelijke systemen zeer flexibel.

Bij verplicht beheer krijgt elk object een bepaald kwalificatieniveau toegewezen en krijgt elke gebruiker toegangsrechten tot een of ander niveau; en dienovereenkomstig, als u toegangsrechten heeft tot een bepaald niveau, heeft u toegang tot alles wat op dit niveau is vastgelegd. Er wordt aangenomen dat dergelijke systemen rigide en statisch zijn, maar gemakkelijker te beheren: het is gemakkelijk om alle objecten een nummer te geven (1,2,3,4...) en vervolgens toegang aan de gebruiker toe te wijzen aan iedereen tot 5e, voor wie tot en met 6e, voor degenen tot niveau 7, etc. in volgorde van toenemende prioriteit.

In conventionele DBMS'en wordt voor gebruikersidentificatie en authenticatie het overeenkomstige besturingssysteemmechanisme gebruikt, of wat beschikbaar is in de connect SQL-instructie (er zijn speciale parameters voor verbindingstoegang). Op het moment dat een sessie met de databaseserver wordt gestart, identificeert de gebruiker een contactpersoon, of login, met zijn naam, en een wachtwoord dient als authenticatiemiddel.

Identificatie- Dit korte naam, die de gebruiker voor het DBMS op unieke wijze identificeert. Het is de basis van beveiligingssystemen. Er worden geschikte accounts aangemaakt voor gebruikers.

Door identificatie kan een entiteit (d.w.z. een gebruiker of een proces dat namens een gebruiker handelt) zichzelf een naam geven, d.w.z. geef uw naam op (inloggen).

Door middel van authenticatie (d.w.z. authenticatie) wordt de tweede partij (het besturingssysteem of het DBMS zelf) ervan overtuigd dat de proefpersoon werkelijk is wie hij beweert te zijn.

Voor bijzonder kwetsbare systemen (bijvoorbeeld bankieren, enz.) meer complexe systemen bescherming. Er zijn bijvoorbeeld systemen bekend waarbij meerdere vragen van persoonlijke aard opeenvolgend worden aangemaakt, met een tijdslimiet voor het beantwoorden ervan en het aantal pogingen (zoals bij elke mobiele telefoon).

De ANSI ISO-standaard gebruikt de term ‘autorisatie-ID’ in plaats van de term ‘gebruikers-ID’.

Het beveiligingssysteem op de server kan op 3 manieren worden georganiseerd:
1. standaardbeveiliging: wanneer de server nodig is aparte toegang(d.w.z. in besturingssysteem u logt in met één wachtwoord en logt in op de databaseserver met een ander);
2. geïntegreerde beveiliging (vrij vaak gebruikt): log in op het besturingssysteem met een of andere vorm van gebruikerswachtwoord en dezelfde naam met hetzelfde wachtwoord is geregistreerd in het DBMS. Een tweede keer invoeren is niet nodig. Als iemand eenmaal op de server komt, laat hem dan alles gebruiken wat hij heeft.
3. gemengd systeem, waarmee u zowel op de eerste als op de tweede manier kunt binnenkomen.

B) Toegangscontrole
Normaal gesproken maakt een DBMS gebruik van willekeurige toegangscontrole: wanneer de eigenaar van een object (in als laatste redmiddel, databasebeheerder, maar vaker de eigenaar) draagt ​​toegangsrechten (machtigingen) over aan iemand. In dit geval kunnen rechten worden overgedragen aan individuele gebruikers, gebruikersgroepen of rollen.

1. Voor individuele gebruikers wordt een account aangemaakt met een login en wachtwoord. Meestal wordt dit gedaan door de databasebeheerder.

2. Groep – een benoemde verzameling gebruikers, meestal gecombineerd in groepen op basis van een bepaalde organisatie (per afdeling, per kamer, per team, enz.). Formeel gezien kan de gebruiker inloggen verschillende groepen en log in met verschillende mogelijkheden(moet aangeven namens welke groep hij is opgenomen).

3. Rol – een bepaalde, vaak officiële, lijst met capaciteiten. Bijvoorbeeld accountant, winkelier, etc. Een persoon komt naar zijn werk, hij krijgt dergelijke toegangsrechten toegewezen en hij kan ermee naar binnen. Deze optie wordt nu vrij goed gebruikt, omdat... Dit is best handig om binnen de onderneming te bespreken. Als je wilt, kun je deze rol heroverwegen, en iedereen zal later onmiddellijk veranderen. Normaal gesproken wordt aangenomen dat rolbevoegdheden voorrang hebben op groepsbevoegdheden.

We zullen op dit moment geen hogere beveiligingseisen overwegen. Zo een systemen met meerdere niveaus beveiligingssystemen werden ontwikkeld in de jaren 70 van de twintigste eeuw. Beroemde achternamen: Bella, Lapadula.

B) Belangrijkste categorieën gebruikers
Over het algemeen kunnen DBMS-gebruikers worden onderverdeeld in 3 grote groepen:
1. beheerder van de databaseserver (en zijn assistenten): verantwoordelijk voor de installatie, configuratie van de server, registratie van gebruikers, groepen, rollen, enz. Heeft volledige databaserechten.
2. beheerder van een enkele database (de server kan duizenden databases bedienen).
3. anderen eindgebruikers: programmeurs (maak programma's om bepaalde processen te beheren: boekhouding, personeel...), werknemers van het bedrijf, enz.

DBA's hebben doorgaans een initiaal rekening om de eerste login uit te voeren. Bijvoorbeeld in InterBase: SISDBA met hoofdsleutel. In SQL-server: SA en leeg wachtwoord. Oracle heeft 3 initiële accounts: SIS, SYSTEM en MANAGER.

D) Soorten rechten
Er zijn er eigenlijk twee:
. beveiligingsrechten: gemarkeerd specifieke gebruiker In de regel worden opdrachten zoals gebruiker maken gemaakt. Maar het aanmaken van een gebruiker in een database betekent niet dat je hem overal rechten op geeft. Het is alleen zo dat hij de database kan betreden, maar daar niets zal zien. Na de creatie moeten er nog rechten aan worden toegekend.
. toegangsprivileges of toegangsrechten (permissies): verleen de aangemaakte gebruiker bepaalde privileges. Hier worden nog 2 commando's gebruikt: Grant - het recht op iets verlenen (lezen, toevoegen, verwijderen, een record wijzigen...), Revolce.

Hoe worden toegangsrechten geïmplementeerd of beperkt:
. er zijn operationele beperkingen - het recht om bepaalde operators te executeren. Meestal zijn dit selecteren, invoegen, verwijderen en bijwerken. In veel DBMS'en (waaronder Oracle) kunnen ongeveer 25 verschillende operationele rechten worden verleend.
. Waardebeperkingen geïmplementeerd met behulp van het View-mechanisme.
. Beperkingen op bronnen geïmplementeerd via toegangsrechten voor databases.
. Rechten op systeemniveau (voor Oracle). Wanneer de gebruiker maximaal 80 verschillende instructies mag uitvoeren.

Het geheel van alle privileges die u kunt hebben, wordt PUBLIC genoemd. Standaard heeft de databasebeheerder OPENBARE rechten: rechten op alle objecten en acties.

D) Controlestudies
Omdat er geen absoluut onkwetsbare systemen bestaan, of, althans in zekere zin, onkwetsbaar, gebruiken ze bij het werken met zeer belangrijke gegevens of bij het uitvoeren van zeer ernstige kritische operaties de registratie van bepaalde acties (d.w.z. bij het automatisch uitvoeren van een actie een lok bestand wordt geschreven, meestal dit tekstbestand, het kan eenvoudig worden gedaan via triggers). Als u dus alles gedetailleerder in dit bestand schrijft, kunt u bijhouden wie wat wanneer heeft gedaan.

E) Opname en auditing
Logboekregistratie verwijst naar het verzamelen en accumuleren van informatie over gebeurtenissen die plaatsvinden in een informatiesysteem. Inclusief het gebruik van lok-bestanden.

Onder een audit wordt verstaan ​​een analyse van de verzamelde informatie, die hetzij onmiddellijk (bijna in realtime) hetzij periodiek (eenmaal per dag, eenmaal per week...) wordt uitgevoerd.

Waar worden logboekregistratie en auditing voor gebruikt?
Er zijn hier verschillende hoofddoelen:
. Zorg voor verantwoordelijkheid van gebruikers en beheerders. Hierdoor is het mogelijk om te bepalen wie waar toegang heeft gehad, of iemand onbekende rechten heeft verworven, of iemand op het wachtwoord heeft gesnuffeld, enz.
. Om de opeenvolging van gebeurtenissen te kunnen reconstrueren. Sommige ongewenste veranderingen– je kunt het terugsturen.
. Detectie van pogingen om de informatiebeveiliging te schenden (hacking).
. Onthullend verschillende problemen in de werking van het informatiesysteem (iemand kreeg bijvoorbeeld weinig gegevens om mee te werken, iemand kreeg veel)

Als we erover praten Oracle DBMS, als vlaggenschip van de basisconstructie, zijn er 3 audittrails:
. Privilege Log (houdt het gebruik van privileges bij)
. Operatorlogboek (houdt bij welke operators vaak worden gebruikt voor objecten, waarna u iets in procedures kunt omzetten, de prestaties kunt verbeteren, een belangrijk logboek)
. Logboek op objectniveau (controleert de toegang tot objecten)