Barvna shema: Svetla
Trenutno dejavna stran: start » sl » Dokumentacija » Integracija podatkov in dostop do podatkov » WKL Database Gateway » Koncepti » Varnostni model in meje zaupanja podatkovnega prehoda

Varnostni model in meje zaupanja podatkovnega prehoda

graph TD
    C["Odjemalec (Access prek gonilnika, Excel, lasten program)"] -->|"HTTPS: prijava, zahteva"| P["Obratni posredniški strežnik (po želji: IIS ali drug)"]
    P -->|"samo iz TrustedProxies: X-Forwarded-For, -Proto"| G["Podatkovni prehod: prijava, pravilnik, pravila po objektih in metodah"]
    C -->|"HTTPS, neposredno"| G
    G -->|"bere; spremembe samo prek skrbništva"| S[("Skrbniška shramba (datoteka, zapečateni nizi povezave in podatki 2FA)")]
    K["Glavni ključ (okolje ali datoteka, hranjen ločeno)"] -->|"odpečati"| G
    G -->|"SQL pod prijavo aliasa, osebe ali skupno prijavo"| D[("SQL Server")]

Slika: Meje zaupanja potekajo med odjemalcem in prehodom (omrežje), med posrednikom in prehodom (čigav podatek o izvoru velja), med prehodom in skrbniško shrambo (datoteka in ključ ločeno) ter med prehodom in podatkovno zbirko (pod katero prijavo se izvaja SQL).

Podatkovni prehod je za aplikacije edina pot do podatkovne zbirke. Odloča, kdo pošilja zahtevo, kaj sme ta klicatelj doseči in pod katero prijavo SQL Server izvede stavek. Na tej strani je povzeto, kaj je treba zaščititi, kateri ukrep to varuje na kateri meji, kaj morate zagotoviti sami kot upravitelj prehoda in katera tveganja ostanejo. Podrobnosti so na povezanih straneh, tu je opisano, kako se ukrepi dopolnjujejo.

Ključne funkcije

  • Dve vprašanji, ločeni odgovori: kdo kliče (prijava) in pod čigavo identiteto se izvede stavek (posredovanje za vsak alias); glejte Prijava in posredovanje identitete.
  • Česar klicatelj ne sme brati, zanj ne obstaja: pravila za alias, objekt in metodo; skriti objekti se odzovejo enako kot neznani; glejte Pravice: pravila in obseg.
  • SQL nastane iz imen, ki jih je prehod poiskal v katalogu, in iz vezanih vrednosti, nikoli iz besedila klicatelja – z dvema izrecnima izjemama (spodaj).
  • Skrivnosti so v skrbniški shrambi zapečatene ali shranjene le kot zgoščene vrednosti, glavni ključ pa je hranjen ločeno; glejte Skrbniška shramba in glavni ključ.

Osnovni pojmi

Sredstva, ki jih je treba zaščititi

SredstvoKje jeZaščita
Poslovni podatki v strežniku SQL Serverpodatkovna zbirkapravila prehoda in dovoljenja prijave, pod katero SQL Server izvaja stavke
Nizi povezave virov podatkov (prijava aliasa)skrbniška shrambazapečateni z glavnim ključem; skrbniški vmesnik jih nikoli ne vrne
Glavni ključspremenljivka okolja ali datoteka (env:, file:)nikoli ni shranjen v datoteki shrambe; kdor ga ima, lahko datoteko odpečati
Osebni ključipri imetnikuv shrambi so samo zgoščena vrednost SHA-256, oznaka in zadnji štirje znaki
Ključi storitvekonfiguracijakot sklic (env:, file:) ali izrecno kot navadno besedilo (plain:)
Skrivnosti za 2FA (dvostopenjsko preverjanje identitete)skrbniška shrambazapečatene
Seje 2FApri odjemalcu; v shrambi le kot zgoščena vrednostpotečejo; veljajo samo skupaj z osnovno prijavo (ključem ali geslom)
Dnevnik prehoda, revizijska sled, dnevnik spremembdnevnik prehoda, shrambabrez ključev, gesel, nizov povezave in vrednosti
Licenčni ključ geolokacijske zbirkeskrbniška shrambazapečaten; skrbniški vmesnik ga nikoli ne vrne
Dnevnik prijav (naslov, približen kraj in oseba za vsako prijavo)skrbniška shrambaposamezni dogodki le s pravico sign-in-events; omejena hramba (privzeto 90 dni, urne vrednosti brez osebe 400 dni); koordinate zaokrožene na približno 10 km; umeščanje poteka na strežniku, noben naslov ga ne zapusti. Glejte Preverjanje vzorcev prijav
Dnevnik obremenitve (oblike zahtev brez vrednosti; zahteve po dnevu in osebi)skrbniška shrambavrednosti klicateljev se nikoli ne beležijo; številke po osebah in oseba pri počasnih zahtevah le s pravico load-persons, hramba privzeto 7 dni; datoteka za proizvajalca (export-load) ne vsebuje oseb, naslovov in vrednosti. Glejte Ugotavljanje obremenitve

