Propusti u zaštiti baza podataka su česti i napadači to znaju. Evo glavnih slabih tačaka baze podataka koje oni pokušavaju da iskoriste. Danas je u većini preduzeća baza podataka mesto gde stoje sve naše tajne. To je delimično sigurna kuća, spremna soba i mesto gde se stavljaju fragmenti koji mogu da budu izuzetno lični ili izuzetno dragoceni. Zaštita od svih upada jedan je od najvažnijih poslova za administratore baze podataka, programere i DevOps timove koji se na njih oslanjaju. Nažalost, taj posao nije lak. Kreatori nam daju sve alate. Ugrađuju dobre mere bezbednosti i dokumentuju ih. Ipak, zbog desetina potencijalnih zabuna, previda i grešaka, glupih i razumljivih, to je beskonačan izazov.
Da bismo lakše pratili i ostali na oprezu, evo spiska različitih načina otkazivanja na koje su se čak i najbolji od nas spotakli.
1. Neadekvatno upravljanje pristupom
Mnoge baze podataka stoje na vlastitoj mašini i ovu mašinu bi trebalo zablokirati što je više moguće. Jedino bi bitni korisnici smeli da imaju mogućnost prijave kao administrator baze podataka, a prijave bi trebalo da budu ograničene na uski raspon mreža i drugih mašina. Mrežne barijere mogu da blokiraju IP adrese. Ista pravila bi trebalo da važe i za sloj operativnog sistema, a ako se radi na virtuelnoj mašini, za hipervizor ili administraciju oblaka. Ova ograničenja usporiće rad na ažuriranju softvera i rešavanju problema, ali ograničavanje puteva kojima napadači mogu da krenu to zaslužuje.
2. Lak fizički pristup
Ne može se zamisliti šta bi sve pametan napadač mogao da uradi u serverskoj prostoriji. Kompanije u oblaku i objekti za zajedničke lokacije nude zaključane kaveze unutar strogo čuvanih zgrada sa ograničenim pristupom. Ako su vaši podaci lokalno pohranjeni u vašem centru podataka, primenite ista pravila osiguravajući da samo nekoliko pouzdanih ima pristup prostoriji u kojoj se nalaze fizički diskovi.
3. Nezaštićene rezervne kopije
Nije neuobičajeno da tim odlično odradi obezbeđivanje servera baze podataka, ali onda zaboravi na rezervne kopije. One sadrže iste podatke, pa im je potrebna ista pažnja. Trake, diskovi i drugi statički mediji treba da budu zaključani u sefu, po mogućnosti na drugom mestu gde neće stradati od istog požara ili poplave koji bi mogli da unište originale.
4. Nešifrovani podaci u mirovanju
Algoritmi za kodiranje podataka uglavnom su pouzdani jer su široko testirani i trenutni standardi nemaju javno poznate slabosti. Dodavanje dobre enkripcije u bazu podataka i rezervne kopije sada je lako obaviti za sve podatke u mirovanju. Čak i ako su algoritmi i implementacije sigurni, ključevi takođe moraju biti pažljivo zaštićeni. Dobavljači oblaka i programeri servera prave pouzdan hardver koji se nalazi odvojeno od svakodnevnog toka posla, pa su ključevi bezbedniji unutra . Čak i ako sistemi nisu savršeni, bolji su nego ništa. Kada podaci treba neko vreme da ostanu šifrovani u mirovanju, neki više vole drugu fizičku lokaciju ključeva, po mogućnosti van mreže. Neki čak štampaju ključeve i stavljaju papir u sef.
5. Propust korišćenja algoritama za zaštitu privatnosti
Šifriranje je dobar alat za zaštitu fizičkih kopija baze podataka pod uslovom da možete da zaštitite ključ. Različiti dobri algoritmi takođe trajno izokreću podatke. Ne mogu da reše svaki problem, ali mogu biti iznenađujuće efikasni kada nema potrebe da se svi osetljivi podaci drže na raspolaganju. Najjednostavnije može biti samo zamena imena nasumičnim pseudonimima. Desetine drugih pristupa koristi samo pravu količinu matematike za zaštitu ličnih podataka, a ipak ostavlja dovoljno otvorenog za postizanje ciljeva baze podataka.
6. Nedovoljna kontrola proliferacije
Kada se podaci koriste, oni će se kopirati u keš i u aktivne servere. Arhitekti za skladištenje podataka imaju za cilj da smanje broj kopija i osiguraju njihovo uništavanje čim podaci prestanu da se koriste. Mnoge baze podataka nude opcije za rutinsko preslikavanje ili pravljenje rezervnih kopija kao funkciju za odbranu od kvara mašine. Iako ovo može biti od suštinskog značaja za pružanje stabilne usluge, isplati se tokom dizajna dobro razmisliti o proliferaciji. U nekim slučajevima je moguće ograničiti preterano kopiranje a da se previše ne kompromituje nivo usluge. Ponekad je bolje izabrati sporije, manje redundantne opcije ako one ograničavaju broj mesta na kojima bi napadač mogao da provali.
7. Nedostatak kontrola baze podataka
Najbolje baze podataka proizvod su višedecenijskog razvoja, vođenog beskrajnim testiranjem i istraživanjem bezbednosti. Izaberite neku dobru. Štaviše, kreatori baze podataka dodali su dobre alate za upravljanje i ograničavanje pristupa. Trebalo bi da ih koristite. Obezbedite da samo prave aplikacije mogu da vide prave tabele. Nemojte ponovo koristiti istu lozinku za sve aplikacije. Naravno, ne koristite podrazumevanu lozinku. Ograničite pristup na lokalne procese ili lokalnu mrežu kada je to izvodljivo.
8. Ranjive sekundarne baze podataka
Mnogi stekovi koriste brze keševe u memoriji, poput Redisa, za ubrzavanje odgovora. Ove sekundarne baze podataka i mreže za isporuku sadržaja često sadrže kopije tih informacija iz baze podataka. Provedite isto toliko vremena za njihovo pravilno konfigurisanje kao i za glavne baze podataka.
9. Ranjive aplikacije sa pristupom podacima
Pažljiva bezbednost baze podataka ne vredi mnogo ako se aplikacija kojoj verujemo loše ponaša, posebno kada ta aplikacija ima pristup svim podacima. Jedan uobičajen problem je SQL injekcija, napad koji prevari loše kodiranu aplikaciju da unese zlonamerni SQL u bazu podataka. Drugi je samo loša bezbednost same aplikacije. U mnogim arhitekturama aplikacija vidi sve. Ako ona ne blokira dobro prave korisnike, svi ti podaci mogu da izađu na ulazna vrata.
10. Rizična izloženost internetu
Baze podataka su idealni kandidati za život u delu mreže bez javnog pristupa. Dok neki programeri žele da pojednostave svoj život otvaranjem baze podataka javnom internetu, svako ko čuva netrivijalne informacije mora da razmišlja drugačije. Ako će vaša baza podataka imati kontakt samo sa čeonim serverima, ona može srećno da postoji na delu mreže gde samo ti čeoni serveri mogu da dođu do nje.
11. Nedostatak upravljanja integritetom
Savremene baze podataka nude širok spektar funkcija za sprečavanje da greške i nedoslednosti uđu u skup podataka. Određivanje šeme za podatke osigurava da pojedinačni elementi podataka budu usklađeni sa skupom pravila. Korišćenje transakcija i zaključavanje sprečava uvođenje greške kada se jedna tabela ili red ažurira, a drugi ne. Primena ovih opcija upravljanja integritetom donosi dodatne računarske troškove, ali ako se one što više koriste može se smanjiti efekat slučajnih grešaka i takođe može da spreči korisnike da unesu nedosledne ili netačne podatke.
12. Čuvanje nepotrebnih podataka
Ponekad je najsigurnije rešenje da se baza podataka uništi. Razvojni timovi često razmišljaju poput krtica, čuvajući informacije za budućnost koja možda nikada neće doći. Ponekad je najjednostavniji način zaštite od kršenja podataka njihovo brisanje. Ako vam neki delovi nisu potrebni za pružanje neke buduće usluge, a klijenti nikada neće tražiti da ih vide, možete da ih izbrišete i oslobodite se njihovog čuvanja. Ako niste potpuno sigurni da se podaci neće ponovo koristiti, možete izbrisati primerke na mreži i zadržati samo rezervne kopije van mreže u dubokom skladištu gde je pristup još više ograničen.
Izvor: CSO