of 29 /29
Sigurnost računarskih mreža (SRM) Copyright © 2005-2008 - Dragan Pleskonjic, Nemanja Macek, Marko Caric 1 Tema: Sigurnost baza podataka

Sigurnost Baza Podataka

Embed Size (px)

DESCRIPTION

data base

Text of Sigurnost Baza Podataka

  • 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