Sigurnost sustava za upravljanje bazom podataka - Oracle i Microsoft SQL Server
Temu rezervirala: Matea Bodulušić
Baza podataka i sustav za upravljanje bazom podataka (SUBP)
Baza podataka je kolekcija podataka, ograničenja i operacija koja reprezentira neke aspekte realnog svijeta[1]. Ona predstavlja model aplikacijske domene[1]. Programski alati kojima se baze održavaju, upravljaju i kreiraju zovu se sustavi za uređivanje baza podataka - SUBP (eng. database management system, DBMS)[3].Većina današnjih sustava zasnovano je na relacijskom modelu[2]. SUBP je zadužen za upravljanje svim podacima i njihovom obradom te se sastoji od 1. logičke razine modela koji služi za to da SUBP-u daje elegantnu kontrolu nad podacima, a sastoji se od: • Stranica ili blok • Ekstenta • Segmenata • Tabličnog prostora (tablespace) 2. koncepcijske razine koja se sastoji od entiteta i veza između njih 3. fizičke razine koja definira način pohrane podataka na diskovima[2]. Neki od najpoznatijih SUBP-a su: Oracle, DB2, MySQL, Informix, PostgreSQL i SQL server[4].
2. Elementi zaštite na razini baze podataka
Kod zaštite vitalnih informacija na razini baze podataka postoje tri ključna elementa, tzv. trijada sigurnosti, a oni su: • povjerljivost - zaštita podataka od neovlaštenog pregledavanja • integritet - zaštita od nedozvoljenog pristupa podacima • dostupnost - mogućnost oporavka od programskog ili sklopovskog zatajenja koje rezultiraju DoS (eng. Denial of Service) stanjem SUBP-a ili cjelokupnog sustava[4]
Uklanjanje ranjivosti se osigurava ugrađivanjem sigurnosnih elemenata izravno u SUBP-a, a ti elemanti su: elementi dodjeljivanja primjerenih ovlasti i dozvola pristupa, primjene efektivnih korisničkih računa i zaporki, primjerene metode nadzora i logiranja, korištenje enkripcije i nadzor nad pristupom tablicama[5]. Uz to je važna i njihova ispravna primjena.
2.1. Dodjeljivanje primjerenih ovlasti i dozvola pristupa
Korisnicima se dodjeljuju minimalne potrebne ovlasti prema tzv. 'least privilege' načelu. Ovo načelo temelji se na dozvoli pristupa samo onim podacima baze i funkcionalnostima SUBP-a koji su korisnicima neophodno potrebni, obzirom na njihov status i opis posla. Pametno je oblikovati tzv. "uloge" (eng. roles) te njima dodijele pojedine ovlasti. Svakom korisniku se dodjeljuje "uloga" koja mu pripada. Na taj način jedan korisnik može zauzeti više uloga, a olakšano je dodjeljivanje i oduzimanje ovlasti vezanih uz radne zadatke. Administratorima se savjetuje dokumentiranje zahtjeva za stvaranje, kao i samo stvaranje korisničkih računa, te pridjeljivanje i oduzimanje pojedinih uloga korisnicima. Također, prilikom promjene radnog mjesta ili radnog zadatka potrebno je preispitati, te ako je potrebno oduzeti i dodjeliti nove ovlasti korisnika, odnosno uloge. Korisničke račune bivših zaposlenika potrebno je odmah ukinuti i provesti odgovarajuće postupke nad objektima baze podataka koji su pripadali takvim korisnicima.[5]
2.2. Efikasni korisnički računi i zaporke
Korisničke račune potrebno je definirati u skladu s tradicionalnim metodama upravljanja korisničkim računima, a to su: • promjena izvorno postavljene zaporke • onemogućenje korisničkog računa nakon određenog broja neuspjelih prijava • ograničenje pristupa podacima • onemogućenje neaktivnih korisničkih računa • te upravljanje životnim ciklusom korisničkih računa[5].
2.3. Primjerene metode nadzora i evidencije
Jedan od ključnih elemenata zaštite SUBP-ova je nadzor koji treba biti usklađen s spomenutim ulogama. Pogrešan je pristup nadzoru temeljen na načelu „sve ili ništa“. Potrebno je ograničiti veličinu praćenih stavki kako bi do izražaja došli događaji kritični za sigurnost sustava. Ako korisnici bazi podataka trebaju pristupati samo sa svojih terminala, čija su imena ili IP adrese poznate, onda bilježenje svih pristupa bazi kod kojih korisnici nisu koristili svoje terminale može otkriti zloupotrebu korisničkog računa[5].
2.4. Korištenje enkripcije
Enkripcija ili šifriranje je proces u kriptografiji kojim se vrši izmjena podataka tako da se poruka, odnosno informacije, učine nečitljivim za osobe koje ne posjeduju određeno znanje, odnosno ključ[6]. Obzirom na podatke koji se kriptiraju i na razinu na kojoj se kriptiranje obavlja, postoje različite vrste enkripcija primjenjivih u zaštiti baza podataka. Moguće je korištenje enkripcije za zaštitu podataka, enkriptiranje datoteke(eng. file-based) i enkripcija na razini programskog sučelja (eng. API - Application Programming Interfaces). Podatke je moguće enkriptirati tijekom prijenosa (eng. data-inmotion) te u mirovanju (eng. data-at-rest). Kada se enkriptira tijekom prijenosa, SUMB podržava komunikaciju uporabom SSL (eng. Secure Socets Layer) zaštitnog protokola. Enkripciju datoteka ne štiti od napada kroz SUBP. Enkripcija na razini programskog sučelja podrazumijeva kriptiranje komunikacije među pojedinim podsustavima SUBP-a.
Takozvana 'transparentna' enkripciju ime najslabiju podršku baze podataka, automatski se primjenjuje pri svakoj promjeni ili unosu potencijalno osjetljivih podataka[5]. Automatska primjena enkripcije znači da se izbjegavaju programerske pogreške kao što su pozivanje pogrešnih enkripcijskih funkcija, pozivanje ispravnih funkcija, ali s krivim parametrima ili njihovo nepozivanje u slučajevima kada je to potrebno[5].
2.5. Kontrola pristupa tablicama
Kontrola pristupa tablicama slovi kao najzanemarivaniji element zaštite baza podataka. Njema implementacija je složena i zahtjeva suradnju sistemskog administratora i razvojnog programera baze podataka[5]. Primjeri ovakve kontrole su onemogućavanje čitanja tablice u istoj sjednici u kojoj je u nju obavljen upis ili dozvoljavanje čitanja samo određenog tipa tablica[5].
Na sljedećem linku sam proučila oracle, oracle cloude te navela neke značajke i mogućnosti Oracle baze podataka:
http://security.foi.hr/wiki/index.php/OracleDio
SQL Server i njegove značajke sam navela na linku:
http://security.foi.hr/wiki/index.php/SQLServer
Literatura
Maleković, Rabuzin, Uvod u SQL https://hr.wikipedia.org/wiki/Sustav_za_upravljanje_bazom_podataka https://www.cis.hr/dokumenti/zatitabazapodataka.html https://www.cis.hr/files/dokumenti/CIS-DOC-2012-08-059.pdf http://www.cert.hr/sites/default/files/CCERT-PUBDOC-2006-10-171.pdf https://bs.wikipedia.org/wiki/Enkripcija https://blog.capterra.com/top-20-most-popular-database-software-solutions/ https://www.poslovni-software.com/tvrtke/oracle-hrvatska/29/ https://cloud.oracle.com/hr_HR/database https://www.youtube.com/watch?v=S52roYUmNN8&feature=youtu.be https://www.oracle.com/legal/terms.html https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/create-a-full-database-backup-sql-server https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-encrypted-connections https://docs.microsoft.com/en-us/sql/linux/sql-server-linux-security-get-started https://docs.microsoft.com/en-us/sql/linux/quickstart-install-connect-ubuntu https://community.oracle.com/thread/2229554 (neuspješno) https://www.youtube.com/watch?v=S52roYUmNN8&feature=youtu.be