bazama podataka
CCERT-PUBDOC-2006-10-171
CARNet CERT,
LS&S,
Ovaj dokument predstavlja vlasnitvo CARNet-a (CARNet CERT-a). Namijenjen je za javnu objavu, njime se moe
svatko koristiti, na njega se pozivati, ali samo u originalnom obliku, bez ikakvih izmjena, uz obavezno
navoenje izvora podataka. Koritenje ovog dokumenta protivno gornjim navodima, povreda je autorskih prava
CARNet-a, sukladno Zakonu o autorskim pravima. Poinitelj takve aktivnosti podlijee kaznenoj odgovornosti
koja je regulirana Kaznenim zakonom RH.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 2 / 17
Sadraj
1.
UVOD .............................................................................................................................................. 5
2.
2.1.
KONFIGURACIJSKI PROPUSTI ....................................................................................................................... 6
2.1.1.
Slaba zatita korisnikih rauna........................................................................................................ 6
2.1.2.
Neprikladna podjela odgovornosti ..................................................................................................... 6
2.1.3.
Neprikladne metode nadzora ............................................................................................................ 6
2.1.4.
Neiskoritene mogunosti zatite baza podataka ................................................................................. 6
2.2.
PROGRAMSKI PROPUSTI UNUTAR SUBP-A ........................................................................................................ 6
2.3.
PROPUSTI U APLIKACIJAMA POVEZANIM S BAZAMA PODATAKA ................................................................................... 6
2.3.1.
Ugnjeivanje SQL naredbi............................................................................................................... 6
3.
3.1.
3.2.
3.3.
3.4.
3.5.
4.
4.1.
4.2.
4.3.
4.4.
4.5.
4.6.
5.
DELEGIRANJE ODGOVORNOSTI...................................................................................................................... 9
SMJETANJE SUBP-A U UNUTARNJU MREU ..................................................................................................... 9
SUSTAV DOZVOLJENIH IP ADRESA ................................................................................................................. 9
PERIODIKA ANALIZA PROMJENA I SUMNJIVIH SITUACIJA ....................................................................................... 9
POSTAVLJANJE ZAMKI ............................................................................................................................ 10
PRIMJENA ZAKRPI I TESTIRANJE ................................................................................................................. 10
SIGURNOST NEKIH IZVEDBI SUBP-A ................................................................................................... 10
5.1.
5.1.1.
5.1.2.
5.2.
5.2.1.
5.2.2.
5.2.3.
5.2.4.
5.3.
5.3.1.
5.3.2.
5.3.3.
5.3.4.
5.4.
5.4.1.
5.4.2.
5.4.3.
5.4.4.
5.5.
Revizija v1.1
ORACLE ............................................................................................................................................ 10
Ranjivosti ................................................................................................................................... 10
Sigurnosni elementi...................................................................................................................... 10
MSSQL ............................................................................................................................................ 11
Ranjivosti ................................................................................................................................... 11
Enkripcija ................................................................................................................................... 12
Operacijski sustav......................................................................................................................... 12
Postavke ..................................................................................................................................... 12
IBM DB2 ......................................................................................................................................... 12
Ranjivosti ................................................................................................................................... 12
Enkripcija ................................................................................................................................... 13
Naini autorizacije ....................................................................................................................... 13
Izvorno postavljeni korisniki rauni ............................................................................................... 13
SYSBASE ........................................................................................................................................... 13
Ranjivosti ................................................................................................................................... 14
Enkripcija ................................................................................................................................... 14
Operacijski sustav......................................................................................................................... 14
Konfiguracija............................................................................................................................... 14
MYSQL ............................................................................................................................................ 15
CCERT-PUBDOC-2006-10-171
Stranica 3 / 17
5.5.1.
5.5.2.
5.5.3.
5.5.4.
Ranjivosti ................................................................................................................................... 15
Enkripcija ................................................................................................................................... 15
Korisnici ..................................................................................................................................... 15
Konfiguracija............................................................................................................................... 15
6.
ZAKLJUAK .................................................................................................................................... 17
7.
REFERENCE..................................................................................................................................... 17
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 4 / 17
1. Uvod
Baze podataka su skupovi neredundantno pohranjenih i organiziranih podataka koje odravaju,
distribuiraju i nadziru programi nazvani SUBP - sustavi za upravljanje bazama podataka (eng. DBMS
Database Management System).
U bazama podataka pohranjuju se brojne informacije iz svih moguih podruja. Razliiti programi
(raunovodstveni, organizacijski, istraivaki itd.) zahtijevaju razliite informacije, a one se u
dananje doba pohranjuju u bazama podataka. Stoga se danas organizacije pouzdaju u SUBP-ove kada
se radi o spremanju i osiguravanju svih, pa tako i onih najtajnijih i najvrjednijih, podataka. Zbog toga
za tim sustavima raste zanimanje kriminalne zajednice, a samim time i potreba da ih se uini
sigurnijima.
Osim bogatstva informacija koje uvaju, postoji jo nekoliko imbenika koji pridonose ranjivosti baza
podataka. Uz dananje trendove sveprisutnosti Interneta, SUBP-ovi koji su tradicionalno bili smjeteni
u zatvorene mree i iza vatrozida, postaju sve otvoreniji prema udaljenim korisnicima, a time i sve
izloeniji napadima. Takoer je postalo vrlo lako pribaviti programske pakete popularnih SUBP-ova,
to zlonamjernim korisnicima omoguuje istraivanje i pronalaenje sigurnosnih propusta.
U mnogo emu je osiguranje baza podataka slino osiguranju raunalnih mrea. U oba sluaja nastoji
se korisniku dati samo neophodne ovlasti, smanjiti ranjivu povrinu onemoguavanjem nepotrebnih
funkcionalnosti, strogo autorizirati izmjene i nadzirati pristup, odvojiti funkcionalne blokove,
inzistirati na enkripciji, itd. Jedina stvarna razlika je u tome to kod baza podataka svi ovi mehanizmi
djeluju unutar samog SUBP-a.
U nastavku dokumenta opisani su razlozi zbog kojih se unutar baza podataka javljaju ranjivosti. Zatim
su navedeni elementi osiguranja baza podataka, kao i modeli zatite koji se koriste kako bi se uklonio
ili barem umanjio uinak tih ranjivosti. Sva ova openito obraena sigurnosna pitanja su na kraju
dokumenta sagledana u kontekstu Oracle, MsSQL, IBM DB2, Sybase i MySQL SUBP-ova. Navedenih pet
sustava izabrano je zbog njihove rairene rasprostranjenosti.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 5 / 17
2.1.
Konfiguracijski propusti
Iako SUBP-ovi esto ne podravaju sigurnosne mogunosti tradicionalno prisutne kod drugih sustava,
ispravno postavljanje postojeih mogunosti moe mnogo podii sigurnosnu razinu zatienosti
podataka te ukloniti veliki broj ranjivosti.
2.2.
2.3.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 6 / 17
Napad ugnjeivanjem SQL naredbi najbolje se moe ilustrirati primjerom autorizacije na web stranici.
Korisnik unosi svoje korisniko ime i zaporku pomou kojih se stvara SQL upit za pretraivanje tablice
s korisnikim imenima i zaporkama. Ako se u tablici pronau uneseno ime i zaporka, korisnik postaje
autoriziran. Problem kod ovakvog pristupa je to se SQL upit stvara ulanavanjem bez izuzimanja
jednostrukih navodnika.
Ako je uneseno korisniko ime Ivan i zaporka zaporka2, ulanani SQL upit e izgledati kao to je
prikazano u nastavku:
SELECT *
FROM WebKorisnici
WHERE KorisnickoIme='Ivan' AND Zaporka='zaporka2'
Napada moe umjesto zaporke upisati niz slova i zavriti znakovni niz jednostrukim navodnikom te
dodati logiki izraz, koji je uvijek istinit, te tako kao odgovor dobiti sve retke tablice. Na primjer, ako
napada umjesto zaporke upie sljedei niz znakova:
Aa' OR 'A'='A
Ovaj upit uvijek vraa sve retke tablice te tako uvjerava web stranicu da je napada unio ispravno
korisniko ime i zaporku. Zbog toga to je uobiajeno da se u zapisima koji sadre podatke svih
korisnika na prvom mjestu nalazi administrator, postoji velika mogunost da se napada autorizira kao
administrator aplikacije.
Spreavanje ugnjeivanja SQL naredbi moe biti jednostavno ako se poznaje mehanizam napada. Dva
su mogua pristupa: provjera korisnikih unosa i koritenje parametriziranih upita. Prvi pristup se
odnosi na prihvaanje samo onih unosa koji se sastoje od dozvoljenih znakova, a to su najee samo
alfanumeriki znakovi. Koritenje parametriziranih upita znai povezivanje varijabli umjesto
ulanavanja znakovnih nizova.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 7 / 17
3.1.
3.2.
3.3.
3.4.
Koritenje enkripcije
Obzirom na podatke koji se kriptiraju i na razinu na kojoj se kriptiranje obavlja, postoje razliite vrste
enkripcija primjenjivih u zatiti baza podataka.
Jedna od mogunosti je koritenje enkripcije za zatitu podataka tijekom prijenosa (eng. data-inmotion). U tu svrhu veina SUBP-ova podrava komunikaciju uporabom SSL (eng. Secure Socets Layer)
zatitnog protokola. Drugi je nain primjena enkripcije na podatke u mirovanju (eng. data-at-rest), ali
ni tada nije potrebno kriptirati sve podatke, ve samo najosjetljivije.
Mogue je raditi i enkripciju datoteka (eng. file-based), ali takav pristup ne titi od napada kroz SUBP.
Enkripcija na razini programskog suelja (eng. API - Application Programming Interfaces)
podrazumijeva kriptiranje komunikacije meu pojedinim podsustavima SUBP-a. Ona je sloena i
zahtjeva puno posla to poveava rizik od pogreke.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 8 / 17
Najslabiju podrku baze podataka imaju za tzv. 'transparent' enkripciju. To je enkripcija koja se
automatski primjenjuje pri svakoj promjeni ili unosu potencijalno osjetljivih podataka. Automatska
primjena enkripcije znai da nema potrebe za eksplicitnim pozivanjem enkripcijskih funkcija. Time se
izbjegavaju programerske pogreke kao to su pozivanje pogrenih enkripcijskih funkcija, pozivanje
ispravnih funkcija, ali s krivim parametrima ili njihovo nepozivanje u sluajevima kada je to potrebno.
Ovo se postie premjetanjem enkripcije s razine aplikacijskog sloja na sloj baze podataka.
3.5.
4.1.
Delegiranje odgovornosti
Administratore baze podataka potrebno je zaduiti samo za poslove upravljanja SUBP-ovima i
osiguravanja zadovoljavajuih performansi, ali im je takoer potrebno omoguiti i delegiranje
administracije sigurnosnih poslova. Time se postie vea efikasnost u obavljanju radnih zadataka te
olakava prijenos odgovornosti prilikom prelaska zaposlenika na nova radna mjesta. Delegiranjem
odgovornosti moe se pojedinim administratorima omoguiti obavljanje radnih zadataka u okviru
pojedinog odjela tvrtke, npr. marketinkog ili financijskog odjela.
4.2.
4.3.
4.4.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 9 / 17
4.5.
Postavljanje zamki
Neke od periodikih analiza poeljno je automatizirati tako da rezultate dostavljaju elektronikom
potom ili ih spremaju u posebnu datoteku ili tablicu. Primjer primjene ove strategije je zapisivanje
svakog dodjeljivanja uloge administratora korisnicima kojima ta uloga inae ne pripada. Ovdje je,
dodatno, potrebno voditi rauna o tome da automatske pretrage nee pronai ranjivosti za koje nisu
unaprijed programirane, to moe dovesti do stvaranja lanog osjeaja sigurnosti.
U sluaju kada jedan od korisnika baze podataka treba dobiti otkaz, moe se pokazati korisnim
nadgledati njegov korisniki raun odreeno vrijeme prije naputanja posla. Tako se mogu otkriti
pokuaji pospremanja u zadnji tren, krae ili nanoenja tete bazi podataka.
Nadziranjem datoteka ili tablica u koje se spremaju podaci prikupljeni nadzorom baze podataka,
smanjuje se mogunost prikrivanja tragova djelovanja eventualnog uljeza.
4.6.
5.1.
Oracle
Oracle je najvie rairen SUBP i pokriva najvei dio trita. Razlozi za to su duga tradicija i podranost
od strane veine operacijskih sustava.
5.1.1. Ranjivosti
Listener je posluitelj preko kojega klijenti pristupaju bazi podataka. Sama injenica da je ovaj
posluitelj smjeten izvan baze podataka predstavlja problem zbog toga to mogunosti njegova
udaljenog administriranja i postavljanja zaporke nisu dovoljno dokumentirane te su esto nepoznate.
Unutar Listener posluitelja ne postoje uobiajene mogunosti upravljanja zaporkama kao to su
onemoguavanje rauna, odvojen nadzor ili istjecanje zaporke. Zbog toga je pomou jednostavne
skripte mogue probiti ak i vrlo jake zaporke.
Listener posluitelj u nekim situacijama moe neovlatenim korisnicima dozvoliti pristup potencijalno
osjetljivim informacijama. Ako se posluitelju poalje paket s neispravnim "SIZE OF PACKET" poljem on
odgovara paketom koji sadri dio prethodne naredbe. Izdana je zakrpa za ovaj propust, a napadi se
mogu sprijeiti koritenjem vatrozida.
Unutar Listener posluitelja otkriveno je i nekoliko pogreaka prepisivanja spremnika. Jedan od tih
propusta moe udaljenom zlonamjernom korisniku omoguiti izvoenje proizvoljnog programskog
koda manipuliranjem SEH (eng. Structured Exception Handling) mehanizmom. I za ove sigurnosne
nedostatke su objavljene odgovarajue zakrpe.
Pored sigurnosnih problema vezanih uz Listener posluitelj, unutar Oracle baze podataka postoji
znaajna ranjivost povezana sa "SYS.LINK$" tablicom. U nju se, u sluaju ostvarivanja veze s nekom
drugom bazom podataka, zapisuju vrijeme stvaranja spomenute veze te korisniko ime i zaporka
koriteni pri tome. Podaci se spremaju bez enkripcije pa im moe pristupiti svaki korisnik sa SELECT
ANY TABLE ovlastima.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 10 / 17
Oracle omoguuje enkripciju korisnikih zaporki tijekom mrene komunikacije. Ako se ova mogunost
ukljui na klijentskom i posluiteljskom raunalu, Oracle koristi prilagoeni DES (eng. Data Encription
Standard) algoritam za enkripciju zaporki prije slanja. Za enkripciju cjelokupnog mrenog prometa
prema SSL protokolu potrebno je instalirati Oracle Advanece Security paket. Inaice namijenjene
Windows operacijskim sustavima podravaju enkripciju na razini datoteka koritenjem EFS (eng.
Encripting File System) datotenog sustava. Enkripcija na razini programskog suelja je omoguena
"DBMS_OBFUSCATION_TOOLKIT" alatom.
U svrhu podizanja raunalne sigurnosti, korisnicima se savjetuje pronalaenje i promjena svih izvorno
postavljenih korisnikih zaporki kao to su: "SYS", "SYSTEM" ili "APPS". Oracle omoguuje kontrolu
sloenosti korisnikih zaporki, njihovog roka trajanja i ponovnog koritenja.
Takoer, Oracle posjeduje nekoliko metoda autorizacije korisnika:
1. Kerberos security implementira Kerberos protokol za sigurno uzajamno dokazivanje
identiteta korisnika tijekom komunikacije koja se temelji na enkripciji simetrinim kljuem
i zahtjeva sigurnu treu stranu (eng. Trusted Third Party, TTP),
2. VPD (eng. Virtual Private Databases) tehnologija koja omoguava ogranienje pristupa
pojedinim zapisima u tablici,
3. Role-based security omoguuje grupiranje ovlasti u uloge koje je potom mogue
pridijeliti pojedinim korisnicima,
4. Grant-execute security omoguuje ograniavanje mogunosti procedura ovisno o
ovlastima korisnika koji ih pokree,
5. Authentication servers posluitelji za sigurnu identifikaciju vanjskih korisnika,
6. Port access security Listener posluitelj moe se postaviti tako da ogranii pristup
pojedinim portovima.
Nadzor nad Oracle bazom podataka obavlja se stvaranjem "AUDIT TRAIL VIEWS" zapisa pomou
"CATAUDIT.SQL" skripte. Podatke prikupljene nadzorom mogue je pohranjivati za svaku sjednicu ili
za svaki uoen pokuaj pristupa. Za vremenski ogranien nadzor koristi se "DBMS_JOB" mogunost,
koja uz "TRIGGERS" mogunost moe posluiti i za postavljanje zamki uljezima. Korisnicima se
pokazalo korisnim nadziranje ve spomenute "SYS.LINK$" tablice te tablice "SYS.AUD$" u koju se
spremaju podaci prikupljeni nadzorom.
5.2.
MsSQL
Microsoft SQL Server (MsSQL) je SUBP koji je, u usporedbi s Oracle i IBM DB2 SUBP-ovima, nov proizvod
s brzo rastuom popularnou.
5.2.1. Ranjivosti
Kada se MsSQL izvodi u nainu rada mjeovite autentikacije (eng. mixed-mode authentication),
pristupne zaporke se spremaju na raznim lokacijama. Neke od njih se tite snanom enkripcijom i
ukljuuju visok stupanj ogranienja. Preostale se (npr. one koje SQL posluitelj koristi za
uspostavljanje veza prema samom sebi i prema drugim posluiteljima) tite slabom enkripcijom i uz
nizak stupanj ogranienja. Pregledavanjem sistemskih tablica i pohranjenih procedura ili koritenjem
SQL Profiler alata, napadai mogu otkriti gdje i kako se ove zaporke spremaju. Ovom ranjivou su
prvenstveno ugroene zaporke "SQL Agent" paketa, DTS (eng. Data Transformation Services) alata te
zaporke koritene prilikom replikacije.
Zlonamjerni prijavljeni korisnik moe neovlateno stei vie korisnike ovlasti ubacivanjem trojanskog
konja u SQL posluitelj. Kako bi to uino, korisnik mora imati "db_ddladmin" ulogu te na odreen
nain promijeniti neku od "dbo" (eng. DataBase Owner) pohranjenih procedura. Kada korisnik s
"db_owner" (ili viim) ovlastima pokrene promijenjenu proceduru, napada moe dobiti i "db_owner"
ulogu. U procedure ranjive na ovakve napade spadaju sve GTSP (eng. Global Temporary Stored
Procedures) procedure.
Korisnik ne moe pristupiti tablicama za koje nema odgovarajue ovlasti, ali se takvim tablicama moe
pristupiti pomou procedura ili pogleda koje je stvorio njihov vlasnik. Takoer, zbog toga to svi
korisnici mogu stvarati privremene procedure i tablice, vrlo je jednostavno izvesti napad
uskraivanjem resursa (DoS) na MsSQL posluitelj. Potrebno je samo stvoriti privremenu tablicu i
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 11 / 17
pokrenuti beskonanu petlju koja ju puni. Privremene tablice se spremaju u "tempdb" sistemskoj bazi
podataka koja se u sluaju ovakvog napada poveava do trenutka ruenja posluitelja.
Najpoznatije ranjivosti unutar MsSQL baze podataka vezane su uz prepisivanja spremnika koja su 25.
sijenja 2003. omoguila Slammer raunalnom crvu izazivanje DoS uvjeta na desecima tisua raunala
i znaajno usporenje cjelokupnog internetskog prometa. Ovaj crv je tako malen da stane u jedan UDP
paket te nema programskog koda kojega treba zapisati na disk, ve ostaje u memoriji raunala.
Slammer generira nasumine IP adrese te se alje na njih. Neki usmjerivai (eng. router) su se sruili
pod optereenjem, to je izazvalo niz poruka za osvjeavanje tablica usmjeravanja. est mjeseci prije
spomenutog datuma, Microsoft je izdao zakrpe koje su onemoguavale izvoenje ovog crva, ali na
velikom broju instalacija ranjivih Microsoft SQL Server 2000 i Microsoft Desktop Engine (MSDE) 2000
programskih paketa te zakrpe nisu bile primijenjene.
5.2.2. Enkripcija
Microsoft SQL Server posluitelj podrava SSL protokol za kriptiranu mrenu komunikaciju. Enkripcija
datoteka je takoer mogua koritenjem EFS datotenog sustava dok je enkripcija na razini
programskog suelja omoguena Crypto API sueljem koje koristi proirene pohranjene procedure.
5.2.4. Postavke
Broj aktivnih mrenih programskih biblioteka (eng. netlib) treba ograniiti na minimum potreban za
funkcioniranje SUBP-a. Najpopularnija mrena biblioteka TCP/IP u kombinaciji sa SSL protokolom
omoguuje siguran pristup SQL Server posluitelju. Budui da MsSQL posluitelj ne podrava
onemoguavanje korisnikih rauna, vrlo je uputno nadzirati i biljeiti neuspjene pokuaje prijave na
sustav.
Prema poetnim postavkama, SQL Server posluitelj omoguuje drugim posluiteljima na mrei
udaljeno pokretanje pohranjenih procedura. Ako nije potrebna, ovu mogunost treba iskljuiti.
Takoer, Mogunost izravnog mijenjanja sistemskih tablica bi u normalnim radnim uvjetima, trebala
biti onemoguena.
SQL Server Monitor je alat koji uobiajeno slua na UDP portu 1434 i daje informacije o instancama
prisutnim na posluitelju i ne bi trebao biti dostupan klijentima. Zbog toga bi vatrozid trebao blokirati
vanjski promet prema TCP portu 1433 i UDP portu 1434.
Nadalje, module SQL Server Agent, MSDTC (eng. Microsoft Distributed Transaction Coordinator) i
MSSearch potrebno je iskljuiti u svakoj konfiguraciji u kojoj nisu apsolutno neophodni. Takoer treba
ukloniti i sve nepotrebne i potencijalno opasne pohranjene procedure.
5.3.
IBM DB2
DB2 SUBP ima na raspolaganju manji broj funkcionalnosti od, primjerice, Oracle ili MsSQL SUBP-ova, ali
se ipak ne moe smatrati sigurnijom od njih. Unato tome, poznat je po izdavanju vrlo kvalitetnih
zakrpi u vrlo kratkom roku, to mu donosi odreenu prednost.
5.3.1. Ranjivosti
Kao i kod drugih programskih paketa, tako i kod DB2 sustava postoje razliiti sigurnosni propusti koji
mogu uzrokovati velike sigurnosne propuste. Neki od njih koji su otkriveni i za koje su izdane zakrpe,
su i sljedei:
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 12 / 17
Sigurnosni propust postoji unutar Control Centar grafikog korisnikog suelja za udaljeno
upravljanje objektima baze podataka pod Windows operacijskim sustavima. Spomenuti
programski paket izvrava se pod imenom "db2ccs.exe" i oslukuje mreni promet na TCP
portu 6790. Ako se na spomenuti port poalje samo jedan oktet (eng. byte) aplikacija se
srui, a ako se poalje posebno oblikovani paket postoji mogunost izvoenja proizvoljnog
programskog koda.
Pogreka prepisivanja spremnika je otkrivena kod "db2ckpw" usluge za provjeru korisnikih
imena i zaporki. Do prepisivanja spremnika dolazi prilikom provjere korisnikog imena duljeg
od osam znakova, to udaljeni zlonamjerni korisnik moe iskoristiti za stjecanje potpune
kontrole nad potpornim operacijskim sustavom.
DB2 SUBP sadri podrku za SQL jezik u vidu Query Compiler prevodioca unutar kojega
postoje dvije ranjivosti koje mogu rezultirati ostvarivanjem DoS uvjeta. Prvi propust se javlja
tijekom obrade SELECT CASE naredbe, a drugi tijekom obrade posebno oblikovanog upita koji
sadri datetime i varchar tipove podataka.
5.3.2. Enkripcija
IBM DB2 baze podataka posjeduju vlastitu enkripciju podataka tijekom prijenosa. Enkripcija datoteka
koritenjem EFS datotenog sustava je podrana kod inaica namijenjenih Windows operacijskim
sustavima dok je korisnicima omogueno vlastito izvoenje enkripcije na razini programskog suelja.
5.4.
Sysbase
Uz Sybase SUBP-ove koriste se dva posluitelja. Sybase Adaptive Server Enterprise posluitelj je vrlo
est u poslovnom svijetu. Koriste ga banke, burze i osiguravajua drutva. Drugi posluitelj koriten uz
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 13 / 17
Sybase SUBP-ove je Adaptive Server Anywhere koji se koristi za posluivanje manjih baza podataka u
sluajevima ogranienih sklopovskih resursa kao npr. kod mobitela i drugih ugraenih aplikacija.
5.4.1. Ranjivosti
Ranjivosti za koje su izdane zakrpe:
Sybase Adaptive Server posluitelj sadri DBCC CHECKVERIFY funkciju koja se koristi za
provjeru rezultata zadnjeg pokretanja dbcc checkstorage funkcije. Jedini parametar kojega
DBCC CHECKVERIFY funkcija prima je ime baze podataka koju treba ispitati, ali pri tome ne
obavlja provjeru duljine tog znakovnog niza. Predvieno je samo ovlateno pokretanje DBCC
CHECKVERIFY funkciju, ali kada to uini neovlateni korisnik postoji mogunost za
prepisivanje spremnika. Do njega dolazi prije sigurnosnih provjera, to napadau omoguuje
stjecanje potpune kontrole nad samim posluiteljem. Jednaka ranjivost se javlja i kod DROP
DATABASE funkcije za uklanjanje baze podataka.
Pogreka preljeva spremnika javlja se i unutar xp_freedll proirene pohranjene procedure za
otputanje DLL datoteka koje su bile uitane od strane drugih ESP procedura. Iako se ova
procedura odnosi na DLL datoteke Windows operacijskog sustava ranjivost unutar nje pogaa
i Sybase baze podataka namijenjene UNIX operacijskim sustavima. Xp_freedll kao jedini
parametar prima ime DLL datoteke koju treba otpustiti, ali ne obavlja provjeru duljine
znakovnog niza. Zatim pokuava taj niz upisati u relativno mali spremnik, pri emu dolazi do
prepisivanja pokazivaa na stog i samog stoga. To napadau omoguuje izvravanje
proizvoljnog programskog koda u sigurnosnom kontekstu proirene pohranjene procedure.
5.4.2. Enkripcija
Sybase podrava SSL protokol za enkripciju mrenog prometa i EFS datoteni sustav za enkripciju
datoteka na Windows operacijskim sustavima. Za enkripciju na razini programskog suelja koriste se
proirene pohranjene procedure.
5.4.4. Konfiguracija
U poetnim postavkama instalacije Sybase SUBP-a nisu ukljueni programski paketi potrebni za
nadzor i evidenciju. Zbog toga je potrebno utroiti odreeno vrijeme na njihovu konfiguraciju.
Sybase SUBP najlake je napasti pomou xp_cmdshell proirene pohranjene procedure i zbog toga ju
treba ukloniti ukoliko se ne koristi. Ako ju se ipak koristi njezin kontekst treba postaviti na vrijednost
1 to e njezino pokretanje omoguiti samo ovlatenim korisnicima i to samo u sigurnosnom
kontekstu korisnika koji ju pokreu.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 14 / 17
Savjetuje se i onemoguavanje svih drugih funkcionalnosti Sybase SUBP-a koje se ne koriste. Najei
primjeri takvih funkcionalnosti su podrka za Java sustave i podrka za interakciju s datotenim
sustavom.
Sybase SUBP posjeduje mogunost integracije s Kerberos, Windows NT Lan Manager i DCE sustavima za
autentikaciju korisnika. Ovi sustavi podravaju znaajno kvalitetnije upravljanje korisnikim raunima
te su sigurniji od autorizacijskog sustava ugraenog u sam Sybase SUBP.
5.5.
MySQL
MySQL je najvie koriten SUBP iz skupine programa otvorenog programskog koda. Njegova
popularnost temelji se na mogunosti besplatnog koritenja, podranosti velikog broja platformi,
relativnoj jednostavnosti, lakom odravanju i zadovoljavajuim performansama.
5.5.1. Ranjivosti
MySQL odreuje razinu ovlasti pojedinog korisnika ovisno o raunalu s kojega se spaja na MySQL SUBP.
Ako se radi o raunalu s lokalne mree pretpostavljaju se maksimalne ovlasti i zbog toga lokalni
napadi mogu biti puno opasniji od udaljenih.
MySQL sadri brojne skripte koje u radu koriste privremene datoteke. U nekim sluajevima te se
privremene datoteke stvaraju na nesigurnim mjestima i s predvidljivim imenima pa mogu biti
zamijenjene simbolikim vezama prema kritinim sistemskim datotekama. MySQL skripta prilikom
prepisivanja sistemske datoteke koristi ovlasti MySQL procesa koji ju je pokrenuo.
Znaajna ranjivost postoji kod alata WinMySQLAdmin koji u datoteci my.ini u tekstualnom
nekriptiranom (eng. plaintext) formatu sprema administratorsku 'root' zaporku.
Za razliku od drugih SUBP-ova, kao to su npr. Oracle ili Sybase, MySQL izvorno sadri prilino slabu
mrenu podrku. Zbog toga napada, nakon proboja u MySQL posluitelj, nema puno mogunosti za
proirivanje napada na ostatak raunalne mree.
5.5.2. Enkripcija
MySQL komunikacija izvorno nije kripirana pa zlonamjerni korisnik koji prislukuje vezu izmeu
klijenta i posluitelja moe doznati korisniko ime i zaporku. Kako bi se to izbjeglo potrebno je
postaviti REQUIRE SSL opciju u GRANT izjavi koja se koristi prilikom povezivanja korisnika. Time se
osigurava enkripcija prometa, izbjegava djelovanje znaajnog broja napadakih programskih skripti i
osigurava zatienost zaporki.
5.5.3. Korisnici
Kod MySQL SUBP-a poznato je postojanje korisnikog rauna s imenom "root". Nekoliko dostupnih
alata, skripti i tehnika napada temelje se upravo na postojanju takvog korisnikog rauna. Sa stajalita
funkcionalnosti korisniko ime uope nije bitno i zbog toga se savjetuje preimenovanje root
korisnikog rauna.
Stvaranje posebnog MySQL korisnika za svaku ulogu unutar web aplikacije ograniava napadaa koji je
uspio probiti zatitu odreenog dijela aplikacije na ovlasti tog dijela.
Nitko osim tzv. root korisnika ne bi smio imati pristup mysql.user tablici jer to napadau omoguuje
neovlateno stjecanje povienih korisnikih ovlasti.
5.5.4. Konfiguracija
Mogunost general query log se u dokumentaciji MySQL-a smatra alatom za pronalaenje i uklanjanje
pogreaka, ali moe posluiti i kao dio rutinskih sigurnosnih provjera. Ova mogunost biljei sva
uspjena povezivanja i sve upite. Iako ne biljei rezultate tih upita niti vraene podatke moe dati
dobar uvid u zbivanja unutar SUBP-a. General query log mogunost inicijalno nije aktivna pa se
preporua njezino pokretanje u sklopu konfiguracije MySQL posluitelja. Pri tome treba paziti tko ima
pristup dnevnikoj datoteci jer ona moe sadravati osjetljive informacije.
Savjetuje se i onemoguavanje LOAD DATA LOCAL INFILE naredbe. Ova naredba klijentima omoguuje
uitavanje podataka iz lokalnog datotenog sustava izravno u MySQL tablicu. Pod odreenim
okolnostima napada moe pomou te naredbe proitati datoteke s klijentskog raunala.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 15 / 17
Korisniki definirane funkcije mogu zlonamjernom korisniku omoguiti proirenje ovlasti nad
napadnutim posluiteljem pa ih treba ukloniti ukoliko se ne koriste. Jednako tako treba onemoguiti
skip-networking i skip-symbolic-links mogunosti ukoliko nisu potrebne.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 16 / 17
6. Zakljuak
Svi SUBP-ovi sadre ranjivosti i nije mogue odrediti niti najsigurnijeg niti najranjivijeg meu njima.
Jedino je sa sigurnou mogue tvrditi kako je najsigurniji onaj sustav koga se najbolje poznaje.
Dobro poznavanje arhitekture i funkcionalnosti sustava od strane administratora, omoguuje njegov
siguran rad.
Broj funkcionalnosti koje SUBP posjeduje moe takoer biti pokazatelj njegove sigurnosti, odnosno
nesigurnosti. Vei broj funkcionalnosti znai i vee mogunosti za pojavljivanje ranjivosti, odnosno
veu povrinu izloenu napadima.
Preporuke vezane uz sigurnost baza podataka se mogu saeti u slijedei popis:
korisnicima je potrebno dodjeljivati samo neophodne ovlasti,
posebnu panju potrebno je posvetiti upravljanju korisnikim raunima i zaporkama,
ispravno primijenjene metode nadzora, periodike analize i koritenje zamki mogu uvelike
pomoi prilikom otkrivanja napada, a time i olakati pronalaenje ranjivosti i njihovo
uklanjanje,
koritenje enkripcije zlonamjernim korisnicima oteava pristup osjetljivim informacijama,
kako korisnikim zaporkama, tako i svim ostalim podacima pohranjenim u bazi,
postavljanje posluitelja s bazom podataka u unutarnju mreu ini ga daleko sigurnijim, a
primjena sustava dozvoljenih IP adresa dodatno smanjuje vjerojatnost udaljenih napada.
Za sigurnost SUBP-a je vrlo vana stalna i redovita primjena zakrpi. Informacije o uoenim
nedostacima i odgovarajuim ispravkama mogu se pronai na web stranicama proizvoaa, stranicama
tvrtki i nezavisnih organizacija koje se bave raunalnom sigurnou, ali i na hakerskim forumima. Pri
tome treba uvijek voditi rauna o tome da je prvi korak kod uklanjanja ranjivosti spoznavanje njenog
postojanja. Iz primjera Slammer crva moe se izvui pouka o moguim posljedicama neinformiranosti i
neprimjenjivanja zakrpa.
7. Reference
[1] S. Brian Suddeth: Database The Final Firewall, SANS Institute, 2002,
[2] Common Vulnerabilities in Database Security, Hurwitz Group, 2001,
[3] Application Security Inc.: Database Security, A Key Component of Application Security,
http://hosteddocs.ittoolbox.com/Database_Security.pdf, listopad 2006.
[4] Aaron Newman: Protecting Database, Application Security,
http://appsecinc.com/presentations/ProtectingDatabases.pdf, listopad 2006.
[5] David Litchfield, Chris Anley, John Heasman, Bill Grindlay: The Database Hacker's Handbook, John
Wiley & Sons, 2005,
[6] Database Security (Common-sense Principles),
http://www.governmentsecurity.org/articles/DatabaseSecurityCommon-sensePrinciples.php,
listopad 2006,
[7] SQL slammer (computer worm), http://en.wikipedia.org/wiki/SQL_slammer_worm, listopad 2006.
Revizija v1.1
CCERT-PUBDOC-2006-10-171
Stranica 17 / 17