Author
ninoslav-mitic
View
228
Download
2
Embed Size (px)
DESCRIPTION
data base
Sigurnost raunarskih mrea (SRM)
Copyright 2005-2008 - Dragan Pleskonjic, Nemanja Macek, Marko Caric 1
Tema:
Sigurnost baza podataka
URLs:
Zvanina Web strana: http://www.vets.edu.yu/smerovi/predmeti/SigurnostMreze.htm
Dodatni resursi: http://www.conwex.info/draganp/teaching.html
2Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Knjige:
http://www.conwex.info/draganp/books.html
Teme za seminarske radove:http://www.conwex.info/draganp/SRM_seminarski_radovi.html
Napomena
Ovo je skraena verzija prezentacije / predavanja na temu Sigurnost baza podataka
3Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
na temu Sigurnost baza podataka
Sigurnost baza podataka
Sadraj poglavlja i predavanja: 11.1 Kontrola pristupa
11.2 Ostali aspekti zatite
4Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
11.2 Ostali aspekti zatite
11.3 Napad SQL injection
Quote
Where is the knowledge we have lost in information?
T. S. Eliot
5Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Potrebna predznanja
Programiranje
Za primenu:
Raunarske mree i protokoli
Operativni sistemi
Sistemsko programiranje
Strukture i modeli podataka, baze podataka
6Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Strukture i modeli podataka, baze podataka
Uopteno o problemu
Serveri baza podataka (engl. DataBase servers) su verovatno meu najvanijim serverima svake institucije ili kompanije.
Razvoj Interneta i vieslojnih arhitektura doveo je do toga da su mnogi serveri baza podataka praktino javno dostupni, tj. da korisnici mogu da im pristupe preko posebne aplikacije koja se izvrava na Web serveru koristei samo ita Weba.
Ovo predavanje se bavi onim aspektom sigurnosti koji spada u
7Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Ovo predavanje se bavi onim aspektom sigurnosti koji spada u takozvanu sivu zonu odgovornosti. Punu odgovornost za zatitu baze podataka administrator mree najverovatnije nee preuzeti, jer provera postojanja SQL upita u podacima koje unosi korisnik zaista i nije njegov posao. S druge strane, od projektanta i administratora baze podataka ne moete oekivati da vam konfiguriu mrenu barijeru i formiraju ifrovan tunel ka serveru baze podataka.
11.1 Kontrola pristupa
Tabele (engl. tables) su objekti koji slue za skladitenje podataka.
Indeksi (engl. index) su specijalne tabele koje omoguavaju brz pristup podacima u tabeli (ukoliko je tabela indeksirana po atributu po kom se vri pretraivanje).pretraivanje).
Pogledi (engl. views) omoguavaju izdvajanje podskupa informacija iz tabele ili grupe tabela (podskup redova i/ili kolona).
8Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Provera identiteta korisnika
Sistem za upravljanje bazama podataka (engl. DataBase Management System, DBMS)
Korisnici se na bazu prijavljuju pomou korisnikih naloga koje pravi administrator baze podataka. Administrator korisnicima zadaje inicijalnu lozinku iji se he uva u bazi, a korisnik moe promeniti svoju lozinku kada god eli. Korisnik mora uneti ispravnu lozinku pri povezivanju na bazu, da bi se spreila neautorizovana upotreba. Na ovaj nain se, korienjem informacija smetenih u bazi, proverava identitet korisnika. korienjem informacija smetenih u bazi, proverava identitet korisnika. Administrator baze podataka moe definisati pravila za sloenost lozinke, kojim bi se odredila minimalna duina, ili obavezna upotreba malih slova, velikih slova i cifara.
Lozinke za prijavljivanje korisnika na bazu ne treba uvati u bazi podataka u obliku otvorenog teksta.
Neki sistemi za upravljanje bazama podataka obezbeuju vie metoda za proveru identiteta korisnika.
9Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Ovlaenja i uloge
Korisnicima se dodeljuju ovlaenja (engl. privileges) za povezivanje na bazu i rad sa njenim objektima.
Ovlaenja korisnicima moe dodeljivati administrator baze, vlasnik objekata ili neki drugi autorizovani korisnik kome je dato to pravo.dato to pravo.
Ovlaenja omoguavaju korisnicima da obavljaju odreene akcije nad bazom (sistemska ovlaenja) ili objektima baze (objektna ovlaenja).
10Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Sistemska i objektna ovlaenja Sistemska ovlaenja najee dodeljuje administrator baze
podataka. U ova ovlaenja spadaju, na primer, CREATE DATABASE, CREATE PROCEDURE,
CREATE TABLE, CREATE VIEW i CREATE USER, koja redom dozvoljavaju korisniku da krera novu bazu podataka, uskladitenu proceduru, tabelu, pogled i novi korisniki nalog.
Objektna ovlaenja korisniku omoguavaju da izvri operacije nad konkretnim objektima baze (kao to su tabele, pogledi i nad konkretnim objektima baze (kao to su tabele, pogledi i uskladitene procedure). Ako korisnik treba da vidi podatke neke tabele, potrebno mu je dodeliti SELECT
ovlaenje nad tom tabelom (isto vai za INSERT, UPDATE, DELETE, ...).
Dakle, ovaj vid zatite podrazumeva da se za svaku tabelu koja se nalazi u bazi posebno odrede prava pristupa za svakog korisnika.
Na primer, korisnik koji vri unos podataka moe imati samo pravo upisa (INSERT) dok drugi korisnik moe samo vriti izmene (UPDATE).
11Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Princip minimalnih ovlaenja Princip minimalnih ovlaenja predvia da korisnicima treba
dodeliti samo minimum ovlaenja potrebnih za obavljanje njihovih poslova nad bazom. To takoe predvia: granularnost ovlaenja, kao sredstvo za ograniavanje pristupnih
prava
upotrebu uloga, koje sadre grupe (skup) ovlaenja i olakavaju administraciju administraciju
upotrebu pogleda, koji ograniavaju pristup na definisane podskupove postojeih podataka
upotrebu uskladitenih procedura, ijom se upotrebom moe izbei dodela konkretnih prava nad baznim tabelama korisnicima.
12Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Uloge
Upravljanje ovlaenjima moe biti veoma sloen posao.
Da bi se pojednostavila administracija korisnika i prava koja imaju u sistemu, koristi se sistem uloga (engl. roles).
Uloge su korisniki definisane kolekcije ovlaenja, koje se mogu dodeljivati ili oduzimati drugim korisnicima, ili ak drugim ulogama. drugim ulogama.
Jednom korisniku ili grupi korisnika moe se dodeliti jedna uloga ili grupa uloga.
Dodavanjem novih ovlaenja ulozi, svi korisnici koji pripadaju toj ulozi, automatski dobijaju novo ovlaenje.
13Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Upotreba uloga
14Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Upotreba pogleda
15Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Uskladitene procedure i okidai Uskladitene procedure (engl. stored procedures) ine skup
instrukcija koje se u prevedenoj formi uvaju u bazi. Postoje dva tipa: procedure (ne vraaju vrednost) i funkcije (vraaju vrednost).
Paket je grupa uskladitenih procedura koje se zajedno uvaju i odravaju. uvaju i odravaju.
Okidai (engl. triggers) su uskladiteni, dogaajima upravljani (engl. event-driven) programi koji se izvravaju usled pojave dogaaja za koji su vezani. Dogaaji za koje se mogu vezati okidai najee su izvrenje INSERT, UPDATE ili DELETE SQL upita1.
16Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Upotreba uskladitene procedure - primer
17Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Virtuelne privatne baze podataka Virtuelna privatna baza podataka (VPD) omoguava
granularnu kontrolu pristupa pridruivanjem jednog ili vie sigurnosnih pravila (engl. policy) tabelama ili pogledima.
U sluaju direktnog ili indirektnog pristupa tabeli kojoj je pridrueno sigurnosno pravilo, server podataka poziva funkciju sigurnosnog pravila. funkciju sigurnosnog pravila.
Funkcija sigurnosnog pravila vraa uslov pristupa koji se naziva predikat (WHERE klauzula) koji se dodaje izvornom SQL iskazu.
18Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
11.2 Ostali aspekti zatite
Upotreba najnovijih zakrpa za DBMS
Ograniavanje pristupa DBMS serveru
Korienje troslojnog modela
Skrivanje strukture baze podataka
Korienje sloenih lozinki Korienje sloenih lozinki
Brisanje nepotrebnih objekata
Provera podrazumevane kontrole pristupa
Provera ulaznih podataka
Procena mogunosti proboja
19Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
11.3 Napad SQL injection
Verovatno najosetljivija taka u pogledu ouvanja sigurnosti baza podataka jeste provera podataka koje korisnik alje bazi. Ako je posetiocima neke web stranice dozvoljen unos podataka u bazu, potrebno je proveriti da li podaci koje je uneo korisnik sadre neke SQL naredbe. Na primer, posle poslednjeg unetog podatka, korisnik moe uneti komandu DELETE FROM
IME_TABLE; COMMIT; Ako ne postoji provera unosa, ova naredba e obrisati neku tabelu iz baze.
Napad SQL injection je direktna posledica loeg dizajna aplikacije koja Napad SQL injection je direktna posledica loeg dizajna aplikacije koja kreira dinamike SQL upite na osnovu interakcije sa korisnikom. To omoguava napadau da prosledi bazi podataka SQL upit po svojoj volji. Ukoliko se ovo zanemari i ostavi prostor za mogui napad, svako dalje obezbeivanje DBMS postaje beskorisno.
Iako su SQL injection napadi po svojoj prirodi jednostavni (napada aplikaciji prosleuje unos koji sadi SQL upit), poeljno je da napada koji eli da izmeni podatke u bazi poznaje strukturu baze (koje tabele postoje, od kojih se kolona koja tabela sastoji itd). Izvoenje napada nad bazom ija je struktura nepoznata je znatno komplikovanije.
20Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Vrste SQL Injection napada
Modifikacija SQL upita. Napada modifikuje SQL upit pomou skupovnih operacija (najee UNION) ili menja WHERE klauzulu sa ciljem dobijanja drugaijeg rezultata. Najpoznatiji napad ove vrste je modifikacija WHERE klauzule upita za proveru identiteta korisnika tako da klauzula uvek daje rezultat TRUE.
Umetanje koda. Napada unosi novi SQL upit ili novu komandu u postojei SQL upit. Ova vrsta napada funkcionie iskljuivo kod DBMS koji podravaju viestruke SQL upite po jednom zahtevu bazi podataka (na podravaju viestruke SQL upite po jednom zahtevu bazi podataka (na primer, EXECUTE naredba u MS SQL Serveru). Ovakav napad na Oracle DBMS se teko ostvaruje.
Umetanje funkcijskih poziva. Napada umee Oracle-ove ugraene ili neke korisnike funkcije u ranjiv SQL upit. Ovi funkcijski pozivi se zatim mogu iskoristiti za izvravanje funkcijskih poziva operativnog sistema ili za izmenu podataka u bazi.
Prekoraenja bafera (engl. buffer overflow). Ovo je podvrsta prethodno opisane vrste SQL injection napada. Ranjivost postoji u nekim funkcijama DBMS-a koje mogu izazvati prekoraenje Buffer-a.
21Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Ostalo to moe koristiti napadau
Korienje poruka o grekama
Odreivanje imena tabela i kolona
Odreivanje tipova podataka
Odreivanje verzije DBMS-a Odreivanje verzije DBMS-a
Odreivanje korisnikih imena i lozinki
22Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Zatita od SQL Injection napada SQL Injection napad moe biti jednostavno spreen malim
izmenama aplikativnog koda. Programeri aplikacija baza podataka moraju biti disciplinovani u primeni zatitnih mera za svaku proceduru i funkciju koja moe biti dostupna preko mree. Svaki dinamiki SQL iskaz mora biti zatien. Jedan nezatieni SQL iskaz moe dovesti do Jedan nezatieni SQL iskaz moe dovesti do kompromitovanja aplikacije, podataka ili servera baze podataka.
Upotreba vezanih promenljivih
Provera unosa
Sigurnost funkcija
Poruke o grekama
23Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Vebe
Detalji o problematici sigurnosti baza podataka, kao ipraktini primeri, obrauju se na vebama iz ovog predmeta
Takoe, detaljniji opisi i objanjenja se mogu nai u knjizi koja prati predmet i predavanja Sigurnost raunarskih sistema i mrea
24Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
Literatura
D. Pleskonji, N. Maek, B. orevi, M. Cari: Sigurnost raunarskih sistema i mrea, Mikro knjiga, Beograd, 2007., ISBN: 978-86-7555-305-2,
25Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
knjiga, Beograd, 2007., ISBN: 978-86-7555-305-2, knjiga udbenik
http://www.conwex.info/draganp/books_SRSiM.html
http://www.mk.co.yu/store/prikaz.php?ref=978-86-7555-305-2
Za predavanje 11:
Poglavlje 11: Sigurnost baza podataka
Literatura - nastavak
D. Pleskonji, B. orevi, N. Maek, Marko Cari: Sigurnost raunarskih mrea, Via elektrotehnika kola, Beograd, 2006., ISBN 86-85081-16-5, knjiga - udbenik
D. Pleskonji, B. orevi, N. Maek, Marko Cari: Sigurnost raunarskih mrea - prirunik za laboratorijske vebe, Via elektrotehnika kola, Beograd, 2006., ISBN 86-85081-49-1
D. Pleskonji, B. orevi, N. Maek, Marko Cari: Sigurnost
26Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
D. Pleskonji, B. orevi, N. Maek, Marko Cari: Sigurnost raunarskih mrea - zbirka reenih zadataka, Via elektrotehnika kola, Beograd, 2006., ISBN 86-85081-55-6
http://www.conwex.info/draganp/books.html
Dodatna literatura
Applied CryptographyBruce Schneier
John Wiley & Sons, 1995
Cryptography and Network SecurityWilliam Stallings
27Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
William StallingsPrentice Hall, 1998
The CISSP Prep Guide Mastering the Ten Domains of Computer SecurityRonald L. Krutz, Russell Dean VinesJohn Wiley & Sons, 2001
Druge knjige i razni online resursi
Napomena: tokom predavanja e biti naglaena dodatna literatura, po potrebi.
Pitanja
?
28Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric
29Copyright 2005-2008 - Dragan Pleskonjic,
Nemanja Macek, Marko Caric