Meje zaupanja in ukrepi

MejaKaj zagotovi prehodKaj morate zagotoviti sami
Odjemalec → prehodPrijava pri vsaki zahtevi; pravilnik prijave z 2FA glede na način prijave, področje in omrežje; omejeno število neuspelih poskusov (429). Skrbništvo, samopostrežba, izmenjava kode 2FA in prijava z računom SQL Server zahtevajo zaščiteno povezavo (HTTPS, povratna zanka ali zaupanja vreden posrednik z X-Forwarded-Proto: https). Zahteve, ki spreminjajo stanje in jih brskalnik pošlje v imenu drugega spletnega mesta (Sec-Fetch-Site, sicer Origin), zavrne s kodo 403HTTPS s potrdilom, ki mu odjemalci zaupajo. Nešifrirani HTTP vežite samo na povratno zanko (privzeta nastavitev namestitvenega paketa: HTTP na vratih 8434 samo na 127.0.0.1)
Posrednik → prehodNaslov odjemalca, shemo in gostitelja iz X-Forwarded-For, -Proto in -Host sprejme samo od posrednikov iz TrustedProxies, ovrednoti pa jih od najbližjega člena naprej; sicer velja naslov sogovornikaČe pravila razlikujejo po omrežju, naj bo prehod dosegljiv samo prek vpisanih posrednikov
Prehod → podatkovna zbirkaImena uporabi šele, ko jih najde v katalogu (ordinalna primerjava), in jih zapiše v oglatih oklepajih s podvojenim ]; vrednosti posreduje kot parametre. Posredovanje osebe z EXECUTE AS LOGIN in povrnitvijo po izvedbi; seznam prepovedi DenyImpersonate. Sporočila strežnika SQL Server brez skritih imen in vrednostiPrijavi aliasa dodelite samo dovoljenja, ki jih potrebujejo sproščeni objekti. Ta prijava je zgornja meja za vse, kar teče pod Service
Prehod → skrbniška shrambaSpremembe samo prek skrbniškega vmesnika (pravica admin; privzeto pravilo zahteva 2FA); vsaka sprememba je zapisana v dnevnik sprememb; preverjanje, preden sprememba začne veljatiDatoteka shrambe je dostopna samo računu storitve in skrbnikom (privzeto); glavni ključ varnostno kopirajte ločeno; vsako shrambo uporablja samo en primerek prehoda

Tri poti, po katerih besedilo klicatelja doseže podatkovno zbirko

  1. Lastni stavki s pravico sql. Prehod besedilo izvede nespremenjeno in ga ne presoja. Meja je le prijava, pod katero se izvaja – pri Service prijava aliasa. Klicatelj s pravico sql tako doseže vse, kar doseže ta prijava, tudi objekte zunaj svojih pravil. Pravica je namenjena programom, ki jim zaupate.
  2. Preverjeni stavki brez pravice sql. Prehod besedilo razčleni, dovoli samo zaključen seznam oblik stavkov, vsak objekt preveri glede na katalog in pravila za posamezno metodo ter izvede na novo sestavljeno različico; glejte Aliasi, katalog in osrednje pravilo. Varnost je tu odvisna od popolnosti tega preverjanja, dodatno pa jo omejujejo dovoljenja prijave.
  3. Nepreverjeni stavki pod lastno prijavo, brez pravice sql. Če zahteva teče pod prijavo, ki ni prijava aliasa – prijava z računom SQL Server prek HTTP Basic, prevzem identitete osebe (Persons: Impersonate) ali identiteta podatkovne zbirke vrste Login ali Own –, prehod besedilo izvede nespremenjeno, če alias sprejema lastne stavke (AllowPassThrough) in ta alias navaja vsaj eno pravilo klicatelja, ki ni samo za branje. Mejo postavljajo dovoljenja te prijave v strežniku SQL Server, ne seznami objektov v pravilu; glejte Edina izjema.

Preostala tveganja

Preostalo tveganjePogojOmilitev
Ključi prek nešifriranega HTTP. Prehod sprejme ključe storitve in osebne ključe tudi prek nezaščitene povezave; zaščiteno zahtevajo samo skrbništvo, samopostrežba, 2FA in prijava z računom SQL ServerHTTP je dosegljiv zunaj povratne zankeHTTP vežite samo na 127.0.0.1 (privzeta nastavitev namestitvenega paketa); gonilnik ODBC za OData osebni ključ tako ali tako pošlje samo prek https ali lokalno
Nepreverjeni stavki obidejo pravila za posamezne objekteklicatelj s pravico sql ali klicatelj s pravico pisanja pod lastno prijavo pri aliasu z AllowPassThroughPravico sql dodelite samo programom, ki jim zaupate; prijavi aliasa in prijavam oseb dodelite le nujna dovoljenja; AllowPassThrough omogočite samo tam, kjer so nepreverjeni stavki res potrebni; namesto njih uporabite preverjene stavke
Vrzel v seznamu preverjenih oblikkonstrukt, ki ga preverjanje spregledaIzvajanje ostane omejeno z dovoljenji prijave; seznam je zaključen, vse neznano je zavrnjeno
Dnevnik sprememb ni zaščiten pred ponarejanjempravica pisanja v datoteko shrambeOmejite pravice za datoteko; dokaz, ki ga ni mogoče ponarediti, spada v sistem, ki ga upravitelj prehoda ne nadzoruje
Števci neuspelih poskusov, omejitve zahtev in shranjeni odgovori za Idempotency-Key so v pomnilnikuponovni zagon prehoda jih ponastaviOmilitve ni; po ponovnem zagonu se vse omejitve začnejo šteti znova
Filtre vrstic prek SESSION_CONTEXT jamči samo prehodstavki tečejo pod prijavo aliasa; kdor ima isto prijavo, bi vrednost lahko nastavil samlastna prijava za vsako osebo in Persons: Impersonate; glejte Omejitev po vrsticah
Prijava z računom SQL Server iz zavrnjenega izvora razkrije, ali je geslo pravilno (401 napačno, 403 pravilno)pravilnik prijave zavrača prijave z računom SQL Server od zunajOmejitev neuspelih poskusov (pet na prijavo in alias v minuti); prijave z računom SQL Server je bolje od zunaj sploh ne omogočiti
Izmenjava kode in nastavitev 2FA se presojata samo po pravilih s področjem Allzavrnitev samo za Data ali AdminZavrnitve po omrežju ustvarite s področjem All
Obnovljena shramba spet odpre dostop, ki je bil zaprt po nastanku varnostne kopijeobnovitev starejše varnostne kopijeZapore po obnovitvi ponovite; glejte Varnostno kopiranje, obnovitev in selitev skrbniške shrambe
Brez X-Forwarded-For prehod vsako zahtevo pripiše posrednikuposrednik glave ne pošiljaPo nastavitvi preverite revizijsko sled; glejte Delovanje prehoda za strežnikom IIS ali drugim posredniškim strežnikom
Shranjeni odgovor za Idempotency-Key se ponovi brez novega preverjanja pravicponovitev v desetih minutah po prvem odgovoru, tudi po zaporiIdempotency-Key ustvarite kot naključno vrednost; glejte HTTP: specifikacija vmesnika

Ta stran opisuje zaščitne ukrepe prehoda. Ne nadomešča varnostne ocene celotnega sistema, v katerem prehod deluje.

Sorodne teme

sl/wiki/data-conectivity/database-gateway/concepts/security-and-trust-boundaries.txt · Zadnja sprememba: uporabnika Wolfgang van der Stille